guix-commits
[Top][All Lists]
Advanced

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

04/04: substitute-binary: Micro-optimize 'narinfo-sha256'.


From: Ludovic Courtès
Subject: 04/04: substitute-binary: Micro-optimize 'narinfo-sha256'.
Date: Fri, 09 Jan 2015 00:15:03 +0000

civodul pushed a commit to branch master
in repository guix.

commit 8234fcf21af93e5fac787ef4aeea0934740cbe52
Author: Ludovic Courtès <address@hidden>
Date:   Fri Jan 9 01:10:31 2015 +0100

    substitute-binary: Micro-optimize 'narinfo-sha256'.
    
    * guix/scripts/substitute-binary.scm (narinfo-signature->canonical-sexp):
      Change "~a" to "~s" in error message.
      (%signature-line-rx): Remove.
      (narinfo-sha256): Use 'string-contains' instead of 'regexp-exec', and
      'string-take' instead of 'match:substring'.
---
 guix/scripts/substitute-binary.scm |   13 +++++--------
 1 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/guix/scripts/substitute-binary.scm 
b/guix/scripts/substitute-binary.scm
index 9c96411..09b917f 100755
--- a/guix/scripts/substitute-binary.scm
+++ b/guix/scripts/substitute-binary.scm
@@ -241,7 +241,7 @@ failure."
     ((version _ sig)
      (let ((maybe-number (string->number version)))
        (cond ((not (number? maybe-number))
-              (leave (_ "signature version must be a number: ~a~%")
+              (leave (_ "signature version must be a number: ~s~%")
                      version))
              ;; Currently, there are no other versions.
              ((not (= 1 maybe-number))
@@ -313,18 +313,15 @@ No authentication and authorization checks are performed 
here!"
                      "References" "Deriver" "System"
                      "Signature"))))
 
-(define %signature-line-rx
-  ;; Regexp matching a signature line in a narinfo.
-  (make-regexp "(.+)^[[:blank:]]*Signature:[[:blank:]].+$"))
-
 (define (narinfo-sha256 narinfo)
   "Return the sha256 hash of NARINFO as a bytevector, or #f if NARINFO lacks a
 'Signature' field."
   (let ((contents (narinfo-contents narinfo)))
-    (match (regexp-exec %signature-line-rx contents)
+    (match (string-contains contents "Signature:")
       (#f #f)
-      ((= (cut match:substring <> 1) above-signature)
-       (sha256 (string->utf8 above-signature))))))
+      (index
+       (let ((above-signature (string-take contents index)))
+         (sha256 (string->utf8 above-signature)))))))
 
 (define* (assert-valid-narinfo narinfo
                                #:optional (acl (current-acl))



reply via email to

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