On 01/20/2017 12:00 PM, Brian L. Stuart wrote:
Some say there's nothing wrong with that, but there actually is quite a lot wrong with it. I cut the size of the resultant binary down by almost 80% by ditching an IDE in a product whose firmware I inherited several years ago. The code size was important not only because the program memory space on the processor was nearly full and they wanted additional features, but also because the firmware updates were (and are) sent out via the cellular data network. Until I fixed it, a global firmware update cost about $20,000 to $22,000. Now it's about $3,500 due to the reduced binary size. Why? The IDE isolated the programmers from full control of the compiler and its code generation options. In other words, they discovered "what to click to make a program", and clicked it. Without learning a damn thing about what they were actually doing.
Amen! Brother.
Yee HAW, even. B-)
Nearly all of the world's C compilers, past and current, are command line systems. And nearly all of them are actually GCC under the covers, for everything even remotely modern.
There are two primary exceptions. First is clang, which is just as big an unmanagable as gcc. The other is kenc. Ken Thompson wrote a new suite of compilers as part of the Plan 9 project. These compilers are also available as part of Inferno. Later they were ported to work on more POSIX-like environments for the Go project, and now a number of Linux and other distributions include packages to install kenc. His compilers are much leaner than the mainstream ones, they have a much cleaner model for cross-compiling, and Ken's taste in extensions makes the ANSI committee look like Philistines.
Innnnteresting. I've played with clang, and eventually started asking "what's the point?"...but kenc is something I've never heard of, and Ken Thompson's toenail clippings know more about programming languages than I ever will, so I'd like to look at that compiler. Does/can it target bare-metal ARM7/Cortex-M families? -Dave -- Dave McGuire, AK4HZ New Kensington, PA