Skip to content

Commit e91b66d

Browse files
Merge branch 'hakyll' into html-refactor
2 parents a2d954e + 2e2ab31 commit e91b66d

File tree

10 files changed

+76
-30
lines changed

10 files changed

+76
-30
lines changed

.github/workflows/main.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,17 @@ jobs:
2828
# Steps represent a sequence of tasks that will be executed as part of the job
2929
steps:
3030
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
31-
- uses: actions/checkout@v2
31+
- uses: actions/checkout@v3
3232
with:
3333
fetch-depth: 0
3434

35-
- uses: haskell/actions/setup@v1
35+
- uses: haskell/actions/setup@v2
3636
name: Setup Haskell Stack
3737
with:
3838
ghc-version: ${{ matrix.ghc }}
3939
stack-version: ${{ matrix.stack }}
4040

41-
- uses: actions/cache@v1
41+
- uses: actions/cache@v3
4242
name: Cache ~/.stack
4343
with:
4444
path: ~/.stack

assets/css/main.css

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

events/2023-ghc-development-workshop.markdown

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,40 @@ We are excited to announce the **2023 GHC Contributors' Workshop, June 7-9 2023*
1212

1313
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](https://zfoh.ch/zurihac2023/), there will be time to work on your project and ask questions.
1414

15+
## The Workshop
16+
1517
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.
1618

1719
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.
1820

1921
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.
2022

21-
So far, Simon Peyton Jones has confirmed that he will present at the workshop. Watch this space for more presenters as we confirm them!
23+
## Presenters
24+
25+
The workshop will be instructed by seasoned contributors to GHC. So far, we have confirmed that the following GHC developers will present.l
26+
27+
### Simon Peyton Jones
28+
29+
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.
30+
31+
### Ben Gamari
32+
33+
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.
34+
35+
### Sylvain Henry
36+
37+
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 `ghc-bignum` (an improved implementation of GHC's support for big numbers), improvements to GHC's constant-folding capabilities, various fixes to the RTS, and a lot of refactoring to make GHC's code more modular and to make GHC a better cross-compiler. In 2022, his team added a new JavaScript backend to GHC, adapted from GHCJS.
38+
39+
### Cheng Shao
40+
41+
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.
42+
43+
### Ryan Scott
44+
45+
Ryan has contributed to GHC since 2015, and has worked on type class deriving, Template Haskell, pattern-match coverage checking, and various odds and ends in the type checker. He has worked as a research engineer at [Galois, Inc.](https://galois.com/) since 2020, where he works on a variety of program analysis tools such as [Cryptol](https://cryptol.net/), [Crux](https://crux.galois.com/), and [SAW](https://saw.galois.com/). In addition, Ryan maintains a large number of libraries on Hackage, and as a result, he contributes to the maintenance of [head.hackage](https://gitlab.haskell.org/ghc/head.hackage), which makes it possible to check if upcoming changes to GHC will affect the code that he maintains.
46+
47+
48+
## Participation
2249

2350
Due to space constraints and to enable scholarships for student participants, there will be a fee for full on-site participation.
2451
Fees will be used to cover travel costs for presenters and students who don't have other funding to attend.

podcast/23/index.markdown

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
title: Ben Gamari
3+
episode: 23
4+
buzzsproutId: 12492098
5+
recorded: 2023-01-30
6+
published: 2023-03-22
7+
---
8+
In this episode Wouter Swierstra and Joachim Breitner chat with Ben Gamari. Ben is a consultant at Well-Typed known for his work at GHC. Ben tells us a little bit about his switch from Python to Haskell but not because he was missing the static typing, how programming his thermostat lead him to a career in the compiler development, and what it's like to be a GHC force multiplier.

podcast/23/links.markdown

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
* [Ben's website](http://smart-cactus.org/~ben/)
2+
* [Ben's Twitter](https://twitter.com/bgamari)
3+
* [Ben's GitHub](https://github.com/bgamari)
4+
* [Ben at Well-Typed](https://well-typed.com/people/ben/)
5+
* [GHC's Garbage Collector](http://www.smart-cactus.org/~ben/posts/2018-11-18-nonmoving-gc-for-ghc.html)
6+
* [Mark and Sweep Collectors](https://www.geeksforgeeks.org/mark-and-sweep-garbage-collection-algorithm/)
7+
* [GHC proposals](https://github.com/ghc-proposals/ghc-proposals)
8+
* [Stack Traces in Haskell](https://www.arashrouhani.com/papers/master-thesis.pdf)
9+
* [GHC Profilers](https://www.youtube.com/watch?v=vCv1vnY87NI&ab_channel=TNGTechnologyConsultingGmbH)

site.hs

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ main = hakyll $ do
4141
route idRoute
4242
compile $ do
4343
sponsors <- buildBoilerplateCtx (Just "Sponsorship")
44-
iks <- loadAll "donations/inkind/*.markdown"
44+
iks <- loadAll ("donations/inkind/*.markdown" .&&. hasNoVersion)
4545

4646
let ctx =
4747
listField "inkinds" defaultContext (return iks) <>
@@ -69,7 +69,7 @@ main = hakyll $ do
6969
route idRoute
7070
compile $ do
7171
sponsors <- buildBoilerplateCtx (Just "Affiliates")
72-
ctx <- affiliatesCtx . sortOn itemIdentifier <$> loadAll "affiliates/*.markdown"
72+
ctx <- affiliatesCtx . sortOn itemIdentifier <$> loadAll ("affiliates/*.markdown" .&&. hasNoVersion)
7373

7474
makeItem ""
7575
>>= loadAndApplyTemplate "templates/affiliates/list.html" ctx
@@ -125,7 +125,7 @@ main = hakyll $ do
125125
route idRoute
126126
compile $ do
127127
sponsors <- buildBoilerplateCtx (Just "Press")
128-
press <- recentFirst =<< loadAll "press/*.markdown"
128+
press <- recentFirst =<< loadAll ("press/*.markdown" .&&. hasNoVersion)
129129

130130
let ctx =
131131
listField "press_articles" defaultContext (return press) <>
@@ -142,7 +142,7 @@ main = hakyll $ do
142142
route idRoute
143143
compile $ do
144144
sponsors <- buildBoilerplateCtx (Just "FAQ")
145-
ctx <- faqCtx <$> loadAll "faq/*.markdown"
145+
ctx <- faqCtx <$> loadAll ("faq/*.markdown" .&&. hasNoVersion)
146146

147147
makeItem ""
148148
>>= loadAndApplyTemplate "templates/faq/list.html" ctx
@@ -155,7 +155,7 @@ main = hakyll $ do
155155
route idRoute
156156
compile $ do
157157
sponsors <- buildBoilerplateCtx (Just "Who We Are")
158-
ctx <- whoWeAreCtx <$> loadAll "who-we-are/people/*.markdown"
158+
ctx <- whoWeAreCtx <$> loadAll ("who-we-are/people/*.markdown" .&&. hasNoVersion)
159159

160160
makeItem ""
161161
>>= loadAndApplyTemplate "templates/who-we-are/exec-and-board.html" ctx
@@ -166,7 +166,7 @@ main = hakyll $ do
166166
route idRoute
167167
compile $ do
168168
sponsors <- buildBoilerplateCtx (Just "Past Boards")
169-
ctx <- whoWeAreCtx <$> loadAll "who-we-are/people/*.markdown"
169+
ctx <- whoWeAreCtx <$> loadAll ("who-we-are/people/*.markdown" .&&. hasNoVersion)
170170

171171
makeItem ""
172172
>>= loadAndApplyTemplate "templates/who-we-are/past-board.html" ctx
@@ -247,7 +247,7 @@ main = hakyll $ do
247247
compile $ do
248248
sponsors <- buildBoilerplateCtx (Just "Haskell Foundation")
249249
podcastsCtx <- podcastListCtx . take 1 . reverse . sortOn podcastOrd <$> loadAll ("podcast/*/index.markdown" .&&. hasVersion "raw")
250-
careers <- loadAll @String "careers/*.markdown"
250+
careers <- loadAll @String ("careers/*.markdown" .&&. hasNoVersion)
251251
careersCtx <- careersCtx . reverse <$> loadAll "careers/*.markdown"
252252
announces <- take 1 <$> (recentFirst =<< loadAll @String ("news/*/**.markdown" .&&. hasNoVersion))
253253
let announceCtx = announcementsCtx announces
@@ -274,7 +274,7 @@ main = hakyll $ do
274274
route idRoute
275275
compile $ do
276276
sponsors <- buildBoilerplateCtx (Just "Resources")
277-
resources <- loadAll "resources/*.markdown"
277+
resources <- loadAll ("resources/*.markdown" .&&. hasNoVersion)
278278

279279
let ctx =
280280
listField "resources" defaultContext (return resources) <>
@@ -300,8 +300,8 @@ main = hakyll $ do
300300
route idRoute
301301
compile $ do
302302
sponsors <- buildBoilerplateCtx (Just "Careers")
303-
ctx <- careersCtx <$> loadAll "careers/*.markdown"
304-
hiringSponsors <- hiringSponsorsCtx <$> loadAll "donations/sponsors/*.markdown"
303+
ctx <- careersCtx <$> loadAll ("careers/*.markdown" .&&. hasNoVersion)
304+
hiringSponsors <- hiringSponsorsCtx <$> loadAll ("donations/sponsors/*.markdown" .&&. hasNoVersion)
305305

306306
makeItem ""
307307
>>= loadAndApplyTemplate "templates/careers/list.html" (ctx <> hiringSponsors)
@@ -329,7 +329,8 @@ main = hakyll $ do
329329
-- sponsors --------------------------------------------------------------------------------------------
330330

331331
buildBoilerplateCtx :: Maybe String -> Compiler (Context String)
332-
buildBoilerplateCtx mtitle = boilerPlateCtx mtitle . sortOn itemIdentifier <$> loadAll "donations/sponsors/*.markdown"
332+
buildBoilerplateCtx mtitle =
333+
boilerPlateCtx mtitle . sortOn itemIdentifier <$> loadAll ("donations/sponsors/*.markdown" .&&. hasNoVersion)
333334

334335
-- | Partition sponsors into by level: monad, applicative, and functor
335336
-- Sponsors are listed in the footer template, which means we need this

templates/careers/tile.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<div class="bg-white border border-gray-300 rounded py-8 px-6 sm:px-12 text-center">
2-
<div class="bg-gray-100 px-6 sm:px-12 lg:px-16 py-6 lg:py-24">
2+
<div class="bg-gray-100 px-6 sm:px-12 lg:px-16 py-6 lg:py-24 h-full">
33
<div class="space-y-4">
44
<h2 class="font-normal text-xl"><a class="arrow-link" href="$url$">$title$</a></h2>
55
<p>$summary$</p>

templates/events/tile.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<div class="bg-white border border-gray-300 rounded py-8 px-6 sm:px-12 text-center">
2-
<div class="bg-gray-100 px-6 sm:px-12 lg:px-16 py-6 lg:py-24">
2+
<div class="bg-gray-100 px-6 sm:px-12 lg:px-16 py-6 lg:py-24 h-full">
33
<div class="space-y-4">
44
<h2 class="text-center text-2xl-4xl font-normal">$title$</h2>
55
<p>$summary$</p>

templates/homepage.html

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,21 +28,20 @@ <h3 class="mb-4 text-xl text-gray-500">Amplify Haskell’s impact on humanity.</
2828
$partial("templates/news/frontpage.html")$
2929
$endfor$
3030
$endif$
31-
3231
$for(episodes)$
33-
<div class="bg-white border border-gray-300 rounded py-8 px-6 sm:px-12 text-center">
34-
<div class="bg-gray-100 px-6 sm:px-12 lg:px-16 py-6 lg:py-24">
35-
<h2 class="text-center text-2xl-4xl font-normal">
36-
<b>$episode$</b> – $title$
37-
</h2>
38-
<div class="mt-8 space-y-8 max-w-2xl mx-auto">
39-
$body$
40-
<div class="mt-4">
41-
<a class="arrow-link" href="/podcast/$episode$">&gt;&gt; Listen to $title$</a>
32+
<div class="bg-white border border-gray-300 rounded py-8 px-6 sm:px-12 text-center">
33+
<div class="bg-gray-100 px-6 sm:px-12 lg:px-16 py-6 lg:py-24 h-full">
34+
<h2 class="text-center text-2xl-4xl font-normal">
35+
<b>$episode$</b> – $title$
36+
</h2>
37+
<div class="mt-8 space-y-8 max-w-2xl mx-auto">
38+
$body$
39+
<div class="mt-4">
40+
<a class="arrow-link" href="/podcast/$episode$">&gt;&gt; Listen to $title$</a>
41+
</div>
4242
</div>
4343
</div>
4444
</div>
45-
</div>
4645
$endfor$
4746

4847
$if(events)$

templates/news/frontpage.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<div class="bg-white border border-gray-300 rounded py-8 px-6 sm:px-12 text-center">
2-
<div class="bg-gray-100 px-6 sm:px-12 lg:px-16 py-6 lg:py-24">
2+
<div class="bg-gray-100 px-6 sm:px-12 lg:px-16 py-6 lg:py-24 h-full">
33
<div class="space-y-4">
44
<h2 class="text-center text-2xl-4xl font-normal">$title$</h2>
55
<p>$body$</p>

0 commit comments

Comments
 (0)