Unverified Commit a3997241 authored by 7c6f434c's avatar 7c6f434c Committed by GitHub
Browse files

sbclPackages.*: fix various build breaks from SBCL 2.6.0 (#491068)

parents e75cdcb2 bdd4fb50
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
Fix type error in fixed-mem-cache for SBCL 2.6.0

cache starts as nil and may be emptied by the loop, so (last cache)
can return nil. (setf (cdr nil) ...) is undefined behavior that
SBCL 2.6.0 now catches as a type conflict during compilation,
causing COMPILE-FILE-ERROR.

Use nconc instead, which handles the nil case correctly.

Upstream issue: https://github.com/ghollisjr/cl-ana/issues/48

--- a/makeres/makeres.lisp
+++ b/makeres/makeres.lisp
@@ -936,5 +936,5 @@
                    do (unload-target (pop cache))))
               (load-target id)
-              (setf (cdr (last cache))
-                    (list id)))))))))
+              (setf cache
+                    (nconc cache (list id))))))))))
+40 −0
Original line number Diff line number Diff line
@@ -12,6 +12,15 @@ let

  overrides = (
    self: super: {
      named-readtables = super.named-readtables.overrideLispAttrs (o: {
        patches = (o.patches or [ ]) ++ [
          (pkgs.fetchpatch {
            name = "named-readtables-sbcl-fix.patch";
            url = "https://github.com/melisgl/named-readtables/commit/6eea56674442b884a4fee6ede4c8aad63541aa5b.patch";
            hash = "sha256-ZkmBz50tkJutCNhrgVTHyE+sxRjmL8y7YC7yewrmves=";
          })
        ];
      });
      cl_plus_ssl = super.cl_plus_ssl.overrideLispAttrs (o: {
        nativeLibs = [ pkgs.openssl ];
      });
@@ -182,11 +191,42 @@ let
          "iolib/pathnames"
        ];
      });
      cl-ana_dot_makeres = super.cl-ana_dot_makeres.overrideLispAttrs (o: {
        patches = (o.patches or [ ]) ++ [ ./patches/cl-ana-fix-type-error.patch ];
      });
      cl-ana_dot_hdf-cffi = super.cl-ana_dot_hdf-cffi.overrideLispAttrs (o: {
        nativeBuildInputs = [ pkgs.hdf5 ];
        nativeLibs = [ pkgs.hdf5 ];
        NIX_LDFLAGS = [ "-lhdf5" ];
      });
      # The antik source archive contains a broken documentation.pdf symlink
      # pointing to documentation/build/latex/Antik.pdf which doesn't exist.
      # All packages built from this archive need the symlink removed.
      antik = super.antik.overrideLispAttrs (o: {
        postInstall = (o.postInstall or "") + ''
          rm -f $out/documentation.pdf
        '';
      });
      antik-base = super.antik-base.overrideLispAttrs (o: {
        postInstall = (o.postInstall or "") + ''
          rm -f $out/documentation.pdf
        '';
      });
      foreign-array = super.foreign-array.overrideLispAttrs (o: {
        postInstall = (o.postInstall or "") + ''
          rm -f $out/documentation.pdf
        '';
      });
      physical-dimension = super.physical-dimension.overrideLispAttrs (o: {
        postInstall = (o.postInstall or "") + ''
          rm -f $out/documentation.pdf
        '';
      });
      science-data = super.science-data.overrideLispAttrs (o: {
        postInstall = (o.postInstall or "") + ''
          rm -f $out/documentation.pdf
        '';
      });
      gsll = super.gsll.overrideLispAttrs (o: {
        nativeBuildInputs = [ pkgs.gsl ];
        nativeLibs = [ pkgs.gsl ];