From: Bruno H. <br...@cl...> - 2017-03-10 23:54:45
|
Hi Sam, > > My priority for the moment is to fix build errors. > > Does this include the "make check-image" failure? > https://sourceforge.net/p/clisp/bugs/687/ No. (savemem ... :executable t) is based on spvw_memfile.d:savemem_with_runtime, which consists in *appending* a memory image to an *executable file*. This is precisely the hack which delayed the port of AKCL to Linux by 1 year in 1992/1993 (which is why then clisp became more popular than AKCL on Linux) [1]. I had ported clisp to Linux in 1 day. And it is because of this lesson that I decided to create 'clisp-link' based on the notion of a "linking set" [2] where the memory image is *separate* from the executable. I certainly won't spend time digging in the internals of the Mach-O object format in order to find out how to port this to Mac. Instead, I would better see 1) the doc clearly state in [3] that this is a platform-dependent feature (and list the OSes on which it works), 2) adjust makemake.in so that this feature gets tested only on those platforms where it works. Additional background: There is now a general move away from "pack everything into one file" to "create separate file for different purposes". * Distros have in fact started to distribute the debug information for binaries in separate files. So, instead of having a file 'foo' that may or may not contain debug information, you have a file 'foo' without debug information and optionally a file '/var/debug/foo' with only the debug information. What is the benefit? You can install the debug information on the fly, when you need it, for example once the binary crashed for the first time. * Similarly, in old Windows, executable code and resources were packed in the same .exe file. In OS X, which is more modern, the executable code and the resources are just normal files in a single 'foo.app' directory. Bruno [1] http://www.ibiblio.org/pub/historic-linux/ftp-archives/sunsite.unc.edu/Sep-29-1996/devel/lang/lisp//akcl.README [2] http://clisp.org/impnotes/modules.html#mod-overview [3] http://clisp.org/impnotes/image.html |