diff options
author | Ludovic Courtès <ludo@gnu.org> | 2024-04-08 21:47:29 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2024-05-04 19:14:24 +0200 |
commit | 2f93e1682a02d76c59762ffaa99ee2abe4dea928 (patch) | |
tree | 955c59b6ae9adae14de4573222c5032d4a4e22b4 | |
parent | 9e184d5e54d1fee98c75bcb577a98456a77ae015 (diff) | |
download | guix-2f93e1682a02d76c59762ffaa99ee2abe4dea928.tar.gz guix-2f93e1682a02d76c59762ffaa99ee2abe4dea928.zip |
records: Do not inline throws for ABI mismatches.
* guix/records.scm (record-abi-mismatch-error): New procedure.
(abi-check): Use it.
Change-Id: I49936599716e117b8fbf26fb9d8f462bbbb8e88b
-rw-r--r-- | guix/records.scm | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/guix/records.scm b/guix/records.scm index f4d12a861d..48637ea0a4 100644 --- a/guix/records.scm +++ b/guix/records.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012-2023 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012-2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. @@ -61,6 +61,11 @@ (string-append "% " (symbol->string type-name) " abi-cookie"))))) + (define (record-abi-mismatch-error type) + (throw 'record-abi-mismatch-error 'abi-check + "~a: record ABI mismatch; recompilation needed" + (list type) '())) + (define (abi-check type cookie) "Return syntax that checks that the current \"application binary interface\" (ABI) for TYPE is equal to COOKIE." @@ -68,9 +73,7 @@ interface\" (ABI) for TYPE is equal to COOKIE." #`(unless (eq? current-abi #,cookie) ;; The source file where this exception is thrown must be ;; recompiled. - (throw 'record-abi-mismatch-error 'abi-check - "~a: record ABI mismatch; recompilation needed" - (list #,type) '())))) + (record-abi-mismatch-error #,type)))) (define* (report-invalid-field-specifier name bindings #:optional parent-form) |