-
2b4db9ba
by Pi Delport at 2025-07-11T16:40:52-04:00
(Applicative docs typo: missing "one")
-
f707bab4
by Andreas Klebinger at 2025-07-12T14:56:16+01:00
Specialise: Improve specialisation by refactoring interestingDict
This MR addresses #26051, which concerns missed type-class specialisation.
The main payload of the MR is to completely refactor the key function
`interestingDict` in GHC.Core.Opt.Specialise
The main change is that we now also look at the structure of the
dictionary we consider specializing on, rather than only the type.
See the big `Note [Interesting dictionary arguments]`
-
ca7a9d42
by Simon Peyton Jones at 2025-07-12T14:56:16+01:00
Treat tuple dictionaries uniformly; don't unbox them
See `Note [Do not unbox class dictionaries]` in DmdAnal.hs,
sep (DNB1).
This MR reverses the plan in #23398, which suggested a special case to
unbox tuple dictionaries in worker/wrapper. But:
- This was the cause of a pile of complexity in the specialiser (#26158)
- Even with that complexity, specialision was still bad, very bad
See https://gitlab.haskell.org/ghc/ghc/-/issues/19747#note_626297
And it's entirely unnecessary! Specialision works fine without
unboxing tuple dictionaries.
-
be7296c9
by Andreas Klebinger at 2025-07-12T14:56:16+01:00
Remove complex special case from the type-class specialiser
There was a pretty tricky special case in Specialise which is no
longer necessary.
* Historical Note [Floating dictionaries out of cases]
* #26158
* #19747 https://gitlab.haskell.org/ghc/ghc/-/issues/19747#note_626297
This MR removes it. Hooray.
-
e2ef050e
by Ben Gamari at 2025-07-14T16:05:03-04:00
configure: bump version to 9.15
-
25a70dab
by Teo Camarasu at 2025-07-14T16:05:04-04:00
rts/nonmovingGC: remove n_free
We remove the nonmovingHeap.n_free variable.
We wanted this to track the length of nonmovingHeap.free.
But this isn't possible to do atomically.
When this isn't accurate we can get a segfault by going past the end of
the list.
Instead, we just count the length of the list when we grab it in
nonmovingPruneFreeSegment.
Resolves #26186
-
6f309f37
by Wen Kokke at 2025-07-14T16:05:06-04:00
Remove `profile_id` from `traceHeapProfBegin` and `postHeapProfBegin`
-
57574c3a
by Wen Kokke at 2025-07-14T16:05:06-04:00
Remove `profile_id` from `traceHeapProfSampleString` and `postHeapProfSampleString`
-
a937e595
by Wen Kokke at 2025-07-14T16:05:06-04:00
Remove `profile_id` from `traceHeapProfSampleCostCentre` and `postHeapProfSampleCostCentre`
-
0e801a05
by Wen Kokke at 2025-07-14T16:05:06-04:00
Make `traceHeapProfBegin` an init event