Design of CMU Common Lisp.pdf - Common Lisp.net
Design of CMU Common Lisp.pdf - Common Lisp.net
Design of CMU Common Lisp.pdf - Common Lisp.net
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Chapter 11<br />
ICR finalize<br />
This pass looks for interesting things in the ICR so that we can forget about them. Used and not defined things<br />
are flamed about.<br />
We postpone these checks until now because the ICR optimizations may discover errors that are not initially<br />
obvious. We also emit efficiency notes about optimizations that we were unable to do. We can’t emit the notes<br />
immediately, since we don’t know for sure whether a repeated attempt at optimization will succeed.<br />
We examine all references to unknown global function variables and update the approximate type accordingly.<br />
We also record the names <strong>of</strong> the unknown functions so that they can be flamed about if they are never<br />
defined. Unknown normal variables are flamed about on the fly during ICR conversion, so we ignore them<br />
here.<br />
We check each newly defined global function for compatibility with previously recorded type information.<br />
If there is no :defined or :declared type, then we check for compatibility with any approximate function type<br />
inferred from previous uses.<br />
32