Summer of Haskell 2023 Results
Posted on January 20, 2024 by Aaron Allen (permalink)
On behalf of the Haskell.org committee, I’m pleased to announce the results of the Summer of Haskell 2023. Many impressive and valuable contributions were made to the Haskell ecosystem which I’m excited to share with you in this post. I’d like to extend a big thank you to the sponsors that made this program possible: The Haskell Foundation, Kadena, Jane Street, Holmusk, MLabs, Flipstone, Gershom Bazerman, and Edward Kmett. Gratitude is also due to the wonderful mentors who kindly donated their time to helping bring these projects to fruition and fostering the next generation of Haskellers.
I also want to mention that we are currently in need of idea submissions for the upcoming Google Summer of Code 2024! This program depends on having a quality list of ideas, so please consider submitting any you might have (ideally before Feb. 4th).
Without further ado, what follows is a summary of the work that was completed under the Summer of Haskell 2023.
Project | Support for Resolve Functionality in HLS |
Contributor | Nathan Maxson |
Mentor | Michael Peyton Jones |
Nathan Maxson contributed support for resolve
functionality
to HLS. He has
also updated a number of HLS plugins to utilize this functionality, thus
reducing CPU and memory usage and improving speed. The plugins that have been
updated in this way are overloaded-record-dot
, hlint-plugin
,
explicit-imports
, refine-imports
, type-lenses
, explicit-records
, and
class-plugin
.
Relevant code contributions
- https://github.com/haskell/haskell-language-server/pull/3621
- https://github.com/haskell/haskell-language-server/pull/3678
- https://github.com/haskell/haskell-language-server/pull/3688
- https://github.com/haskell/haskell-language-server/pull/3658
- https://github.com/haskell/haskell-language-server/pull/3679
- https://github.com/haskell/haskell-language-server/pull/3682
- https://github.com/haskell/haskell-language-server/pull/3729
- https://github.com/haskell/haskell-language-server/pull/3743
- https://github.com/haskell/haskell-language-server/pull/3750
- https://github.com/haskell/haskell-language-server/pull/3769
Project | Cabal File Support for HLS |
Contributor | Jana Chadt |
Mentor | Fendor |
Jana Chadt worked on improving support for Cabal files in HLS. The work has been summarized in this gist, which includes links to relevant PRs and issues. There is also a blog post detailing the new HLS functionality.
Relevant code contributions
- https://github.com/haskell/vscode-haskell/pull/618
- https://github.com/haskell/haskell-language-server/pull/3268
- https://github.com/haskell/haskell-language-server/pull/3766
- https://github.com/haskell/haskell-language-server/pull/3761
- https://github.com/haskell/haskell-language-server/pull/3778
Project | HLS: Goto 3rd Party Definition |
Contributor | Elodie Lander |
Mentor | Zubin Duggal |
Elodie Lander worked on allowing the HLS goto definition functionality to work with definitions from outside of the current project. Although primarily focused on HLS, this work involves contributions to other key Haskell infrastructure: GHC, Cabal, HieDb, and haskell/actions.
Relevant code contributions
- https://github.com/haskell/haskell-language-server/pull/3676
- https://github.com/haskell/haskell-language-server/pull/3725
- https://github.com/haskell/haskell-language-server/pull/3749
- https://github.com/wz1000/HieDb/pull/57
- https://github.com/wz1000/HieDb/pull/56
- https://github.com/wz1000/HieDb/pull/55
- https://github.com/wz1000/HieDb/pull/60
- https://github.com/haskell/cabal/pull/9019
- https://github.com/haskell/cabal/pull/9244
- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/11083
- https://github.com/haskell/actions/pull/290
Project | Standardize GHC’s Error Dump in JSON Format |
Contributor | Ben Bellick |
Mentor | Aaron Allen |
Ben Bellick contributed a new well-defined JSON interface for GHC diagnostic
emissions,
which will be available via a new -fdiagnostics-as-json
flag. The existing
under-specified -ddump-json
flag has been deprecated in favor of this new
interface. Additionally, Ben made valuable contributions to the effort of
converting GHC error messages to use the new structured representation.
Relevant code contributions
- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/11093
- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/10574
Project | Teaching Weeder About Type Classes |
Contributor | Vasily Sterekhov |
Mentor | Oliver Charles |
Vasily Sterekhov implemented support for detecting unused type class instances in Weeder, along with several other significant improvements. See the Weeder 2.7 release notes for details.
Relevant code contributions
- https://github.com/ocharles/weeder/pull/126
- https://github.com/ocharles/weeder/pull/133
- https://github.com/ocharles/weeder/pull/136
- https://github.com/ocharles/weeder/pull/132
- https://github.com/ocharles/weeder/pull/137
- https://github.com/ocharles/weeder/pull/134
- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/10701
Project | Structured Errors for cabal-install |
Contributor | Suganya Arun |
Mentor | Gershom Bazerman |
Suganya Arun implemented structured errors for Cabal, including the assignment of a unique code to each error which can be then be referenced on the Haskell Error Index. You can read more about the results and challenges of the project in this blog post.
Relevant code contributions
- https://github.com/haskell/cabal/pull/9018
- https://github.com/haskell/cabal/pull/9143
- https://github.com/haskell/cabal/pull/9162
- https://github.com/haskell/cabal/pull/9191
- https://github.com/haskell/cabal/pull/9219
- https://github.com/haskell/cabal/pull/9276
- https://github.com/haskell/cabal/pull/9324
Project | Maximally Decoupling Haddock and GHC |
Contributor | Gregory Baimetov |
Mentor | Laurent P. Rene de Cotret |
Gregory Baimetov contributed to the effort towards decoupling GHC and Haddocks. Although the original goal proved to be too ambitious, he has produced a prototype of a JSON serialization for the Haskell AST as well as a document explaining the difficulties encountered, which should be of value to future work on this issue.
Project | Representing Pattern |
Contributor | Saachi Kaup |
Mentor | Alex Mclean |
Saachi Kaup worked with various libraries to explore pattern visualization, drawing connections to the traditional mandalas common in Southeast Asian art. She put together a blog post on the Tidal website describing her process and showcasing some of the images that were produced. You can also view the code repository.
Older posts
- January 20, 2024 - Summer of Haskell 2023 Results
- May 14, 2023 - Summer of Haskell 2023 Project Selections
- February 1, 2022 - Google Summer of Code in 2022
- September 23, 2021 - Haskell.org GSoC results for 2021
- October 12, 2020 - Haskell.org GSoC results for 2020
- January 12, 2020 - Call for Ideas for 2020
- January 10, 2020 - Haskell.org GSoC results for 2019
- August 26, 2019 - Student Blog: Results for Bipartite Graphs Project
- July 26, 2019 - Student Blog: Testing Bipartiteness with Monad Transformers
- May 29, 2019 - Student Blog: Introducing Bipartite Graphs in Alga
- February 26, 2019 - Haskell.Org Participating in GSoC 2019
- December 28, 2018 - Call for Ideas for 2019
- September 1, 2018 - Haskell.org GSoC results for 2018
- April 23, 2018 - Accepted projects for 2018
- March 14, 2018 - Student Applications are now open
- December 25, 2017 - Call for Ideas for 2018
- September 15, 2017 - Final results for 2017
- August 4, 2017 - Midterm update for 2017
- May 24, 2017 - Accepted projects for 2017
- April 25, 2017 - Student Applications are now open
- April 5, 2017 - Getting ready for Summer of Haskell 2017
- February 28, 2017 - Summer of Haskell 2017 Announcement
- December 8, 2016 - Summer of Haskell 2016 Wrap-Up
An RSS feed is also available.