4f9ca7c565
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> |
||
---|---|---|
.. | ||
asdf | ||
clwrapper | ||
from-quicklisp | ||
quicklisp-to-nix | ||
quicklisp-to-nix-output | ||
define-package.nix | ||
lisp-packages.nix | ||
openssl-lib-marked.nix | ||
quicklisp-to-nix-overrides.nix | ||
quicklisp-to-nix-systems.txt | ||
quicklisp-to-nix.nix | ||
quicklisp.sh | ||
README.txt | ||
shell.nix |
Want to add a package? There are 3 simple steps! 1. Add the needed system names to quicklisp-to-nix-systems.txt. 2. cd <path to quicklisp-to-nix-systems.txt> ; nix-shell --pure --run 'quicklisp-to-nix .' You might want to specify also the --cacheSystemInfoDir and --cacheFaslDir parameters to preserve some data between runs. For example, it is very useful when you add new packages with native dependencies and fail to specify the native dependencies correctly the first time. (Might be nice to ensure the cache directories exist) 3. Add native libraries and whatever else is needed to quicklisp-to-nix-overrides.nix. If libraries are needed during package analysis then add them to shell.nix, too. 4. Sometimes there are problems with loading implementation-provided systems. In this case you might need to add more systems in the implementation's (so SBCL's) entry into *implementation-systems* in quicklisp-to-nix/system-info.lisp To update to a more recent quicklisp dist modify lispPackages.quicklisp to have a more recent distinfo. quicklisp-to-nix-system-info is responsible for installing a quicklisp package into an isolated environment and figuring out which packages are required by that system. It also extracts other information that is readily available once the system is loaded. The information produced by this program is fed into quicklisp-to-nix. You usually don't need to run this program unless you're trying to understand why quicklisp-to-nix failed to handle a system. The technique used by quicklisp-to-nix-system-info is described in its source. quicklisp-to-nix is responsible for reading quicklisp-to-nix-systems.txt, running quicklisp-to-nix-system-info, and generating the nix packages associated with the closure of quicklisp systems.