Triweekly update from the GHC DevX team at IOG.
Previous updates can be found here.
High level summaryโ
We continued with the cardano-node
performance regression investigation and ran
more benchmarks and comparisons. We confirmed that the Crypto
typeclass
parameterization is causing a significant performance overhead and that specializing
to StandardCrypto
in a few places reduces allocations by 50% on GHC 9.6. The
performance gap between GHC 8.10 and GHC 9.6 is completely closed by doing this
optimization. Because of this result, the cardano-ledger
team is now considering
removing the Crypto
typeclass in a future release.
Detailsโ
Hamish: released new versions of ghcjs-base, ghcjs-dom-javascript, ghcjs-dom, jsaddle, jsaddle-dom... that are compatible with GHC's JavaScript backend.
Jeff: assisted a GHC contributor into adding support Google Closure Compiler in GHC's CI. !12330
Jeff: Made more efforts to align the ghc.nix developer environment with the dependency versions that GHC runs on CI. #190
Sylvain/Luite: fixed tricky bug in the JS codegen and reenabled the relevant optimization with was independently disabled in 9.10 #24495 !12308
Luite: Implemented functionality to request ticky counters to be written at specific times to the GHC eventlog. An earlier version of this was used for
cardano-node
performance investigation. #24645 !12399Luite: Working on fixes for ticky counters in
ghc-events
. ghc-events/tree/fix-tickyLuite: Made a utilities package to quickly test and compare optimizations in
cardano-node
and its dependencies using various profiling techniques. cardano-bench-utilsLuite: Fixed ticky allocation counting. GHC was bumping the wrong counter. #24587 !12177