-
8de5d55b
by Simon Peyton Jones at 2026-04-01T10:46:26-04:00
Add Invariant (NoTypeShadowing) to Core
This commit addresses #26868, by adding
a new invariant (NoTypeShadowing) to Core.
See Note [No type-shadowing in Core] in GHC.Core
-
90296d9a
by Simon Peyton Jones at 2026-04-01T10:46:26-04:00
Major refactor of free-variable functions
For some time we have had two free-variable mechanims for types:
* The "FV" mechanism, embodied in GHC.Utils.FV, which worked OK, but
was fragile where eta-expansion was concerned.
* The TyCoFolder mechanism, using a one-shot EndoOS accumulator
I finally got tired of this and refactored the whole thing, thereby
addressing #27080. Now we have
* `GHC.Types.Var.FV`, which has a composable free-variable result type,
very much in the spirit of the old `FV`, but much more robust.
(It uses the "one shot trick".)
* GHC.Core.TyCo.FVs now has just one technology for free variables.
All this led to a lot of renaming.
There are couple of error-message changes. The change in T18451
makes an already-poor error message even more mysterious. But
it really needs a separate look.
We also now traverse the AST in a different order leading to a different
but still deterministic order for FVs and test output has been adjusted
accordingly.
-
b01b219c
by Peng Fan at 2026-04-01T10:46:36-04:00
NCG/LA64: add cmpxchg and xchg primops
And append some new instructions for LA664 uarch.
Apply fix to cmpxchg-prim by Andreas Klebinger.
Suggestions in https://gitlab.haskell.org/ghc/ghc/-/merge_requests/15515
-
5ccf7e71
by Duncan Coutts at 2026-04-01T10:46:37-04:00
Remove signal-based ticker implementations
Fixes issue #27073
All supported platforms should work with the pthreads + nanosleep based
ticker implementation. This avoids all the problems with using signals.
In practice, all supported platforms were probably using the non-signal
tickers already, which is probably why we do not get lots of reports
about deadlocks and other weirdness: we were definately using functions
that are not async signal safe in the tick handler (such as fflush to
flussh the eventlog).
Only Solaris was explicitly using the timer_create ticker impl, and even
Solaris could probably use the pthreads one (if anyone cared: Solaris is
no longer a Teir 3 supported platform).
Plausibly the only supported platform that this will change will be AIX,
which should now use the pthreads impl.
-
63852111
by Duncan Coutts at 2026-04-01T10:46:37-04:00
Tidy up some timer/ticker comments elsewhere
-
3c896866
by Duncan Coutts at 2026-04-01T10:46:37-04:00
Remove now-unused install_vtalrm_handler
Support function used by both of the signal-based ticker
implementations.
-
6b939a3e
by Duncan Coutts at 2026-04-01T10:46:37-04:00
No longer probe for timer_create in rts/configure
It was only used by the TimerCreate.c ticker impl.
-
8697282f
by Duncan Coutts at 2026-04-01T10:46:37-04:00
Note that rtsTimerSignal is deprecated.
-
e468cf67
by Simon Jakobi at 2026-04-01T10:46:39-04:00
Add perf test for #13960
Closes #13960.