diff options
Diffstat (limited to 'docs/users_guide')
-rw-r--r-- | docs/users_guide/phases.rst | 18 | ||||
-rw-r--r-- | docs/users_guide/using-warnings.rst | 15 |
2 files changed, 33 insertions, 0 deletions
diff --git a/docs/users_guide/phases.rst b/docs/users_guide/phases.rst index aa171c2055..b955719398 100644 --- a/docs/users_guide/phases.rst +++ b/docs/users_guide/phases.rst @@ -653,6 +653,24 @@ Options affecting code generation depend on the optimisation level. Any definitions which are already included in an interface file (via an unfolding for an exported identifier) are reused. +.. ghc-flag:: -fwrite-self-recomp-info + :shortdesc: Write information for self-recompilation checking in an interface file + :type: dynamic + :category: codegen + + :default: on + + Include information in an interface file which can be used in future to determine + whether we need to recompile a module or can reuse the existing interface. + + This is intended to be turned off in situations where you know you will never try + to recompile a module, such as when compiling a package for distribution. + The advantage is that by omitting unecessary information to do with dependencies + there is less chance of build paths leaking into the interface file and affecting + determinism. + + + .. ghc-flag:: -fobject-code :shortdesc: Generate object code diff --git a/docs/users_guide/using-warnings.rst b/docs/users_guide/using-warnings.rst index 977bb69941..d61fc46319 100644 --- a/docs/users_guide/using-warnings.rst +++ b/docs/users_guide/using-warnings.rst @@ -2355,6 +2355,21 @@ of ``-W(no-)*``. triggered whenever this happens, and can be addressed by enabling the extension. +.. ghc-flag:: -Wreify-module-missing-info + :shortdesc: warn when `reifyModule` + :type: dynamic + :reverse: -Wno-reify-module-missing-info + + :since: 9.6.1 + + The `reifyModule` function in the Template Haskell API can fail to find the necessary + information when an interface file is generated with `-fno-write-self-recomp-info`. This + is due to a shortcoming in `reifyModule` tracked by :ghc-ticket:`8489`. + + This flag warns the user when they try to call `reifyModule` on a module where this + situation occurs so that they know the traversal has ended prematurely. + + If you're feeling really paranoid, the :ghc-flag:`-dcore-lint` option is a good choice. It turns on heavyweight intra-pass sanity-checking within GHC. (It checks GHC's sanity, not yours.) |