gnu: Add cl-unicode. * gnu/packages/lisp.scm (sbcl-cl-unicode-base, sbcl-cl-unicode) (ecl-cl-unicode, cl-unicode): New variables. Co-Authored-By: Andy Patterson <ajpatter@uwarerloo.ca>
build-system/asdf: Handle unusually-named systems. * guix/build/lisp-utils.scm (valid-char-set): New variable. (normalize-string): New procedure. (compiled-system): Truncate the name of a system which contains slashes. (generate-system-definition, make-asd-file): Use `normalize-string' to alter the names of the created system and its dependencies. * guix/build/asdf-build-system.scm (create-asd-file): Normalize the name of the asd file being created.
build-system/asdf: Always pre-load the system's definition file. * guix/build-system/asdf.scm (asdf-build)[builder]: Pass a default `#:asd-file' argument to the build procedure, using the system's name. * guix/build/asdf-build-system.scm (build, check): Adjust to assume that `asd-file' will always be a string. * guix/build/lisp-utils.scm (compile-system, system-dependencies) (test-system): Likewise.
build-system/asdf: Pass the system name as an argument to the builder. * guix/build-system/asdf.scm (asdf-build): Use the user-defined system name, or calculate it from the package's full name. [builder]: Pass the value along to the build procedure. (package-with-build-system): Remove #:asd-system-name from source packages' arguments. * guix/build/asdf-build-system.scm: Adjust accordingly. * guix/build/lisp-utils.scm (remove-lisp-from-name): Delete variable.
build-system/asdf: Parameterize the lisp type and implementation globally. * guix/build-system/asdf.scm (asdf-build)[builder]: Parameterize %lisp-type and %lisp before invoking the build procedure. Don't pass #:lisp-type as an argument to said procedure. * guix/build/asdf-build-system.scm: Adjust accordingly. (source-install-prefix): Rename to %lisp-source-install-prefix. * guix/build/lisp-utils.scm: Adjust accordingly. (%lisp-type): New parameter. (bundle-install-prefix): Rename to %bundle-install-prefix. * gnu/packages/lisp.scm: Adjust accordingly.
build-system/asdf: Make #:lisp a package argument. * guix/build-system/asdf.scm (lower): Change argument name to `lisp-type'. (asdf-build): Change argument name to `lisp-type'. Remove `lisp' as an argument to the returned procedure. Change the argument passed to build phases to `lisp-type'. * guix/build/asdf-build-system.scm (copy-source, build, check) (create-asd-file, symlink-asd-files, cleanup-files, strip): Respect `lisp-type` argument. * gnu/packages/lisp.scm (sbcl-stumpwm, sbcl-stumpwm+slynk): Likewise.
build-system/asdf: Keep ecl's generated archive files. This may be necessary to produce programs or images with ecl. * guix/build/asdf-build-system.scm (cleanup-files): Don't delete .a files.
build-system/asdf: Don't rename inputs. * guix/build-system/asdf.scm (package-with-build-system)[transform]: Use updated `new-inputs' procedure for inputs and native-inputs. <rewrite>: Don't rename inputs. <new-propagated-inputs>: Draw from package-inputs and package-native-inputs for source packages. Use the original package's propagated-inputs otherwise. <new-inputs>: Convert into a function to be used to transform inputs and native-inputs. * gnu/packages/lisp.scm (sbcl-fiveam, sbcl-bordeaux-threads) (sbcl-flexi-streams, sbcl-cl-ppcre, sbcl-stumpwm, sbcl-slynk-arglists) (sbcl-slynk-fancy-inspector): Don't prefix input names.
build-system/asdf: Use asdf to determine dependencies. This removes the need for conventions to determine which inputs are run-time dependencies, and also the need to specify "special" dependencies. * guix/build/lisp-utils.scm (patch-asd-file, lisp-dependencies) (wrap-perform-method): Remove them. (inputs->asd-file-map, system-dependencies, generate-system-definition) (generate-dependency-links, make-asd-file): New procedures. (lisp-eval-program): Add an error if no lisp matches. (compile-system): Don't use asdf's in-built asd-file generator.
gnu: cl-stumpwm: Build the library in "lib" and the program in "bin". * gnu/packages/lisp.scm (sbcl-stumpwm)[outputs]: Remove "bin" and add "lib". [arguments]<#:phases>: Change the target of `build-program' to the "out" output. Likewise, change the target of the desktop file generation. (sbcl-stumpwm+slynk)[inputs]: Use the "lib" output of sbcl-stumpwm.
build-system/asdf: Make it possible to use "lib" as the build output. * guix/build/asdf-build-system.scm (library-output): New procedure. (copy-source, build, check, patch-asd-files, symlink-asd-files) (cleanup-files): Use it. (copy-files-to-output): Rework to take an output instead of an outputs and string pair. (install, copy-source): Use the new method.
build-system/asdf: Rename %install-prefix to %source-install-prefix. * guix/build/lisp-utils.scm (%install-prefix): Rename to %source-install-prefix. (build-install-prefix): Use it. * guix/build/asdf-build-system.scm (source-install-prefix) (%system-install-prefix, source-directory, copy-source): Likewise.
gnu: cl-slynk: Explain some naming choices. * gnu/packages/lisp.scm (sbcl-slynk-boot0): Add comments explaining its purpose and the reason its package-name must differ from its name.
gnu: cl-slynk: Clarify the description. * gnu/packages/lisp.scm (sbcl-slynk-boot0)[description]: Describe slime.
gnu: guix: Update snapshot. * gnu/packages/package-management.scm (guix): Update to ce92d26.
scripts: system: Display bootloader name in "list-generations". * guix/scripts/system.scm (display-system-generation): Display bootloader name.
scripts: system: Adapt "switch-generation" to new bootloader API. * guix/scripts/system.scm (reinstall-grub): Rename to reinstall-bootloader. Read boot-device and boot-type from parameters file to be able to restore the correct bootloader on specified device. Factorize bootloader installation code by calling install-bootloader. (system-bootloader-name): New procedure. (switch-to-system-generation): Adapt.
scripts: system: Adapt "init" to new bootloader API. * guix/scripts/system.scm (install): Pass installer a new argument. Rename other arguments. Call install-bootloader instead of install-grub*. (perform-action): Adapt.
scripts: system: Adapt "reconfigure" to new bootloader API. * guix/scripts/system.scm (install-grub*): Rename to install-bootloader. Use keys to pass arguments. Pass a new argument, "installer-drv" which is a script in store dealing with bootloader-specific install actions. Also call "install-boot-config" to install the bootloader config file. (install-bootloader-derivation): New procedure. It returns a derivation that builds a file containing "install-procedure" gexp. (perform-action): Build install-proc derivation and call install-bootloader with the resulting file. Stop adding GRUB to PATH as bootloaders are called in install-proc with direct store paths.
bootloader: Add bootloader name to boot-parameters record. * gnu/system.scm (<boot-parameters>)[name]: New field. (boot-parameters-boot-name): Ditto. (operating-system-boot-parameters-file): Add new field. (operating-system-boot-parameters): Ditto. (read-boot-parameters): Ditto.