Contributions to GHC 9.8
Tags: GHC, Haskell November 1, 2023

This is my GHC activities report for GHC 9.8

I’ve made roughly 62 commits for the GHC 9.8 series at the time of writing (it’s difficult to know for sure because of the backports).

This blog post only lists my personal contributions and thoughts and doesn’t engage my team nor IOG.

JavaScript backend

This time the focus of my team was to make the JavaScript backend more usable. We’ve fixed a lot of issues. I’ve implemented Template-Haskell support by reusing some of the external interpreter code.

Appendix: commit list

# JavaScript backend

a3623053daa JS: implement openat(AT_FDCWD...) (#23697)
bdf2adf7133 JS: implement getMonotonicTime (fix #23687)
b0b88c240d9 JS: support levity-polymorphic datatypes (#22360,#22291)
27df38c2503 JS: better implementation for plusWord64 (#23597)
90846d43179 JS: support -this-unit-id for programs in the linker (#23613)
fb4ecd83171 JS: fix JS stack printing (#23565)
dbb4ad519c3 JS: always recompile when TH is enabled (cf #23013)
a897dc13d2f TH_import_loop is now broken as expected
fab2ad23c9c Fix some recompilation avoidance tests
f84ff161395 Stg: return imported FVs
3249cf1216f Don't use getKey
4d356ea3049 JS: implement TH support
c3a1274c451 JS: don't dump eventlog to stderr by default
9132d529ad2 JS: testsuite: use correct ticket numbers
a5f0c00ee19 JS: factorize SaneDouble into its own module
08d8e9efa24 JS: more triage
15f150c8fcb JS: testsuite: update ticket numbers
4a41ba752fd JS: testsuite: use correct ticket number
f53ac0ae30a JS: fix and enhance non-minimized code generation (#22455)
2972fd66f91 JS: fix getpid (fix #23399)
2f571afe1c2 Fix GHCJS OS platform (fix #23346)
2d5c1ddecf1 Fix remaining issues with bound checking (#23123)
1e9caa1a54e Bump Cabal submodule (#22356)
113e21d7636 Testsuite: replace some js_broken/js_skip predicates with req_c
ab6c1d295cd Testsuite: don't use obsolescent egrep (#22351)
d442ac053f9 JS: fix thread-related primops
eed0d9307b3 GHCi.RemoteTypes: fix doc and avoid unsafeCoerce (#23201)
a8e36892689 JS: fix issues with FD api support
ab9cd52d4fa ghc-heap: remove wrong Addr# coercion (#23181)
f4f1f14f800 ghc-heap: remove wrong Addr# coercion (#23181)
30d45e971d9 Testsuite: use js_skip for T2615 (#22374)
ad765b6f0bb Testsuite: use req_interp predicate for T20214
a1528b68318 Testsuite: use req_interp predicate for T16318 (#22370)
0ab0cc119c6 Testsuite: use appropriate predicate for ManyUbxSums test (#22576)
5b4628aeeca JS: remove dead code for old integer-gmp
239202a2b14 Testsuite: replace some js_skip with req_cmm
8b77f9bfceb JS: fix for overlap with copyMutableByteArray# (#23033)
7825fef9f20 JS: Store CI perf results (fix #22923)
4eb9c234886 JS: make some arithmetic primops faster (#22835)
a203ad854ff Merge libiserv with ghci
324e925be84 JS: disable debugging info for heap objects
df3d94bd295 Testsuite: mark T13167 as fragile for JS (#22921)
c44e5f30cac Testsuite: decrease length001 timeout for JS (#22921)
c1670c6bb0b JS: avoid head/tail and unpackFS
6636b670233 JS: replace "js" architecture with "javascript"
6932cfc798e Fix spurious change from !9568
5640cb1d84d Hadrian: fix doc generation
2fdf22aebda configure: support "windows" as an OS
288fa0179a2 Fix RTS build on Windows
48131ee2d8b Hadrian: fix Windows cross-compilation
e987e345c80 Hadrian: correctly detect AR at-file support
06036d931f5 testsuite: req_smp --> req_target_smp, req_ghc_smp
99757ce8e32 JS: fix support for -outputdir (#22641)

# Misc

db31f25c5ea Add missing int64/word64-to-double/float rules (#23907)
07f858eb1ff Factorize getLinkDeps
b56d737974f NCG: remove useless .align directive (#20758)
1bd32a355bd Factorize hptModulesBelow
4158722a6cf linker: fix linking with aligned sections (#23066)
8af401ccfbe Make WordQuotRem2Op ok-for-speculation too
1148ac723d6 Make Int64/Word64 division ok for speculation too.
4dd02122755 Add quot folding rule (#22152)
59321879419 Add quotRem rules (#22152)