mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-06-29 13:35:44 +00:00
sbclPackages.cl-ana: fix type error in fixed-mem-cache for SBCL 2.6.0
In cl-ana.makeres, the fixed-mem-cache function uses (setf (cdr (last cache)) (list id)) where cache can be nil (initial state or after popping all elements). (last nil) returns nil, making (setf (cdr nil) ...) undefined. SBCL 2.6.0's stricter type inference catches this as a type conflict, causing COMPILE-FILE-ERROR. Replace with nconc which handles the nil case correctly.
This commit is contained in:
@@ -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))))))))))
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
Reference in New Issue
Block a user