Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.
I have read through the documentation I found in the source code download, and much of the source code itself. Most of the documentation has been user documentation. I have only found very sparse and brief design documentation.
I am interested in the possibility of making a contribution to sdcc development by making some enhancements to support my favorite processors (microchip) such as adding the new information required to support recently released processors, or to support microchip processor families not yet supported like pic24, or dsPic etc.
If there is something out there that I have simply missed I would appreciate being pointed in the right direction.
Documentation is always a problem, specially in FOSS projects. There were several attempts to make the design & development documentation better, but all of them infamously failed. You can see some leftovers on the sdcc wiki: https://sourceforge.net/apps/trac/sdcc/.
About pic24 and dsPic families: AFAIK they both use gcc compiler and the source code is available (at least is should be ;). I also saw on the gnupic mailing list that is possible to make a "home made" build of the compiler… So I don't see any benefit to duplicate the work, specially since we currently don't have any active pic developers and there are so many pic14 and pic16 bugs to fix… (Raphael is still around, but it seems that he is very busy with other projects.)
Actually I don't know about pic gcc compiler much more then I wrote, so there could be a possibility that sdcc could perform better due to the different internal compiler design. In this case the support would make sense.
But, in any case: anybody willing to contribute to sdcc project in any form is welcome!
You have made some good points. You have also mentioned that there are a large collection of bugs to fix. Much of my professional programming experience is in the area of fixing other peoples work. Perhaps a good way to start getting involved would be to get to work on fixing some of these if it wouldn't be stepping on someone's toes. Is there a public list that I should refer to, or perhaps you have a list of your own?
Bugs, Feature Requests, Patches, Support Requests and Webdocs tracker links are here:
If you fix a bug, prepare a patch file and submit it to the Patches tracker.
And after you have submitted a patch for a bug (or feature) please update that item with a link to that patch. This way nobody will need to do double work because they missed your patch.
If possible try to construct a regression test for the bug. And if possible run regression tests to see you didn't break anything else.
Thanks! I look forward to getting started.