Commit [2c42e7] Maximize Restore History

Invert the lookup mechanism for metainfo about info :class :type.

This stems from a discovery that we held info-class objects on symbol-plists
as a memoization layer, but reverted to a hashtable when unmemoized.
We could have just stored things on symbol-plist, eschewing a hashtable,
as sb-fasl and sb-pcl do, however it's possibly dangerous to expose
system plists to users who might impolitely smash them. And since info classes
are keywords, the lists are easily discoverable, and the damage potential high.
So it being that the hashtable had a kind of wrong/redundant feel to it,
now the INFO mechanism is metacircularly used to store its own metadata.

Also, as the class/type distinction was largely pointless, info classes
no longer exist as objects in their own right. Metainfo for (:<class> :<type>)
is found using the <type> as the primary axis, and resolved secondarily using
<class> as the minor axis, but it's basically irrelevant which contains which.

Douglas Katzman Douglas Katzman 2014-03-14

changed src/compiler/globaldb.lisp
changed src/compiler/info-vector.lisp
changed tests/info.impure.lisp
src/compiler/globaldb.lisp Diff Switch to side-by-side view
Loading...
src/compiler/info-vector.lisp Diff Switch to side-by-side view
Loading...
tests/info.impure.lisp Diff Switch to side-by-side view
Loading...