new backend and save world

Stephen Weeks MLton@research.nj.nec.com
Tue, 20 Jun 2000 15:08:08 -0700 (PDT)


Henry writes:

> The only time that return addresses could conceivably change is with
> dynamic'ly loaded libraries.  Not shared libraries, but actually
> dynamically loaded ones.
> ...
> Hm, I suppose that even the shared libraries could change IF you change
> the version between the dump and restore time.  Still, the addresses in
> the code which is NOT shared will always be the same and you would have to
> have something like callbacks for return addresses to ever point to a
> shared library, right?
> Any way, if this isn't correct and you really DO have to do the relocation,
> I would STRONGLY think that #2 (rewrite the stacks on dump and restore)
> is the way to go.  This way you don't pay anything in the normal case,
> and I suspect that the dispatches is currently a non-trivial expense.

The executable won't change between dump and restore.  Thus, I think
we should go with 

3. Use code addresses for returns and just spit out the stack as is
	for save world.