Skip to content

Commit

Permalink
0.6.10.11:
Browse files Browse the repository at this point in the history
	fixed problem pointed out by Raymond Wiker: DEFCONSTANT-EQX
		now EVALs EXPR only once per situation
	tweaked some compiler output for better line breaking
  • Loading branch information
William Harold Newman committed Feb 7, 2001
1 parent 1bdc658 commit 92f6ecd
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 18 deletions.
2 changes: 1 addition & 1 deletion make.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# for getting an executable from it. We want any two reconstructions
# starting from the same source to end up in the same result. That's
# just a basic intellectual premise."
# -- Christian Quinnec, in _Lisp In Small Pieces_, p. 313
# -- Christian Queinnec, in _Lisp In Small Pieces_, p. 313

# This software is part of the SBCL system. See the README file for
# more information.
Expand Down
14 changes: 9 additions & 5 deletions src/code/primordial-extensions.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -175,10 +175,14 @@
;; ANSI Common Lisp operations.
(eval-when (:compile-toplevel :load-toplevel :execute)
(let ((,expr-tmp ,expr))
(unless (and (boundp ',symbol)
(constantp ',symbol)
(funcall ,eqx (symbol-value ',symbol) ,expr-tmp))
(defconstant ,symbol ,expr ,@(when doc `(,doc))))))
(cond ((boundp ',symbol)
(unless (and (constantp ',symbol)
(funcall ,eqx
(symbol-value ',symbol)
,expr-tmp))
(error "already bound differently: ~S")))
(t
(defconstant ,symbol ,expr-tmp ,@(when doc `(,doc)))))))
;; The #+SB-XC :COMPILE-TOPLEVEL situation is special, since we
;; want to define the symbol not just in the cross-compilation
;; host Lisp (which was handled above) but also in the
Expand All @@ -193,7 +197,7 @@
;; instead. -- WHN 2000-11-03
#+sb-xc
(eval-when (:compile-toplevel)
(let ((,expr-tmp ,expr))
(let ((,expr-tmp ,symbol))
(unless (and (eql (info :variable :kind ',symbol) :constant)
(funcall ,eqx
(info :variable :constant-value ',symbol)
Expand Down
23 changes: 12 additions & 11 deletions src/compiler/ir1final.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,7 @@
(note (transform-note (car failure))))
(cond
((consp what)
;; FIXME: This sometimes gets too long for a single line, e.g.
;; "note: unable to optimize away possible call to FDEFINITION at runtime due to type uncertainty:"
;; It would be nice to pretty-print it somehow, but how?
;; ~@<..~:@> adds ~_ directives to the spaces which are in
;; the format string, but a lot of the spaces where we'd want
;; to break are in the included ~A string instead.
(compiler-note "unable to ~A because:~%~6T~?"
(compiler-note "~@<unable to ~2I~_~A ~I~_because: ~2I~_~?~:>"
note (first what) (rest what)))
((valid-function-use node what
:argument-test #'types-intersect
Expand All @@ -45,10 +39,17 @@
(valid-function-use node what
:warning-function #'frob
:error-function #'frob))

(compiler-note "unable to ~A due to type uncertainty:~@
~{~6T~?~^~&~}"
note (messages))))))))))
(compiler-note "~@<unable to ~
~2I~_~A ~
~I~_due to type uncertainty: ~
~2I~_~{~?~^~@:_~}~:>"
note (messages))))
;; As best I can guess, it's OK to fall off the end here
;; because if it's not a VALID-FUNCTION-USE, the user
;; doesn't want to hear about it. The things I caught when
;; I put ERROR "internal error: unexpected FAILURE=~S" here
;; didn't look like things we need to report. -- WHN 2001-02-07
))))))

;;; For each named function with an XEP, note the definition of that
;;; name, and add derived type information to the info environment. We
Expand Down
2 changes: 2 additions & 0 deletions tests/run-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,5 @@ for f in *.assertoids; do
echo "(load \"$f\")" | $sbcl --eval '(load "assertoid.lisp")' ; tenfour
fi
done

echo '//apparent success (reached end of run-tests.sh normally)'
2 changes: 1 addition & 1 deletion version.lisp-expr
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@
;;; versions, and a string like "0.6.5.12" is used for versions which
;;; aren't released but correspond only to CVS tags or snapshots.

"0.6.10.10"
"0.6.10.11"

0 comments on commit 92f6ecd

Please sign in to comment.