records: Make a couple of procedures available at expansion time.

* guix/records.scm (current-abi-identifier, abi-check): Wrap in
'eval-when'.
This commit is contained in:
Ludovic Courtès 2018-05-31 17:32:22 +02:00
parent b1059b38b2
commit 9768848af8
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -63,6 +63,9 @@ (define (print-record-abi-mismatch-error port key args
(set-exception-printer! 'record-abi-mismatch-error
print-record-abi-mismatch-error)
(eval-when (expand load eval)
;; The procedures below are needed both at run time and at expansion time.
(define (current-abi-identifier type)
"Return an identifier unhygienically derived from TYPE for use as its
\"current ABI\" variable."
@ -78,7 +81,7 @@ (define (abi-check type cookie)
interface\" (ABI) for TYPE is equal to COOKIE."
(with-syntax ((current-abi (current-abi-identifier type)))
#`(unless (eq? current-abi #,cookie)
(throw 'record-abi-mismatch-error #,type))))
(throw 'record-abi-mismatch-error #,type)))))
(define-syntax make-syntactic-constructor
(syntax-rules ()