derivations: Avoid string-to-bytevector conversions.
authorLudovic Courtès <ludo@gnu.org>
Thu, 20 Apr 2017 16:46:38 +0000 (18:46 +0200)
committerLudovic Courtès <ludo@gnu.org>
Thu, 20 Apr 2017 21:35:55 +0000 (23:35 +0200)
commit2dce88d5bbe7a65e101c0734d1c6db44ecc8c299
tree50de27f0197a0984e4366bb54b0114839cdfa86f
parent358b10b22b300e2d5c00e9f1413b778cdc4cb213
derivations: Avoid string-to-bytevector conversions.

On Guile 2.2.1, this yields a 5% speedup on:

  guix build libreoffice xmonad certbot -n --no-substitutes --no-build-hook

* guix/derivations.scm (derivation->string): Rename to...
(derivation->bytevector): ... this.  Use 'open-bytevector-output-port'
instead of 'call-with-output-string'.
(derivation-hash): Remove string-to-bytevector conversion before
'sha256' call.
(build-expression->derivation): Use 'add-data-to-store' and an
bytevector port instead of a string port for the expression.
guix/derivations.scm