Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
Per Westermark
06/19/09 17:37
Read: 261 times
Sweden


 
#166271 - If bugs is a big problem - consider your compiler choices
Responding to: Richard Erlacher's previous message
Richard said:
If you go back to http://www.8052.com/forum/read/166228 you'll find my remark that having a single compiler that supports multiple cores is "flexible" and, I believe, SDCC is more so than KEIL.

Sorry, but you totally missed your target since your post does not contain anything about flexibility.

Richard said:
However, there have been many, Many, MANY queries about "why doesn't this work" when it works with a different compiler. That was the main thrust of my comments.

One more totally missed thrust. Lack of competence in C by the people who ask "why doesn't this work" is irrelevant to the ability of a compiler to support different cores or different architectures, or how hard it is to switch between different compiler vendors.

Richard said:
If one has a compiler that supports multiple MCU's, it's likely it will be easier than using different compilers for each MCU one uses, simply because one gradually learns the ins and outs of a given tool.

I think I have closer to 20 compilers installed. I have never seen this as a problem. One for a family of small PIC processors, one for a family of larger PIC processors, one for Atmel AVR, three for ARM (RVCT, gcc, Keil MDK), three for 16-bit x86 (Borland, Paradigm, MSC), three for 32-bit x86 (VC, MinGW, Cygwin gcc), one for ppc, ... And besides the different compilers, it isn't uncommon that I have more than one version of them too, since released products are normally locked to a specific compiler version.

The fact here is that after you have worked with a number of compilers, you will notice that it is way easier to move between different compilers (same vendor-different architectures, different vendors-same architecture, different vendors-different architectures) than it is to move betewen different architectures. And that it normally doesn't matter much if moving between two vendors when switching architecture or using a compiler that has support for both architectures. Any specific knowledge about gcc for ARM doesn't help much when you use gcc for PPC or gcc for AVR or gcc for x86, so in the end it is normally better to shop around for a compiler people think is very good than to select a compiler just because I have worked with other variantes in the "compiler family" or from the same vendor.

Richard said:
What I'd want to do is to avoid switching software vendors, because then I have to learn and remember a long list of bugs for each

I'm not much helped knowing any bug list for WinAVR (gcc) if switching to ppc_8xx-gcc. The front-end is the same, but the important part of the compiler is normally the back-end. In the end, the two compilers are like night-and-day. And if you do suffer from bugs, you are way more likely to find the bugs in the backend than in the common code shared between the different variants.

Richard said:
While few software tools are totally bug-free, remembering which tool has wich bugs is tedious. Software is supposed to enhance productivity, and not get in the way.

Long time ago, I had to report a number of compiler bugs with the Borland and Microsoft compilers. I hate the Microchip compiler that can't even handle standard C constructs. The ancient Microsoft C compiler could be tricked into failing to compile sometimes because of bad register allocation strategies but then we are talking about a 20-25 year old compiler. I don't know much about the WinAVR compiler since I quickly decided to only use assembler for any AVR project.

But in the end, I have hardly ever had need to worry about problems with the compilers I use. The bugs are normally in the supplied GUI, and it is so easy to use Code::Blocks, Crimson or similar when editing the sources and use commandline compilation.

The big thing is to know C, and to know the target hardware. Differences between two compilers is more like differences between two chips in the same family, i.e. a very trivial problem to handle. I don't see it as important that SDCC supports multiple architectures. I would still jump around when selecting compiler based on the requirements for a specific project. gcc also has support for a multitude of architectures and I use gcc a lot for some platforms. For other platforms, I go for other compilers because I think they are better suited. That their command-line parameters are different or they require a new set of environment variables for their library and header directories or that their #pragmas or chip extensions differ a bit doesn't really matter in the end. It represents so tiny part of the project.

In the end, the linker configuration files are often way harder to handle than the differences with the compiler, since all vendors invents their own "clever" ways of scatter-load your binary. But if vendor A has way better compiler or RTL than vendor B for a specific architecture, then that will be the deciding factor - not the amount of work to create the linker configuration files.

