X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Fmain.lisp;h=b01695dd0e088cdf13e9e3cff2dae291ac723216;hb=ef11b09c41b1e344212f6a363892a849af7ff94e;hp=55be15efa06e78604e9b213ff8419652ed679baa;hpb=62632ded19a81b329a33f5122649d7b6e06e3d76;p=sbcl.git diff --git a/src/compiler/main.lisp b/src/compiler/main.lisp index 55be15e..b01695d 100644 --- a/src/compiler/main.lisp +++ b/src/compiler/main.lisp @@ -801,7 +801,7 @@ ;;; We parse declarations and then recursively process the body. (defun process-toplevel-locally (body path compile-time-too) (declare (list path)) - (multiple-value-bind (forms decls) (sb!sys:parse-body body nil) + (multiple-value-bind (forms decls) (parse-body body nil) (let* ((*lexenv* (process-decls decls nil nil (make-continuation))) ;; Binding *POLICY* is pretty much of a hack, since it @@ -903,8 +903,8 @@ ;; nice default for things where we don't have a ;; real source path (as in e.g. inside CL:COMPILE). '(original-source-start 0 0))) - (unless (or (null name) (legal-fun-name-p name)) - (error "not a legal function name: ~S" name)) + (when name + (legal-fun-name-or-type-error name)) (let* ((*lexenv* (make-lexenv :policy *policy*)) (fun (make-functional-from-toplevel-lambda lambda-expression :name name @@ -974,8 +974,7 @@ (defun process-toplevel-cold-fset (name lambda-expression path) (unless (producing-fasl-file) (error "can't COLD-FSET except in a fasl file")) - (unless (legal-fun-name-p name) - (error "not a legal function name: ~S" name)) + (legal-fun-name-or-type-error name) (fasl-dump-cold-fset name (%compile lambda-expression *compile-object* @@ -1000,8 +999,9 @@ (*compiler-error-bailout* (lambda () (convert-and-maybe-compile - `(error "execution of a form compiled with errors:~% ~S" - ',form) + `(error 'simple-program-error + :format-control "execution of a form compiled with errors:~% ~S" + :format-arguments (list ',form)) path) (throw 'process-toplevel-form-error-abort nil)))) @@ -1550,7 +1550,7 @@ #!+sb-doc "Return a pathname describing what file COMPILE-FILE would write to given these arguments." - (pathname output-file)) + (merge-pathnames output-file (merge-pathnames input-file))) ;;;; MAKE-LOAD-FORM stuff