summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-10-19 14:28:56 +0200
committerLudovic Courtès <ludo@gnu.org>2016-10-19 15:54:10 +0200
commit2535635f182d6a2aca5689adb5551fdd7c7e2d0a (patch)
tree3e48af047c9377074a3909ea3aa4114c4153acf6
parent4bb54cc42ff5653fe59f5a8ebf39515ba1840a6d (diff)
downloadguix-2535635f182d6a2aca5689adb5551fdd7c7e2d0a.tar.gz
Use (ice-9 binary-ports) instead of (rnrs io ports).
This reduces the closure of (guix ui) from 123 to 106 modules.

* guix/derivations.scm: Use (ice-9 binary-ports) instead of (rnrs io
ports).
(map-derivation)[substitute-file]: Use 'read-string' instead of
'get-string-all'.
* guix/ftp-client.scm: Likewise.
* guix/hash.scm: Likewise.
* guix/http-client.scm: Likewise.
* guix/pki.scm (ensure-acl, current-acl): Likewise.
* guix/scripts/archive.scm (authorize-key)[read-key]: Likewise.
* guix/scripts/authenticate.scm (read-canonical-sexp)
(read-hash-data): Likewise.
* guix/scripts/download.scm: Likewise.
* guix/scripts/offload.scm (register-gc-root, remove-gc-roots)
(send-files): Likewise.
* guix/scripts/publish.scm (lazy-read-file-sexp): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/scripts/substitute.scm (check-acl-initialized): Likewise.
* guix/serialization.scm (read-maybe-utf8-string): Likewise.
* guix/scripts/hash.scm (guix-hash): Use 'force-output' instead of
'flush-output-port'.
* guix/store.scm (process-stderr): Likewise.
* guix/tests.scm: Likewise.
* guix/utils.scm: Use (ice-9 binary-ports) and autoload (rnrs io ports)
for 'make-custom-binary-input-port'.
-rw-r--r--guix/derivations.scm4
-rw-r--r--guix/ftp-client.scm4
-rw-r--r--guix/hash.scm4
-rw-r--r--guix/http-client.scm2
-rw-r--r--guix/pki.scm9
-rw-r--r--guix/scripts/archive.scm4
-rw-r--r--guix/scripts/authenticate.scm9
-rw-r--r--guix/scripts/download.scm2
-rw-r--r--guix/scripts/hash.scm4
-rw-r--r--guix/scripts/offload.scm11
-rw-r--r--guix/scripts/publish.scm6
-rw-r--r--guix/scripts/refresh.scm2
-rwxr-xr-xguix/scripts/substitute.scm5
-rw-r--r--guix/serialization.scm5
-rw-r--r--guix/store.scm4
-rw-r--r--guix/tests.scm2
-rw-r--r--guix/utils.scm3
17 files changed, 42 insertions, 38 deletions
diff --git a/guix/derivations.scm b/guix/derivations.scm
index 7f74ed6c77..e378a7cb03 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.scm
@@ -23,7 +23,7 @@
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-35)
-  #:use-module (rnrs io ports)
+  #:use-module (ice-9 binary-ports)
   #:use-module (rnrs bytevectors)
   #:use-module (ice-9 match)
   #:use-module (ice-9 rdelim)
