-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* GHC update 28 * Update 2024-05-02-ghc-update-28.md * jeff: add perf chapter link * Update 2024-05-02-ghc-update-28.md * Update 2024-05-02-ghc-update-28.md add profiling functionality work * Update 2024-05-02-ghc-update-28.md --------- Co-authored-by: Jeffrey Young <jeffrey.young@iohk.io> Co-authored-by: Luite Stegeman <stegeman@gmail.com>
- Loading branch information
1 parent
1d1e8b9
commit 419c957
Showing
1 changed file
with
52 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
--- | ||
slug: 2024-05-02-ghc-update | ||
title: "IOG GHC Update #28" | ||
authors: [sylvain,doyougnu,luite] | ||
tags: [ghc,ghc-update] | ||
--- | ||
|
||
Triweekly update from the GHC DevX team at IOG. | ||
|
||
<!-- truncate --> | ||
|
||
Previous updates can be found [here](https://engineering.iog.io/tags/ghc-update). | ||
|
||
- Sylvain: completed and merged someone's patch opened for 4 years to make GHC | ||
generate better LLVM IR for complete switches. | ||
[GHC#24717](https://gitlab.haskell.org/ghc/ghc/-/issues/24717), | ||
[GHC!12491](https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12491). | ||
|
||
- Sylvain: fixed issue with code using DeriveLift and when building | ||
template-haskell. | ||
[GHC#22229](https://gitlab.haskell.org/ghc/ghc/-/issues/22229), | ||
[GHC!12456](https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12456). | ||
|
||
- Sylvain: fixed a segfault in GHCi when using breakpoints. | ||
[GHC#24712](https://gitlab.haskell.org/ghc/ghc/-/issues/24712), | ||
[GHC!12500](https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12500) | ||
|
||
- Sylvain: fixed a JS codegen issue because GHC generates code that computes | ||
with RUBBISH literals. There may be more to it as it's not really supposed to | ||
happen, but at least the generated JS code is valid code now . | ||
[GHC#24664](https://gitlab.haskell.org/ghc/ghc/-/issues/24664), | ||
[GHC!12463](https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12463). | ||
|
||
- Jeff: After a long exhausting battle with the GHC testsuite, jeff expanded the testsuite capabilites to track binary sizes for each backend in GHC's CI and their dependencies. [MR](https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12372#c591f85f122007bac88228c5ff6fd76b40e6a811) is merging now. | ||
|
||
- Jeff: Published the [perf](https://haskell.foundation/hs-opt-handbook.github.io/src/Measurement_Observation/Binary_Profiling/linux_perf.html#perf-chapter) chapter for the [Haskell Optimization Handbook](https://github.com/haskellfoundation/hs-opt-handbook.github.io). | ||
|
||
- Hamish: added support for the JS backend in Miso | ||
[Miso#738](https://github.com/dmjio/miso/pull/738). This led to a discussion | ||
about generated code size. Sylvain opened two issues about ideas to reduce | ||
code size ([GHC#24743](https://gitlab.haskell.org/ghc/ghc/-/issues/24743) and | ||
[GHC#24744](https://gitlab.haskell.org/ghc/ghc/-/issues/24744)) and one MR to | ||
prepare for #24743 | ||
[GHC!12538](https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12538). | ||
|
||
- Luite: Made a new implementation of the functionality of starting/stopping | ||
profiling counters for cost centre profiling [GHC!12478](https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12478). | ||
This implementation is simpler than the previous one [GHC!12440](https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12440), | ||
but requires reading a global variable for each counter increment. Initial performance | ||
measurements have shown that the cost is minor. We haven't merged this yet because of ongoing | ||
work on even finer control of cost centre counters (multiple counters per cost centre stack and per-thread | ||
settings), which might supersede this patch. |