guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/04: reconfigure: Correctly re-throw SRFI-34 exceptions on Guile 3.


From: guix-commits
Subject: 01/04: reconfigure: Correctly re-throw SRFI-34 exceptions on Guile 3.
Date: Tue, 7 Apr 2020 18:05:56 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 93add9bf7d73b6a6ed2d0cf85778b26aa38fd194
Author: Ludovic Courtès <address@hidden>
AuthorDate: Tue Apr 7 23:31:41 2020 +0200

    reconfigure: Correctly re-throw SRFI-34 exceptions on Guile 3.
    
    Previously, we'd just print an ugly backtrace when running on Guile 3
    because the '%exception throw would not be caught anywhere.
    
    Reported by Arne Babenhauserheide <address@hidden>
    in <https://bugs.gnu.org/40496>.
    
    * guix/scripts/system/reconfigure.scm (install-bootloader-program): In
    'catch' handler, match '%exception and use 'raise-exception' instead of
    'throw' to rethrow in that case.
---
 guix/scripts/system/reconfigure.scm | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/guix/scripts/system/reconfigure.scm 
b/guix/scripts/system/reconfigure.scm
index 074c48f..7885c33 100644
--- a/guix/scripts/system/reconfigure.scm
+++ b/guix/scripts/system/reconfigure.scm
@@ -211,6 +211,7 @@ BOOTLOADER-PACKAGE."
                         (guix store)
                         (guix utils)
                         (ice-9 binary-ports)
+                        (ice-9 match)
                         (srfi srfi-34)
                         (srfi srfi-35))
 
@@ -235,7 +236,11 @@ BOOTLOADER-PACKAGE."
                    (#$installer #$bootloader-package #$device #$target))
                  (lambda args
                    (delete-file new-gc-root)
-                   (apply throw args))))
+                   (match args
+                     (('%exception exception)     ;Guile 3 SRFI-34 or similar
+                      (raise-exception exception))
+                     ((key . args)
+                      (apply throw key args))))))
              ;; We are sure that the installation of the bootloader
              ;; succeeded, so we can replace the old GC root by the new
              ;; GC root now.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]