scheme and lisp

Ludovic Courtès ludo at gnu.org
Thu Nov 23 16:53:39 UTC 2023


Hello Bernhard,

"Bernhard M. Wiedemann via rb-general"
<rb-general at lists.reproducible-builds.org> skribis:

> in openSUSE there are some packages that so far refuse to build
> reproducibly. The common theme around them is that they use scheme or
> lisp to produce binaries with a 'dump' command.

I think this practice is vanishing.  For one, Emacs had an ‘unexec’
function that produced an ELF executable containing an image of its heap
at the time the function was called; this was replaced by a portable and
reproducible mechanism in Emacs 27, released in August 2020.

[...]

> The list of our packages I think are affected by this is:
> clisp
> scheme48
> chezscheme
> emacs
> maxima
> scsh
> xindy
>
> Most distros seem to be affected by this:
> http://ismypackagereproducibleyet.org/?pkg=scheme48
> http://ismypackagereproducibleyet.org/?pkg=emacs surprisingly shows as
> reproducible in Archlinux, but I could not figure out why.
> maxima also shows as green there.
>
> Can we get them reproducible? Or can we drop+replace these
> implementations with guile?

Scheme implementations are all vastly different, notably because they
implement different things: the standards were historically very
minimal, so to do practical things, you had to implement custom
extensions.  Because of that, you can’t just use one “Scheme”
implementation as a drop-in replacement for another one.

The implementations are also very different: for instance, Chez
implements a native ahead-of-time compiler whereas Guile has bytecode
compilation plus just-in-time compilation.  Thus problems and solutions
for one implementation are unlikely to translate to other
implementations.

That said I’m surprised about Emacs, this needs more investigation…

HTH,
Ludo’.


More information about the rb-general mailing list