From 816248ab4fe04775879a7e5a5ce1b4c613afe9d5 Mon Sep 17 00:00:00 2001 From: William Harold Newman Date: Fri, 1 Mar 2002 22:51:27 +0000 Subject: [PATCH] 0.7.1.27: merged the first 2 (of 3) patches from CSR "x86, format, types" patches (sbcl-devel 2002-02-27) --- src/code/debug.lisp | 2 +- src/code/late-format.lisp | 17 +++++++++++++++-- src/code/ntrace.lisp | 2 +- src/compiler/ir1tran.lisp | 4 ++-- src/compiler/x86/float.lisp | 5 +---- version.lisp-expr | 2 +- 6 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/code/debug.lisp b/src/code/debug.lisp index fc9c8b2..b969a58 100644 --- a/src/code/debug.lisp +++ b/src/code/debug.lisp @@ -722,7 +722,7 @@ reset to ~S." (dolist (restart restarts) (let ((name (restart-name restart))) (cond ((member name names-used) - (format s "~& ~2D: ~@VT~A~%" count max-name-len restart)) + (format s "~& ~2D: ~V@T~A~%" count max-name-len restart)) (t (format s "~& ~2D: [~VA] ~A~%" count (- max-name-len 3) name restart) diff --git a/src/code/late-format.lisp b/src/code/late-format.lisp index 3aefd3d..d84c503 100644 --- a/src/code/late-format.lisp +++ b/src/code/late-format.lisp @@ -73,10 +73,17 @@ :complaint "String ended before directive was found." :control-string string :offset start) - (schar string posn)))) + (schar string posn))) + (check-ordering () + (when (or colonp atsignp) + (error 'format-error + :complaint "parameters found after #\\: or #\\@ modifier" + :control-string string + :offset posn)))) (loop (let ((char (get-char))) (cond ((or (char<= #\0 char #\9) (char= char #\+) (char= char #\-)) + (check-ordering) (multiple-value-bind (param new-posn) (parse-integer string :start posn :junk-allowed t) (push (cons posn param) params) @@ -87,7 +94,9 @@ (decf posn)) (t (return))))) - ((or (char= char #\v) (char= char #\V)) + ((or (char= char #\v) + (char= char #\V)) + (check-ordering) (push (cons posn :arg) params) (incf posn) (case (get-char) @@ -97,6 +106,7 @@ (t (return)))) ((char= char #\#) + (check-ordering) (push (cons posn :remaining) params) (incf posn) (case (get-char) @@ -106,12 +116,14 @@ (t (return)))) ((char= char #\') + (check-ordering) (incf posn) (push (cons posn (get-char)) params) (incf posn) (unless (char= (get-char) #\,) (decf posn))) ((char= char #\,) + (check-ordering) (push (cons posn nil) params)) ((char= char #\:) (if colonp @@ -129,6 +141,7 @@ (setf atsignp t))) (t (when (char= (schar string (1- posn)) #\,) + (check-ordering) (push (cons (1- posn) nil) params)) (return)))) (incf posn)) diff --git a/src/code/ntrace.lisp b/src/code/ntrace.lisp index 62979c3..d666736 100644 --- a/src/code/ntrace.lisp +++ b/src/code/ntrace.lisp @@ -183,7 +183,7 @@ (dolist (entry *traced-entries*) (when (cdr entry) (incf depth))) (format t - "~@V,0T~W: " + "~V,0@T~W: " (+ (mod (* depth *trace-indentation-step*) (- *max-trace-indentation* *trace-indentation-step*)) *trace-indentation-step*) diff --git a/src/compiler/ir1tran.lisp b/src/compiler/ir1tran.lisp index 7d7b4be..74832d6 100644 --- a/src/compiler/ir1tran.lisp +++ b/src/compiler/ir1tran.lisp @@ -1165,7 +1165,7 @@ (unless (symbolp name) (compiler-error "The lambda variable ~S is not a symbol." name)) (when (member name names-so-far :test #'eq) - (compiler-error "The variable ~S occurs more than once in the lambda-list." + (compiler-error "The variable ~S occurs more than once in the lambda list." name)) (let ((kind (info :variable :kind name))) (when (or (keywordp name) (eq kind :constant)) @@ -1197,7 +1197,7 @@ (eq (arg-info-kind info) :keyword) (eq (arg-info-key info) key)) (compiler-error - "The keyword ~S appears more than once in the lambda-list." + "The keyword ~S appears more than once in the lambda list." key)))) key)) diff --git a/src/compiler/x86/float.lisp b/src/compiler/x86/float.lisp index a091ef6..f935c1f 100644 --- a/src/compiler/x86/float.lisp +++ b/src/compiler/x86/float.lisp @@ -4013,8 +4013,6 @@ ;; Perhaps this is OK because of the #!+LONG-FLOAT wrapped around ;; an enormous PROGN above. Still, it would be probably be good to ;; add some code to warn about redefining VOPs. - ;; FIXME 2: See comments on DEFINE-VOP FLOG1P :GUARD above. - (:guard #!+pentium nil #!-pentium t) (:note "inline log1p function") (:ignore temp) (:generator 5 @@ -4068,8 +4066,7 @@ (:arg-types long-float) (:result-types long-float) (:policy :fast-safe) - ;; FIXME: See comments on DEFINE-VOP FLOG1P :GUARD above. - (:guard #!+pentium t #!-pentium) + (:guard (member :pentium-style-fyl2xp1 *backend-subfeatures*)) (:note "inline log1p function") (:generator 5 (sc-case x diff --git a/version.lisp-expr b/version.lisp-expr index 2b6ff5c..0a08b94 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -18,4 +18,4 @@ ;;; for internal versions, especially for internal versions off the ;;; main CVS branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.7.1.26" +"0.7.1.27" -- 1.7.10.4