author | Camm Maguire <camm@debian.org> | 2013年10月27日 22:16:45 +0000 |
---|---|---|
committer | Camm Maguire <camm@debian.org> | 2013年10月27日 22:16:45 +0000 |
commit | 767820020c1aa106749962b681101bc29dcd0d9a (patch) | |
tree | f7bd87b97f36d5f766bb57caee5989bd206d6ee4 | |
parent | 149da9017e83ba340be696978ea41cc6d8947c5a (diff) | |
download | gcl-767820020c1aa106749962b681101bc29dcd0d9a.tar.gz |
-rwxr-xr-x | gcl/cmpnew/gcl_cmpmain.lsp | 3 | ||||
-rwxr-xr-x | gcl/cmpnew/gcl_cmptop.lsp | 24 |
diff --git a/gcl/cmpnew/gcl_cmpmain.lsp b/gcl/cmpnew/gcl_cmpmain.lsp index 33cc25e2a..bfc9d3941 100755 --- a/gcl/cmpnew/gcl_cmpmain.lsp +++ b/gcl/cmpnew/gcl_cmpmain.lsp @@ -286,8 +286,7 @@ Cannot compile ~a.~%" (namestring (merge-pathnames input-pathname *compiler-defa (unwind-protect (do ((form (read *compiler-input* nil eof) (read *compiler-input* nil eof)) - (load-flag (or (eq :defaults *eval-when-defaults*) - (list-split '(load :load-toplevel) *eval-when-defaults*)))) + (load-flag (if *eval-when-defaults* (list-split '(load :load-toplevel) *eval-when-defaults*) t))) (nil) (unless (eq form eof) diff --git a/gcl/cmpnew/gcl_cmptop.lsp b/gcl/cmpnew/gcl_cmptop.lsp index 07e22f87b..8b583dd25 100755 --- a/gcl/cmpnew/gcl_cmptop.lsp +++ b/gcl/cmpnew/gcl_cmptop.lsp @@ -407,30 +407,24 @@ ;; as I can make it. Valid values of *eval-when-defaults* are ;; a sublist of '(compile eval load) -(defvar *eval-when-defaults* :defaults) +(defvar *eval-when-defaults* nil);:defaults -(defun maybe-eval (default-action form) - (or default-action (and (symbolp (car form)) - (setq default-action (get (car form) 'eval-at-compile)))) - (cond ((or (and default-action (eq :defaults *eval-when-defaults*)) - (and (consp *eval-when-defaults*) - (or (member 'compile *eval-when-defaults* ) - (member :compile-toplevel *eval-when-defaults* )))) - (when form - (cmp-eval form)) - t))) +(defun maybe-eval (def form &aux (c (car form)) (def (or def (when (symbolp c) (get c 'eval-at-compile))))) + (when (if *eval-when-defaults* (list-split '(compile :compile-toplevel) *eval-when-defaults*) def) + (when form + (cmp-eval form)) + t)) (defun t1eval-when (args &aux load-flag compile-flag) (when (endp args) (too-few-args 'eval-when 1 0)) - (dolist** (situation (car args)) + (dolist (situation (car args)) (case situation ((load :load-toplevel) (setq load-flag t)) ((compile :compile-toplevel) (setq compile-flag t)) ((eval :execute)) - (otherwise (cmperr "The EVAL-WHEN situation ~s is illegal." - situation)))) - (let ((*eval-when-defaults* (car args))) + (otherwise (cmperr "The EVAL-WHEN situation ~s is illegal." situation)))) + (let ((*eval-when-defaults* (or *eval-when-defaults* (car args)))) (cond (load-flag (t1progn (cdr args))) (compile-flag (cmp-eval (cons 'progn (cdr args))))))) |