A few fasl-size savings, and 350KB smaller image on x86-64.
commit2994dfad06a13e9353de1e4ca8bba132fc0eb952
authorDouglas Katzman <dougk@google.com>
Thu, 12 Feb 2015 21:31:33 +0000 (12 16:31 -0500)
committerDouglas Katzman <dougk@google.com>
Thu, 12 Feb 2015 21:31:33 +0000 (12 16:31 -0500)
tree99f475c86511903a1b91d2286d121a069d84acd1
parentc29f77b2e43414fc3a6415e956457993cfb06170
A few fasl-size savings, and 350KB smaller image on x86-64.

- DEFSTRUCT creates its gensyms using COPY-SYMBOL
  because in (&KEY ((:x #:x) ...)) the strings are shareable.

- The compiler dumps an uninterned symbol whose name is STRING=
  to an already-dumped symbol using a copy-symbol fop.
  It should also be possible to copy an interned symbol's name
  from any lookalike symbol, but this would be tricky to implement.

- Genesis aggressively coalesces substructure for the simple-fun-type
  and -arglist slots. Ideally it would be done by the target loader
  too, except that to be effective it would need larger than file
  scope, as ordinary sharing has already done most of the job.
package-data-list.lisp-expr
src/code/defstruct.lisp
src/code/fop.lisp
src/compiler/dump.lisp
src/compiler/generic/genesis.lisp