-
648af8f0
by Luite Stegeman at 2026-09-16T09:53:32+05:30
rts: handle large CONSTR closures in compacting GC
The function update_fwd_large in the compacting GC could run into
an unexpected object with the following error:
internal error: update_fwd_large: unknown/strange object 1
Closure type 1 is CONSTR. This patch adds cases for CONSTR and
CONSTR_NOCAF.
This is the same problem as #27434 (large AP closures, fixed by
cca0d58963), which missed this case.
Fixes #27649
(cherry picked from commit 749d2448eb56367046b2de890f1bf89a856ce53f)
-
0a6498db
by Luite Stegeman at 2026-09-16T09:53:37+05:30
testsuite: fix T27434 test with compacting GC
Ensure that the interpreter is actually run with the compacting GC
(cherry picked from commit 177d615518a44dde595f3166f56ec604e0675b3b)
-
051e50cf
by Luite Stegeman at 2026-09-16T09:53:44+05:30
rts: initialise the stack frame header for mask_frame and apply_mask_frame
We must leave the stack in consistent state before jumping to
mask_frame or apply_mask_frame because they may result. Failing
to do so could lead to a crash if there were waiting exceptions.
Fixes #27651
(cherry picked from commit 5796aa637cca079854fc7e84e7e0fa497aacab3c)
-
06fafb03
by Simon Peyton Jones at 2026-09-16T09:59:17+05:30
Re-introduce the "weird SpecDict" case
In this commit
commit f80375dd4945350a1d784e436975b48b9c736eaf
Author: Simon Peyton Jones <simon.peytonjones@gmail.com>
Date: Sun Jun 29 15:26:58 2025 +0100
Refactor of Specialise.hs
I removed a test for a dictionary with unbound type variables. This
turned out to be wrong; see #27629.
So this MR re-introduces it.
(cherry picked from commit 2486cc92cea451fd6528292252a8f384e3b34dcb)
-
a878ad4f
by Luite Stegeman at 2026-09-16T09:59:17+05:30
rts: make stg_threadLabelzh return a valid pointer for unlabeled threads.
This fixes a segfault in the GC caused by stg_threadLabelzh returning
a 0 pointer in a GC pointer field.
stg_threadLabelzh returns a tuple of type (# Int#, ByteArray# #). If a
thread has no label, the second field is unused. We must still return
a valid heap object pointer.
Instead of returning 0, we now return stg_DEAD_SLOT_closure.
fixes #27618
(cherry picked from commit 809294f14cf6939b249d93af92c0ae174dda5b4a)
-
9033629c
by Zubin Duggal at 2026-09-16T09:59:17+05:30
Prepare 9.14.2-rc2
-------------------------
Metric Decrease:
T4029
-------------------------