Fixing Newbie Bugs
So, you'd like to contribute to DDC but don't know how? Then this page is for you!
I'll also assume that you have picked a ticket on newbie list that you'd like to work on. If this list is empty then ask on the mailing list, as it changes frequently as things are fixed.
The easiest tickets to work on involve refactoring. This is an easy way to become familiar with the code base, as the required functionality already exists.
The second easiest tickets are small cosmetic enhancements. These should at least be fairly well specified, and the aim is to add some functionality without breaking any existing tests.
Then there are the bugs. Test cases for bugs which have not been fixed yet are put in the test/Broken-skip part of the ddc darcs tree. For say bug number XXX, there may already be a test case called TXXX-BugName. If you list the TXXX-BugName directory, you will find that it probably contains a single file named Test.ds or Main.ds. With the compiler already built, you can try compiling the test case using the command:
which should produce a similar error message to the one in the bug report.
If there isn't already a test case, you should add a TXXX-BugName directory and a appropriate test file.
At this stage its usually a good idea to add a simple shell script in the top level directory, which will build the compiler and run your test case with a single command. This shell script (which can be named say run.sh) might look a little like this (modify to suit):
#!/bin/bash make || exit 1 bin/ddc test/Broken-skip/TXXX-BugName/Test.ds 2>&1
Depending on the particular problem you're working on you may want to add the -dump command line option to the ddc command line.
Once you have all this set up, its time to start adding debug print statements to help track down the problem.
When you have a fix for the bug, you can use darcs to send a patch to the mailing list. If you didn't fix the bug but made a test case, then that's still helpful, so submit that anyway.
If you want work on a more major project then that's even better. In this case it's best to introduce yourself on disciple-cafe.