guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/02: deduplication: Remove 'counting-wrapper-port'.


From: Ludovic Courtès
Subject: 02/02: deduplication: Remove 'counting-wrapper-port'.
Date: Thu, 19 Jul 2018 11:59:56 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 83099892e0cf0d9c59f5e1a0774331026e48baa8
Author: Ludovic Courtès <address@hidden>
Date:   Thu Jul 19 17:12:48 2018 +0200

    deduplication: Remove 'counting-wrapper-port'.
    
    * guix/store/deduplication.scm (counting-wrapper-port): Remove.
    (nar-sha256): Call 'port-position' directly on PORT.
---
 guix/store/deduplication.scm | 34 ++++++----------------------------
 1 file changed, 6 insertions(+), 28 deletions(-)

diff --git a/guix/store/deduplication.scm b/guix/store/deduplication.scm
index 6ff4a50de..8234819 100644
--- a/guix/store/deduplication.scm
+++ b/guix/store/deduplication.scm
@@ -31,37 +31,15 @@
   #:export (nar-sha256
             deduplicate))
 
-;; Would it be better to just make WRITE-FILE give size as well? I question
-;; the general utility of this approach.
-(define (counting-wrapper-port output-port)
-  "Some custom ports don't implement GET-POSITION at all. But if we want to
-figure out how many bytes are being written, we will want to use that. So this
-makes a wrapper around a port which implements GET-POSITION."
-  (let ((byte-count 0))
-    (make-custom-binary-output-port "counting-wrapper"
-                                    (lambda (bytes offset count)
-                                      (set! byte-count
-                                        (+ byte-count count))
-                                      (put-bytevector output-port bytes
-                                                      offset count)
-                                      count)
-                                    (lambda ()
-                                      byte-count)
-                                    #f
-                                    (lambda ()
-                                      (close-port output-port)))))
-
 (define (nar-sha256 file)
   "Gives the sha256 hash of a file and the size of the file in nar form."
   (let-values (((port get-hash) (open-sha256-port)))
-    (let ((wrapper (counting-wrapper-port port)))
-      (write-file file wrapper)
-      (force-output wrapper)
-      (force-output port)
-      (let ((hash (get-hash))
-            (size (port-position wrapper)))
-        (close-port wrapper)
-        (values hash size)))))
+    (write-file file port)
+    (force-output port)
+    (let ((hash (get-hash))
+          (size (port-position port)))
+      (close-port port)
+      (values hash size))))
 
 (define (tempname-in directory)
   "Gives an unused temporary name under DIRECTORY. Not guaranteed to still be



reply via email to

[Prev in Thread] Current Thread [Next in Thread]