haskell-org / summer-of-haskell

Source code of summer.haskell.org
http://summer.haskell.org/
Other
85 stars 74 forks source link

Haskell foundation projects (structured errors, trees that grow)? #143

Closed Ericson2314 closed 1 year ago

Ericson2314 commented 2 years ago

Now the GSOC is more flexible, are projects that are more "student pitches in to longstanding volunteer effort" rather "student completes task end to end" OK?

Putting some more hours in structured errors and Trees that Grow factoring out the AST from GHC would be great projects to onboard people, because of their incremental nature.

jaspervdj commented 2 years ago

@Ericson2314 I think these sound like great projects, however, to fit in the program we need to cut out some attainable end goals. The actual projects can deviate from them somewhat, but we want to set people up with some sort of notion of what success means. Do you think we can cut these into even smaller pieces?

Ericson2314 commented 2 years ago

Smaller pieces is certainly no problem. For many of these GHC projects, the various parts of GHC (now made clear with the hierarchical module names!) can be tackled independently, which makes for very nice milestones.

Right now I'd roughly guess there is about month or of clear-cut tasks on each track before the "fog of war" sets in and unclear what is next. I would expect to maybe hit some snags at the point, but even merely uncovering those + driving the initial parts to completion (PRs merged, not merely open like many GSOCs) would count as a big-time success to me.

jaspervdj commented 2 years ago

@Ericson2314 That sounds great! Who can help me write the ideas for these, so we can get something on the website?

mmhat commented 2 years ago

Trees that Grow factoring out the AST from GHC

@Ericson2314 Hi, I am still looking for a GSoC project and I am interested in that. I suspect it would be something in line with https://gitlab.haskell.org/ghc/ghc/-/issues/21242 but can you elaborate on what you had in mind?

Ericson2314 commented 2 years ago

Currently @alt-romes has been spearheading further trees that grow work, but perhaps there is enough independent work that a second person could be involved.

Conversely, if you think you might instead pick a different project where there is more elbow room @adinapoli or @rae could perhaps break out some structured errors tasks, or @hsyl20 and I could explain https://gitlab.haskell.org/ghc/ghc/-/issues/17957. (Full disclosure that last one is more controversial. Just cause it's my personal favorite shouldn't lead me to neglect to warn you about that!)

mmhat commented 2 years ago

@Ericson2314 Thank you for your fast response. If the TTG story is worked on I don' t see any need to get involved there too.

Regarding structured error messages messages and the issue you linked: I am interested in those as well! I don't see how the latter is controversial yet (Thanks for the warning!) and will dig into it a bit more tomorrow.

mmhat commented 2 years ago

@Ericson2314 @hsyl20 I had a look at #17957 (and related issues/comments in #14335, #20927 and #14597). I like the direction taken there and I'd be happy to work on that during the GSoC with one of you as a mentor. I will write a draft of an application throughout next weekend and mail it to you and it would be great if we find the time to schedule a call to get to know each other.

Ericson2314 commented 2 years ago

OK! Very excited to hear that, @mmhat! Happy to do the call before you right the draft if that helps.

hsyl20 commented 2 years ago

@mmhat Glad to hear that too!

To help with your draft, I have started writing a paper about GHC's refactoring about 2 years ago: https://vrac.hsyl20.fr/ghc/ghc-modular.pdf

I'll try to complete section 3 (about the refactorings we would like to see happen) before the end of the week, but as you've already read "#17957 (and related issues/comments in #14335, #20927 and #14597)" you should already be familiar with them: layering, parse don't validate, push DynFlags out of ghc-lib, etc. Basic software engineering practices really.

mmhat commented 2 years ago

@hsyl20 Thank you very much for the draft you shared! It was indeed quite helpful. From what I got from the discussions in the mentioned issues I suspect that the desired refactorings are roughly in line with those in your comment https://gitlab.haskell.org/ghc/ghc/-/issues/20730#note_393634 and the following ones?

Ericson2314 commented 2 years ago

@mmhat the place to begin is finishing off the check boxes in https://gitlab.haskell.org/ghc/ghc/-/issues/17957. I think that alone could easily take you the whole summer so it's a good thing to focus on. https://gitlab.haskell.org/ghc/ghc/-/issues/20730 is best viewed as bonus material if you somehow beat the odds and finish https://gitlab.haskell.org/ghc/ghc/-/issues/17957 :)

tomjaguarpaw commented 2 years ago

Wow, @hsyl20, this is such an amazing document! It very clearly describes the problem and a route to the solution. I love the reference to DDD.

Do you have plans to circulate it more widely?

hsyl20 commented 2 years ago

Thanks @tomjaguarpaw! We are still working on section 3 to make the paper more constructive but then we will try to make it circulate more widely.

Ericson2314 commented 2 years ago

I opened https://github.com/haskell-org/summer-of-haskell/issues/158 for the modularity work we've started planning out.

hsyl20 commented 2 years ago

@tomjaguarpaw The paper is now released: https://www.reddit.com/r/haskell/comments/uhdu4l/modularizing_ghc_paper/

jaspervdj commented 1 year ago

Cleaning up for 2023, if you receive this notification and have ideas from this year, please submit them!