summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Graf <sebastian.graf@kit.edu>2022-01-03 18:30:58 +0100
committerMarge Bot <ben+marge-bot@smart-cactus.org>2022-01-13 14:50:49 -0500
commitc2a6c3eb380891eb44d30529f0b9f8f6debf31c9 (patch)
treeb7c2109c8e6e4279fabddf9262849fa8bec4ebcd
parentbe33d61a7a36e156a6b95880babdf484dedc76e2 (diff)
downloadhaskell-c2a6c3eb380891eb44d30529f0b9f8f6debf31c9.tar.gz
release notes: Changes to Demand analysis
-rw-r--r--docs/users_guide/9.4.1-notes.rst11
1 files changed, 11 insertions, 0 deletions
diff --git a/docs/users_guide/9.4.1-notes.rst b/docs/users_guide/9.4.1-notes.rst
index 1ca1b17eaa..5cb2736547 100644
--- a/docs/users_guide/9.4.1-notes.rst
+++ b/docs/users_guide/9.4.1-notes.rst
@@ -54,6 +54,17 @@ Compiler
evaluate both with a bang pattern or a ``seq``, but the ``return $! <res>``
idiom should work more reliably and needs less thinking.
+- Demand analysis (cf. :ghc-flag:`-fstrictness`) now integrates a
+ Boxity Analysis that tracks whether a function needs a parameter boxed. If
+ that is the case, the worker/wrapper transformation (cf.
+ :ghc-flag:`-fworker-wrapper`) will not unbox that parameter, leading to less
+ reboxing in many cases.
+
+ For reasons of backwards-compatible performance, you may find that the new
+ mechanism is too aggressive in a few cases (e.g., still unboxing a parameter
+ that is used boxed in a hot path). Do post a bug report with your example!
+ Then wrap the uses of the parameter in ``GHC.Exts.lazy`` for a short-term fix.
+
``base`` library
~~~~~~~~~~~~~~~~