[jhc] Hotspots.

John Meacham john at repetae.net
Tue Feb 19 20:24:19 EST 2008

On Tue, Feb 19, 2008 at 05:38:00PM +0100, Lemmih wrote:
> > Which duplicate data in particular is concerning you? I am in the
> > process of completely reorganizing the Ho file layout so it is probably
> > best to hold off here.  Some of the redundancy is there on purpose, but
> > most probably isn't.
> Each atom is saved ~100 times. A TVr can contain 50k of data and each
> TVr is saved ~24 times.

All tvrs except the head ones in the hoEs field should be fully stripped
of their auxiliary information. processInitialHo which is run on all
ho's read from disk among other things fixes up these references. I
should note that every ocurrance of a variable having the exact same
information as its head is a _strong_ invarient, not just equivalent due
to alpha renaming or something, in fact, it should be the exact same
heap node but just shared.

Incidentally, every now and again I 'promote' something from the Info
field to being a first class value of some sort. I am considering
re-doing rules in this fashion so a binding will not only have a body
but a list of rules. as in, the rules will be associated with the body
of a function rather than its tvr. This will have some pervasive effects
and hopefully make things nicer, however for simplicity I am probably
going to introduce a constraint that only top level values can have
attached rules. does anyone think this is too onerous of a restriction?
note that SPECIALIZATIONs and CATALYSTs will be under the same


John Meacham - ⑆repetae.net⑆john⑈

More information about the jhc mailing list