A hands-on introduction to working on GHC, colocated with Zurihac 2023
We are excited to announce the 2023 GHC Contributors’ Workshop, June 7-9 2023, organized by the GHC developers, the Haskell Foundation, and the OST Eastern Switzerland University of Applied Sciences! This is a workshop for those who want to get started working on GHC, those who want to understand GHC’s internals to better diagnose issues with their own code, and those who want to transfer lessons learned in GHC to other compilers. The primary aim of the workshop is to broaden the base of contributors to GHC.
In this three-day event, held on the lakeside campus of OST in lovely Rapperswil, Switzerland, you can learn what you need to know in order to get started working on GHC, right from the core team itself. Because the workshop is immediately prior to Zurihac 2023, there will be time to work on your project and ask questions.
At this workshop, you can learn the ins and outs of working on GHC, including practical techniques for minimizing rebuilds and diagnosing compiler bugs. The fundamental concepts and idioms of key compiler subsystems will be presented, along with tips and tricks for understanding how they are working in a running compiler. This is a practical workshop: any theory presented will be in service of building things, and we expect that you will arrive with a checkout and build of the source tree ready to go.
Additionally, the speakers will be available to answer questions and to provide mentorship during Zurihac itself, so this is a great opportunity to finish your first MR.
We expect that participants already know Haskell and have worked on some form of programming language implementation in the past, whether as students, at work, or just for fun. Concepts such as parsing, type checking, unification, and code generation should be familiar, but we don’t expect participants to already be experts.
The workshop will be instructed by seasoned contributors to GHC. So far, we have confirmed that the following GHC developers will present.l
Simon is an Engineering Fellow at Epic Games. Until 2022, he was a researcher at Microsoft Research in Cambridge, England, where he started in 1998. He’s also an Honorary Professor of the Computing Science Department at Glasgow University, where he was a professor during 1990-1998. Simon is interested in the design, implementation, and application of lazy functional languages. He was one of the original designers of Haskell, and much of his work is focused around the Glasgow Haskell Compiler and its ramifications. Simon’s earlier work was instrumental in discovering how to generate efficient code for lazy languages on stock hardware, but today, he focuses on the GHC type checker, constraint solver, and simplifier.
Ben has been contributing to GHC for over a decade and been working as a full-time compiler engineer at Well-Typed since 2015. In that time he has worked across the compiler, from parsing to code generation to release management and development infrastructure. His contributions include GHC’s non-moving concurrent garbage collector, GHC’s type-reflection implementation, and numerous improvements in profiling. He tends to find himself working near the back end of GHC’s compilation pipeline and runtime system.
Sylvain has a background in high-performance computing and has been contributing to GHC since 2015. He joined IOG in 2019 to work full-time on GHC. Since 2022, he has led a small team of engineers working on improving Haskell tooling. His contributions include
Cheng Shao is a full-time software engineer at Tweag, where he has been working since 2018. His main contribution to GHC is the WebAssembly backend, which grew out of his early research project, a Haskell-to-WebAssembly compiler codenamed Asterius. He focuses on maintaining the GHC WebAssembly backend, adding new functionality, as well as other GHC work that involves code generation and the runtime system.
Due to space constraints and to enable scholarships for student participants, there will be a fee for full on-site participation. Fees will be used to cover travel costs for presenters and students who don’t have other funding to attend. The fee depends on participant category:
Enrolled students ($40) are participants who are enrolled full-time at an educational institution.
Individual professionals ($400) are no longer students and are interested in working on GHC for their own purposes.
Corporate participants ($1200) are being paid by their employer to attend so that they can use the knowledge that they gain on the job. Corporate participants will have their company name on their name tag and their company will be listed on the event web page as a supporter of the event.
All fees are in US dollars. We want the event to be as accessible as possible, given our limitations, so if the fee is a barrier to attending, please contact David Thrane Christiansen at firstname.lastname@example.org to discuss a reduced or waived fee—this goes for all three categories of participant.
A certificate of completion will be available on advance request to students who attend the entire event.
Remote participation will make use of the Zurihac infrastructure. We will do our best to stream presentations and to post recordings as quickly as possible, and we will also have a chat system for remote participants.
If you or your company would like to sponsor the event, enabling more students to have financial support to attend, please contact David Thrane Christiansen at email@example.com.
Registration will open as soon as a few more speakers are confirmed. In the meantime, please register your interest by filling out this survey, where you can also sign up to be notified when registration opens. Due to the limited space available, participants will be chosen based on their background and interests.