Contribute to the LDC

22 views
Skip to first unread message

Rizo Isrof

unread,
Oct 11, 2012, 10:24:10 PM10/11/12
to ldc...@googlegroups.com
Hi!

First of all permit me introduce myself — my name is Rizo, I am a CS student from Portugal. I am writing this e-mail to ask for a little orientation in my autodidacting experiences dedicated to the study of the D programming language.

I would like to start contributing to the LDC project. Unfortunately my knowledge of the compiler architecture is merely theoretical. Although I did worked a lot with the traditional tools like `bison` and `flex` and studied the fundamentals of the compiler building I do not think I am ready to start just hacking the code. What I ask you are any reading materials or advises about how to better understand the organization of the LDC project and to start contributing to the project.

Thanks in advance!

Best regards,
Rizo

--
BF6F0265: FB27 BB4C 8F03 4980 C311 0968 E66B 9831 BF6F 0265

David Nadlinger

unread,
Oct 17, 2012, 12:18:08 PM10/17/12
to ldc...@googlegroups.com
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

Rizo Isrof

unread,
Oct 18, 2012, 7:54:44 PM10/18/12
to ldc...@googlegroups.com
Hi David,

Thank you for your reply. The outline for contributing you presented could not be better!
I think I will start by doing the cleanup of the old DSource issues and then follow your advice and take a look at the `junior jobs`.

Thanks again,
Rizo

--
BF6F0265: FB27 BB4C 8F03 4980 C311 0968 E66B 9831 BF6F 0265



--
Reply all
Reply to author
Forward
0 new messages