Improve correctness and consistency of 'eval-when' usage.
authorMark H Weaver <mhw@netris.org>
Thu, 23 Jan 2014 15:09:29 +0000 (10:09 -0500)
committerMark H Weaver <mhw@netris.org>
Thu, 23 Jan 2014 15:41:22 +0000 (10:41 -0500)
* 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
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

index e4b3b58..fe9ae78 100644 (file)
@@ -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 ...))))))
index ca949b4..1d12dd0 100644 (file)
@@ -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"))
 
index 2ba8687..ff87e8a 100644 (file)
@@ -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"))
 
index 48a52e6..b166e9d 100644 (file)
@@ -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"))
 
index 428d951..a68df3c 100644 (file)
     (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 ()
index 8e548d8..f2f61c5 100644 (file)
 (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))
 
 \f
-(eval-when (eval load compile)
+(eval-when (expand load eval)
   (define min-fixnum (- (expt 2 29)))
   (define max-fixnum (- (expt 2 29) 1)))
 
 ;; 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)
index ace89b4..8c546e0 100644 (file)
@@ -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)
index 76f16fb..0198a9f 100644 (file)
@@ -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)
index b9056a4..043a4a7 100644 (file)
@@ -35,7 +35,7 @@
 \f
 ;; 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)
index e4db6ff..55ab014 100644 (file)
@@ -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"))
 
index d0c6f50..f3840c4 100644 (file)
@@ -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