summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2021-02-23 17:01:24 +0100
committerLudovic Courtès <ludo@gnu.org>2021-02-24 23:44:10 +0100
commite2572aa95007558b008f04decff095f46d20e087 (patch)
treead7517ccc409da38e35a91ab427044c9d808908c
parentb288d0e74950c0471c19e62de6a4094a4b02c828 (diff)
substitute: Do not unwind stack traces upon uncaught exceptions.
This is similar to commit a168c3e4f8d580f70e1c26bcdfc5b8378b2fa42d. * guix/scripts/substitute.scm (with-networking): Use 'with-throw-handler' instead of 'catch'.
-rwxr-xr-xguix/scripts/substitute.scm6
1 files changed, 4 insertions, 2 deletions
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index a3a0349530..832c82e4fa 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2020 Christopher Baines <mail@cbaines.net>
@@ -510,7 +510,9 @@ was found."
;; lookup errors are typically the first one, and because other errors are
;; a subset of `system-error', which is harder to filter.
((_ exp ...)
- (catch #t
+ ;; Use a pre-unwind handler so that re-throwing preserves useful
+ ;; backtraces. 'with-throw-handler' works for Guile 2.2 and 3.0.
+ (with-throw-handler #t
(lambda () exp ...)
(match-lambda*
(('getaddrinfo-error error)