The changes I am making are related to backporting some of the lowest layer of the new compiler (environment, declaration and proclamation manipulation, compilation drivers, externalizing compiler constants, compiler macros that optimize code, etc) so that both directories can share most of the code and I can make easier progress.

Right now I just uploaded one big megapatch related just to environments, declarations and proclamations. Probably of most interest to all of you is the very last change listed below, but many of the other changes are relevant, as they improve handling of declarations, introduce cached functions (speeding up type operations), etc.

    Refactored code so that it is shared by cmp and new-cmp:
    * Use the new proclamations/sysfun.lsp files from the new compiler.
    * We split src/cmp/cmpdefs.lsp into cmpdefs, cmppackage, cmptypes and cmpglobals
    * Split cmpform.lsp out of cmpmac.lsp
    * Merged in {cmp,new-cmp}/cmpc-wt.lsp some of the cmpmac wt routines
    * Use functions instead of macros for the WT-* operations
    * Split out from *cmp/cmpenv.lsp a file cmppolicy.lsp
    * A single file, cmpenv-api.lsp for the manipulation of environments.
    * The type comparison functions go into cmptype-arith.lsp and are cached.
    * The code that propagates types in function calls goes into cmptype-prop.lsp.
    * The remainings of cmpenv go into cmpenv-{declare,proclaim,declaim}.
   
    Associated fixes:
    * Fixed typo and wrong proclamation for SI:GET-SYSPROP.
    * Fixed typo in SIMPLIFY-ARITHMETIC.
    * Explicitely set the debug level when building ECL
    * All declarations are stored in the compiler environment.
    * Each function and form stores the compilation environment.
    * Declaration POLICY-DEBUG-IHS-FRAME is acts only on the function environment.
    * Make the definition if ihs_env only happen when it is used.
    * Eliminated *notinline*, *inline-functions*  and *function-declarations*
    * Slightly more efficient creation of accessors in kernel.lsp
    * Remove the proxy C2DECL-BODY
    * Fix the order of declarations in SI:PROCESS-DECLARATIONS
    * Reimplemented C1BODY using SI:PROCESS-DECLARATIONS
    * DECLAIM's proclamation do not propagate beyond the compiled file.


--
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://tream.dreamhosters.com