Re: make check-exec-image failure

Bruno Haible <[email protected]>
Newsgroups gmane.lisp.clisp.devel
Message-ID <2820954.8SdnYpnnKh@omega>
Hi Sam,

> > There is now a general move away from "pack everything into one file"
> > to "create separate file for different purposes".
> 
> Users, nevertheless, do ask for a "single executable" option.
> 
> CLISP, being a developer's tool - as opposed to a user's tool, needs, in
> addition to "vendor model" you describe: a team of seasoned
> professionals building distributions to be used by many people, a
> "custom exec" model, when a lisp hacker throws together a quick solution
> and gives is to his 1 or 2 ad hoc users.
> 
> E.g., I want to run something on a box in which I cannot install anything.
> An executable image - as opposed to two files (runtime + image) - is
> easier to distribute.

This is not a sound argument. When a file is transferred to a machine,
whether by ftp, scp, the browser, or whatever, it is by default not executable.
This is means, it needs some "post-install" command to really make it
usable. Whether this command is a "chmod a+x" or "tar xfz" or "unzip -x",
does not make a big difference in practice.

Additionally, most users want to transfer binaries in a compressed way,
to save bandwidth.

Now, when you accept "tar xfz" or "unzip -x" as a post-install command,
there is no reason to insist on just 1 file.

So, when users ask for a "single executable" option, tell them that this
option would buy them nothing.

> > No. (savemem ... :executable t) is based on
> > spvw_memfile.d:savemem_with_runtime, which consists in *appending*
> > a memory image to an *executable file*.
> 
> I know, I wrote it.

The only way of generating an executable that does not cause portability
problems - and thus endless maintenance hassles - is through the compiler
($CC), that invokes the linker, or through the linker directly ($LD).

> > 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.
> 
> this is a regression on _all_ platforms.

No, it's not a regression if we tell people that a certain feature cannot
work on specific platforms, such as Mac OS X and MirBSD.

If you want the complete list of platforms where it works vs. does not work,
I can determine this list for you over time by running "make check-exec-image"
as part of my testing in the next few weeks.

But what I need is that "make check" does not abort prematurely, because
a "make check" failure means - to everyone - "the package is broken, you
should better not proceed with 'make install'".

Bruno


------------------------------------------------------------------------------
Announcing the Oxford Dictionaries API! The API offers world-renowned
dictionary content that is easy and intuitive to access. Sign up for an
account today to start using our lexical data to power your apps and
projects. Get started today and enter our developer competition.
http://sdm.link/oxford
_______________________________________________
clisp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/clisp-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.