From 334c95306a298803096a0077c892d69473ad0824 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 12 Mar 2017 17:35:32 +0100 Subject: syscalls: Adjust 'define-bits' to macro literal semantics of 2.2. * guix/build/syscalls.scm (define-bits): Do not define NAMES... as top-level variables since that prevents literal matches in 2.2. Instead, determine constant values at expansion time. --- guix/build/syscalls.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'guix/build/syscalls.scm') diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index b68c48a05a..58c23f2844 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -1346,12 +1346,12 @@ given an integer, returns the list of names of the constants that are or'd." (begin (define-syntax constructor (syntax-rules (names ...) + ((_) 0) ((_ names) values) ... - ((_ several (... ...)) - (logior (constructor several) (... ...))))) + ((_ first rest (... ...)) + (logior (constructor first) rest (... ...))))) (define (bits->symbols bits) - (bits->symbols-body bits (names ...) (values ...))) - (define names values) ...)))) + (bits->symbols-body bits (names ...) (values ...))))))) ;; 'local-flags' bits from (define-bits local-flags -- cgit v1.2.3