~ruther/guix-local

33463986ba5093c7513c9dc7702a66929f504aa5 — Ludovic Courtès 8 years ago 0a94dc6
publish: Remove 'regexp-exec' call from the hot path.

* guix/scripts/publish.scm (extract-narinfo-hash): Rewrite without
resorting to regexps.
1 files changed, 6 insertions(+), 6 deletions(-)

M guix/scripts/publish.scm
M guix/scripts/publish.scm => guix/scripts/publish.scm +6 -6
@@ 565,13 565,13 @@ has the given HASH of type ALGO."
                               " speaking.  Welcome!")))
                         port)))))

(define extract-narinfo-hash
  (let ((regexp (make-regexp "^([a-df-np-sv-z0-9]{32}).narinfo$")))
    (lambda (str)
      "Return the hash within the narinfo resource string STR, or false if STR
(define (extract-narinfo-hash str)
  "Return the hash within the narinfo resource string STR, or false if STR
is invalid."
      (and=> (regexp-exec regexp str)
             (cut match:substring <> 1)))))
  (and (string-suffix? ".narinfo" str)
       (let ((base (string-drop-right str 8)))
         (and (string-every %nix-base32-charset base)
              base))))

(define (get-request? request)
  "Return #t if REQUEST uses the GET method."