From f6ddf827f8f192af7a8cd255bd8374a0d38bbb74 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 23 Jan 2014 10:09:29 -0500 Subject: [PATCH] Improve correctness and consistency of 'eval-when' usage. * module/ice-9/boot-9.scm: * module/ice-9/i18n.scm: * module/ice-9/poll.scm: * module/ice-9/popen.scm: * module/ice-9/r6rs-libraries.scm: * module/oop/goops.scm: * module/oop/goops/compile.scm: * module/oop/goops/dispatch.scm: * module/srfi/srfi-88.scm: * module/system/foreign.scm: * module/texinfo/serialize.scm: Change most uses of 'compile' to 'expand', except where we must avoid it during initial bootstrap before the module system is loaded. Remove redundant uses of 'compile' where 'expand' is also given. Standardize on the "(expand load eval)" order of conditions. --- module/ice-9/boot-9.scm | 18 +++++++++--------- module/ice-9/i18n.scm | 2 +- module/ice-9/poll.scm | 2 +- module/ice-9/popen.scm | 2 +- module/ice-9/r6rs-libraries.scm | 2 +- module/oop/goops.scm | 8 ++++---- module/oop/goops/compile.scm | 2 +- module/oop/goops/dispatch.scm | 2 +- module/srfi/srfi-88.scm | 2 +- module/system/foreign.scm | 2 +- module/texinfo/serialize.scm | 2 +- 11 files changed, 22 insertions(+), 22 deletions(-) diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm index e4b3b58cf..fe9ae7897 100644 --- a/module/ice-9/boot-9.scm +++ b/module/ice-9/boot-9.scm @@ -1673,7 +1673,7 @@ VALUE." (define-syntax-rule (add-to-load-path elt) "Add ELT to Guile's load path, at compile-time and at run-time." - (eval-when (compile load eval) + (eval-when (expand load eval) (set! %load-path (cons elt %load-path)))) (define %load-verbosely #f) @@ -3087,7 +3087,7 @@ but it fails to load." (interface options) (interface))) (define-syntax-rule (option-set! opt val) - (eval-when (eval load compile expand) + (eval-when (expand load eval) (options (append (options) (list 'opt val))))))))) (define-option-interface @@ -3402,7 +3402,7 @@ CONV is not applied to the initial value." ;; Return a list of expressions that evaluate to the appropriate ;; arguments for resolve-interface according to SPEC. -(eval-when (compile) +(eval-when (expand) (if (memq 'prefix (read-options)) (error "boot-9 must be compiled with #:kw, not :kw"))) @@ -3507,7 +3507,7 @@ CONV is not applied to the initial value." (filename (let ((f (assq-ref (or (syntax-source x) '()) 'filename))) (and (string? f) f)))) - #'(eval-when (eval load compile expand) + #'(eval-when (expand load eval) (let ((m (define-module* '(name name* ...) #:filename filename quoted-arg ...))) (set-current-module m) @@ -3567,13 +3567,13 @@ CONV is not applied to the initial value." (syntax-case x () ((_ spec ...) (with-syntax (((quoted-args ...) (quotify #'(spec ...)))) - #'(eval-when (eval load compile expand) + #'(eval-when (expand load eval) (process-use-modules (list quoted-args ...)) *unspecified*)))))) (define-syntax-rule (use-syntax spec ...) (begin - (eval-when (eval load compile expand) + (eval-when (expand load eval) (issue-deprecation-warning "`use-syntax' is deprecated. Please contact guile-devel for more info.")) (use-modules spec ...))) @@ -3661,19 +3661,19 @@ CONV is not applied to the initial value." names))) (define-syntax-rule (export name ...) - (eval-when (eval load compile expand) + (eval-when (expand load eval) (call-with-deferred-observers (lambda () (module-export! (current-module) '(name ...)))))) (define-syntax-rule (re-export name ...) - (eval-when (eval load compile expand) + (eval-when (expand load eval) (call-with-deferred-observers (lambda () (module-re-export! (current-module) '(name ...)))))) (define-syntax-rule (export! name ...) - (eval-when (eval load compile expand) + (eval-when (expand load eval) (call-with-deferred-observers (lambda () (module-replace! (current-module) '(name ...)))))) diff --git a/module/ice-9/i18n.scm b/module/ice-9/i18n.scm index ca949b4f3..1d12dd061 100644 --- a/module/ice-9/i18n.scm +++ b/module/ice-9/i18n.scm @@ -83,7 +83,7 @@ locale-yes-regexp locale-no-regexp)) -(eval-when (eval load compile) +(eval-when (expand load eval) (load-extension (string-append "libguile-" (effective-version)) "scm_init_i18n")) diff --git a/module/ice-9/poll.scm b/module/ice-9/poll.scm index 2ba868748..ff87e8a6a 100644 --- a/module/ice-9/poll.scm +++ b/module/ice-9/poll.scm @@ -34,7 +34,7 @@ poll-set-remove! poll)) -(eval-when (eval load compile) +(eval-when (expand load eval) (load-extension (string-append "libguile-" (effective-version)) "scm_init_poll")) diff --git a/module/ice-9/popen.scm b/module/ice-9/popen.scm index 48a52e6c1..b166e9d0f 100644 --- a/module/ice-9/popen.scm +++ b/module/ice-9/popen.scm @@ -24,7 +24,7 @@ :export (port/pid-table open-pipe* open-pipe close-pipe open-input-pipe open-output-pipe open-input-output-pipe)) -(eval-when (load eval compile) +(eval-when (expand load eval) (load-extension (string-append "libguile-" (effective-version)) "scm_init_popen")) diff --git a/module/ice-9/r6rs-libraries.scm b/module/ice-9/r6rs-libraries.scm index 428d951ed..a68df3c63 100644 --- a/module/ice-9/r6rs-libraries.scm +++ b/module/ice-9/r6rs-libraries.scm @@ -217,7 +217,7 @@ (syntax-case stx () ((_ import-set ...) (with-syntax (((library-reference ...) (map strip-for #'(import-set ...)))) - #'(eval-when (eval load compile expand) + #'(eval-when (expand load eval) (let ((iface (resolve-r6rs-interface 'library-reference))) (call-with-deferred-observers (lambda () diff --git a/module/oop/goops.scm b/module/oop/goops.scm index 8e548d8e9..f2f61c58b 100644 --- a/module/oop/goops.scm +++ b/module/oop/goops.scm @@ -77,10 +77,10 @@ (define *goops-module* (current-module)) ;; First initialize the builtin part of GOOPS -(eval-when (eval load compile) +(eval-when (expand load eval) (%init-goops-builtins)) -(eval-when (eval load compile) +(eval-when (expand load eval) (use-modules ((language tree-il primitives) :select (add-interesting-primitive!))) (add-interesting-primitive! 'class-of) (define (@slot-ref o n) @@ -96,7 +96,7 @@ (oop goops compile)) -(eval-when (eval load compile) +(eval-when (expand load eval) (define min-fixnum (- (expt 2 29))) (define max-fixnum (- (expt 2 29) 1))) @@ -1123,7 +1123,7 @@ ;; the idea is to compile the index into the procedure, for fastest ;; lookup. Also, @slot-ref and @slot-set! have their own bytecodes. -(eval-when (eval load compile) +(eval-when (expand load eval) (define num-standard-pre-cache 20)) (define-macro (define-standard-accessor-method form . body) diff --git a/module/oop/goops/compile.scm b/module/oop/goops/compile.scm index ace89b4bc..8c546e03f 100644 --- a/module/oop/goops/compile.scm +++ b/module/oop/goops/compile.scm @@ -19,7 +19,7 @@ ;; There are circularities here; you can't import (oop goops compile) ;; before (oop goops). So when compiling, make sure that things are ;; kosher. -(eval-when (compile) (resolve-module '(oop goops))) +(eval-when (expand) (resolve-module '(oop goops))) (define-module (oop goops compile) :use-module (oop goops) diff --git a/module/oop/goops/dispatch.scm b/module/oop/goops/dispatch.scm index 76f16fb6e..0198a9f40 100644 --- a/module/oop/goops/dispatch.scm +++ b/module/oop/goops/dispatch.scm @@ -19,7 +19,7 @@ ;; There are circularities here; you can't import (oop goops compile) ;; before (oop goops). So when compiling, make sure that things are ;; kosher. -(eval-when (compile) (resolve-module '(oop goops))) +(eval-when (expand) (resolve-module '(oop goops))) (define-module (oop goops dispatch) #:use-module (oop goops) diff --git a/module/srfi/srfi-88.scm b/module/srfi/srfi-88.scm index b9056a46a..043a4a78f 100644 --- a/module/srfi/srfi-88.scm +++ b/module/srfi/srfi-88.scm @@ -35,7 +35,7 @@ ;; Change the keyword syntax both at compile time and run time; the latter is ;; useful at the REPL. -(eval-when (compile load) +(eval-when (expand load eval) (read-set! keywords 'postfix)) (define (keyword->string k) diff --git a/module/system/foreign.scm b/module/system/foreign.scm index e4db6ffb3..55ab014b4 100644 --- a/module/system/foreign.scm +++ b/module/system/foreign.scm @@ -55,7 +55,7 @@ define-wrapped-pointer-type)) -(eval-when (load eval compile) +(eval-when (expand load eval) (load-extension (string-append "libguile-" (effective-version)) "scm_init_foreign")) diff --git a/module/texinfo/serialize.scm b/module/texinfo/serialize.scm index d0c6f50e5..f3840c49c 100644 --- a/module/texinfo/serialize.scm +++ b/module/texinfo/serialize.scm @@ -60,7 +60,7 @@ ;; Why? Well, because syntax-case defines `include', and carps about its ;; wrong usage below... -(eval-when (eval load compile) +(eval-when (expand load eval) (define (include exp lp command type formals args accum) (list* "\n" (list-intersperse