X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fdefboot.lisp;h=978a3c8e067fe7a3f856bf5db0e8782ff22fcf2a;hb=4b58efcd710097cf7cc9b1a1bed8b0e1bd6eb3b8;hp=45d064c79786e0ee41725e1dcfde09733f574f1d;hpb=d49c71bf00d858efc5796900ca4954fb76ce6402;p=sbcl.git diff --git a/src/code/defboot.lisp b/src/code/defboot.lisp index 45d064c..978a3c8 100644 --- a/src/code/defboot.lisp +++ b/src/code/defboot.lisp @@ -105,19 +105,17 @@ ;;;; various sequencing constructs -(defmacro-mundanely prog (varlist &body body-decls) - (multiple-value-bind (body decls) (parse-body body-decls nil) - `(block nil - (let ,varlist - ,@decls - (tagbody ,@body))))) - -(defmacro-mundanely prog* (varlist &body body-decls) - (multiple-value-bind (body decls) (parse-body body-decls nil) - `(block nil - (let* ,varlist - ,@decls - (tagbody ,@body))))) +(flet ((prog-expansion-from-let (varlist body-decls let) + (multiple-value-bind (body decls) + (parse-body body-decls :doc-string-allowed nil) + `(block nil + (,let ,varlist + ,@decls + (tagbody ,@body)))))) + (defmacro-mundanely prog (varlist &body body-decls) + (prog-expansion-from-let varlist body-decls 'let)) + (defmacro-mundanely prog* (varlist &body body-decls) + (prog-expansion-from-let varlist body-decls 'let*))) (defmacro-mundanely prog1 (result &body body) (let ((n-result (gensym))) @@ -169,7 +167,7 @@ (or (sb!c:maybe-inline-syntactic-closure lambda env) (progn (#+sb-xc-host warn - #-sb-xc-host sb!c:maybe-compiler-note + #-sb-xc-host sb!c:maybe-compiler-notify "lexical environment too hairy, can't inline DEFUN ~S" name) nil))))) @@ -305,7 +303,7 @@ ;; environment. We spuriously reference the gratuitous variable, ;; since we don't want to use IGNORABLE on what might be a special ;; var. - (multiple-value-bind (forms decls) (parse-body body nil) + (multiple-value-bind (forms decls) (parse-body body :doc-string-allowed nil) (let ((n-list (gensym))) `(do* ((,n-list ,list (cdr ,n-list))) ((endp ,n-list) @@ -385,7 +383,7 @@ ,n-cond (car *restart-clusters*) ,(if (eq name 'cerror) - `(cerror ,(second expression) ,n-cond) + `(cerror ,(second exp) ,n-cond) `(,name ,n-cond)))) expression)) expression)))