gnu: libedit: Update to 20150325-3.1.
* gnu/packages/libedit.scm (libedit): Update to 20150325-3.1.
build: Add R build system.
* guix/build-system/r.scm: New file.
* guix/build/r-build-system: New file.
* Makefile.am (MODULES): Add new files.
* doc/guix.texi (Build Systems): Document r-build-system.
import: Add 'cran' importer.
* guix/import/cran.scm: New file.
* guix/scripts/import.scm: Add "cran" to 'importers'.
* guix/scripts/import/cran.scm: New file.
* tests/cran.scm: New file.
* Makefile.am (MODULES): Add 'guix/import/cran.scm' and
'guix/scripts/import/cran.scm'.
(SCM_TESTS): Add 'tests/cran.scm'.
* doc/guix.texi (Invoking guix import): Document it.
* po/guix/POTFILES.in: Add 'guix/scripts/import/cran.scm'.
emacs: Use only one guix-load-path variable.
emacs/guix-init.el (guix-load-path): Move to ...
emacs/guix-backend.el (guix-load-path): ... Here. Redefine it.
emacs: Fix guix-guile-program default value.
Fixes <http://bugs.gnu.org/21127>.
* emacs/guix-backend.el: Use guix-config.
(guix-guile-program): Move to ...
* emacs/guix-config.el.in (guix-guile-program): ... here. Use Guile
program file name from compile-time instead of depending on PATH.
build: Produce 'guix-config' instead of using compile-time tricks.
* emacs/guix-{init,profiles}.el.in: Rename to ...
* emacs/guix-{init,profiles}.el: ... these. New files.
Use 'guix-config'.
* emacs/guix-config.el.in: New file.
* emacs.am (nodist_lisp_DATA): Add it. Move them to ...
(ELFILES): ... here.
* .gitignore, configure.ac: Adjust accordingly.
emacs: Use prompt for packages instead popup for edit action.
* emacs/guix-base.el (guix-package-location): New function.
(guix-edit-package): Rename and move to ...
* emacs/guix.el (guix-edit): ...here. Make it interactive.
* emacs/guix-command.el (guix-edit-action): New function (alias to
'guix-edit') to override the popup for edit command in "M-x guix".
* emacs/guix-list.el (guix-list-edit-package): Adjust for 'guix-edit'
renaming.
* emacs/guix-main.scm (package-location-string): Allow to accept package
id or package name as argument.
emacs: Add popup interface for guix commands.
* emacs/guix-command.el: New file.
* emacs.am (ELFILES): Add it.
* doc/emacs.texi (Emacs Initial Setup): Mention 'magit-popup' library.
(Emacs Popup Interface): New node.
(Emacs Interface): Add it.
* doc/guix.texi (Top): Likewise.
emacs: Add "guix-popup.el".
* emacs/guix-popup.el: New file.
* emacs.am (ELFILES): Add it.
doc: Reorganize "Emacs Interface" node.
* doc/guix.texi (Package Management): Move "Emacs Interface" node to ...
(Top): ...here, since it is not just about package management.
* doc/emacs.texi: Shift all nodes one level up (@section -> @chapter, etc.).
Rename "Emacs Usage" node into "Emacs Package Management". Move "Emacs
Configuration" node here.
emacs: Add code to run guix command in shell.
* emacs/guix-base.el (guix-run-in-shell, guix-run-in-eshell,
guix-run-command-in-shell): New functions.
(guix-run-in-shell-function, guix-shell-buffer-name): New variables.
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.