Skip to content

IPE: More size optimisation and expose unit ID

Ben Gamari requested to merge wip/ipe-sharing into master

Here we refactor the info table provenance infrastructure to:

  • further improve sharing of strings (reducing binary size)
  • eliminate the need to deserialise info table entries when populating the info table map (reducing memory footprint and initialization time)
  • expose unit ids
  • cleanup various odds and ends

This required a fair amount of refactoring as we now deserialise IPE metadata lazily and therefore must provide a buffer to deserialise into. This required some code shuffling to avoid user-visible base changes.

While I was in the area I also eliminated a rather significant inefficiency in GHC.Stack.CloneStack.decode (the allocation of a Ptr per info table).

CLC proposal: https://github.com/haskell/core-libraries-committee/issues/214

Edited by Ben Gamari

Merge request reports