starting GHC development -- two questions

Hi all, I want to start working on GHC, I cloned the repo, made some trivial changes(change some strings etc.) and re-built and observed the results. Now I'll continue reading and understanding the source. While doing this, I think one feature would greatly help me finding my way through GHC source, which is huge: I want to see definition of some symbols. Normally what I would do for this is to load source into GHCi and run :info command. But in the case of GHC, even if it's possible to load GHC into GHCi, I don't think it will be faster than running "ack --haskell someSymbol" and searching through results manually. First idea came to my mind was to generate tags files and then navigate from within vim(my editor of choice). tags file can be added to Makefile as a goal and then tags can be regenerated after each build. Did anyone else try this before? My second question is do we have any low-hanging fruits in trac, to help new people start contributing to GHC? I know several open source projects using that approach and it's really helpful for beginners. I just skimmed over trac and most issues look way too advanced for a starter. Thanks in advance, --- Ömer Sinan Ağacan http://osa1.net

Hello Ömer, First off, welcome to the wonderful world of GHC development! I recommend that you subscribe to the ghc-devs mailing list and direct GHC specific questions there: http://www.haskell.org/mailman/listinfo/ghc-devs
While doing this, I think one feature would greatly help me finding my way through GHC source, which is huge: I want to see definition of some symbols. Normally what I would do for this is to load source into GHCi and run :info command. But in the case of GHC, even if it's possible to load GHC into GHCi, I don't think it will be faster than running "ack --haskell someSymbol" and searching through results manually.
First idea came to my mind was to generate tags files and then navigate from within vim(my editor of choice). tags file can be added to Makefile as a goal and then tags can be regenerated after each build. Did anyone else try this before?
GHC has a 'make tags' command but I've never gotten it to work. I have always just run 'hasktags .' in the compiler/ directory, which works pretty well for me. (If you're in the RTS, run ctags, etc instead)
My second question is do we have any low-hanging fruits in trac, to help new people start contributing to GHC? I know several open source projects using that approach and it's really helpful for beginners.
I just skimmed over trac and most issues look way too advanced for a starter.
We've been discussing putting together an easy bugs list. As a proxy, you can search on the 'Difficulty' keyword: http://ghc.haskell.org/trac/ghc/query?status=infoneeded&status=merge&status=new&status=patch&difficulty=Easy+(less+than+1+hour)&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=component&order=priority For example, this bug seems like a good beginner bug to get your feet wet with the RTS: http://ghc.haskell.org/trac/ghc/ticket/750 This one will give you some experience wrangling the test suite: http://ghc.haskell.org/trac/ghc/ticket/8079 Moving up to the moderate category, here is a nontrivial bug involving profiling and the optimizer: http://ghc.haskell.org/trac/ghc/ticket/609 As with all open source projects, there is always lots of infrastructural work to be done, so if that's your sort of thing, there are plenty of bugs in that category. Cheers, Edward

Hello Edward,
First off, welcome to the wonderful world of GHC development! I recommend that you subscribe to the ghc-devs mailing list and direct GHC specific questions there:
Thanks, I didn't know that. I subscribed and I will ask further questions to that list.
GHC has a 'make tags' command but I've never gotten it to work. I have always just run 'hasktags .' in the compiler/ directory, which works pretty well for me. (If you're in the RTS, run ctags, etc instead)
Great! It worked at the first try and I already started using it.
We've been discussing putting together an easy bugs list. As a proxy, you can search on the 'Difficulty' keyword: http://ghc.haskell.org/trac/ghc/query?status=infoneeded&status=merge&status=new&status=patch&difficulty=Easy+(less+than+1+hour)&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=component&order=priority
For example, this bug seems like a good beginner bug to get your feet wet with the RTS: http://ghc.haskell.org/trac/ghc/ticket/750
This one will give you some experience wrangling the test suite: http://ghc.haskell.org/trac/ghc/ticket/8079
Moving up to the moderate category, here is a nontrivial bug involving profiling and the optimizer: http://ghc.haskell.org/trac/ghc/ticket/609
As with all open source projects, there is always lots of infrastructural work to be done, so if that's your sort of thing, there are plenty of bugs in that category.
Thanks, I'll start looking for issues with easy difficulty for now and ask further questions to ghc-devs mailing list. --- Ömer Sinan Ağacan http://osa1.net

You may also want to check out this freshly-minted page on the wiki: http://ghc.haskell.org/trac/ghc/wiki/Newcomers Every now and again, someone asks exactly the same question that you did, so I've created that page to help answer it. I hope you find it useful. Happy hacking! Richard On 2013-08-09 00:25, Ömer Sinan Ağacan wrote:
Hello Edward,
First off, welcome to the wonderful world of GHC development! I recommend that you subscribe to the ghc-devs mailing list and direct GHC specific questions there:
Thanks, I didn't know that. I subscribed and I will ask further questions to that list.
GHC has a 'make tags' command but I've never gotten it to work. I have always just run 'hasktags .' in the compiler/ directory, which works pretty well for me. (If you're in the RTS, run ctags, etc instead)
Great! It worked at the first try and I already started using it.
We've been discussing putting together an easy bugs list. As a proxy, you can search on the 'Difficulty' keyword: http://ghc.haskell.org/trac/ghc/query?status=infoneeded&status=merge&status=new&status=patch&difficulty=Easy+(less+than+1+hour)&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=component&order=priority
For example, this bug seems like a good beginner bug to get your feet wet with the RTS: http://ghc.haskell.org/trac/ghc/ticket/750
This one will give you some experience wrangling the test suite: http://ghc.haskell.org/trac/ghc/ticket/8079
Moving up to the moderate category, here is a nontrivial bug involving profiling and the optimizer: http://ghc.haskell.org/trac/ghc/ticket/609
As with all open source projects, there is always lots of infrastructural work to be done, so if that's your sort of thing, there are plenty of bugs in that category.
Thanks, I'll start looking for issues with easy difficulty for now and ask further questions to ghc-devs mailing list.
--- Ömer Sinan Ağacan http://osa1.net
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
participants (3)
-
Edward Z. Yang
-
Richard Eisenberg
-
Ömer Sinan Ağacan