@@ -885,7 +885,7 @@ recursively."
   (define (substitute-file file initial replacements)
     (define contents
       (with-fluids ((%default-port-encoding #f))
-        (call-with-input-file file get-string-all)))
+        (call-with-input-file file read-string)))
 
     (let ((updated (substitute contents initial replacements)))
       (if (string=? updated contents)
diff --git a/guix/ftp-client.scm b/guix/ftp-client.scm
index 22d4c7dde2..0a179282ed 100644
--- a/guix/ftp-client.scm
+++ b/guix/ftp-client.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,7 +22,7 @@
   #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-31)
-  #:use-module (rnrs io ports)
+  #:use-module (ice-9 binary-ports)
   #:use-module (rnrs bytevectors)
   #:use-module (ice-9 match)
   #:use-module (ice-9 regex)
diff --git a/guix/hash.scm b/guix/hash.scm
index a61dc980e6..44e4472580 100644
--- a/guix/hash.scm
+++ b/guix/hash.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,7 +19,7 @@
 (define-module (guix hash)
   #:use-module (guix gcrypt)
   #:use-module (rnrs bytevectors)
-  #:use-module (rnrs io ports)
+  #:use-module (ice-9 binary-ports)
   #:use-module (system foreign)
   #:use-module ((guix build utils) #:select (dump-port))
   #:use-module (srfi srfi-11)
diff --git a/guix/http-client.scm b/guix/http-client.scm
index 97a1e26d3e..a8324be09f 100644
--- a/guix/http-client.scm
+++ b/guix/http-client.scm
@@ -28,7 +28,7 @@
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-35)
   #:use-module (ice-9 match)
-  #:use-module (rnrs io ports)
+  #:use-module (ice-9 binary-ports)
   #:use-module (rnrs bytevectors)
   #:use-module (guix ui)
   #:use-module (guix utils)
diff --git a/guix/pki.scm b/guix/pki.scm
index 3cd9763fdf..1551425c33 100644
--- a/guix/pki.scm
+++ b/guix/pki.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,7 +22,8 @@
   #:use-module ((guix utils) #:select (with-atomic-file-output))
   #:use-module ((guix build utils) #:select (mkdir-p))
   #:use-module (ice-9 match)
-  #:use-module (rnrs io ports)
+  #:use-module (ice-9 rdelim)
+  #:use-module (ice-9 binary-ports)
   #:export (%public-key-file
             %private-key-file
             %acl-file
@@ -80,7 +81,7 @@ element in KEYS must be a canonical sexp with type 'public-key'."
     (when (file-exists? %public-key-file)
       (let ((public-key (call-with-input-file %public-key-file
                           (compose string->canonical-sexp
-                                   get-string-all))))
+                                   read-string))))
         (mkdir-p (dirname %acl-file))
         (with-atomic-file-output %acl-file
           (lambda (port)
@@ -99,7 +100,7 @@ element in KEYS must be a canonical sexp with type 'public-key'."
       (call-with-input-file %acl-file
         (compose canonical-sexp->sexp
                  string->canonical-sexp
-                 get-string-all))
+                 read-string))
       (public-keys->acl '())))                    ; the empty ACL
 
 (define (acl->public-keys acl)
diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm
index 8c7322d617..400353247c 100644
--- a/guix/scripts/archive.scm
+++ b/guix/scripts/archive.scm
@@ -40,7 +40,7 @@
   #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-37)
-  #:use-module (rnrs io ports)
+  #:use-module (ice-9 binary-ports)
   #:export (guix-archive))
 
 
@@ -290,7 +290,7 @@ the input port."
   (define (read-key)
     (catch 'gcry-error
       (lambda ()
-        (string->canonical-sexp (get-string-all (current-input-port))))
+        (string->canonical-sexp (read-string (current-input-port))))
       (lambda (key proc err)
         (leave (_ "failed to read public key: ~a: ~a~%")
                (error-source err) (error-string err)))))
diff --git a/guix/scripts/authenticate.scm b/guix/scripts/authenticate.scm
index eedebb4bac..d9f799df26 100644
--- a/guix/scripts/authenticate.scm
+++ b/guix/scripts/authenticate.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,7 +22,8 @@
   #:use-module (guix pk-crypto)
   #:use-module (guix pki)
   #:use-module (guix ui)
-  #:use-module (rnrs io ports)
+  #:use-module (ice-9 binary-ports)
+  #:use-module (ice-9 rdelim)
   #:use-module (ice-9 match)
   #:export (guix-authenticate))
 
@@ -36,12 +37,12 @@
 
 (define read-canonical-sexp
   ;; Read a gcrypt sexp from a port and return it.
-  (compose string->canonical-sexp get-string-all))
+  (compose string->canonical-sexp read-string))
 
 (define (read-hash-data port key-type)
   "Read sha256 hash data from PORT and return it as a gcrypt sexp.  KEY-TYPE
 is a symbol representing the type of public key algo being used."
-  (let* ((hex (get-string-all port))
+  (let* ((hex (read-string port))
          (bv  (base16-string->bytevector (string-trim-both hex))))
     (bytevector->hash-data bv #:key-type key-type)))
 
diff --git a/guix/scripts/download.scm b/guix/scripts/download.scm
index 1648198f6e..bcb4eaa043 100644
--- a/guix/scripts/download.scm
+++ b/guix/scripts/download.scm
@@ -31,7 +31,7 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-37)
   #:use-module (rnrs bytevectors)
-  #:use-module (rnrs io ports)
+  #:use-module (ice-9 binary-ports)
   #:export (guix-download))
 
 
diff --git a/guix/scripts/hash.scm b/guix/scripts/hash.scm
index a6eced92fb..b269ead50f 100644
--- a/guix/scripts/hash.scm
+++ b/guix/scripts/hash.scm
@@ -25,7 +25,7 @@
   #:use-module (guix ui)
   #:use-module (guix scripts)
   #:use-module (guix utils)
-  #:use-module (rnrs io ports)
+  #:use-module (ice-9 binary-ports)
   #:use-module (rnrs files)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1)
@@ -137,7 +137,7 @@ and 'hexadecimal' can be used as well).\n"))
         (if (assoc-ref opts 'recursive?)
             (let-values (((port get-hash) (open-sha256-port)))
               (write-file file port #:select? select?)
-              (flush-output-port port)
+              (force-output port)
               (get-hash))
             (call-with-input-file file port-sha256))))
 
diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm
index b278f1e313..33d141e7ef 100644
--- a/guix/scripts/offload.scm
+++ b/guix/scripts/offload.scm
@@ -21,7 +21,8 @@
   #:use-module (guix records)
   #:use-module (guix store)
   #:use-module (guix derivations)
-  #:use-module (guix serialization)
+  #:use-module ((guix serialization)
+                #:select (nar-error? nar-error-file))
   #:use-module (guix nar)
   #:use-module (guix utils)
   #:use-module ((guix build syscalls) #:select (fcntl-flock))
@@ -37,7 +38,7 @@
   #:use-module (ice-9 match)
   #:use-module (ice-9 regex)
   #:use-module (ice-9 format)
-  #:use-module (rnrs io ports)
+  #:use-module (ice-9 binary-ports)
   #:export (build-machine
             build-requirements
             guix-offload))
@@ -336,7 +337,7 @@ hook."
 
   (let ((pipe (remote-pipe machine OPEN_READ
                            `("guile" "-c" ,(object->string script)))))
-    (get-string-all pipe)
+    (read-string pipe)
     (let ((status (close-pipe pipe)))
       (unless (zero? status)
         ;; Better be safe than sorry: if we ignore the error here, then FILE
@@ -368,7 +369,7 @@ hook."
 
   (let ((pipe (remote-pipe machine OPEN_READ
                            `("guile" "-c" ,(object->string script)))))
-    (get-string-all pipe)
+    (read-string pipe)
     (close-pipe pipe)))
 
 (define* (offload drv machine
@@ -462,7 +463,7 @@ success, #f otherwise."
                                   '("guix" "archive" "--missing")))
                     (open-input-string files)))
                   ((result)
-                   (get-string-all missing)))
+                   (read-string missing)))
       (for-each waitpid pids)
       (string-tokenize result)))
 
diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm
index 8404e540f8..1b32f639ea 100644
--- a/guix/scripts/publish.scm
+++ b/guix/scripts/publish.scm
@@ -23,7 +23,7 @@
   #:use-module (ice-9 format)
   #:use-module (ice-9 match)
   #:use-module (ice-9 regex)
-  #:use-module (rnrs io ports)
+  #:use-module (ice-9 rdelim)
   #:use-module (rnrs bytevectors)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-2)
@@ -46,7 +46,7 @@
   #:use-module (guix pki)
   #:use-module (guix pk-crypto)
   #:use-module (guix store)
-  #:use-module (guix serialization)
+  #:use-module ((guix serialization) #:select (write-file))
   #:use-module (guix zlib)
   #:use-module (guix ui)
   #:use-module (guix scripts)
@@ -167,7 +167,7 @@ compression disabled~%"))
   (delay
     (call-with-input-file file
       (compose string->canonical-sexp
-               get-string-all))))
+               read-string))))
 
 (define %private-key
   (lazy-read-file-sexp %private-key-file))
diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm
index 84e2a8f2a6..b81c69f9fe 100644
--- a/guix/scripts/refresh.scm
+++ b/guix/scripts/refresh.scm
@@ -50,7 +50,7 @@
   #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-37)
-  #:use-module (rnrs io ports)
+  #:use-module (ice-9 binary-ports)
   #:export (guix-refresh
             %updaters))
 
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index 8f50477801..3d6fde0188 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -24,7 +24,7 @@
   #:use-module (guix combinators)
   #:use-module (guix config)
   #:use-module (guix records)
