records: Add support for delayed fields.
* guix/records.scm (make-syntactic-constructor): Add #:delayed
parameter.
[delayed-field?]: New procedure.
[wrap-field-value]: Use it.
(define-record-type*)[delayed-field?, wrapped-field?]: New procedures.
[thunked-field-accessor-name]: Rename to...
[wrapped-field-accessor-name]: ... this.
[field-spec->srfi-9]: Change 'thunked' to 'wrapped'.
[delayed-field-accessor-definition]: New procedure.
Compute delayed-field accessors and emit them. Pass #:delayed to
'make-syntactic-constructor'.
* tests/records.scm ("define-record-type* & delayed",
"define-record-type* & delayed & default",
"define-record-type* & delayed & inherited"): New tests.
make-syntactic-constructor kwarg default
records: Factorize value wrapping in the record constructor.
* guix/records.scm (make-syntactic-constructor)[wrap-field-value]: New
procedure.
[field-bindings, field-value]: Use it.
records: Move 'make-syntactic-constructor' to the top level.
* guix/records.scm (make-syntactic-constructor): New procedure, formerly
nested in 'define-record-type*'.
records: Use keyword parameters for 'make-syntactic-constructor'.
* guix/records.scm (define-record-type*)[make-syntactic-constructor]:
Turn THUNKED and DEFAULTS into keyword arguments.
Adjust caller accordingly. Declare 'thunked' and 'defaults' local
variables.
gnu: Make libgnomeprint{,ui} as deprecated.
* gnu/packages/gnome.scm (libgnomeprint): Add comment and update
'description' to mark it as deprecated.
(libgnomeprintui): Ditto.
gnu: Move guile-charting to (gnu packages plotutils).
This removes the dependency from (gnu packages guile)
to (gnu packages gtk), which potentially reduces the memory/IO/CPU
footprint given that 'guile' is used during bootstrap.
* gnu/packages/guile.scm (guile-charting): Move to...
* gnu/packages/plotutils.scm (guile-charting): ... here.
gnu: Add json-glib.
* gnu/packages/gnome.scm (json-glib): New variable.
gnu: tiled: Update to 0.11.0.
* gnu/packages/game-development.scm (tiled): Update.
gnu: tiled: Move to game-development module.
* gnu/packages/games.scm (tiled): Move from here...
* gnu/packages/game-development (tiled): ...to here.
gnu: emms: Let the build system install emms-print-metadata.1.
Reported by effa`` on #guix.
* gnu/packages/emacs.scm (emms)[arguments] <pre-install>: Remove
'copy-file' invocation.
tests: Adjust syscall tests for 2.6ish Linux.
* tests/syscalls.scm ("set-network-interface-flags",
"set-network-interface-address"): Accept EACCES as a valid result.
gnu: Add CUPS.
* gnu/packages/cups.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
gnu: Add IJS
* gnu/packages/ghostscript.scm (ijs): New variable.
gnu: Add telepathy-glib.
* gnu/packages/glib.scm (telepathy-glib): New variable.
nar: Read archive signatures as Latin-1 strings.
Fixes <http://bugs.gnu.org/19610>.
Reported by Mark H Weaver <mhw@netris.org>.
* guix/nar.scm (restore-one-item): Use 'read-latin1-string' to read the
signature.
serialization: Read Latin-1 strings with 'get-bytevector-n'.
* guix/serialization.scm (read-latin1-string): Use 'get-bytevector-n'
instead of 'get-string-n'. Use 'list->string' etc. to convert the
bytevector to a string.
store: Change 'store-lower' to preserve the original procedure's documentation.
* guix/store.scm (preserve-documentation): New procedure.
(store-lift, store-lower): Use it.
doc: Document '%state-monad' and update '%store-monad' description.
* doc/guix.texi (The Store Monad): Document '%state-monad' and related
procedures. Describe '%store-monad' as an alias for '%state-monad'.
* guix/monads.scm: Update commentary.