|[Haskell-cafe] How to start with GHC development?||Janek S.||12/11/12 5:58 AM|
I would like to learn about internals of GHC and contribute to its development in the future. I
read a couple of papers that give a very general overview of GHC (chapter from AoS, papers about
inliner and multicore support) and I'm thinking what direction should I pursue now. I was
a) getting GHC sources, reading the commentary on the GHC wiki and hacking the code
b) reading SPJs "Implementing Functional Languages: a tutorial"
c) reading SPJs "The Implementation Of Functional Languages" book
I would definitely go for a), but I don't know if I'll manage to understand the code without
knowing how functional languages are compiled. I have a rather basic knowledge of compilers in
general - I took Stanford's online course on Compilers at Coursera. Should I get more theoretical
knowledge? Any advice is greatly appreciated.
Haskell-Cafe mailing list
|Re: [Haskell-cafe] How to start with GHC development?||Eric Rochester||12/11/12 6:10 AM|
I'm in the same boat, with just a little less reading. :)
It seems to be that if we want to encourage participation in GHC development, the first step is to lower the barrier of entry.
One way to do that would be to have a page (wiki, perhaps) that has a reading list for learning about GHC. I'd guess that there are a lot of people like Janek and myself who want to contribute, even a little, and just aren't sure about where to start. We're happy to do our homework, but we need some assignments, so to speak.
Another idea is to have a list of open tasks grouped by how difficult they will be and how much knowledge of Haskell and GHC will be required. This is somewhat at odds with the earlier suggestion to have domains in codebase, with separate de facto maintainers for each. However, it would make it easier for others to contribute. I could also see where the domain maintainers could put simpler tasks into a global index. That might mix the best of both.
I'll be happy to start accumulating information for the wiki page. I'm in the middle of drafting a book, however, so it'll be Feb at the earliest before I can really pay significant attention to it.
|Re: [Haskell-cafe] How to start with GHC development?||Janek S.||12/11/12 6:29 AM|
> One way to do that would be to have a page (wiki, perhaps) that has aWell, I think that GHC wiki has really decent commentary. I'm just not sure if reading it will be
enough to get started (probably not). So guidance would be appreciated :)
|Re: [Haskell-cafe] How to start with GHC development?||Ertugrul Söylemez||12/11/12 6:50 AM|
Eric Rochester <eroc...@gmail.com> wrote:It doesn't have to be at odds with the domain suggestion. In fact they
can be combined neatly. The maintainer of a domain is the best person
to judge the difficulty of a task, so they can assign the difficulty
levels. A new GHC developer can then view all tasks from all domains
sorted by difficulty and start with the easiest ones.
To me this sounds like a great idea to encourage people to join GHC
development. I'm very interested myself, as I actually have some
experience writing compilers for statically typed lazy languages
(including STG compilation), but unfortunately my spare time is very
limited. However, I would like to solve at least some easy tasks to get
As for Simon Marlow's legacy perhaps this is the opportunity to
reevaluate the current run-time system and make it more transparent,
more modular as well as easier to substitute/customize. This could open
the doors to using GHC for low level systems programming up to the point
where you can write kernels in Haskell. This is something I am
particularly interested in.
Not to be or to be and (not to be or to be and (not to be or to be and
(not to be or to be and ... that is the list monad.
|Re: [Haskell-cafe] How to start with GHC development?||wren ng thornton||12/11/12 8:49 PM|
On 12/11/12 8:58 AM, Janek S. wrote:One bit of advice is to sign up for the
<glasgow-ha...@haskell.org> list. That's a better place to get
information about GHC internals than the cafe is.
Other than that, it's hard to say. What part of the compiler are you
(most) interested in hacking on? The type system? The compilation down
to C-- and LLVM? The concurrency and parallelism? Debugging, testing,
and fuzzing? ...
|Re: [Haskell-cafe] How to start with GHC development?||wren ng thornton||12/11/12 8:51 PM|
On 12/11/12 9:29 AM, Janek S. wrote:My general approach is to dig into the code. After you've gotten a look
at it, you'll have a better idea what parts of the wiki are worth
focusing on. And after reading you can dig a bit deeper. Iterate.
|Re: [Haskell-cafe] How to start with GHC development?||Jason Dagit||12/11/12 11:08 PM|
On Tue, Dec 11, 2012 at 6:10 AM, Eric Rochester <eroc...@gmail.com> wrote:I'm in the same boat, with just a little less reading. :)
The GHC developers have created a list to help with this, look at the easy bugs and tasks:
They already thought of this and did it :)
|Re: [Haskell-cafe] How to start with GHC development?||Janek S.||12/12/12 12:07 AM|
Dnia środa, 12 grudnia 2012, wren ng thornton napisał:
At the moment it's concurrency and parallelism, but I guess that at some point I might like to
play with the type system.
|Re: [Haskell-cafe] How to start with GHC development?||wren ng thornton||12/13/12 9:21 PM|
On 12/12/12 3:07 AM, Janek S. wrote:
In that case I'd suggest reading some of the papers on STM, DPH, REPA,
For the type system, I highly recommend reading . It's long but it's