| 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. |
| Topic | Author | Date |
| 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 |



