Biweekly update from the GHC DevX team at IOG.
Previous updates can be found here.
Luite: has published a blog post about how Stacks work in the JS backend: https://engineering.iog.io/2023-04-21-stacks-in-the-js-backend
Jeff: GHC!10260, which adds a small optimizer to the JS backend, has landed in master.
Luite: improved gc pause times for the JS backend for programs that do not use weak references, by omitting heap scans if there are no pending finalizers. See GHC!10379
Josh: refactored some code related to saturated/unsaturated ASTs:
- First, the
identsVfunctions were changed to take a
Sat.JStatinstead of an
Unsat.JStatas an argument, since they previously would raise an error when encountering an unsaturated constructor (
Unsat.JStatare identical other than this constructor) GHC#23304GHC!10348
satJStatwere combined into one function. Previously,
jsSaturatewould instantiate unsaturated constructors in a
JStatAST, but retain the
satJStatwould separately traverse the AST to make the simple type conversion. Since
jsSaturatewas never used without calling
satJStatdirectly after, these can be combined to traverse the AST and instantiate unsaturated constructors in one pass. GHC#23328GHC!10369
- First, the
Josh: Added the type of an STG closure to various STG data types so that it's passed through
GHC Proposal #0134 (Deprecated Exports)
Bartek: found a bug in warnings about duplicate exports when exporting T(..). See GHC#23318
Bartek: Finished exporting part of the renamer for the Deprecating Exports proposal. See GHC!10283
Jeff: First case study on performance engineering for the Haskell Optimization Handbook is done and has been published.
Josh: Added a GHC testsuite performance test for measuring memory allocations of encoding. GHC!10347