-  #:use-module (guix serialization)
+  #:use-module ((guix serialization) #:select (restore-file))
   #:use-module (guix hash)
   #:use-module (guix base32)
   #:use-module (guix base64)
@@ -43,7 +43,6 @@
   #:use-module (ice-9 format)
   #:use-module (ice-9 ftw)
   #:use-module (ice-9 binary-ports)
-  #:use-module (rnrs io ports)
   #:use-module (rnrs bytevectors)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-9)
@@ -938,7 +937,7 @@ DESTINATION as a nar file.  Verify the substitute against ACL."
     (and (file-exists? %public-key-file)
          (let ((key (call-with-input-file %public-key-file
                       (compose string->canonical-sexp
-                               get-string-all))))
+                               read-string))))
            (match acl
              ((thing)
               (equal? (canonical-sexp->string thing)
diff --git a/guix/serialization.scm b/guix/serialization.scm
index f17f516c09..5953b84616 100644
--- a/guix/serialization.scm
+++ b/guix/serialization.scm
@@ -19,11 +19,12 @@
 (define-module (guix serialization)
   #:use-module (guix combinators)
   #:use-module (rnrs bytevectors)
-  #:use-module (rnrs io ports)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-35)
+  #:use-module (ice-9 binary-ports)
+  #:use-module ((ice-9 rdelim) #:prefix rdelim:)
   #:use-module (ice-9 match)
   #:use-module (ice-9 ftw)
   #:export (write-int read-int
@@ -143,7 +144,7 @@ substitute invalid byte sequences with question marks.  This is a
          (port (open-bytevector-input-port bv)))
     (set-port-encoding! port "UTF-8")
     (set-port-conversion-strategy! port 'substitute)
-    (get-string-all port)))
+    (rdelim:read-string port)))
 
 (define (write-string-list l p)
   (write-int (length l) p)
diff --git a/guix/store.scm b/guix/store.scm
index 9f409b4209..43cfda9214 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -25,7 +25,7 @@
   #:autoload   (guix base32) (bytevector->base32-string)
   #:autoload   (guix build syscalls) (terminal-columns)
   #:use-module (rnrs bytevectors)
-  #:use-module (rnrs io ports)
+  #:use-module (ice-9 binary-ports)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-9)
   #:use-module (srfi srfi-9 gnu)
@@ -481,7 +481,7 @@ encoding conversion errors."
            (let ((s (read-maybe-utf8-string p)))
              (display s (current-build-output-port))
              (when (string-any %newlines s)
-               (flush-output-port (current-build-output-port)))
+               (force-output (current-build-output-port)))
              #f))
           ((= k %stderr-error)
            ;; Report an error.
diff --git a/guix/tests.scm b/guix/tests.scm
index 3cb4a671af..5110075e7d 100644
--- a/guix/tests.scm
+++ b/guix/tests.scm
@@ -27,7 +27,7 @@
   #:use-module (gnu packages bootstrap)
   #:use-module (srfi srfi-34)
   #:use-module (rnrs bytevectors)
-  #:use-module (rnrs io ports)
+  #:use-module (ice-9 binary-ports)
   #:use-module (web uri)
   #:export (open-connection-for-tests
             random-text
diff --git a/guix/utils.scm b/guix/utils.scm
index decadf64a6..65a2baa0a2 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -30,7 +30,8 @@
   #:use-module (srfi srfi-39)
   #:use-module (srfi srfi-60)
   #:use-module (rnrs bytevectors)
-  #:use-module (rnrs io ports)
+  #:use-module (ice-9 binary-ports)
+  #:autoload   (rnrs io ports) (make-custom-binary-input-port)
   #:use-module ((rnrs bytevectors) #:select (bytevector-u8-set!))
   #:use-module (guix combinators)
   #:use-module ((guix build utils) #:select (dump-port))