diff options
author | Sebastian Graf <sebastian.graf@kit.edu> | 2022-01-03 18:30:58 +0100 |
---|---|---|
committer | Sebastian Graf <sebastian.graf@kit.edu> | 2022-01-12 18:28:00 +0100 |
commit | 063c70e0f44eb9082a6bb587ef4b35a1a7f2c690 (patch) | |
tree | bc944e18503f3e2526cae44a6469ff05f04fde18 | |
parent | 285bcc204a036ccc05becbae0e5245b309d45e05 (diff) | |
download | haskell-wip/cpr-anal-release-notes.tar.gz |
release notes: Changes to Demand analysiswip/cpr-anal-release-notes
-rw-r--r-- | docs/users_guide/9.4.1-notes.rst | 11 |
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 ~~~~~~~~~~~~~~~~ |