diff options
Diffstat (limited to 'gnu/packages/lisp-xyz.scm')
-rw-r--r-- | gnu/packages/lisp-xyz.scm | 533 |
1 files changed, 455 insertions, 78 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 05fa38ac02..6ee8ef22d2 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -41,6 +41,8 @@ ;;; Copyright © 2023 ykonai <mail@ykonai.net> ;;; Copyright © 2023 Gabriel Hondet <gabriel.hondet@cominety.net> ;;; Copyright © 2023 Raven Hallsby <karl@hallsby.com> +;;; Copyright © 2024 Michal Atlas <michal_atlas+git@posteo.net> +;;; Copyright © 2024 Carlo Zancanaro <carlo@zancanaro.id.au> ;;; ;;; This file is part of GNU Guix. ;;; @@ -87,6 +89,7 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages game-development) + #:use-module (gnu packages gcc) #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) @@ -1071,7 +1074,7 @@ options, e.g., by looking up an external key/value store (define-public sbcl-command-line-args (package (name "sbcl-command-line-args") - (version "0.0.0") + (version "0.1.1") (source (origin (method git-fetch) @@ -1080,12 +1083,13 @@ options, e.g., by looking up an external key/value store (commit (string-append "v" version)))) (file-name (git-file-name "cl-command-line-args" version)) (sha256 - (base32 "01p52zxr1b49c15ichlc3zadd1mrmwxzria53j949ayl2j6k8w1b")))) + (base32 "140xnz2v0v3hfg3dp2fhidw8ns6lxd3a5knm07wqdp48ksg119wy")))) (build-system asdf-build-system/sbcl) (arguments '(#:asd-systems '("whereiseveryone.command-line-args"))) (inputs (list sbcl-alexandria + sbcl-charje.documentation sbcl-cl-str sbcl-serapeum sbcl-trivia)) @@ -3483,7 +3487,7 @@ also be supported.") (define-public sbcl-ironclad (package (name "sbcl-ironclad") - (version "0.59") + (version "0.60") (source (origin (method git-fetch) @@ -3491,7 +3495,7 @@ also be supported.") (url "https://github.com/sharplispers/ironclad/") (commit (string-append "v" version)))) (sha256 - (base32 "02abwy59v9hfdl2ya4h6l2hc1xrnvqlxzg9vlk87wmi92azpa8v9")) + (base32 "122ldxiddkscb3li5wjrppr7vyn77znyjfgs8pbflrskzyxlabdd")) (file-name (git-file-name "cl-ironclad" version)))) (build-system asdf-build-system/sbcl) (native-inputs @@ -10528,6 +10532,37 @@ for more information.") (define-public ecl-documentation-utils-extensions (sbcl-package->ecl-package sbcl-documentation-utils-extensions)) +(define-public sbcl-charje.documentation + (package + (name "sbcl-charje.documentation") + (version "0.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~charje/documentation") + (commit (string-append "v" version)))) + (sha256 + (base32 + "149r9qdz5dyxsamhf5miaa9njr7kn7nc0ic448k133rs3nnwagqc")) + (file-name (git-file-name "cl-charje.documentation" version)))) + (build-system asdf-build-system/sbcl) + (inputs + (list sbcl-alexandria)) + (home-page "https://git.sr.ht/~charje/documentation") + (synopsis "Docstring parsing library for Common Lisp") + (description "Charje.documentation can used to parse Common Lisp +docstrings the charje way, or it can be used to create custom docstring +parsers. Docstring parsers are composed using mixin classes and +initialization methods.") + (license license:agpl3+))) + +(define-public cl-charje.documentation + (sbcl-package->cl-source-package sbcl-charje.documentation)) + +(define-public ecl-charje.documentation + (sbcl-package->ecl-package sbcl-charje.documentation)) + (define-public sbcl-staple (let ((commit "0ee8e25fe6fe8fa83b2a6c93d4febd468c3eaa4e") (revision "1")) @@ -10675,8 +10710,8 @@ functions for arrays and vectors. Originally from Plump.") (sbcl-package->ecl-package sbcl-array-utils)) (define-public sbcl-lass - (let ((commit "a7a4452f6a670b8fb01a73d3007030d16bd1ec2c") - (revision "0")) + (let ((commit "1f2418dbf2d8d6f5892171057616b2ca9d6e5008") + (revision "1")) (package (name "sbcl-lass") (version (git-version "0.6.0" revision commit)) @@ -10689,7 +10724,7 @@ functions for arrays and vectors. Originally from Plump.") (commit commit))) (file-name (git-file-name "cl-lass" version)) (sha256 - (base32 "06wds1qzj8s862pmmza1427n7gdpplqplxqnxyqkrr0hgxdl4xbf")))) + (base32 "1wax2kykc9ff0sk2linp9v8fcsm5ay6idpq365vivady9fh504r5")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-cl-base64 sbcl-trivial-indent sbcl-trivial-mimes)) @@ -11517,6 +11552,42 @@ may contain sets, maps may be keyed by sets, etc.") ;; Tests fails on ECL with "The function FSET::MAKE-CHAR is undefined". '(#:tests? #f)))) +(define-public sbcl-modf + (let ((commit "dea93fe62c6bf7f66f32f52ac0c555aedbf7abad") + (revision "0")) + (package + (name "sbcl-modf") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/smithzvk/modf") + (commit commit))) + (file-name (git-file-name "cl-modf" version)) + (sha256 + (base32 + "1aap7ldy7lv942khp026pgndgdzfkkqa9xcq1ykinrmflrgdazay")))) + (build-system asdf-build-system/sbcl) + (inputs + (list sbcl-alexandria + sbcl-closer-mop + sbcl-iterate)) + (native-inputs + (list sbcl-stefil)) + (home-page "https://github.com/smithzvk/modf") + (synopsis "SETF like macro for functional programming in Common Lisp") + (description "This library simplifies functional programming in Common +Lisp by making it easier to make new data structures with specified changes in +place.") + (license license:bsd-3)))) + +(define-public cl-modf + (sbcl-package->cl-source-package sbcl-modf)) + +(define-public ecl-modf + (sbcl-package->ecl-package sbcl-modf)) + (define-public sbcl-cl-cont (let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a") (revision "1")) @@ -15411,71 +15482,71 @@ functions.") (sbcl-package->ecl-package sbcl-cl-dejavu)) (define-public sbcl-mcclim - (let ((commit "ece91cf035e2ccb1c6eb0bb867ae2bc45f627982") - (revision "3")) - (package - (name "sbcl-mcclim") - (version (git-version "0.9.7" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://codeberg.org/McCLIM/McCLIM") - (commit commit))) - (file-name (git-file-name "cl-mcclim" version)) - (sha256 - (base32 "0prn4f0nz604ykcg8004f1vndgjm7181wrlblq6mhasphca28c2k")))) - (build-system asdf-build-system/sbcl) - (native-inputs - (list sbcl-fiveam pkg-config)) - (inputs - (list fontconfig - freetype - harfbuzz - sbcl-alexandria - sbcl-babel - sbcl-bordeaux-threads - sbcl-cffi - sbcl-cl-base64 - sbcl-cl-dejavu - sbcl-cl-freetype2 - sbcl-cl-pdf - sbcl-cl-unicode - sbcl-cl-vectors - sbcl-cl-who - sbcl-closer-mop - sbcl-clx - sbcl-flexi-streams - sbcl-flexichain - sbcl-log4cl - sbcl-opticl - sbcl-slime-swank - sbcl-spatial-trees - sbcl-trivial-features - sbcl-trivial-garbage - sbcl-trivial-gray-streams - sbcl-zpb-ttf)) - (arguments - '(#:asd-systems '("mcclim" - "clim-examples" - ;; clim-debugger is required by cleavir. - "clim-debugger") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "Extensions/fontconfig/src/functions.lisp" - (("libfontconfig\\.so") - (search-input-file inputs "/lib/libfontconfig.so"))) - (substitute* "Extensions/harfbuzz/src/functions.lisp" - (("libharfbuzz\\.so") - (search-input-file inputs "/lib/libharfbuzz.so")))))))) - (home-page "https://mcclim.common-lisp.dev/") - (synopsis "Common Lisp GUI toolkit") - (description - "McCLIM is an implementation of the @emph{Common Lisp Interface Manager + (package + (name "sbcl-mcclim") + (version "0.9.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://codeberg.org/McCLIM/McCLIM") + (commit (string-append version "-yule")))) + (file-name (git-file-name "cl-mcclim" version)) + (sha256 + (base32 "0gbi61jnnsz6fvhv18mf57jkq46bvcd0355vqdcnrni7xyi10sk8")))) + (build-system asdf-build-system/sbcl) + (native-inputs + (list sbcl-fiveam pkg-config)) + (inputs + (list fontconfig + freetype + harfbuzz + sbcl-alexandria + sbcl-babel + sbcl-bordeaux-threads + sbcl-cffi + sbcl-cl-base64 + sbcl-cl-dejavu + sbcl-cl-freetype2 + sbcl-cl-pdf + sbcl-cl-unicode + sbcl-cl-vectors + sbcl-cl-who + sbcl-closer-mop + sbcl-cluffer + sbcl-clx + sbcl-flexi-streams + sbcl-flexichain + sbcl-log4cl + sbcl-lorem-ipsum + sbcl-opticl + sbcl-slime-swank + sbcl-spatial-trees + sbcl-trivial-features + sbcl-trivial-garbage + sbcl-trivial-gray-streams + sbcl-zpb-ttf)) + (arguments + '(#:asd-systems '("mcclim" + "clim-examples" + ;; clim-debugger is required by cleavir. + "clim-debugger") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Extensions/fontconfig/src/functions.lisp" + (("libfontconfig\\.so") + (search-input-file inputs "/lib/libfontconfig.so"))) + (substitute* "Extensions/harfbuzz/src/functions.lisp" + (("libharfbuzz\\.so") + (search-input-file inputs "/lib/libharfbuzz.so")))))))) + (home-page "https://mcclim.common-lisp.dev/") + (synopsis "Common Lisp GUI toolkit") + (description + "McCLIM is an implementation of the @emph{Common Lisp Interface Manager specification}, a toolkit for writing GUIs in Common Lisp.") - (license license:lgpl2.1+)))) + (license license:lgpl2.1+))) (define-public cl-mcclim (sbcl-package->cl-source-package sbcl-mcclim)) @@ -17025,11 +17096,11 @@ latitude/longitude and MGRS.") (sbcl-package->ecl-package sbcl-mgrs)) (define-public sbcl-maidenhead - (let ((commit "202671f39a4c90c18016123685705533d43ccde6") + (let ((commit "4b9c38e4845dda56ae7fb0355c5260c9ade0ac12") (revision "1")) (package (name "sbcl-maidenhead") - (version (git-version "1.0" revision commit)) + (version (git-version "1.1" revision commit)) (source (origin (method git-fetch) @@ -17038,7 +17109,7 @@ latitude/longitude and MGRS.") (commit commit))) (file-name (git-file-name "cl-maidenhead" version)) (sha256 - (base32 "0bkw31jibx4sh2086jgsw4rvaz3i1dmycbwp203rjj78x7wz9743")))) + (base32 "10pcx2ngyj6lkfbg1b58lzcm02xl1a3smnad5lvvw30pbalwcq46")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-fiveam)) @@ -20540,6 +20611,312 @@ most modern systems and compilers.") (define-public cl-3d-quaternions (sbcl-package->cl-source-package sbcl-3d-quaternions)) +(define-public sbcl-interface + (let ((commit "6d8bd74214053debcbc0b174d65ea73c271c1563") + (revision "0")) + (package + (name "sbcl-interface") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stylewarning/interface") + (commit commit))) + (file-name (git-file-name "cl-interface" version)) + (sha256 + (base32 "0h1bckhyig2znl6nrd3agjzz7knrm2kyh2vfyk7j60kzki9rpzxy")))) + (build-system asdf-build-system/sbcl) + (inputs (list sbcl-alexandria sbcl-global-vars)) + (synopsis "System for defining interfaces") + (description + "This library contains an implementation of interfaces and +implementations. They're sometimes called protocols in other +languages. Broadly speaking, an @emph{interface} is some collection of +function @emph{prototypes} that a valid implementation must implement.") + (home-page "https://github.com/stylewarning/interface") + (license license:bsd-3)))) + +(define-public ecl-interface + (sbcl-package->ecl-package sbcl-interface)) + +(define-public cl-interface + (sbcl-package->cl-source-package sbcl-interface)) + +(define-public sbcl-cl-syslog + (let ((commit "d5d46f777f0735938e6f650cf17d814b88b70305") + (revision "0")) + (package + (name "sbcl-cl-syslog") + (version (git-version "0.2.4" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mmaul/cl-syslog") + (commit commit))) + (file-name (git-file-name "cl-syslog" version)) + (sha256 + (base32 "1qcz55jiqwk91b01hsahxnha884f6zf2883j2m51sqph0mvj69mh")))) + (build-system asdf-build-system/sbcl) + (inputs + (list sbcl-alexandria + sbcl-babel + sbcl-cffi + sbcl-global-vars + sbcl-local-time + sbcl-split-sequence + sbcl-usocket)) + (arguments + (list #:tests? #f)) + (synopsis "Common Lisp interface to local and remote Syslog facilities") + (description "@code{cl-syslog} is a Common Lisp library that provides +access to the syslog logging facility.") + (home-page "https://cl-syslog.common-lisp.dev/") + (license license:bsd-3)))) + +(define-public ecl-cl-syslog + (sbcl-package->ecl-package sbcl-cl-syslog)) + +(define-public cl-syslog + (sbcl-package->cl-source-package sbcl-cl-syslog)) + +(define-public sbcl-alexa + (package + (name "sbcl-alexa") + (version "2.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/quil-lang/alexa") + (commit (string-append "v" version)))) + (file-name (git-file-name "cl-alexa" version)) + (sha256 + (base32 "1y9jyz9gfmd02h492kf7v3mmpbhc0yfh4ka2rzd1vczq6fl8qgqv")))) + (build-system asdf-build-system/sbcl) + (native-inputs (list sbcl-fiasco)) + (inputs (list sbcl-alexandria sbcl-cl-ppcre)) + (synopsis "Lexical Analyzer Generator for Common Lisp") + (description + "ALEXA is a tool similar to lex or flex for generating lexical analyzers. +Unlike tools like lex, however, ALEXA defines a domain-specific language +within your Lisp program, so you don't need to invoke a separate tool.") + (home-page "https://github.com/quil-lang/alexa") + (license license:bsd-3))) + +(define-public ecl-alexa + (sbcl-package->ecl-package sbcl-alexa)) + +(define-public cl-alexa + (sbcl-package->cl-source-package sbcl-alexa)) + +(define-public sbcl-metering + (let ((commit "62dbaa5e8d29d2f213b881d740114941c2c3d1be") + (revision "0")) + (package + (name "sbcl-metering") + (version (git-version "3.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.common-lisp.net/dkochmanski/metering") + (commit commit))) + (file-name (git-file-name "cl-metering" version)) + (sha256 + (base32 "0jx3ypk8m815yp7208xkcxkvila847mvna25a2p22ihnj0ms9rn1")))) + (build-system asdf-build-system/sbcl) + (native-inputs (list sbcl-fiveam)) + (synopsis "Common Lisp code profiling tool") + (description + "The Metering System is a portable Common Lisp code profiling tool. +It gathers timing and consing statistics for specified functions while +a program is running.") + (home-page "https://gitlab.common-lisp.net/dkochmanski/metering") + (license license:public-domain)))) + +(define-public ecl-metering + (sbcl-package->ecl-package sbcl-metering)) + +(define-public cl-metering + (sbcl-package->cl-source-package sbcl-metering)) + +(define-public sbcl-cl-grnm + (let ((commit "778a312e9eb3d3de7541457b516ea3d9055a15aa") + (revision "0")) + (package + (name "sbcl-cl-grnm") + (version (git-version "0.1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/quil-lang/cl-grnm") + (commit commit))) + (file-name (git-file-name "cl-grnm" version)) + (sha256 + (base32 "1hb5n37n3x2ylrghcqsia2g9a6f5wg24l659jiz4ncpi5bsv4m3s")))) + (build-system asdf-build-system/sbcl) + (synopsis "Common Lisp implementation of (grid restrained) Nelder-Mead") + (description + "These common lisp sources contain two variants of the Nelder-Mead +algorithm. The original algorithm and a provably convergent, reliable variant +by A. Bürmen et al, called the +@acronym{GRNMA, Grid Restrained Nelder Mead Algorithm}.") + (home-page "https://github.com/quil-lang/cl-grnm") + (license license:expat)))) + +(define-public ecl-cl-grnm + (sbcl-package->ecl-package sbcl-cl-grnm)) + +(define-public cl-grnm + (sbcl-package->cl-source-package sbcl-cl-grnm)) + +(define-public sbcl-priority-queue + (let ((commit "011b8d52ef7ba7f8e6bc26608eedef222b38aaa8") + (revision "0")) + (package + (name "sbcl-priority-queue") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dsorokin/priority-queue") + (commit commit))) + (file-name (git-file-name "cl-priority-queue" version)) + (sha256 + (base32 "0y5a1fid8xzzl58hfdj64n8mrzq0kr06a0lnmdjpgi0czc3x0jcy")))) + (build-system asdf-build-system/sbcl) + (synopsis "Priority queue for Common Lisp") + (description "This package provides a priority queue implemented with +an array-based heap.") + (home-page "https://github.com/dsorokin/priority-queue") + (license license:expat)))) + +(define-public ecl-priority-queue + (sbcl-package->ecl-package sbcl-priority-queue)) + +(define-public cl-priority-queue + (sbcl-package->cl-source-package sbcl-priority-queue)) + +(define-public sbcl-cl-messagepack + (let ((commit "8ff2060ed20677feef8ac01558690df0aeac30b6") + (revision "0")) + (package + (name "sbcl-cl-messagepack") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mbrezu/cl-messagepack") + (commit commit))) + (file-name (git-file-name "cl-messagepack" version)) + (sha256 + (base32 "1hjd1q18lz46k46afz94ljflp76mfr30d6z4jrsgd26y2lc4gchc")))) + (build-system asdf-build-system/sbcl) + (native-inputs (list sbcl-cl-json sbcl-fiveam)) + (inputs (list sbcl-babel sbcl-closer-mop sbcl-flexi-streams)) + (synopsis "Common Lisp implementation of MessagePack") + (description + "This is a Common Lisp implementation of the MessagePack +(@url{http://msgpack.org/}) serialization/deserialization format, +implemented according to +@url{http://wiki.msgpack.org/display/MSGPACK/Format+specification}.") + (home-page "https://github.com/mbrezu/cl-messagepack") + (license license:bsd-2)))) + +(define-public ecl-cl-messagepack + (sbcl-package->ecl-package sbcl-cl-messagepack)) + +(define-public cl-messagepack + (sbcl-package->cl-source-package sbcl-cl-messagepack)) + +(define-public sbcl-cl-permutation + (let ((commit "20c10e9ca56452d2fafc3ec0984dcdf78b4f4b19") + (revision "0")) + (package + (name "sbcl-cl-permutation") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stylewarning/cl-permutation") + (commit commit))) + (file-name (git-file-name "cl-permutation" version)) + (sha256 + (base32 "0i932g0k50y24hxizni6zfya4kcw77yk3b0llivm9g50s7fxj9dk")))) + (build-system asdf-build-system/sbcl) + (native-inputs (list sbcl-fiasco)) + (inputs + (list sbcl-alexandria + sbcl-bordeaux-fft + sbcl-cl-algebraic-data-type + sbcl-cl-cont + sbcl-closer-mop + sbcl-iterate + sbcl-priority-queue)) + (synopsis "Permutations and permutation groups in Common Lisp") + (description + "This is a Commin Lisp library for operating on permutations and +permutation groups.") + (home-page "https://github.com/stylewarning/cl-permutation") + (license license:bsd-3)))) + +(define-public ecl-cl-permutation + (sbcl-package->ecl-package sbcl-cl-permutation)) + +(define-public cl-permutation + (sbcl-package->cl-source-package sbcl-cl-permutation)) + +(define-public sbcl-magicl + (package + (name "sbcl-magicl") + (version "0.9.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/quil-lang/magicl") + (commit (string-append "v" version)))) + (file-name (git-file-name "cl-magicl" version)) + (sha256 + (base32 "0x9p55qin399jhr5md88nij8fv78b64xjhww7ys364pkjnx8ak9v")))) + (build-system asdf-build-system/sbcl) + (native-inputs (list gfortran sbcl-fiasco)) + (inputs + (list lapack + sbcl-alexandria + sbcl-abstract-classes + sbcl-cffi + sbcl-interface + sbcl-policy-cond + sbcl-static-vectors + sbcl-trivial-garbage)) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/extensions/blas/load-libs.lisp" + (("libblas.so") + (search-input-file inputs "/lib/libblas.so"))) + (substitute* "src/extensions/lapack/load-libs.lisp" + (("liblapack.so") + (search-input-file inputs "/lib/liblapack.so")))))))) + (synopsis "Matrix Algebra proGrams In Common Lisp") + (description + "This package provides matrix algebra functions for Common Lisp.") + (home-page "https://github.com/quil-lang/magicl") + (license license:bsd-3))) + +(define-public cl-magicl + (sbcl-package->cl-source-package sbcl-magicl)) + (define-public sbcl-messagebox (let ((commit "ea3688d9a9954bee7079c0173bc7b3f327021e9f") (revision "1")) @@ -21536,8 +21913,8 @@ Common Lisp.") (sbcl-package->cl-source-package sbcl-metacopy)) (define-public sbcl-legit - (let ((commit "5f8a2d4c4f5fb8e53340eeef600433ee20e03fbe") - (revision "2")) + (let ((commit "9c677b9b798803d37ab6f5e0e0705441872f7230") + (revision "3")) (package (name "sbcl-legit") (version (git-version "1.0.0" revision commit)) @@ -21547,9 +21924,9 @@ Common Lisp.") (uri (git-reference (url "https://github.com/Shinmera/legit") (commit commit))) - (file-name (git-file-name name version)) + (file-name (git-file-name "cl-legit" version)) (sha256 - (base32 "0crr7ya7dg15di7glk3w9sgf6j8dmny347gynmxxrdvjj9pa906m")))) + (base32 "0jy021ywrbnkgbgb63ip6j7kr40m4wz2pz1v5ybn6xkkn6dyprsz")))) (build-system asdf-build-system/sbcl) (arguments `(#:phases |