Re: LPC900/80C51 Compiler Toolchain



ChrisQuayle wrote:
Chris Hills wrote:

OK then can some one PROVE how FOSS compilers are more advanced or *at least* as good as commercial ones?





Have been wary about getting into this, but it irritates me that the commercial vendors are quite happy to steal new ideas from open source at no cost to improve their product, but then have the chutzpah to suggest that gcc is inferior. Neither are they willing to disclose their own improvements that might contribute generally to the state of the art. Of course, in the commercial world ip matters, but probably most of the really good new ideas in software in the last decade or so have come out of open source or academia, so what have the commercial vendors got to offer that makes them so good ?. After seeing how Linux has bloated over the past few years, have had a few things to say about open source myself, but the gcc suite is one exception that disproves any general criticism.


Many Linux *distributions* have bloated - Linux itself has not bloated (it's got bigger and better, but not bloated). There are plenty of open source projects that have suffered from "bloat", and plenty of distros that have grown huge, but the great thing about open source systems is that you mix and match what you need, and can get big, fancy, powerful software ("bloated" software) or small, lean and dedicated software.

It's no good saying they use advanced techniques without at least giving some idea of why I should pay $k's over something that works and that I can download and build for free. For example, I still use (old) gcc 2.7.2 for 68k work. An unpretentious compiler that i'm familiar with, produces acceptable code and still have to catch it out with even the most complex data structures and constructs etc. Have not found a show stopper bug in several years use, which is more than I can say about some commercial product. I think the commercial vendors are at a very

(If you want to try a newer version, go to www.codesourcery.com. They maintain the gcc m68k port, and there have been a fair number of improvements over the years, especially for ColdFire parts.)

serious disadvantage now. Tool development is such a labour intensive and skilled process, with shrinking market, that they have to charge high prices just to stay in business, never mind keep up with the state of the art. A highly unstable market, with thousands of devices and variants to support and guessing which will be successfull and sell volume. Not a business I would want to be in at all.


There are some situations where commercial developers have advantages over open source developers - it is often easier to get restricted information (advance information, or extra technical details) from the microcontroller manufacturers. Even for those manufacturers which directly support gcc ports, there can be restrictions with some PHB wanting to keep details secret, which therefore cannot end up in open source code.

There is also currently only one serious, powerful open source compiler system - gcc. So for architectures that don't fit gcc's models, there are currently no top-quality open source alternatives (sdcc is, as far as I understand it, a perfectly reasonable compiler - but it is not a top-ranking 8-bit compiler in the same way that gcc is for many 32-bit targets).

The other thing that commercial developers can do that open source developers typically do not, is spend time and money on everything *around* the compiler - documentation, installation, IDEs, debuggers, dedicated support teams to help you out when the software license locking system has lost its keys, etc. These sorts of things take time and effort, and are often not the most interesting parts of the job - it's fine if you are paid to do it, but for many open source developers and their employers, margins are smaller and it's harder to find the time and money to spend on less essential parts.

As I see it, there is plenty of place for both commercial and open source development tools (and both high-price and "cheap and cheerful" price commercial tools) at the moment. What is interesting is the changes for newer architectures - steadily more manufacturers are going straight for a gcc port for newer 32-bit architectures, rather than the more traditional approach of working closely with a commercial developer. The development process for these ports is often not very open (they work behind closed doors, and release binaries and corresponding source files in lumps), making it somewhat of a middle road.

It's not just the compiler either - The gcc suite has an excellent set of binary utilities, linker, make and archiver / librarian etc, which blend together seemlessly in a unix environment to produce a really top class development suite. Again, miuch more than can be said for some of the commercial vendors. If you want a good laugh, have a look at the utilities associated with earlier versions of the IAR H8 compiler and the command line options. Even Keil C wasn't that brilliant in terms of added value and that's a compiler that i've used extensively and respect quite a lot, even if the code it produces looks horrendous at times.


Many commercial toolsets are now using open source utilities, as well they should - for most parts not directly related to code generation, common open source versions of the tools are far better than anything anyone else makes. A good example is the Quartus design suite for Altera FPGAs - the compilation and routing parts are all closed source from Altera, but the glue that holds it together is cygwin, tcl, and perl - all open source versions. Their soft cpu is generated with closed-source programs, using tcl and perl, with Eclipse for the IDE and gcc for compilation.

So Chris, what's the unique selling point ?. Have failed to be convinced thus far...

Chris

.



Relevant Pages

  • Re: LPC900/80C51 Compiler Toolchain
    ... There are some situations where commercial developers have advantages over open source developers - it is often easier to get restricted information from the microcontroller manufacturers. ... Even for those manufacturers which directly support gcc ports, there can be restrictions with some PHB wanting to keep details secret, which therefore cannot end up in open source code. ... no top-quality open source alternatives (sdcc is, as far as I understand it, a perfectly reasonable compiler - but it is not a top-ranking 8-bit compiler in the same way that gcc is for many 32-bit targets). ... Also the gcc port is usually created but not supported. ...
    (comp.arch.embedded)
  • Re: Bye bye Keil 166 and 8051 (??)
    ... I have had to maintain some open source software and I have been appaulled at how increadibly bad some of it is. ... Similarly, some closed source code has careful reviews or is written as a team, forcing structure and well written code, while other closed source is hacked together under time pressure and looks terrible. ... That's certainly true - but there is no specific reason to assume that an open source compiler is necessarily worse than a closed source one. ... It's been a while since I have compared IAR's code generator with gcc's - it will be interesting to see which is better with the latest gcc 4.1, but I would certainly not assume IAR's compiler is as much ahead as the difference in price would indicate. ...
    (comp.arch.embedded)
  • Re: Python compiled on Windows
    ... open source compiler like gcc or g++ on Windows? ... From the standpoint of open source. ... if there ever had compiled on windows using ... that toolkit or even with gcc, and with gcc, whether there are problems ...
    (comp.lang.python)
  • Re: LPC900/80C51 Compiler Toolchain
    ... commercial compiler developers, code analysis developers and seen the ... In 2006 the latest GCC compiler was not able ... The only target GCC is good at is x86, ... at open source code to avoid accidentally copying stuff. ...
    (comp.arch.embedded)
  • Re: Inside an FBI Computer Forensics Lab
    ... properly reproduce or validate a piece of hardware. ... open source tools and well established procedures and methods are used ... like me could trivially design a black box which satisfied every ... possible to create a compiler that will recognizes your code during ...
    (alt.privacy)