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 restriction. John -- John Meacham - ⑆repetae.net⑆john⑈