Biweekly update from the GHC DevX team at IOG.
Previous updates can be found here.
JavaScript backend​
Josh: Merged a port of
clock_gettime
from GHCJS into the JavaScript backend. This function is required by some CabalSetup.hs
programs, so this brings us closer to full Cabal functionality, as well as Unix parity. See GHC!10396Luite: Ported the patch to support the
process
package in the GHC JavaScript backend from GHCJS. The old code was never fully tested and only intended to support Cabal, so there is missing functionality and error reporting is lacking. Work is now on the way to bring it up to level where it can be merged in theprocess
package.Luite: Looked into the test failures for the JavaScript specific weak references. It turned out to be caused by messing deadlock detection. Experimented with making the JavaScript storage manager (
FinalizationRegistry
) work for deadlock detection,add but it requires signifcant changes to the representation ofThreadId#
in the Haskell code. For GHC 9.8 we will most likely document that deadlocks are not guaranteed to be detected with the JavaScript backend, and give the user the option to manually run full deadlock detection (heap scan) if desired.Sylvain: fixed support for the
ghcjs_HOST_OS
CPP conditional. See GHC#22346 and GHC!10430.
Deprecation warnings​
Bartek: changed the way warning reporting from addUsedGRE was done from artificially removing all warning categories from dynflags to an explicit argument See GHC!10414
Bartek: almost finished the deprecated exports proposal, a bug left to fix in backpack See GHC!10283
Performance​
- Josh: Merged improvements to the implementation of handle encoders after approval of
the CLC. By manually unboxing functions stored in the
CodeBuffer
record, the allocations caused by allocations are reduced by ~20%, and general GHC usage is also slightly improved. See GHC!9948 and CI Performance Tests
Linker​
- Sylvain: backported fix for GHC#19421 (
internal error: m32_allocator_init: Failed to map
) to 9.2. See GHC!10453
Misc.​
- Jeff: First draft of the GHC Modularity FUNARCH paper is complete.