Actually place static functions first in immobile space.
commit9d32537573afa85158d92324b11e6d500dae3920
authorDouglas Katzman <dougk@google.com>
Wed, 23 Nov 2016 22:48:16 +0000 (23 17:48 -0500)
committerDouglas Katzman <dougk@google.com>
Wed, 23 Nov 2016 22:53:21 +0000 (23 17:53 -0500)
tree61bbfd62bedb91c4f919ee7c0ccbacd3bf880d9b
parentd943ef1e37fc175993711af89d219ec2de9fbc52
Actually place static functions first in immobile space.

And make the default roots for immobile space DFO meaningful,
but, more importantly, fix a potential crash.

SAVE-LISP-AND-DIE always passes its :ROOT-STRUCTURES argument
into CHOOSE-CODE-COMPONENT-ORDER, so the apparent default in the latter
had no effect, because S-L-A-D defaults the roots to NIL.
That's fine in and of itself; however if you *did* supply roots,
then they would precede the static functions, which could cause
a subsequent S-L-A-D to produce a new DFO for the roots - if changed -
which could consume different amounts of immobile space, which could
move static functions from where they previously were, which is bad.

Also annotate a flaw in 'save.lisp'
src/code/immobile-code.lisp
src/code/save.lisp