Age | Commit message (Expand) | Author |
2017-01-16 | grafts: Preserve the cache across recursive calls....Before this commit, we'd lose the cache across recursive calls to
'cumulative-grafts', which isn't great performance-wise.
This bug was already present before
d38bc9a9f6feefc465964531520fee5663a12f48.
* guix/grafts.scm (with-cache): In the miss case, call 'current-state'
after EXP has been evaluated.
| Ludovic Courtès |
2017-01-16 | grafts: Actually cache grafts during the derivation DAG traversal....This fixes a regression introduced in
d38bc9a9f6feefc465964531520fee5663a12f48 whereby the cache was
effectively disabled.
Reported by Thomas Danckaert <thomas.danckaert@gmail.com>.
* guix/grafts.scm (with-cache): In the cache miss case, wrap body in
'mbegin'.
| Ludovic Courtès |
2017-01-04 | grafts: Move caching to a new 'with-cache' macro....* guix/grafts.scm (with-cache): New macro.
(cumulative-grafts)[return/cache]: Remove.
Use 'with-cache' instead.
| Ludovic Courtès |
2016-10-17 | grafts: Apply the right grafts in the presence of multiple outputs....Fixes <http://bugs.gnu.org/24712>.
* guix/grafts.scm (cumulative-grafts): Add grafts for all the outputs of
DRV.
* tests/grafts.scm ("graft-derivation, replaced derivation has multiple
outputs"): New test.
| Ludovic Courtès |
2016-10-15 | grafts: Remove unused variables and confusing monad use....* guix/grafts.scm (cumulative-grafts)[return/cache]: Use %STATE-MONAD,
not %STORE-MONAD.
Remove unused 'origins' variable and unnecessary inner 'cache'
variable.
| Ludovic Courtès |
2016-10-14 | grafts: 'graft-derivation' does now introduce grafts that shadow other grafts....Partly fixes <http://bugs.gnu.org/24418>.
* guix/grafts.scm (cumulative-grafts)[graft-origin?]: New procedure.
[dependency-grafts]: Use it in new 'if' around recursive call.
* tests/grafts.scm ("graft-derivation, grafts are not shadowed"): New test.
| Ludovic Courtès |
2016-05-25 | grafts: Create only one grafted variant of each derivation....Currently, with several grafts applicable to Inkscape, this makes:
guix gc -R $(guix build inkscape -d) | wc -l
go from 2376 to 2266 (4.6%).
* guix/grafts.scm (cumulative-grafts): Pass 'graft-derivation/shallow'
the subset of GRAFTS that applies to DRV.
| Ludovic Courtès |
2016-03-14 | grafts: Update the narinfo cache before building a derivation....* guix/grafts.scm (references-oracle)[references*]: Add call to
'substitution-oracle'.
| Ludovic Courtès |
2016-03-05 | grafts: Memoize intermediate results in 'cumulative-grafts'....The time for:
guix build inkscape -n --no-substitutes
goes down by 30% (in the presence of 3 replacements among all the
packages.)
* guix/grafts.scm (cumulative-grafts): Turn into a monadic procedure in
%STATE-MONAD. Use the current state as a derivation-to-graft cache.
(graft-derivation): Call 'cumulative-grafts' within 'run-with-state'.
| Ludovic Courtès |
2016-03-05 | grafts: Use dependency information from substitutes when possible....This avoids starting derivation builds just for the sake of knowing the
references of their outputs, thereby restoring the expected behavior of
--dry-run when substitutes are available.
* guix/grafts.scm (non-self-references): Remove 'store' parameter, and
add 'references'. Use it. Update caller.
(references-oracle): New variable.
(cumulative-grafts): Add 'references' parameter and use it. Update
callers.
(graft-derivation): Remove 'build-derivations' call. Add call to
'references-oracle'.
| Ludovic Courtès |
2016-03-01 | grafts: Graft recursively....Fixes <http://bugs.gnu.org/22139>.
* guix/grafts.scm (graft-derivation): Rename to...
(graft-derivation/shallow): ... this.
(graft-origin-file-name, item->deriver, non-self-references)
(cumulative-grafts, graft-derivation): New procedures
* tests/grafts.scm ("graft-derivation, grafted item is a direct
dependency"): Clarify title. Use 'grafted' instead of 'graft' to refer
to the grafted derivation.
("graft-derivation, grafted item is an indirect dependency")
("graft-derivation, no dependencies on grafted output"): New tests.
* guix/packages.scm (input-graft): Change to take a package instead of
an input.
(input-cross-graft): Likewise.
(fold-bag-dependencies): New procedure.
(bag-grafts): Rewrite in terms of 'fold-bag-dependencies'.
* tests/packages.scm ("package-derivation, indirect grafts"): Comment out.
* doc/guix.texi (Security Updates): Mention run-time dependencies and
recursive grafting.
| Ludovic Courtès |
2016-02-27 | grafts: Consider all the outputs in the graft mapping....Before that, outputs of a derivation could be left referring to the
ungrafted version of the derivation.
* guix/grafts.scm (graft-derivation)[outputs]: Change to a list of
name/file pairs.
* guix/grafts.scm (graft-derivation)[build]: Add 'old-outputs' variable
and use it when computing 'mapping'. Use 'mapping' directly.
* tests/grafts.scm ("graft-derivation, multiple outputs"): New test.
| Ludovic Courtès |
2016-02-27 | grafts: Slight simplification....* guix/grafts.scm (graft-derivation)[output-names]: Use
'derivation-output-names'.
| Ludovic Courtès |
2016-02-26 | grafts: Add record type printer....* guix/grafts.scm (write-graft): New procedure. Register it as a
printer for <graft>.
| Ludovic Courtès |
2016-02-22 | grafts: 'name' parameter of 'graft-derivation' is now optional....* guix/grafts.scm (graft-derivation): Name 'name' a keyword parameter.
* guix/packages.scm (package-derivation, package-cross-derivation):
Adjust accordingly.
* tests/grafts.scm ("graft-derivation"): Likewise.
* tests/packages.scm ("package-derivation, indirect grafts"): Likewise.
| Ludovic Courtès |
2016-02-22 | derivations: Move grafts to (guix grafts)....* guix/derivations.scm (<graft>, graft-derivation, %graft?)
(set-grafting): Move to...
* guix/grafts.scm: ... here. New file.
* guix/gexp.scm, guix/packages.scm, tests/packages.scm,
guix/scripts/build.scm: Use it.
* Makefile.am (MODULES): Add it.
(SCM_TESTS): Add tests/grafts.scm.
* tests/derivations.scm ("graft-derivation"): Move to...
* tests/grafts.scm: ... here. New file.
| Ludovic Courtès |