diff options
author | Ben Gamari <ben@smart-cactus.org> | 2022-06-30 15:06:25 -0400 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2022-07-15 18:16:28 -0400 |
commit | d75c540d439510491b45f64c1113762dcb251ae1 (patch) | |
tree | 6fb957684ff84c94055ea246678679003aeec1a3 /rts/RtsSymbols.c | |
parent | 3d5f9ba19fea5455d778d2ee9c3fdcaad77d1db7 (diff) | |
download | haskell-wip/T21708.tar.gz |
Make keepAlive# out-of-linewip/T21708
This is a naive approach to fixing the unsoundness noticed in #21708.
Specifically, we remove the lowering of `keepAlive#` via CorePrep and
instead turn it into an out-of-line primop.
This is simple, inefficient (since the continuation must now be heap
allocated), but good enough for 9.4.1. We will revisit this
(particiularly via #16098) in a future release.
Metric Increase:
T4978
T7257
T9203
Diffstat (limited to 'rts/RtsSymbols.c')
-rw-r--r-- | rts/RtsSymbols.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/rts/RtsSymbols.c b/rts/RtsSymbols.c index f695cbd041..9731f4febf 100644 --- a/rts/RtsSymbols.c +++ b/rts/RtsSymbols.c @@ -785,6 +785,7 @@ extern char **environ; SymI_HasDataProto(stg_raiseUnderflowzh) \ SymI_HasDataProto(stg_raiseOverflowzh) \ SymI_HasDataProto(stg_raiseIOzh) \ + SymI_HasDataProto(stg_keepAlivezh) \ SymI_HasDataProto(stg_paniczh) \ SymI_HasDataProto(stg_absentErrorzh) \ SymI_HasDataProto(stg_readTVarzh) \ |