List of 95 messages in thread
TopicAuthorDate
What's wrong with gimme code?      Murray R. Van Luyn      06/15/09 23:24      
   Mainly        Jez Smith      06/16/09 00:33      
      I agree with Jez Smith        Kiran V. Sutar      06/16/09 01:49      
         Non academic gimme code?      Murray R. Van Luyn      06/16/09 02:41      
            This makes me very suspicious      Jez Smith      06/16/09 02:52      
            gimme code=my own time is too valuable      Per Westermark      06/16/09 03:34      
               Easy to see which is school assignment      David Prentice      06/16/09 03:54      
                  The wise student needs pointers, not complete solutions      Per Westermark      06/16/09 04:24      
            "Here's what I've come up with ...      Christoph Franck      06/16/09 04:56      
               But what's wrong in asking for an example implementaton?      Jan Waclawek      06/16/09 05:12      
                  The teacher recognises the good student      David Prentice      06/16/09 05:33      
                     Now there's a laugh if ever there was one ...      Richard Erlacher      06/16/09 13:35      
                  nothing IF ...      Erik Malund      06/16/09 08:50      
            children should do their own homework      Richard Erlacher      06/16/09 13:32      
   What's wrong with gimmee code.      Joseph Hebert      06/16/09 00:44      
   Sounds Like; Whats wrong with Spoon Feeding..?      Mahesh Joshi      06/16/09 06:05      
      perhaps it enables ...      David Prentice      06/16/09 06:28      
         Generic solutions applicable to more people      Per Westermark      06/16/09 07:28      
         Then they'll become expert at potty ...      Richard Erlacher      06/16/09 13:37      
   it makes you dumb!      Erik Malund      06/16/09 08:42      
   How'd you like ten of those guys working for you?        Richard Erlacher      06/16/09 13:39      
      But that's the point!      Kai Klaas      06/17/09 08:39      
         We agree in principle, Kai ... but ...      Richard Erlacher      06/17/09 10:16      
         Hiring & firing is expensive!      Andy Neil      06/18/09 01:42      
            and that's not all!      Richard Erlacher      06/18/09 07:41      
   As an example      Jez Smith      06/16/09 15:17      
      No-one is suggesting breach of copyright      David Prentice      06/16/09 15:37      
         arrogance?      Erik Malund      06/16/09 15:48      
            Examples of Erik's arrogance        Hans Heinz      06/17/09 08:52      
               no, I do not state any such,      Erik Malund      06/17/09 09:15      
                   A couple of corrections      Richard Erlacher      06/17/09 10:29      
                     more useful product?      Erik Malund      06/17/09 12:30      
         life is not B&W      Jan Waclawek      06/16/09 15:53      
            Good help _is_ to a big part to give hints        Per Westermark      06/16/09 16:47      
               Votes and freedom of speech?      Per Westermark      06/16/09 16:57      
               When I was a youngster ...      Richard Erlacher      06/17/09 02:01      
                  Returning to the original subject.      David Prentice      06/17/09 02:24      
                     same same but sometimes different      Per Westermark      06/17/09 02:57      
                     Since you like AVRFREAKS so much ...      Richard Erlacher      06/17/09 10:43      
                  Versatility and diversification      Per Westermark      06/17/09 02:52      
                     This is 8052.COM      Richard Erlacher      06/17/09 10:35      
                  and.....        Jez Smith      06/17/09 05:05      
         There's always help for those who can do their own work.      Richard Erlacher      06/17/09 01:40      
            There's the key!      Andy Neil      06/17/09 01:54      
         that is not the issue      Erik Malund      06/17/09 09:18      
            I'm with you 100% on that, Erik      Richard Erlacher      06/17/09 10:46      
               calm down Richard        Jez Smith      06/17/09 11:23      
                  support for more MCU's makes it more widely useful      Richard Erlacher      06/17/09 16:26      
                     it?      Erik Malund      06/18/09 08:44      
                        Which MCU's will KEIL support?      Richard Erlacher      06/18/09 13:22      
                           Irrelevant      Per Westermark      06/18/09 16:34      
                              Keil's blind spot      Andy Neil      06/18/09 17:33      
                                 Keil will probably get squeezed      Per Westermark      06/18/09 17:50      
                              If only that were the case      Richard Erlacher      06/18/09 22:49      
                                 Portable 'C' [edited]        Andy Neil      06/19/09 01:56      
                                 Write what you mean or mean what you write      Per Westermark      06/19/09 03:33      
                                    OK ... Here's the point      Richard Erlacher      06/19/09 16:13      
                                       If bugs is a big problem - consider your compiler choices      Per Westermark      06/19/09 17:37      
                                 C is not that difficult      David Prentice      06/19/09 04:20      
                                    I can't totally disagree ... it's a matter of degree      Richard Erlacher      06/19/09 19:27      
                                    Richard misses the point completely        Jez Smith      06/20/09 00:18      
                  The thing is...      Andy Neil      06/17/09 17:08      
                     I don't think thats true at all      Jez Smith      06/18/09 04:13      
                        Not what I meant      Andy Neil      06/18/09 05:15      
                           Andy's right!      Richard Erlacher      06/18/09 08:11      
         elders and betters would have given a helpful reply.      Andy Neil      06/28/09 19:15      
   If you think 8052.com is bad ...      Andy Peters      06/17/09 13:14      
   When was it the last time someone asked for code?      Jan Waclawek      06/17/09 15:56      
      oohhh      Jez Smith      06/17/09 16:04      
      Here?      Andy Neil      06/17/09 16:23      
      Latest example of "Gimme Code"      Andy Neil      06/28/09 19:01      
   What the forums are all about        CHARLES TOWNSEND      06/26/09 07:39      
      Progress        Steve M. Taylor      06/26/09 10:41      
         No, don't agree with "exhausted all the possibilities"        Per Westermark      06/26/09 11:22      
            patience      CHARLES TOWNSEND      06/27/09 08:28      
         inexperienced      CHARLES TOWNSEND      06/27/09 08:16      
            Well actually...      Steve M. Taylor      06/27/09 09:44      
               you must have a very smart wife      Erik Malund      06/27/09 09:59      
                  If you're a friend ;-)      Steve M. Taylor      06/28/09 04:30      
      arrogant?      Erik Malund      06/26/09 13:44      
         encouragement      CHARLES TOWNSEND      06/27/09 08:34      
            absolutely        Erik Malund      06/27/09 09:05      
            What you have to remember        Jez Smith      06/27/09 22:30      
               Tim Berners-Lee      Steve M. Taylor      06/28/09 04:33      
                  he only invented the web thingy      Jez Smith      06/28/09 10:49      
                     Exhausted all the possibilities...      Per Westermark      06/28/09 13:25      
                        this is just not fair      Jan Waclawek      06/28/09 13:47      
                           It's about attitude      Per Westermark      06/28/09 15:22      
                              on intentions etc.      Jan Waclawek      06/28/09 16:27      
                              98% of 100      Andy Neil      06/28/09 19:23      
                           good and bad      Erik Malund      06/28/09 15:24      
      OK Charles (et al), here's your chance!        Andy Neil      06/28/09 18:58      
         re: OK Charles here's your chance      CHARLES TOWNSEND      07/02/09 07:44      
            QED.      Andy Neil      07/02/09 08:58      
            Yet one more exhausted visitor      Per Westermark      07/03/09 02:40      

Back to Subject List