Skip to content

Many compiler flags affecting code generation are not accounted for in recompilation checking

Currently there are a number of flags which may affect program behavior but are not considered by the recompilation checker. Specifically:

  • -feager-blackholing, which can affect the probability of multiple thunk entry and may improve deadlock detection
  • -fexcess-precision, which can affect floating point arithmetic
  • -fdicts-strict, which can affect program divergence behavior when UndecidableInstances is in use (#22549 (closed))
  • -fpedantic-bottoms, which can affect program divergence
  • -fomit-yields, which can affect concurrent program behavior (#15975)
  • -finfo-table-map, which affects debugging information
  • -fdistinct-constructor-tables, which affects debugging information
  • -fcatch-nonexhaustive-cases, which may cause programs that would otherwise segfault to fail with a more sensible error (#20601 (closed))
  • -fno-typeable-binds, which affects which bindings are generated
  • -fexpose-all-unfoldings, which affects interface file content

While some of these are admittedly debugging flags, it would be best (that is, less surprising) if recompilation checking accounted for them.

However, we do need to be careful here to avoid regressing #13604, which asks that, when -fignore-optim-changes is use, the user be able to adjust optimisation level without recompilation.

Edited by Ben Gamari
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information