Skip to content

Commit 87e28a8

Browse files
Merge branch 'soh-2023-results'
2 parents e91f252 + dff12f5 commit 87e28a8

File tree

1 file changed

+204
-0
lines changed

1 file changed

+204
-0
lines changed
Lines changed: 204 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,204 @@
1+
---
2+
title: 'Summer of Haskell 2023 Results'
3+
author: 'Aaron Allen'
4+
---
5+
6+
On behalf of the Haskell.org committee, I'm pleased to announce the results of
7+
the Summer of Haskell 2023. Many impressive and valuable contributions were
8+
made to the Haskell ecosystem which I'm excited to share with you in this post.
9+
I'd like to extend a big thank you to the sponsors that made this program
10+
possible: [The Haskell Foundation](https://haskell.foundation/),
11+
[Kadena](https://www.kadena.io/), [Jane Street](https://www.janestreet.com/),
12+
[Holmusk](https://www.holmusk.com/), [MLabs](https://mlabs.city/),
13+
[Flipstone](https://flipstone.com/), Gershom Bazerman, and Edward Kmett.
14+
Gratitude is also due to the wonderful mentors who kindly donated their time to
15+
helping bring these projects to fruition and fostering the next generation of
16+
Haskellers.
17+
18+
I also want to mention that [we are currently in need of idea
19+
submissions](https://summer.haskell.org/ideas.html) for the upcoming Google
20+
Summer of Code 2024! This program depends on having a quality list of ideas, so
21+
please consider submitting any you might have (ideally before Feb. 4th).
22+
23+
Without further ado, what follows is a summary of the work that was completed
24+
under the Summer of Haskell 2023.
25+
26+
---
27+
28+
<table>
29+
<tr><td><b>Project</b></td><td>Support for Resolve Functionality in HLS</td></tr>
30+
<tr><td><b>Contributor&nbsp;</b></td><td>Nathan Maxson</td></tr>
31+
<tr><td><b>Mentor</b></td><td>Michael Peyton Jones</td></tr>
32+
</table>
33+
34+
Nathan Maxson contributed support for [resolve
35+
functionality](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#codeAction_resolve)
36+
to [HLS](https://haskell-language-server.readthedocs.io/en/latest/#). He has
37+
also updated a number of HLS plugins to utilize this functionality, thus
38+
reducing CPU and memory usage and improving speed. The plugins that have been
39+
updated in this way are `overloaded-record-dot`, `hlint-plugin`,
40+
`explicit-imports`, `refine-imports`, `type-lenses`, `explicit-records`, and
41+
`class-plugin`.
42+
43+
<b>Relevant code contributions</b>
44+
45+
* <https://github.com/haskell/haskell-language-server/pull/3621>
46+
* <https://github.com/haskell/haskell-language-server/pull/3678>
47+
* <https://github.com/haskell/haskell-language-server/pull/3688>
48+
* <https://github.com/haskell/haskell-language-server/pull/3658>
49+
* <https://github.com/haskell/haskell-language-server/pull/3679>
50+
* <https://github.com/haskell/haskell-language-server/pull/3682>
51+
* <https://github.com/haskell/haskell-language-server/pull/3729>
52+
* <https://github.com/haskell/haskell-language-server/pull/3743>
53+
* <https://github.com/haskell/haskell-language-server/pull/3750>
54+
* <https://github.com/haskell/haskell-language-server/pull/3769>
55+
56+
---
57+
58+
<table>
59+
<tr><td><b>Project</b></td><td>Cabal File Support for HLS</td></tr>
60+
<tr><td><b>Contributor&nbsp;</b></td><td>Jana Chadt</td></tr>
61+
<tr><td><b>Mentor</b></td><td>Fendor</td></tr>
62+
</table>
63+
64+
Jana Chadt worked on improving support for Cabal files in HLS. The work has
65+
been summarized in [this
66+
gist](https://gist.github.com/VeryMilkyJoe/268448ff8daea9f467930c771e60b9c8),
67+
which includes links to relevant PRs and issues. There is also [a blog
68+
post](https://discourse.haskell.org/t/hsoc-hls-cabal-file-support/7331)
69+
detailing the new HLS functionality.
70+
71+
<b>Relevant code contributions</b>
72+
73+
* <https://github.com/haskell/vscode-haskell/pull/618>
74+
* <https://github.com/haskell/haskell-language-server/pull/3268>
75+
* <https://github.com/haskell/haskell-language-server/pull/3766>
76+
* <https://github.com/haskell/haskell-language-server/pull/3761>
77+
* <https://github.com/haskell/haskell-language-server/pull/3778>
78+
79+
---
80+
81+
<table>
82+
<tr><td><b>Project</b></td><td>HLS: Goto 3rd Party Definition</td></tr>
83+
<tr><td><b>Contributor&nbsp;</b></td><td>Elodie Lander</td></tr>
84+
<tr><td><b>Mentor</b></td><td>Zubin Duggal</td></tr>
85+
</table>
86+
87+
Elodie Lander worked on allowing the HLS goto definition functionality to work
88+
with definitions from outside of the current project. Although primarily
89+
focused on HLS, this work involves contributions to other key Haskell
90+
infrastructure: GHC, Cabal, HieDb, and haskell/actions.
91+
92+
<b>Relevant code contributions</b>
93+
94+
* <https://github.com/haskell/haskell-language-server/pull/3676>
95+
* <https://github.com/haskell/haskell-language-server/pull/3725>
96+
* <https://github.com/haskell/haskell-language-server/pull/3749>
97+
* <https://github.com/wz1000/HieDb/pull/57>
98+
* <https://github.com/wz1000/HieDb/pull/56>
99+
* <https://github.com/wz1000/HieDb/pull/55>
100+
* <https://github.com/wz1000/HieDb/pull/60>
101+
* <https://github.com/haskell/cabal/pull/9019>
102+
* <https://github.com/haskell/cabal/pull/9244>
103+
* <https://gitlab.haskell.org/ghc/ghc/-/merge_requests/11083>
104+
* <https://github.com/haskell/actions/pull/290>
105+
106+
---
107+
108+
<table>
109+
<tr><td><b>Project</b></td><td>Standardize GHC's Error Dump in JSON Format</td></tr>
110+
<tr><td><b>Contributor&nbsp;</b></td><td>Ben Bellick</td></tr>
111+
<tr><td><b>Mentor</b></td><td>Aaron Allen</td></tr>
112+
</table>
113+
114+
Ben Bellick contributed a new [well-defined JSON interface for GHC diagnostic
115+
emissions](https://github.com/benbellick/tech-proposals/blob/specify-json-dump/proposals/0000-specify-dump-json.md),
116+
which will be available via a new `-fdiagnostics-as-json` flag. The existing
117+
under-specified `-ddump-json` flag has been deprecated in favor of this new
118+
interface. Additionally, Ben made valuable contributions to the effort of
119+
converting GHC error messages to use the new structured representation.
120+
121+
<b>Relevant code contributions</b>
122+
123+
* <https://gitlab.haskell.org/ghc/ghc/-/merge_requests/11093>
124+
* <https://gitlab.haskell.org/ghc/ghc/-/merge_requests/10574>
125+
126+
---
127+
128+
<table>
129+
<tr><td><b>Project</b></td><td>Teaching Weeder About Type Classes</td></tr>
130+
<tr><td><b>Contributor&nbsp;</b></td><td>Vasily Sterekhov</td></tr>
131+
<tr><td><b>Mentor</b></td><td>Oliver Charles</td></tr>
132+
</table>
133+
134+
Vasily Sterekhov implemented support for detecting unused type class instances
135+
in [Weeder](https://github.com/ocharles/weeder?tab=readme-ov-file#weeder),
136+
along with several other significant improvements. See the [Weeder 2.7 release
137+
notes](https://discourse.haskell.org/t/weeder-2-7-released-with-type-class-instances-and-more/7356)
138+
for details.
139+
140+
<b>Relevant code contributions</b>
141+
142+
* <https://github.com/ocharles/weeder/pull/126>
143+
* <https://github.com/ocharles/weeder/pull/133>
144+
* <https://github.com/ocharles/weeder/pull/136>
145+
* <https://github.com/ocharles/weeder/pull/132>
146+
* <https://github.com/ocharles/weeder/pull/137>
147+
* <https://github.com/ocharles/weeder/pull/134>
148+
* <https://gitlab.haskell.org/ghc/ghc/-/merge_requests/10701>
149+
150+
---
151+
152+
<table>
153+
<tr><td><b>Project</b></td><td>Structured Errors for cabal-install</td></tr>
154+
<tr><td><b>Contributor&nbsp;</b></td><td>Suganya Arun</td></tr>
155+
<tr><td><b>Mentor</b></td><td>Gershom Bazerman</td></tr>
156+
</table>
157+
158+
Suganya Arun implemented structured errors for Cabal, including the assignment
159+
of a unique code to each error which can be then be referenced on the [Haskell
160+
Error Index](https://errors.haskell.org/). You can read more about the results
161+
and challenges of the project in [this blog
162+
post](https://summerofhaskellstructerrors.blogspot.com/2023/10/soh2023-structured-errors-and-error.html).
163+
164+
<b>Relevant code contributions</b>
165+
166+
* <https://github.com/haskell/cabal/pull/9018>
167+
* <https://github.com/haskell/cabal/pull/9143>
168+
* <https://github.com/haskell/cabal/pull/9162>
169+
* <https://github.com/haskell/cabal/pull/9191>
170+
* <https://github.com/haskell/cabal/pull/9219>
171+
* <https://github.com/haskell/cabal/pull/9276>
172+
* <https://github.com/haskell/cabal/pull/9324>
173+
174+
---
175+
176+
<table>
177+
<tr><td><b>Project</b></td><td>Maximally Decoupling Haddock and GHC</td></tr>
178+
<tr><td><b>Contributor&nbsp;</b></td><td>Gregory Baimetov</td></tr>
179+
<tr><td><b>Mentor</b></td><td>Laurent P. Rene de Cotret</td></tr>
180+
</table>
181+
182+
Gregory Baimetov contributed to the effort towards [decoupling GHC and
183+
Haddocks](https://github.com/haskellfoundation/tech-proposals/pull/44).
184+
Although the original goal proved to be too ambitious, he has produced a
185+
[prototype of a JSON serialization for the Haskell
186+
AST](https://github.com/Greg8128/proto-docser-hs) as well as a [document
187+
explaining the difficulties
188+
encountered](https://docs.google.com/document/d/1nykZgSi9k_jP1N4ZVZhSdce2jFpRdwNNT3X2YQLF9vo),
189+
which should be of value to future work on this issue.
190+
191+
---
192+
193+
<table>
194+
<tr><td><b>Project</b></td><td>Representing Pattern</td></tr>
195+
<tr><td><b>Contributor&nbsp;</b></td><td>Saachi Kaup</td></tr>
196+
<tr><td><b>Mentor</b></td><td>Alex Mclean</td></tr>
197+
</table>
198+
199+
Saachi Kaup worked with various libraries to explore pattern visualization,
200+
drawing connections to the traditional mandalas common in Southeast Asian art.
201+
She put together [a blog post on the Tidal
202+
website](https://tidalcycles.org/blog/blog_topic_mandalas) describing her
203+
process and showcasing some of the images that were produced. You can also view
204+
the [code repository](https://gitlab.com/Saachi_Kaup/TurtlePatterns).

0 commit comments

Comments
 (0)