Skip to content

GHC breaks determinism across one-shot and --make modes

Currently it seems that GHC can produce different ABIs (and therefore interface files) in one-shot and --make modes. I don't have access to a reproducer at the moment, but in particular the rough shape of the problem sounds to me like the culprit is one of:

  • float-out/set-levels (although this seems unlikely since IIRC these are always given lvl names)
  • simplifier, maybe?
  • Core CSE

In particular, the problem is that an MFE which appears in two different bindings seems to be floated with one name or the other.

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