Make safe DEFSTRUCT constructors more efficient.
commit9d1847b476cea8c8c99587d49f3794f93c17bb1b
authorDouglas Katzman <dougk@google.com>
Mon, 9 Nov 2015 06:09:56 +0000 (9 01:09 -0500)
committerDouglas Katzman <dougk@google.com>
Mon, 9 Nov 2015 06:24:18 +0000 (9 01:24 -0500)
tree39a4e16d3c7f5e3be6b8e1bc95aec5b595ddf0f9
parentba3318db6cd217ada23c66d1ad5b8161ecbd45e0
Make safe DEFSTRUCT constructors more efficient.

Some prior changes made the auto-generated constructor lambdas wrap all their
slot initializers in THE forms, avoiding incorrect FTYPE effects, depending on
whether any defaults mismatched their slot type (making FTYPE too "weak"),
or &AUX variables that shadowed a parameter (making FTYPE too "strong").
The FTYPEs are all correct now, but not necessary for type-checking.
src/code/defstruct.lisp
src/compiler/ctype.lisp