From fe9531e8e058b45fd75483b6e8902fbccc4cd606 Mon Sep 17 00:00:00 2001 From: Hraban Luyat Date: Sat, 27 Apr 2024 13:12:53 -0400 Subject: [PATCH] sbcl: use ECL as a bootstrap lisp --- pkgs/development/compilers/sbcl/default.nix | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix index 8343c01325e4..2ba79281567b 100644 --- a/pkgs/development/compilers/sbcl/default.nix +++ b/pkgs/development/compilers/sbcl/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, callPackage, clisp, coreutils, fetchurl, strace, texinfo, which, writeText, zstd +{ lib, stdenv, callPackage, ecl, coreutils, fetchurl, strace, texinfo, which, writeText, zstd , threadSupport ? (stdenv.hostPlatform.isx86 || "aarch64-linux" == stdenv.hostPlatform.system || "aarch64-darwin" == stdenv.hostPlatform.system) , linkableRuntime ? stdenv.hostPlatform.isx86 , disableImmobileSpace ? false @@ -9,11 +9,11 @@ , coreCompression ? true , markRegionGC ? true , version - # Set this to a lisp binary to use a custom bootstrap lisp compiler for - # SBCL. Leave as null to use the default. This is useful for local development - # of SBCL, because you can use your existing stock SBCL as a boostrap. On Hydra + # Set this to a lisp binary to use a custom bootstrap lisp compiler for SBCL. + # Leave as null to use the default. This is useful for local development of + # SBCL, because you can use your existing stock SBCL as a boostrap. On Hydra # of course we can’t do that because SBCL hasn’t been built yet, so we use - # CLISP, but that’s much slower. + # ECL but that’s much slower. , bootstrapLisp ? null }: @@ -27,16 +27,10 @@ let }; }; # Collection of pre-built SBCL binaries for platforms that need them for - # bootstrapping. Ideally these are to be avoided. If CLISP (or any other + # bootstrapping. Ideally these are to be avoided. If ECL (or any other # non-binary-distributed Lisp) can run on any of these systems, that entry # should be removed from this list. bootstrapBinaries = rec { - # This build segfaults using CLISP. - x86_64-darwin = { - version = "2.2.9"; - system = "x86-64-darwin"; - sha256 = "sha256-b1BLkoLIOELAYBYA9eBmMgm1OxMxJewzNP96C9ADfKY="; - }; i686-linux = { version = "1.2.7"; system = "x86-linux"; @@ -67,7 +61,7 @@ let then bootstrapLisp else if (builtins.hasAttr stdenv.hostPlatform.system bootstrapBinaries) then "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit" - else "${clisp}/bin/clisp -E UTF-8 --silent -norc"; + else "${lib.getExe ecl} --norc"; in @@ -234,6 +228,7 @@ stdenv.mkDerivation (self: rec { platforms = attrNames bootstrapBinaries ++ [ # These aren’t bootstrapped using the binary distribution but compiled # using a separate (lisp) host + "x86_64-darwin" "x86_64-linux" "aarch64-darwin" "aarch64-linux"