From fce2394e7defc7d936ef2aad212d20368ef819ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 30 Jan 2013 17:05:54 +0100 Subject: [PATCH] store: Slightly improve memoization hashing. * guix/store.scm (open-connection): Call `make-hash-table' with 100. (add-text-to-store): Move TEXT first in ARGS, for better `hash' results. (add-to-store): Likewise, move ST first. --- guix/store.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/guix/store.scm b/guix/store.scm index 7b1da34678074cf5712415a58500433036176ab9..668bc9a01916cf2467ea9388b6b2ca524ff4c9a5 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -344,8 +344,8 @@ operate, should the disk become full. Return a server object." (let ((s (%make-nix-server s (protocol-major v) (protocol-minor v) - (make-hash-table) - (make-hash-table)))) + (make-hash-table 100) + (make-hash-table 100)))) (let loop ((done? (process-stderr s))) (or done? (process-stderr s))) s)))))))) @@ -478,7 +478,7 @@ again until #t is returned or an error is raised." "Add TEXT under file NAME in the store, and return its store path. REFERENCES is the list of store paths referred to by the resulting store path." - (let ((args `(,name ,text ,references)) + (let ((args `(,text ,name ,references)) (cache (nix-server-add-text-to-store-cache server))) (or (hash-ref cache args) (let ((path (add-text-to-store server name text references))) @@ -503,7 +503,7 @@ FILE-NAME are added recursively; if FILE-NAME designates a flat file and RECURSIVE? is true, its contents are added, and its permission bits are kept. HASH-ALGO must be a string such as \"sha256\"." (let* ((st (stat file-name #f)) - (args `(,basename ,recursive? ,hash-algo ,st)) + (args `(,st ,basename ,recursive? ,hash-algo)) (cache (nix-server-add-to-store-cache server))) (or (and st (hash-ref cache args)) (let ((path (add-to-store server basename #t recursive?