Skip to content

`checkOldIface`: remove --interactive special case

I checked and this goes all the way back to 576650d4, when the directory was added en-mass after it was mistakenly uncommitted for a while. In other words, there is no record of this being a bug fix or otherwise in response for a specific issue.

Whether one can effectively reuse an existing interface is a rather complicated matter:

  • With --interactive -fno-code -fwrite-interface the interface file should be worth reading.

  • With --interactive -fno-code after doing something which wrote an interface file, the interface still should be worth reading.

  • With --interactive -fexpose-all-unfoldings we ought to be able to create all the bitcode we need from the interface file.

Now, it is probably possible to figure out exactly when it is useful and write some more complicated logic, but that also feels like a driver concern that belongs elsewhere.

Finally, even if we did put the more complicated logic in a more suitable location, everything relating to the driver and reading files in GHCi is massively over-complicated. I just don't think an optimization of this sort is worth it, even if it was in 2003. :r is the thing that needs to be fast in --interactive, in which case the compilation manager will have the old ModIface anyways, so this could only slow things down on the initial load, or in pathological situations when one is renaming files back in forth while writing interface files.

I am desperate to simplify and disentangle the driver code, and I'll take what simplifications I can get.

CC @cgibbard

Edited by John Ericson

Merge request reports