Moves the bootstrap code into main derivation because it’s only used there, and
this helps let the main derivation decide when to evaluate it in the first
place (depending on the system), which helps on Hydra.
Not actually enabled by default on any systems yet.
with structuredAttrs lists will be bash arrays which cannot be exported
which will be a issue with some patches and some wrappers like cc-wrapper
this makes it clearer that NIX_CFLAGS_COMPILE must be a string as lists
in env cause a eval failure
Inspired by scala’s 2.x.nix, a bit lower in the same all-packages.nix file, I
have combined all the separate SBCL build declarations into a single 2.x.nix
file which you can call with the version as an argument.
Benefits:
- Less clutter in the filesystem
- Less indirection
- Cleaner overview of available versions
This yields no rebuilds on my machine.
Update the binary used to bootstrap SBCL versions on Darwin (Mac OS) x86-64
systems (i.e. Intel, i.e. non-ARM) from 1.2.11 (released in 2015) to
2.2.9 (released September 2022). Generally, the more recent the bootstrap
binary, the fewer the problems. This bootstrap binary can be used to compile
other SBCL versions (for this target) from source. Those don’t have binary
releases by the SBCL team.
This is useful because building SBCL 2.x from source, using the binary release
of 1.2.11, on this system configuration, ended up in an endless loop. See also
this thread on the Mac ports forum, where people are having the same issue:
https://trac.macports.org/ticket/64621
Now that SBCL has released a more recent binary build for this system, the
problem is solved.
Without the change build fails on darwin as:
duplicate symbol '_static_code_space_free_pointer' in:
alloc.o
traceroot.o
duplicate symbol '_static_code_space_free_pointer' in:
alloc.o
gencgc.o
This substition produces a nixos-build error, because the target string
was removed in commit 323891ea5964d54aba2d272ddddbf748ce353176 in 2018.
Remove the substition from the `postPatch` phase of `sbcl/common.nix`.
This substitution produces a nix-build warning, because the target
string was removed in commit 7b225df9a492977b8fff0948ce93c5ab31766f64
in 2016.
Remove the substition from the `postPatch` phase in `sbcl/common.nix`.