Merge branch 'master' into core-updates
ui: Replace the global 'symlink' binding. * guix/ui.scm (symlink): Set! the global symlink.
ui: Do not call 'display-error' for SRFI-34 exceptions. * guix/ui.scm (report-load-error, warn-about-load-error, read/eval): Add clause for SRFI-34 exceptions.
ui: Improve error reporting for 'read/eval'. The effect is visible on commands like: guix build -e '(+ 2 "foo")' guix build -e '()' * guix/ui.scm (read/eval): Change handler to properly report syntax errors and use 'display-error' for other errors.
guix system: Add '--on-error'. * guix/ui.scm (load*): Add #:on-error parameter. [tag, error-string]: New variables. Wrap 'load' call in 'call-with-prompt'. Pass TAG to 'make-stack'. Honor ON-ERROR after 'report-load-error' call. (report-load-error): Change to not exit on error. Make private. * guix/scripts/system.scm (show-help, %options): Add --on-error. (guix-system): Use 'load*' and pass it #:on-error.
ui: Auto-compile user code, and improve error reporting. Reported by Christian Grothoff. * guix/ui.scm (load*): Add 'frame-with-source'. Set %load-should-auto-compile. Change error handle to just (exit 1). Add pre-unwind handler to capture the stack and call 'report-load-error'. (report-load-error): Add optional 'frame' parameter and pass it to 'display-error'. * tests/guix-system.sh: Add "unbound variable" test.
ui: Make 'symlink' replacement more future-proof. * guix/ui.scm (symlink): Change next-to-last 'throw' argument to explicitly ignore ARGS; change last argument to (list errno).
ui: Add 'copy-file' replacement with better error reporting. * guix/ui.scm (copy-file): New procedure.
Merge branch 'master' into gtk-rebuild Conflicts: gnu/packages/gtk.scm
ui: Deduplicate 'show-what-to-build*'. * guix/ui.scm (show-what-to-build*): New procedure. * guix/scripts/environment.scm (show-what-to-build*): Delete. * guix/scripts/system.scm (show-what-to-build*): Likewise. * build-aux/make-binary-tarball.scm (show-what-to-build*): Likewise.
ui: Factorize user-provided Scheme file loading. * guix/ui.scm (make-user-module, load*): New procedures. * guix/scripts/system.scm (%user-module): Define in terms of 'make-user-module'. (read-operating-system): Define in terms of load*'.
Remove assorted Guile 2.0.5 workarounds. * guix/scripts/authenticate.scm (%default-port-conversion-strategy): Remove. * guix/scripts/substitute.scm (fetch): Remove 2.0.5 special cases. * guix/serialization.scm (write-file): Remove 'scandir' workaround. * guix/ui.scm (command-files): Likewise.
ui: Add 'symlink' replacement with better error reporting. * guix/ui.scm (symlink): New procedure.
guix package: -A and -s take supported systems into account. * guix/scripts/package.scm (guix-package)[process-query] <list-available>: Restrict results to packages matching 'supported-package?". * guix/ui.scm (package->recutils): Print "systems:". * tests/guix-package.sh: Add tests. * doc/guix.texi (Invoking guix package): Adjust description of '--list-available' accordingly.
Merge branch 'core-updates'
Merge branch 'master' into core-updates
gnu: Emit a warning when a package module cannot be loaded. * guix/ui.scm (warn-about-load-error): New procedure. * gnu/packages.scm (package-modules): Wrap 'resolve-interface' call in 'catch #t', and call 'warn-about-load-error' in handler.
ui: Add 'report-load-error'. * guix/scripts/system.scm (read-operating-system): Replace error handling code by a call to 'report-load-error'. * guix/ui.scm (report-load-error): New procedure.
ui: Recognize 'guix help'. Suggested by Andy Wingo. * guix/ui.scm (guix-main): Add "help" case.
Merge branch 'master' into core-updates