diff options
-rw-r--r-- | compiler/GHC/Builtin/primops.txt.pp | 4 | ||||
-rw-r--r-- | libraries/ghc-prim/changelog.md | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/compiler/GHC/Builtin/primops.txt.pp b/compiler/GHC/Builtin/primops.txt.pp index 559b8a972d..5b730c1943 100644 --- a/compiler/GHC/Builtin/primops.txt.pp +++ b/compiler/GHC/Builtin/primops.txt.pp @@ -3407,7 +3407,7 @@ primop FinalizeWeakOp "finalizeWeak#" GenPrimOp out_of_line = True primop TouchOp "touch#" GenPrimOp - v -> State# RealWorld -> State# RealWorld + v -> State# s -> State# s with code_size = { 0 } has_side_effects = True @@ -3723,7 +3723,7 @@ section "Controlling object lifetime" -- and "p" is the same as "b" except representation-polymorphic. -- See Note [Levity and representation polymorphic primops] primop KeepAliveOp "keepAlive#" GenPrimOp - v -> State# RealWorld -> (State# RealWorld -> p) -> p + v -> State# s -> (State# s -> p) -> p { @'keepAlive#' x s k@ keeps the value @x@ alive during the execution of the computation @k@. diff --git a/libraries/ghc-prim/changelog.md b/libraries/ghc-prim/changelog.md index 221325c029..1cf411c029 100644 --- a/libraries/ghc-prim/changelog.md +++ b/libraries/ghc-prim/changelog.md @@ -14,6 +14,8 @@ - `sameMutVar#`, `sameTVar#`, `sameMVar#` - `sameIOPort#`, `eqStableName#`. +- `keepAlive#` and `touch#` are now polymorphic in their state token (#23163; [CLC#152](https://github.com/haskell/core-libraries-committee/issues/152)) + - Several new primops were added: - `copyMutableByteArrayNonOverlapping#` |