guix/guix
Ludovic Courtès 58bb833365
grafts: Improve performance for derivations with many inputs.
Partly fixes <https://bugs.gnu.org/41702>.
Reported by Lars-Dominik Braun <ldb@leibniz-psychology.org>.

Previously we'd potentially traverse the same sub-graph of DEPS several
times.

With this patch, command:

  guix environment --ad-hoc r-learnr --search-paths

goes from 11.3s to 4.6s.

* guix/grafts.scm (reference-origin): Rename to...
(reference-origins): ... this.  Change 'item' parameter to 'items'.
[lookup-derivers]: New procedure.
(cumulative-grafts)[dependency-grafts]: Change 'item' to 'items' and use
'reference-origins'.
Remove 'mapm' around 'dependency-grafts' call.
2020-06-06 23:28:48 +02:00
..
build build-system: linux-module: Allow passing #:make-flags argument. 2020-06-02 14:22:32 +02:00
build-system build-system: linux-module: Allow passing #:make-flags argument. 2020-06-02 14:22:32 +02:00
import git: 'update-cached-checkout' returns the commit relation. 2020-05-25 00:00:28 +02:00
scripts size: Document that positional arguments can be store items. 2020-05-29 18:48:44 +02:00
store
tests git-authenticate: Add tests. 2020-06-05 22:54:06 +02:00
base16.scm
base32.scm
base64.scm
build-system.scm
bzr-download.scm
cache.scm
channels.scm pull: Protect against downgrade attacks. 2020-05-25 00:00:28 +02:00
ci.scm
colors.scm
combinators.scm combinators: Recurse fold2 to named let loop. 2020-06-01 14:54:55 +02:00
config.scm.in
cpio.scm
cve.scm
cvs-download.scm
deprecation.scm
derivations.scm
describe.scm
diagnostics.scm
discovery.scm
docker.scm
download.scm
elf.scm
ftp-client.scm
gexp.scm gexp: The result of 'imported-files/derivation' is non-substitutable. 2020-05-25 23:00:30 +02:00
git-authenticate.scm git-authenticate: Raise proper SRFI-35 conditions. 2020-06-05 22:54:06 +02:00
git-download.scm git-version: Raise a condition instead of an error. 2020-04-23 14:23:03 +02:00
git.scm git: 'update-cached-checkout' returns the commit relation. 2020-05-25 00:00:28 +02:00
glob.scm
gnu-maintenance.scm
gnupg.scm
grafts.scm grafts: Improve performance for derivations with many inputs. 2020-06-06 23:28:48 +02:00
graph.scm graph: Add 'shortest-path'. 2020-05-11 23:30:55 +02:00
hg-download.scm
http-client.scm
i18n.scm
inferior.scm
json.scm
licenses.scm licenses: Update Zlib license URL. 2020-05-15 12:27:22 +02:00
lint.scm lint: archival: Use 'origin-hash'. 2020-05-22 01:30:09 +02:00
lzlib.scm
man-db.scm
memoization.scm
modules.scm
monad-repl.scm
monads.scm
nar.scm nar: 'with-temporary-store-file' uses a single connection 2020-05-07 05:56:01 -05:00
openpgp.scm openpgp: Add missing type predicate for '&openpgp-invalid-signature-error'. 2020-05-04 10:51:39 +02:00
packages.scm packages: Introduce <content-hash> and use it in <origin>. 2020-05-22 01:29:39 +02:00
pki.scm
profiles.scm Merge branch 'master' into core-updates 2020-05-02 17:31:28 +02:00
profiling.scm
progress.scm
quirks.scm quirks: Build 'compute-guix-derivation' modules with 2.2 when needed. 2020-05-29 18:31:35 +02:00
records.scm
remote.scm
repl.scm
scripts.scm
search-paths.scm
self.scm self: Optimize 'file-append*' for 'local-file?'. 2020-05-25 23:00:30 +02:00
serialization.scm
sets.scm
ssh.scm
status.scm
store.scm store: 'mapm/accumulate-builds' preserves '%current-target-system'. 2020-05-14 17:21:27 +02:00
svn-download.scm
swh.scm
tests.scm packages: Introduce <content-hash> and use it in <origin>. 2020-05-22 01:29:39 +02:00
ui.scm
upstream.scm upstream: Use 'origin-hash'. 2020-05-22 01:30:10 +02:00
utils.scm utils: Add 'cc-for-target'. 2020-05-29 15:41:30 +02:00
workers.scm
zlib.scm