diff options
Diffstat (limited to 'docs/users_guide/9.0.1-notes.rst')
-rw-r--r-- | docs/users_guide/9.0.1-notes.rst | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/docs/users_guide/9.0.1-notes.rst b/docs/users_guide/9.0.1-notes.rst index 46c847191a..95e9852e61 100644 --- a/docs/users_guide/9.0.1-notes.rst +++ b/docs/users_guide/9.0.1-notes.rst @@ -347,12 +347,29 @@ Haddock -- | This comment used to trigger a parse error main = putStrLn "Hello" +``base`` library +~~~~~~~~~~~~~~~~ + +- ``Foreign.ForeignPtr.withForeignPtr`` is now less aggressively optimised, + avoiding the unsoundness issue reported in + :ghc-ticket:`17760` in exchange for a small amount of additional allocation. + + If your application is impacted significantly by this change and the + continuation given to ``withForeignPtr`` will not *provably* diverge (via + throwing of an exception or looping) then the previous optimisation behavior + can be recovered by instead using ``GHC.ForeignPtr.unsafeWithForeignPtr``. + + ``ghc-prim`` library ~~~~~~~~~~~~~~~~~~~~ - Add a known-key ``cstringLength#`` to ``GHC.CString`` that is eligible for constant folding by a built-in rule. +- A new primop, ``keepAlive#``, has been introduced to replace ``touch#`` in + controlling object lifetime without the soundness issues affecting the latter + (see :ghc-ticket:`17760`) + ``ghc`` library ~~~~~~~~~~~~~~~ |