Excerpts from Neil Mitchell's message of 2015-09-14 14:07:14 -0700: > >> 1) Is there any way to do the two compilations sharing some cached > >> state, e.g. loaded packages/.hi files, so each compilation goes > >> faster. > > > > You can, using withTempSession in the GhcMonad. The external package > > state will be preserved across calls here, but things put in the HPT > > will get thrown out. > > So as far as I can tell, you are suggesting I basically do getSession > in one session, grab the cache bits of the HscEnv, and inject them > into the start of the next session with setSession? (withTempSession > and all the other session functions just seem to be some variation on > that pattern). I tried that, but even storing just hsc_EPS between > sessions (which seemed like it should both be something that never > changes), causes weird compile failures. Is moving things like hsc_EPS > between sessions supported? Or were you suggesting I do something > else?
No, something a bit different: I'm suggesting that you use this functionality to "fork" a session: so you do some work, getting a session, snapshot the session, do some more work, and then use the snapshot to rollback before the work. I haven't actually tested this, however. Edward _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs