diff --git a/pkgs/development/lisp-modules/patches/cl-ana-fix-type-error.patch b/pkgs/development/lisp-modules/patches/cl-ana-fix-type-error.patch new file mode 100644 index 000000000000..de31a1255931 --- /dev/null +++ b/pkgs/development/lisp-modules/patches/cl-ana-fix-type-error.patch @@ -0,0 +1,21 @@ +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)))))))))) + diff --git a/pkgs/development/lisp-modules/ql.nix b/pkgs/development/lisp-modules/ql.nix index 39d41370ed11..624c7a04cc34 100644 --- a/pkgs/development/lisp-modules/ql.nix +++ b/pkgs/development/lisp-modules/ql.nix @@ -191,6 +191,9 @@ 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 ];