Commit 3a55b3a2 authored by Sebastian Graf's avatar Sebastian Graf Committed by Marge Bot

Update user's guide entry on demand analysis and worker/wrapper

The demand signature notation has been undocumented for a long time.
The only source to understand it, apart from reading the `Outputable`
instance, has been an outdated wiki page.

Since the previous commits have reworked the demand lattice, I took
it as an opportunity to also write some documentation about notation.
parent 0aec78b6
Pipeline #27660 canceled with stages
......@@ -47,7 +47,7 @@ Compiler
Code using ``Void#`` now has to enable :extension:`UnboxedTuples`.
``ghc`` library
~~~~~~~~~~~~~
~~~~~~~~~~~~~~~
- The ``con_args`` field of ``ConDeclGADT`` has been renamed to ``con_g_args``.
This is because the type of ``con_g_args`` is now different from the type of
......
......@@ -334,16 +334,22 @@ subexpression elimination pass.
its rationale.
.. ghc-flag:: -ddump-stranal
:shortdesc: Dump strictness analyser output
:shortdesc: Dump demand analysis output
:type: dynamic
Dump strictness analyser output
Dump demand analysis output.
See :ghc-flag:`-fstrictness` for the syntax and semantics of demand
annotations.
.. ghc-flag:: -ddump-str-signatures
:shortdesc: Dump strictness signatures
:shortdesc: Dump top-level demand signatures
:type: dynamic
Dump strictness signatures
Dump top-level demand signatures as produced by demand analysis.
See :ghc-flag:`-fstrictness` for the syntax and semantics of demand
annotations.
.. ghc-flag:: -ddump-cpranal
:shortdesc: Dump CPR analysis output
......@@ -381,7 +387,6 @@ subexpression elimination pass.
Dump output of Core preparation pass
STG representation
~~~~~~~~~~~~~~~~~~
......
......@@ -147,7 +147,7 @@ Where:
``(forall a. a)`` and ``(Eq a => a)`` are legal.
- ``ctype`` is a ``btype`` that has no restrictions on an outermost
``forall``/``=>``, so ``forall a. a`` and ``Eq a => a`` are legal ``ctype``\s.
- ``arg_type`` is a type that is not allowed to have ``forall``s or ``=>``\s
- ``arg_type`` is a type that is not allowed to have ``forall``\s or ``=>``\s
- ``prefix_cls_tycon`` is a class type constructor written prefix (e.g.,
``Show`` or ``(&&&)``), while ``infix_cls_tycon`` is a class type constructor
written infix (e.g., ``\`Show\``` or ``&&&``).
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment