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>
30 lines
1.7 KiB
Text
30 lines
1.7 KiB
Text
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.
|