~ruther/guix-local

ref: 7facbf2b58f80afffedbb9230ec7ab9b61232dfe guix-local/guix/store.scm -rw-r--r-- 25.8 KiB
238f7397 — Ludovic Courtès 13 years ago
store: Use `sendfile' when available.

* guix/store.scm (write-contents)[call-with-binary-input-file]: New
  procedure.
  Use `sendfile' instead of `dump' when available.  Add `size'
  parameter.
  (write-file): Update caller.
ef86c39f — Ludovic Courtès 13 years ago
ui: Gracefully report failures to connect to the daemon.

* guix/store.scm (&nix-connection-error): New condition type.
  (open-connection): Translate `system-error' during the `connect' call
  into `&nix-connection-error'.
* guix/ui.scm (call-with-error-handling): Add case for `nix-connection-error?'.
* guix/scripts/package.scm (guix-package): Move `open-connection' call
  within `with-error-handling'.
* guix/scripts/pull.scm (guix-pull): Likewise.
* guix/scripts/download.scm (guix-download): Move body within
  `with-error-handling'.
fae31edc — Ludovic Courtès 13 years ago
store: Add queries for references & co.

* guix/store.scm (operation-id)[query-valid-derivers]: New value.
  (references, referrers, valid-derivers, query-derivation-outputs): New
  procedures.
* tests/store.scm ("references", "derivers"): New tests.
9fd72fb1 — Ludovic Courtès 13 years ago
store: Add the `%daemon-socket-file' parameter.

* guix/store.scm (%daemon-socket-file): New variable.
  (open-connection): Use it as the default value for FILE.
0f3d2504 — Ludovic Courtès 13 years ago
store: Add substitute-related procedures.

* guix/store.scm (has-substitutes?, substitutable-paths,
  read-substitutable-path-list, substitutable-path-info): New
  procedures.
  (<substitutable>): New record type.
  (read-arg): Add `substitutable-path-info'.  Change `hash' pattern
  variable to `base16' literal.
* tests/store.scm ("no substitutes"): New test.
63193ebf — Ludovic Courtès 13 years ago
store: Update to protocol 1.12.

* guix/store.scm (%protocol-version): Bump.
  (operation-id): Comment out `query-substitutable-path-info'.
  Rename `query-valid-paths' to `query-all-valid-paths'.  Add
  `query-path-from-hash-part', `query-substitutable-path-infos',
  `query-valid-paths', and `query-substitutable-paths'.
  (set-build-options): Add `binary-caches' keyword parameter.  When
  using a server >= 1.12, send the list of binary caches.
  (query-path-hash): Use the `store-path' type, for clarity.
238e43b9 — Ludovic Courtès 13 years ago
store: Write string length as a 32-bit integer.

