Many fixes and some enhancements.
Added *DERIVE-FUNCTION-TYPES* switch which can inhibit inter-routine type interence. Fixed some broken FTYPE proclamations that have been noticed now that the declarations are applied to the definition. Added the VALUES declaration for conveniently declaring the return values from a function (or any other form that has declarations.) Made the gensym introduced to hold the value before defaulting for hairy keyword args have a comprehensible name so that type errors are somewhat more informative. Also, if the keyword default isn't hairy, give the value temp the right type so that the type check is forced back into the XEP. Made FIND-FREE-FUNCTION note if a setf function is also a setf macro. Made REFERENCE-CONSTANT error if the constant isn't dumpable. Fixed THE to be correct, which required adding information into the LEXENV and having USE-CONTINUATION cooperate. Added doc strings for all the special forms that didn't have any. Ripped out most of the code in the %COMPILER-DEFSTRUCT translator now that most everything is done by %%COMPILER-DEFSTRUCT. Frobbed DEFMACRO to clobber any old function info with UNDEFINE-FUNCTION-NAME. Tweaked %DEFUN translator quite a bit. NOTINLINE declarations are now respected as forcing named call. Changed to use ASSERT-DEFINITION-TYPE to apply any FTYPE proclamation to the definition. Also, call CHECK-FREE-FUNCTION now if we can't enter the functional into *FREE-FUNCTIONS* for some reason. Made %DEFCONSTANT warn about redefining constant or specials. Also, made DEFCONSTANT always eval the form at compile time, as this is now allowed
Loading
Please register or sign in to comment