From fce2394e7defc7d936ef2aad212d20368ef819ff Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@gnu.org>
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 7b1da346780..668bc9a0191 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -344,8 +344,8 @@ (define* (open-connection #:optional (file %default-socket-path)
                     (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 @@ (define add-text-to-store
       "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 @@ (define add-to-store
 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?
-- 
GitLab