* guix/store.scm (write-string): Write L as a 32-bit integer.  Bug
  introduced in 82c38fe64c84fc3febcc5c5aa7fe86454ccaf456 ("store:
  Micro-optimize `write-string'.")
bbdb3ffa — Ludovic Courtès 13 years ago
store: Don't expect build logs to be UTF-8-encoded.

* guix/store.scm (read-latin1-string): New procedure.
  (process-stderr): Use it instead of `read-string'.
  Reported by Andreas Enge <andreas@enge.fr>.
fce2394e — Ludovic Courtès 13 years ago
store: Slightly improve memoization hashing.

* guix/store.scm (open-connection): Call `make-hash-table' with 100.
  (add-text-to-store): Move TEXT first in ARGS, for better `hash'
  results.
  (add-to-store): Likewise, move ST first.
a9ebd9ef — Ludovic Courtès 13 years ago
store: Remove the `fixed?' parameter from `add-to-store'.

* guix/store.scm (add-to-store): Remove the `fixed?' parameter from the
  public interface.
* gnu/packages/bootstrap.scm, guix-download.in, guix/derivations.scm,
  guix/packages.scm, tests/derivations.scm: Update all callers
  accordingly.
fd060fd3 — Ludovic Courtès 13 years ago
store: Avoid use of `set!'.

* guix/store.scm (operation): New macro.
  (define-operation): Define in terms of `operation'.
  (add-text-to-store): Define using `operation', and remove now
  unnecessary `set!'.
  (add-to-store): Likewise.
  (add-text-to-store/cached, add-to-store/cached): Remove.
82c38fe6 — Ludovic Courtès 13 years ago
store: Micro-optimize `write-string'.

* guix/store.scm (write-string): Optimize to write the length, contents,
  and padding all at once.  This yields a 2% improvement on the
  execution time of "guix-build gdb".
bdcf35a6 — Ludovic Courtès 13 years ago
store: Cache `add-text-to-store' results.

* guix/store.scm (<nix-server>)[atts-cache]: New field.
  (add-text-to-store/cached): New procedure.  Use it as a wrapper around
  `add-text-to-store'.
  When running "guix-build gdb", this reduces the number of RPCs from
  3048 to 289, and execution time from 4.7s to 2.6s.
2c3f47ee — Ludovic Courtès 13 years ago
store: Make the `add-to-store' cache per-connection.

* guix/store.scm (<nix-server>)[ats-cache]: New field.
  (open-connection): Update accordingly.
  (add-to-store/cached): Use (nix-server-add-to-store-cache SERVER)
  instead of a weak hash table.
a7b6ffee — Ludovic Courtès 13 years ago
store: Make `add-to-store' memoizing.

* guix/store.scm (add-to-store/cached): New variable.
  Use it as the new `add-to-store'.
  This reduces the number of RPCs when doing "guix-build gdb" from 5009
  to 3053, and the execution time from 7s to 3.9s.
e531ac2a — Ludovic Courtès 13 years ago
doc: Start documenting (guix store).

* doc/guix.texi (The Store): Populate.
  (Introduction): Add cross-reference.  Change "package store" to "the
  store".
34fcbe3a — Ludovic Courtès 13 years ago
store: In `open-connection', process all the server's stderr.

* guix/store.scm (open-connection): Loop until `process-stderr' returns #t.
4050e5d6 — Ludovic Courtès 13 years ago
Merge branch 'master' into core-updates

Conflicts:
	build-aux/download.scm
	distro/packages/autotools.scm
	distro/packages/base.scm
	distro/packages/bootstrap.scm
	distro/packages/lsh.scm
	distro/packages/make-bootstrap.scm
	distro/packages/ncurses.scm
	distro/packages/perl.scm
	tests/derivations.scm
	tests/union.scm
233e7676 — Ludovic Courtès 13 years ago
Update license headers.

Change all license headers, except guix/build/* and ld-wrapper.scm, with
this code:

  (use-modules (guix build utils)
	       (srfi srfi-1))

  (fluid-set! %default-port-encoding "UTF-8")

  (substitute* (remove (lambda (f)
			 (or (string-contains f ".tar.")
			     (string-contains f ".git/")
			     (string-contains f ".so")
			     (string-suffix? ".o" f)
			     (string-suffix? ".a" f)
			     (string-suffix? ".go" f)
			     (string-suffix? ".pdf" f)
			     (string-suffix? ".png" f)
			     (string-suffix? ".info" f)
			     (equal? (basename f) "guix-daemon")
			     (equal? (basename f) "nix-setuid-helper")
			     (string-contains f "nix-upstream/")
			     (string-contains f "distro/packages/bootstrap/")))
		       (find-files "." "\\.[a-z]+$"))
    (("^([[:graph:]]+) This file is part of Guix." _ comment-start)
     (string-append comment-start " This file is part of GNU Guix."))
    (("^([[:graph:]]+) Guix --- Nix package management.*" _ comment-start)
     (string-append comment-start
		    " GNU Guix --- Functional package management for GNU\n"))
    (("^([[:graph:]]+) Guix is " _ comment-start)
     (string-append comment-start " GNU Guix is "))
    (("^([[:graph:]]+) along with Guix." _ comment-start)
     (string-append comment-start " along with GNU Guix."))
    (("^([[:graph:]]+) Copyright \\(C\\)" _ comment-start)
     (string-append comment-start " Copyright ©")))

Change headers using C-style comments manually.
1e982451 — Ludovic Courtès 13 years ago
Merge branch 'nix-integration'

Conflicts:
	tests/guix-package.sh
Next