Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Commit [ed0661] Maximize Restore History

LOAD-TIME-VALUE improvements

* Derive the type of :TOPLEVEL lambdas properly. Without this we were
never able to utilize the type from COMPILE-LOAD-TIME-STUFF.

* Use the source-type whenever it is more accurate than the type from
COMPILE-LOAD-TIME-STUFF -- eg. when using a value cell.

* Add ALIAS argument to IR1-CONVERT, allowing saving alternate forms
into *CURRENT-PATH*: this allows

(defparameter *var* 10)

(compile nil '(lambda () (the list (load-time-value *var*))))

to give the warning

; Derived type of *VAR* is
; (VALUES (INTEGER 10 10) &OPTIONAL),
; conflicting with its asserted type
; LIST.

instead of the much less useful

; Constant 10 conflicts with its asserted type LIST.

* Use THE-IN-POLICY directly in LOAD-TIME-VALUE, allowing the file-
compiler to report the LOAD-TIME-VALUE form for type-conflicts
instead of (TRULY-THE <type> (%LOAD-TIME-VALUE ...))

Nikodemus Siivola Nikodemus Siivola 2011-08-09

changed src/compiler/ir1final.lisp
changed src/compiler/ir1tran.lisp
changed src/compiler/ltv.lisp
changed tests/compiler.impure-cload.lisp
changed tests/compiler.impure.lisp
changed tests/compiler.pure.lisp
changed NEWS
src/compiler/ir1final.lisp Diff Switch to side-by-side view
Loading...
src/compiler/ir1tran.lisp Diff Switch to side-by-side view
Loading...
src/compiler/ltv.lisp Diff Switch to side-by-side view
Loading...
tests/compiler.impure-cload.lisp Diff Switch to side-by-side view
Loading...
tests/compiler.impure.lisp Diff Switch to side-by-side view
Loading...
tests/compiler.pure.lisp Diff Switch to side-by-side view
Loading...
NEWS Diff Switch to side-by-side view
Loading...