X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fmeta-vmdef.lisp;h=fbecd263fd23c24c9e5de344c1f06b33f710909b;hb=158f220d2e6b44e48806480d6498466b9fc7eb62;hp=3d5dfef022d3b13ba6611e0c661778379f2eda9a;hpb=d604a358d8e5eb5587989e0a4f1d31dbe6ac5ffe;p=sbcl.git diff --git a/src/compiler/meta-vmdef.lisp b/src/compiler/meta-vmdef.lisp index 3d5dfef..fbecd26 100644 --- a/src/compiler/meta-vmdef.lisp +++ b/src/compiler/meta-vmdef.lisp @@ -886,13 +886,13 @@ (defvar *parse-vop-operand-count*) (defun make-operand-parse-temp () - ;; FIXME: potentially causes breakage in contribs from locked - ;; packages. - (intern (format nil "OPERAND-PARSE-TEMP-~D" *parse-vop-operand-count*) - (symbol-package '*parse-vop-operand-count*))) + (without-package-locks + (intern (format nil "OPERAND-PARSE-TEMP-~D" *parse-vop-operand-count*) + (symbol-package '*parse-vop-operand-count*)))) (defun make-operand-parse-load-tn () - (intern (format nil "OPERAND-PARSE-LOAD-TN-~D" *parse-vop-operand-count*) - (symbol-package '*parse-vop-operand-count*))) + (without-package-locks + (intern (format nil "OPERAND-PARSE-LOAD-TN-~D" *parse-vop-operand-count*) + (symbol-package '*parse-vop-operand-count*)))) ;;; Given a list of operand specifications as given to DEFINE-VOP, ;;; return a list of OPERAND-PARSE structures describing the fixed @@ -1590,7 +1590,7 @@ ;;; :OFFSET SB-Offset ;;; Force the temporary to be allocated in the specified SC ;;; with the specified offset. Offset is evaluated at -;;; macroexpand time. If Offset is emitted, the register +;;; macroexpand time. If Offset is omitted, the register ;;; allocator chooses a free location in SC. If both SC and ;;; Offset are omitted, then the temporary is packed according ;;; to its primitive type. @@ -1600,7 +1600,7 @@ ;;; Similar to the argument/result option, this specifies the ;;; start and end of the temporaries' lives. The defaults are ;;; :LOAD and :SAVE, i.e. the duration of the VOP. The other -;;; intervening phases are :ARGUMENT,:EVAL and :RESULT. +;;; intervening phases are :ARGUMENT, :EVAL and :RESULT. ;;; Non-zero sub-phases can be specified by a list, e.g. by ;;; default the second argument's life ends at (:ARGUMENT 1). ;;; @@ -1682,7 +1682,7 @@ ;;; :MOVE-ARGS {NIL | :FULL-CALL | :LOCAL-CALL | :KNOWN-RETURN} ;;; Indicates if and how the more args should be moved into a ;;; different frame. -(def!macro define-vop ((name &optional inherits) &rest specs) +(def!macro define-vop ((name &optional inherits) &body specs) (declare (type symbol name)) ;; Parse the syntax into a VOP-PARSE structure, and then expand into ;; code that creates the appropriate VOP-INFO structure at load time. @@ -1879,7 +1879,7 @@ ;;; beginning with T specifies a default. If it appears, it must be ;;; last. If no default is specified, and no clause matches, then an ;;; error is signalled. -(def!macro sc-case (tn &rest forms) +(def!macro sc-case (tn &body forms) (let ((n-sc (gensym)) (n-tn (gensym))) (collect ((clauses))