summary refs log tree commit diff
path: root/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
diff options
context:
space:
mode:
authorLuke Gorrie <lukego@gmail.com>2021-10-20 16:30:31 +0200
committerGitHub <noreply@github.com>2021-10-20 14:30:31 +0000
commit4f9ca7c56556432c33adb77da765022ae1d4589c (patch)
tree221722324c57bee4bcd59c906ece8f8c66e4e29c /pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
parent5b455776e301b85e1180f71b9237b37e00f7134f (diff)
downloadnixpkgs-4f9ca7c56556432c33adb77da765022ae1d4589c.tar
nixpkgs-4f9ca7c56556432c33adb77da765022ae1d4589c.tar.gz
nixpkgs-4f9ca7c56556432c33adb77da765022ae1d4589c.tar.bz2
nixpkgs-4f9ca7c56556432c33adb77da765022ae1d4589c.tar.lz
nixpkgs-4f9ca7c56556432c33adb77da765022ae1d4589c.tar.xz
nixpkgs-4f9ca7c56556432c33adb77da765022ae1d4589c.tar.zst
nixpkgs-4f9ca7c56556432c33adb77da765022ae1d4589c.zip
Common lisp update (#142209)
quicklisp: 2021-02-13 -> 2021-08-07
lispPackages: regenerate from fresher Quicklisp
sbcl: 2.1.2 -> 2.1.9 (switch default version)
lispPackages.mgl, lispPackages.mgl-mat: init
lispPackages.iolib: suppress network-reliant tests
lispPackages.esrap: apply upstream SBCL 2.1.9 compatibility patch

Removed packages caveman and clack-v1-compat that are removed.

Added more packages from Quicklisp.

* lisp-modules/shell.nix: Add openblas for MGL

* lisp-modules: Update README.txt

Mention that shell.nix needs to be updated when adding packages that
have external dependencies during package analysis, e.g. package :LLA that specifically wants to load libblas.so at compile-time.

* lisp-modules/define-package.nix: Fix package path deduplication

The deduplication of NIX_LISP_ASDF_PATHS was not working, apparently
due to a shell quoting bug causing the sort/uniq pipeline to run at
the wrong time. This is now deduplicated in a separate step.

This fixes a series problem where environments with many Lisp packages
would exhasut the available environment space on Linux, causing
obscure "too many arguments" error messages from the shell, because
the NIX_LISP_ASDF_PATHS list was bloated with ~90% duplicates.

Co-authored-by: Luke Gorrie <luke@nuddy.co>
Diffstat (limited to 'pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix')
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix30
1 files changed, 29 insertions, 1 deletions
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
index dbc57cb8d1f..157cf8302c8 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
@@ -51,6 +51,8 @@ in
     overrides = y: (x.overrides y) // {
       prePatch = ''
         sed 's|default \"libfixposix\"|default \"${pkgs.libfixposix}/lib/libfixposix\"|' -i src/syscalls/ffi-functions-unix.lisp
+        # Socket tests don't work because they try to access the internet
+        sed 's/(:file "sockets" :depends-on ("pkgdcl" "defsuites"))//' -i iolib.asd
       '';
     };
 
@@ -278,5 +280,31 @@ $out/lib/common-lisp/query-fs"
     (extraLispDeps (with quicklisp-to-nix-packages; [flexi-streams]));
   cl-gobject-introspection = addNativeLibs (with pkgs; [glib gobject-introspection]);
   generic-cl = x: { parasites = []; };
-  static-dispatch = x: { parasites = []; };
+  static-dispatch = x: {
+    overrides = y: (x.overrides y) // {
+      parasites = [];
+      # workaround for https://github.com/alex-gutev/static-dispatch/issues/12
+      postUnpack = ''
+        sed -e '/^(in-package / a (eval-when (:compile-toplevel :load-toplevel :execute)' \
+            -e '$a)' \
+            -i $sourceRoot/src/combin.lisp
+      '';
+    };
+  };
+  lla = addNativeLibs [ pkgs.openblas ];
+  esrap = x: {
+    overrides = y: (x.overrides y) // {
+      postPatch = ''
+        patch -p1 < ${
+          # Quicklisp 2021-08-07 packages an Esrap that doesn't build with SBCL 2.1.9.
+          # Therefore we pull patches from the Esrap repo to fix this.
+          # See https://github.com/scymtym/parser.common-rules/issues/1
+          pkgs.fetchurl {
+            url = https://github.com/scymtym/esrap/compare/4034df872c2b1b8e91adbccab491645c8138253b...c99c33a33ff58ca85e8ba73912eba45d458eaa72.diff;
+            sha256 = "sha256:1sg2mgzilmwj5kwlmx0s60wk2769c3mpqjl00ga2p74ra5hykvx8";
+          }}
+      '';
+    };
+  };
+#  cl-opengl = addNativeLibs [ pkgs.libGL pkgs.glfw ];
 }