emacs: Add code to run guix command in REPL.
* emacs/guix-base.el (guix-run-command-in-repl, guix-command-output,
guix-help-string): New functions.
* emacs/guix-main.scm (guix-command, guix-command-output, help-string):
New procedures.
ui: Add 'run-guix'.
* guix/ui.scm (guix-main): Move the code to run guix command line to ...
(run-guix): ...here. New procedure. Export it.
emacs: Add and use alist accessors.
* emacs/guix-utils.el (guix-define-alist-accessor): New macro.
(guix-assq-value, guix-assoc-value): New functions.
(guix-get-key-val): Remove.
* emacs/guix-base.el: Replace 'guix-get-key-val' with 'guix-assq-value'
everywhere.
* emacs/guix-info.el: Likewise.
* emacs/guix-list.el: Likewise.
* emacs/guix-messages.el: Likewise.
emacs: Add minibuffer readers.
* emacs/guix-read.el: New file.
* emacs.am (ELFILES): Add it.
emacs: Add help variables.
* emacs/guix-pcomplete.el (guix-pcomplete-parse-package-regexp,
guix-pcomplete-parse-command-regexp,
guix-pcomplete-parse-long-option-regexp,
guix-pcomplete-parse-short-option-regexp,
guix-pcomplete-parse-list-regexp, guix-pcomplete-parse-regexp-group,
guix-pcomplete-systems, guix-pcomplete-hash-formats,
guix-pcomplete-refresh-subsets, guix-pcomplete-key-policies): Move and
rename to ...
* emacs/guix-help-vars.el (guix-help-parse-package-regexp,
guix-help-parse-command-regexp, guix-help-parse-long-option-regexp,
guix-help-parse-short-option-regexp, guix-help-parse-list-regexp,
guix-help-parse-regexp-group, guix-help-system-types,
guix-help-hash-formats, guix-help-refresh-subsets,
guix-help-key-policies): ...here. New file.
(guix-help-parse-option-regexp, guix-help-source-types,
guix-help-verify-options, guix-help-elpa-archives): New variables.
* emacs.am (ELFILES): Add "guix-help-vars.el".
emacs: Add 'guix-package-names'.
* emacs/guix-main.scm (package-names, package-names-lists): New procedures.
* emacs/guix-base.el (guix-package-names): New function.
emacs: Add 'guix-graph-type-names'.
* emacs/guix-main.scm: Use (guix scripts graph) module.
(graph-type-names): New procedure.
* emacs/guix-base.el (guix-graph-type-names): New function.
guix graph: Export node types and <node-type> accessors.
* guix/scripts/graph.scm (%node-types, node-type, node-type?,
node-type-identifier, node-type-label, node-type-edges,
node-type-convert, node-type-name, node-type-description): Export.
emacs: Add 'guix-lint-checker-names'.
* emacs/guix-main.scm: Use (guix scripts lint) module.
(lint-checker-names): New procedure.
* emacs/guix-base.el (guix-lint-checker-names): New function.
guix lint: Export checkers and <lint-checker> accessors.
* guix/scripts/lint.scm (%checkers, lint-checker, lint-checker?,
lint-checker-name, lint-checker-description, lint-checker-check):
Export.
emacs: Add 'guix-memoized-defalias' macro.
* emacs/guix-utils.el (guix-memoized-defalias): New macro.
(guix-memoized-font-lock-keywords): New variable.
emacs: Add 'guix-any'.
* emacs/guix-utils.el (guix-any): New function.
emacs: Add utils to copy guix command.
* emacs/guix-utils.el (guix-copy-as-kill, guix-copy-command-as-kill):
New functions.
emacs: Add utils to make symbol and string for guix command.
* emacs/guix-utils.el (guix-shell-quote-argument, guix-command-symbol,
guix-command-string): New functions.
emacs: Add and use 'guix-concat-strings'.
* emacs/guix-utils.el (guix-concat-strings): New function.
* emacs/guix-pcomplete.el (guix-pcomplete-short-options): Use it.
* emacs/guix-base.el (guix-get-package-strings): Likewise.
emacs: Add and use 'guix-while-search'.
* emacs/guix-utils.el (guix-while-search): New macro.
* emacs/guix-pcomplete.el (guix-pcomplete-run-guix-and-search): Use it.
* emacs/guix-prettify.el (guix-prettify-decompose-buffer): Likewise.
emacs: Add 'guix-prettify' to 'guix' custom group.
* emacs/guix-prettify.el (guix-prettify): Add 'guix' group.
gnu: clutter: Add "doc" output.
* gnu/packages/gnome.scm (clutter)[outputs]: New field.
[arguments]: Pass --with-html-dir.
gnu: Add libchamplain.
* gnu/packages/gnome.scm (libchamplain): New variable.