On 14/02/2016 21:13, Matthew Fernandez wrote:
On Sunday, 14 February 2016, Makarius <makar...@sketis.net> wrote:

On Sun, 14 Feb 2016, Matthew Fernandez wrote:

I received several off-list replies to this, including a pointer to
previous experiments by Data 61 colleagues


How is this related to the experiment with heap hierarchies? I.e. a stack
of heaps according to the session parent structure.

Makarius: are you referring to the Poly/ML saved state mechanism or something else?

They are essentially orthogonal. AIUI the heap hierarchies change involved
modifying Isabelle to use existing Poly/ML support for saved states that
reference others, but not modifying Poly/ML itself. In contrast, this
proposed change is purely to Poly/ML. Both have the effect of reducing disk
usage and their effects are cumulative.

As far I'm aware Isabelle just uses the shared state facilities of Poly/ML. That provides the ability to save states that are the direct descendant of the executable or the descendant of another saved state.

From a quick look at the code the main effect that child states have is that StateLoader::LoadFile needs to seek within the saved state file to get the name of the parent file. That has to be loaded before the child because the child may, almost certainly will, overwrite some of the parent data. That may affect how you compact the data. How well do the compression libraries cope with seeking within the file?

From my own point of view I'm concerned that compacting the heap files may add to the cost of loading. In my experimental IDE, while a file is being edited a lot of saved states are loaded and reloaded repeatedly to provide the context. I'd like to see what effect adding compaction has on it but it may be necessary to provide separate functions to save states with and without compaction. Loading is easier because the loader can look at the format. Note that there's no need to provide backwards compatibility because a saved state can only ever be reloaded into the executable that created it.

David
_______________________________________________
polyml mailing list
polyml@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to