Persistence: a proposal

Henry G. Baker
Fri, 23 May 1997 06:41:53 -0700 (PDT)

> Another idea tossed around for 64-bit addresses is to use 64-bit IEEE
> floating point as the OID format. All non-float addresses are encoded
> within NaN format. Does someone have a reference to what this looks
> like. I haven't found anything on the net that describes the actual
> layout of the bits for NaN.
> Patrick Logan       

This idea has been 'floating' around ever since IEEE FP & NaN's were
invented.  I think that it has independently occured to Richard
Fateman, Tom Knight, myself, and probably many other people.  It has
also been discussed on various comp.arch and comp.lang.lisp groups
from time to time.

If I recall correctly, a 64-bit NaN provides as many as 53 bits of
'address', which should be enough for now.  These are also large
enough integers that -- except for RSA-type algorithms -- IEEE floats
are good enough for fixnums (don't worry, IEEE guarantees to tell you
if/when it starts making approximations).  You get 2-adic numbers for
free :-).

But the 'right' way to do this is to _hide_ the exact representation,
so that you can rebuild the system with different choices.  Someone at
Utah (??) did this a while back so he could compare the _overall_
efficiency of different kinds of tagging schemes.

Henry Baker
www/ftp directory URL: