Hi Rizo,
Sorry for my delayed reply. When your message arrived, I had just
started sketching out a »Contributor's Guide« for LDC, but it seems
like I won't be able to complete it until the weekend or so.
Unfortunately, at this point, I can only give you a few assorted, partly
outdated links:
-
http://www.dsource.org/projects/ldc/wiki/Hacking (still on the old
DSource wiki – but note the toChars()/dump() tip!)
-
http://www.prowiki.org/wiki4d/wiki.cgi?Contributing_To_The_D_Compiler
(for DMD in general)
-
http://llvm.org/docs/ (tons of documentation for LLVM; really
useful)
There isn't really any documentation on the formal/community aspects of
contributing to LDC right now, but it's really just the same as for any
other open source projects: Pick a task, let other's know you are
working on it, discuss any problems on this mailing list, and then
submit your changes as a GitHub pull request.
In any case, Kai is right, the easiest way to get started is probably to
just pick an open issue and start working on it – at least I find this
to be the easiest way to get involved with new projects. Some issues you
might want to look into:
- Bugs from the old tracker at DSource: Go through all the open ones,
check if they are still present, and either fix them immediately or
migrate them to the GitHub issue tracker
(
https://github.com/ldc-developers/ldc/issues/106). This is as demanding
as you want it to be, and would definitely help the project!
-
https://github.com/ldc-developers/ldc/issues/202: Should be really
easy to implement, but could be nice to get accustomed to pull requests
and so on if you are not already familiar with GitHub.
- I just tagged a few issues on the GitHub tracker which I believe to
be quite isolated in nature as »junior jobs«:
https://github.com/ldc-developers/ldc/issues?labels=C-junior-job&state=open.
These might also be a good starting point for digging into the inner
workings of the code generation process.
Oh, and the most important thing: If you get stuck, please feel free to
ask questions at any point – either here, or on IRC, if a dev happens
to be online (#ldc at freenode, #d for language questions)! This is
especially important for the DMD side of things, for which almost no
documentation exists at all…
Hope this helps,
David