Replace a bunch of FIXMEs with a couple KLUDGEs.
commit24fce622e0f5c86996c66bc1371447c0bb4aecaa
authorDouglas Katzman <dougk@google.com>
Fri, 31 Oct 2014 03:53:01 +0000 (30 23:53 -0400)
committerDouglas Katzman <dougk@google.com>
Fri, 31 Oct 2014 04:43:37 +0000 (31 00:43 -0400)
tree1a093bc56011d6b872be49defa7a6f9a048b8df8
parented874d279682de5788f4d2a6dcf7b6edbfc73b20
Replace a bunch of FIXMEs with a couple KLUDGEs.

This change gets rid of all symbols in SB-KERNEL that pertain to 64-bit
functions in a 32-bit target by altering the hack in Genesis that assumes
that for a subset of packages, all symbols present at dump time must
be interned in the cold core regardless of whether the symbol was observed
during loading of cold fasls.  Removing SB!KERNEL from the list of magic
packages reverts to the desirable behavior of interning only as needed.

Doing this exposed an interesting aspect of the DEFERR macro:
its expansion never mentions the symbol being defined, and use of that
symbol by way of GENERATE-ERROR-CODE also never mentions it.
To avoid disappearing error symbols, DEFERR now contains a counter-hack.
Nonetheless I think this is an improvement, as it avoids polluting
package-data-list with reader conditionals or somesuch.

There are some issues in SB!C still. Additionally, this exposed the fact
that TWO-ARG-{/=,<=,>=} were not supposed to be present in x86 targets.
package-data-list.lisp-expr
src/code/interr.lisp
src/compiler/generic/genesis.lisp