mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-04-06 21:20:33 +02:00
records: Let thunked fields refer to their inherited value.
* guix/records.scm (make-syntactic-constructor)[field-index]: New procedure.
[wrap-field-value]: Add optional argument ‘parent’. When it is true, bind F
to the inherited field value.
[field-bindings/inheritance]: New procedure.
Use it.
* tests/records.scm ("define-record-type* & thunked & no inherited value")
("define-record-type* & thunked & inherited value")
("define-record-type* & thunked & inherited value & this-record"): New tests.
* doc/guix.texi (Defining Package Variants): Update ‘modify-inputs’ example to
refer to ‘inputs’.
(Writing Manifests): Likewise.
* doc/guix-cookbook.texi (Package Variants): Likewise for
‘substitute-keyword-arguments’.
Fixes: https://issues.guix.gnu.org/50335
Change-Id: If4e18155ce203637ff9e116ee8098f8997bfebe2
This commit is contained in:
@@ -8800,14 +8800,15 @@ dependency like so:
|
||||
(define gdb-sans-guile
|
||||
(package
|
||||
(inherit gdb)
|
||||
(inputs (modify-inputs (package-inputs gdb)
|
||||
(inputs (modify-inputs inputs
|
||||
(delete "guile")))))
|
||||
@end lisp
|
||||
|
||||
The @code{modify-inputs} form above removes the @code{"guile"} package
|
||||
from the @code{inputs} field of @code{gdb}. The @code{modify-inputs}
|
||||
macro is a helper that can prove useful anytime you want to remove, add,
|
||||
or replace package inputs.
|
||||
In the body of the @code{inputs} field above, @code{inputs} is bound to
|
||||
the inherited value. Thus, the @code{modify-inputs} form above removes
|
||||
the @code{"guile"} package from the @code{inputs} field of @code{gdb}.
|
||||
The @code{modify-inputs} macro is a helper that can prove useful anytime
|
||||
you want to remove, add, or replace package inputs.
|
||||
|
||||
@defmac modify-inputs inputs clauses
|
||||
Modify the given package inputs, as returned by @code{package-inputs} & co.,
|
||||
@@ -9131,7 +9132,7 @@ these lines:
|
||||
(define gdb-sans-guile
|
||||
(package
|
||||
(inherit gdb)
|
||||
(inputs (modify-inputs (package-inputs gdb)
|
||||
(inputs (modify-inputs inputs
|
||||
(delete "guile")))))
|
||||
|
||||
;; Return a manifest containing that one package plus Git.
|
||||
|
||||
Reference in New Issue
Block a user