Loader overhaul

  • always use Fingerprint to identify Linkables instead of modtimes
  • Automatically reload stale linkables
    • Also always use purgeObj instead of unloadObj, for correctness at the cost of memory
  • Add unloadModules to allow API clients to unload modules
  • Record consituent hashes for bytecode libraries, so that we can skip relinking without consulting modtimes
  • Teach the external interpreter about purgeObj via the purgeObj message
  • Fix a leak with static pointers in GHCi by correctly removing entries of stale modules
  • Introduce -funload-strategy flag so that users can decide whether to purge or unload
    • Twiddle with the defaults so we can go back to unloading objects on linux, and purging elsewhere where it is not well supported
  • Various other refactorings

Merge request reports

Loading