Skip to content

Commit

Permalink
GHC update 28 (#84)
Browse files Browse the repository at this point in the history
* 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
3 people committed May 6, 2024
1 parent 1d1e8b9 commit 419c957
Showing 1 changed file with 52 additions and 0 deletions.
52 changes: 52 additions & 0 deletions blog/2024-05-02-ghc-update-28.md
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.

0 comments on commit 419c957

Please sign in to comment.