gnu: stringtemplate4: Inherit from java-stringtemplate-3. * gnu/packages/java.scm (stringtemplate4)[inherit]: Add "java-stringtemplate-3" as parent. [home-page, synopsis, description, license]: Inherit from parent.
gnu: java-stringtemplate-3: Use return value in build phase. * gnu/packages/java.scm (java-stringtemplate-3)[arguments]: Let build phase "generate-grammar" return success or failure.
gnu: java-stringtemplate-3: Enable tests. * gnu/packages/java.scm (java-stringtemplate-3)[arguments]: Enable tests; add build phase to fix tests.
gnu: java-stringtemplate-3: Do not hardcode version string. * gnu/packages/java.scm (java-stringtemplate-3)[arguments]: Take current version string.
gnu: Rename stringtemplate3 to java-stringtemplate-3. * gnu/packages/java.scm (stringtemplate3): Replace this... (java-stringtemplate-3): ...with this. [name]: Change to "java-stringtemplate". (stringtemplate4)[inputs]: Adjust accordingly. (stringtemplate4-4.0.6)[inputs]: Likewise. (antlr3)[inputs, propagated-inputs]: Likewise. (antlr3-3.3)[propagated-inputs, arguments]: Likewise. (antlr3-3.1)[propagated-inputs]: Likewise.
doc: Update the documentation for the asdf build systems. * doc/guix.texi (Build Systems): Remove the no-longer relevant parts about naming inputs. Add documentation for the new parameters #:asd-system-name and #:test-asd-file.
build-system/asdf: Handle tests defined in external systems. * guix/build-system/asdf.scm (asdf-build): Add a #:test-asd-file argument. [builder]: Pass it to the build system. (package-with-build-system)[transform]: Strip it from source systems' arguments. * guix/build/asdf-build-system.scm (check): Pass the fully qualified path to it on to the test-system procedure. * guix/build/lisp-utils.scm (test-system): Load the file, or otherwise one of the often used names for it, before running the tests. Adjust the docstring accordingly.
gnu: sbcl-slynk-boot0: Give the package an appropriate name. * gnu/packages/lisp.scm (sbcl-slynk-boot0)[name]: Change it to reflect the bootstrap status of the package. [arguments]<#:asd-system-name>: Add the appropriate value. (sbcl-slynk-arglists)[arguments]: Set the appropriate #:asd-file and forcibly unset #:asd-system-name. (sbcl-slynk)[name]: Change it to the variable name. (cl-slynk)[name]: Likewise.
build-system/asdf: Retain references to source files for binary outputs. In support of long-running programs in which the users would like to be able to jump to the source of a definition of any of the dependencies (itself included) of the program. * guix/build/asdf-build-system.scm (library-outputs): Move from here ... * guix/build/lisp-utils.scm (library-outputs): ... to here. (build-program): Accept dependency-prefixes argument, to allow the caller to specify references which should be retained. Default to the library's output. (build-image): Likewise. (generate-executable): Likewise. * gnu/packages/lisp.scm (sbcl-stumpwm+slynk, sbcl-slynk, sbcl-stumpwm): Adjust accordingly to the new interface. (sbcl-stumpwm+slynk)[native-inputs]: Move to ... [inputs]: ... here.
build-system/asdf: Simplify the use of lisp-eval-program. Accept a list of statements, each run within its own `--eval' argument. This allows statements to use reader package namespacing after a package has been loaded. * guix/build/lisp-utils.scm (spread-statements): New procedure. (lisp-invoke): Rename to ... (lisp-invocation): ... this. Use spread-statements. Change interface to accept list of statements instead of a single statement. (asdf-load-all-systems): Simplify returned statements. (compile-system): Simplify the program passed to `lisp-eval-program'. (test-system): Likewise. (generate-executable-for-system): Likewise. Accept the full symbol describing the asdf operation to use. (generate-executable): Document the change. (build-program, build-image): Use the new interface.
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.