guix/tests
Ludovic Courtès 161094c8e2 packages: Rewrite 'transitive-inputs' to be linear and remove duplicates.
There were two issues:

  1. Use of 'delete-duplicates', which is quadratic, was a serious problem for
     closures with lots of propagated inputs, such as that of the 'hydra'
     package (several minutes for 'guix build hydra -n'!).

  2. The 'delete-duplicates' call essentially had no effect since duplicate
     inputs typically had a different label and were thus kept.  For
     instance, (bag-transitive-inputs (package->bag inkscape)) would return
     216 items whereas (delete-duplicates (map cdr THAT)) contains only 67
     items.

     The new implementation returns 67 items in this case.  For 'hydra', we're
     down from 42211 items to 361, and roughly 13s for 'guix build hydra'.

* guix/packages.scm (transitive-inputs): Rewrite as a breadth-first
  traversal.  Remove duplicate propagated inputs.
* tests/packages.scm ("package-transitive-inputs", "package->bag, propagated
  inputs"): Adjust to use simple labels for propagated inputs, without "/".
  ("package-transitive-inputs, no duplicates"): New test.
2015-07-12 01:27:00 +02:00
..
base32.scm
base64.scm
build-utils.scm
builders.scm
containers.scm
cpan.scm
cpio.scm
derivations.scm
elpa.scm
gexp.scm
gremlin.scm
guix-archive.sh
guix-authenticate.sh
guix-build.sh
guix-daemon.sh
guix-download.sh
guix-environment.sh
guix-gc.sh
guix-hash.sh
guix-lint.sh
guix-package-net.sh
guix-package.sh
guix-register.sh
guix-system.sh
hackage.scm
hash.scm
lint.scm
monads.scm
nar.scm
packages.scm packages: Rewrite 'transitive-inputs' to be linear and remove duplicates. 2015-07-12 01:27:00 +02:00
pk-crypto.scm
pki.scm
profiles.scm
publish.scm
pypi.scm
records.scm
sets.scm
signing-key.pub
signing-key.sec
size.scm
snix.scm
store.scm
substitute.scm
syscalls.scm
test.drv
ui.scm
union.scm
utils.scm