Here are the changes that Fernando made. I (RLT) don't claim to
understand everything that was changed or why.
1. Removed 1 redundant eval-when
2. Sorted functions so that it can be loaded w/o `undefined function'
warnings.
3. Added inline declarations for all functions called from a single
site.
4. Sorted functions so that inlining will work even if a compiler does
not inline forward references to functions defined in the same
file.
5. Setup eval-when's so that it can be compiled w/o having to load the
source first.
6. Simplified redundant (OR NULL T) to T
7. Simplified redundant #'(lambda (x) (foo x)) to #'foo where foo is a
function.
8. Fixed so it won't complain when LispWorks adds
CLOS::VARIABLE-REBINDING declarations after CLOS macro
transformations (general support provided via the constant
allowed-generic-opts).
9. Added support for MACROLET on LispWorks (necessary because of CLOS
macro transformations).
10. Only declare variables as (OR foo NULL) on implementations that
won't allow to store NIL otherwise (currently, only CMUCL).
11. Added specialization to series declarations (eg: (SERIES FIXNUM)).
12. Do more precise type propagation in PRODUCING forms.
13. Allow `SETF like SETQ' in PRODUCING forms.
14. Added COLLECT-PRODUCT.
15. Extended SETQ-P to take into account multiassignments (not used
yet). This should still be trivially generalized to support PSETQ
and SETF, BTW.
16. Added DEFTYPE for GENERATOR so that LispWorks and CMUCL won't
complain "because it's not a list" (IT IS!!)
17. Replaced PROCLAIMS with DECLAIMS.
18. Replaced DEFVARs with DEFCONSTANTs where appropriate.
19. Removed function namespace pollution by defS-generated code.
Loading
Please sign in to comment