This patch allows the kernel path to relocate arbitrarily.
It will
relocate unless the image was explicitly created with a
non-standard
--kernel-dir.
This is implemented by restoring the "Directory
systemKernel" method.
In GNU Smalltalk 2.x however we used it to search packages
explicitly,
and this does not happen in the new implementation. We
*never* use the
system kernel directory for anything except as a default:
since the
KernelFilePath variable does not move (by design) when the
image is
relocated, we set it to nil when the image was not created
with a
non-standard --kernel-dir. In this case "Directory
kernel" will return
the (moving) system kernel directory.
In addition, paths in the kernel methods are now made
relative when the
image is saved. This is easier than the previous way of
relocating
paths only for DESTDIR installs.
With this patch, the GNU Smalltalk installation is
relocatable (this
helps Windows and Mac OS X users most, but is good in
general).
Probably more care would be needed if libgst.so was used
really as a
scripting engine, rather than just to share bits between gst
and
gst-tool. In this case one should understand if the path
relocation
should be done according to the directory of the executable,
or
according to the directory of libgst.so; currently the
former is
implemented.
Paolo
_______________________________________________
help-smalltalk mailing list
help-smalltalk gnu.org
http://lists.gnu.org/mailman/listinfo/help-smalltalk
|