[Ecls-list] Megapatches ahead

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Wed May 5 15:48:14 UTC 2010


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20100505/a712a86f/attachment.html>


More information about the ecl-devel mailing list