Comeau Computing Home
Comeau.Computing

Bursting With So Much Language Support It Hurts!
Comeau C/C++ 4.3.3 Compiler Front-End, NEW RELEASE!
Your Cross Platform C++ and C Compiler Solution Based On The Language Clauses Of ANSI/ISO Standard C++ and Standard C
NEWS FLASH -- 4.3.3 AVAILABLE!!

Comeau C/C++:
 NEW 4.3.3 FEATURES!!
 4.3.3 Upgrade Form
 Test Comeau C++ Online!!
 Online Documentation
 Platform specific info
 License Agreement
 About Comeau C/C++
 Custom Ports
 General C/C++ Issues

Order worksheets:
 FORMS or HTML or ASCII

C++ Committee:
 Meeting updates
 Committee "Issues Lists"
 Standard C++ Press release
 How to obtain Standard C++

CCsh:
 CCsh literature
 CCsh FAQ
 CCsh Documentation
 License Agreement

Miscellaneous:
 Contacting Us
 Thoughts from Greg Comeau
 LINKS to C++ sites
 Book authors
 Students
  Custom Tailoring Comeau Computing?

Comeau Computing is interested in any extensions, unique needs, etc. that you may require for your platforms, including new ports. Also, please contact us if you are interested in a compiler supporting the proposed "Embedded C++" amendments. As well, don't hesitate to contact us if you have a "strange" and/or primitive machine/environment.

Comeau C/C++ is available for MS-Windows and various UNIX platforms. As well, we are always available and interested in:
  • Ports to other platforms, whether UNIX or non-UNIX
  • Ports to additional C compilers on existing platforms, or new platforms, or for cross-compiling.
  • Performing custom extensions (keywords, etc.)
  • Hardware manufacturers desiring C++ compilers on your CPUs.
  • Proprietary ports
  • Cross-compiling
  • Embedded systems
Please email us with your questions.

Below find some general details about ports of Comeau C++.

Our normal goal is to establish custom ports with similar "out of the box" functionality as our normal generally available ports. Note that even if you just want to use another C compiler with Comeau C++, you will need a custom port from Comeau. Not only are some ports difficult, there is always the real concern of the drudgery of lots of specifics. This is where our experience and porting savvy come into play. Often there are scores of small changes which need to occur, some in the compiler proper itself, which must be done by Comeau. It's also significant to appreciate that when a port gets complex, and they all do, that "we've seen it all" and so we already have that savvy, which you gain from us then as we do the port. You may want to look at http://www.comeaucomputing.com/faqs/genfaq.html#history for our immense experience.

Time-wise, a typical port take about a month. So, for instance, if we started today, it would not be unreasonable to expect to have a beta of the port completed by 3 weeks or so for you to test out.

Price-wise, a typical port runs from $5-$50K with around $20K being average, depending upon the precise details and needs. This usually provides a minimal C++ (maybe or maybe not with templates, exception handling, rtti, and namespaces depending upon details) with the range from $5K to $50+K depending upon the details.

Below is a general discussion, and questions, for us to continue with. It will help us better to understand your need and goals, and hence from which directions and solutions to advise you, if you consider these issues. Of course, you should specifically address these points, and your own concerns, if you correspond with us about a custom port.

There are may steps to compilation. As to one aspect of compilation, Comeau C++ generates C as its object code. However, the generated C code is not generic or general. Therefore, it alone is insufficient, because, among other things, of differences between the host and target. As one example, the compiler itself needs to be changed for some platform specific things, such as the sizes and alignments of the builtin types such as int and float, in order to be appropriate for your target (the front-end must know this and dozens and dozens of other things about the target). Similarly, as another example, say when using say exception handling, then there is some "compiler helper routines" that we will also need to port so it can be available in your target's object code form. And so on.

In other words, there will need to be a number of modifications and tailorings necessary. And only upon those modifications will it be ok with your C compiler (not just in compiling but in obtaining 'valid' object code that will compile, link, and also run properly with the specific chip) and the Comeau translation phases, task coordination, analysis, semantics, symbol information, etc.

The main C++ technical issues on the table include:

  1. Template instantiation
  2. Exception handing
  3. RTTI (run-time type identification)
  4. Namespaces
  5. Compiler helper RTL functions (for instance, operator new)
  6. Static initialization and destruction
  7. The command line driver needs to be tailored for each platform
  8. The compiler proper needs to be tailored for each platform
  9. The C++ Standard Library

Of course, each of these bullet items has hundreds of sub-considerations, implications, and therefore hours of meticulous work behind them. In order to talk about anything in detail, we should consider this list (5-8 are given's though).

Furthermore, when considering ports, we often like to find out about the following generic/non-technical list. Some of this may not apply to you, but we need to ask anyway to get the right perspective, so please answer all below even if to say the question doesn't apply.

  1. Is the host a true UNIX system?
    If so, exactly which one (include brand and version)?
    If not, which OS is it (include brand and version)?
  2. Is the target a true UNIX system?
    If so, exactly which one (include brand and version)?
    If not, which OS is it (include brand and version)?
  3. What is the target CPU?
    If applicable, what is the processor family?
    If applicable, are there any specific modes the chip needs to be in?
  4. How ANSI, ISO, or up to date is the C compiler?
    Who is the vendor, and what is the name and version number of the C compiler?
  5. Would we have access to physical machinery at our location?
  6. Would we have access to necessary software at our location?
  7. How often would we need to be at your site?
  8. How soon is the port needed?
  9. Would we have local access to appropriate manuals?
    Would you know a URL so we can look at the docs online?
  10. Would we have access to local support persons and/or those in support of the chip/C compiler?
    Could you provide their emails paths in order for us to contact them?
  11. What extensions would be need to be implemented?

    Also, the above is not intended to be the only questions possible. Therefore, you should also include issues such as:

  12. What unique technical concerns does your project have?
  13. Please, offer additional details about the project's needs and goals.

This may all no doubt seem quite overbearing, but that's often only a momentary thing. Every project we do ends up being unique in many ways, so it's important to establish a list of what is going to be what. Therefore it's important to get through the items and see what we are left with. Not only will this process bring forth better understand of each others needs et al, but it will also boil up to the top what's going to be important. It's only from that which we can work with you in terms of covering the issues, and of course the cost.

/* the end */

[ Home | About Us | Contact Us | Comeau C++ Documentation | C++ Committee | C++ Resources ]


(c) © 1992-2013 Comeau Computing. All Rights Reserved.
Comments and issues about the Comeau Web site should be addressed to here
Last updated July, 2013. Thanks, and come back soon!
C++ parsing; C++ syntax analysis; C parsing; C syntax analysis; EDG; C++ to C translation; Convert from C++ to C; Translate C++ to C; C++ to C tool; hand conversion; cfront replacement; AT&T; Standard C++; near compliant C++; standard conforming; ANSI; ISO; embedded systems; multi-platform; cross-platform; cross-compiler; portable compiler; target platform; templates; C++ resources; C++ links; UNIX compiler; DSP compiler; savvy; track record; free technical support; free compiler upgrade; 8-bit; 16-bit; 32-bit; 64-bit; 128-bit; VC++; MSVC++; commercial; inexpensive; free; PD; public domain; C++ information; Commeau; Comeaus; Comeaux; Commeaux