Changeset 25554 in project

11/23/11 11:11:27 (9 years ago)
Christian Kellermann

gazette 21: felix comments added

1 edited


  • gazette/src/issues/

    r25553 r25554  
    247247== 4. Core Development
    249 Since the last issue two main things happened in the chicken core:
    250 Improvements to the scrutinizer and hand in hand to that so called
    251 specialisation (or partial evaluation). What does this do? The first
    252 lead to a flow analysis pass in the compiler. This made it possible to
    253 give the programmer more hints at potential programming errors, such
    254 as unused code, unreachable branches, and type misuses. The latter is
    255 done by having a central database of core procedure types. It is
    256 installed as types.db and has been there on your chicken system for a
    257 quite a while now. With more improvements going on the false positives
    258 (warnings about non-issues) are much fewer than before, also lots
    259 additional procedures and types have been added. One example for this
    260 are procedures using ports which is now even checked for the right
    261 port type (input or output port).
    263 Now that the flow analysis pass is already there it can also be used
    264 to optimise code, usually resulting in omitting redundant code such as
    265 superfluous type checks. In the end this should lead to faster code
    266 altogether. Over the last months more and more specialisations have
    267 been added. For more information on specialisation see the respective
    268 section at
     249Since the last issue most core development took place in the
     250"scrutinizer", the flow-analysis pass used for determining the number
     251and types of values as they propagate through Scheme expressions. The
     252results of this analysis is now used to replace various primitive
     253operations by more efficient code, taking advantage of the obtained
     254type information. Over the last months the typing and rewrite rules of
     255all core library procedures (which can be found in the installed
     256"types.db" file) have been heavily improved and debugged. Depending on
     257the nature of the code, these optimizations can result in significant
     258performance improvements. For more information on specialisation see
     259the respective section at
Note: See TracChangeset for help on using the changeset viewer.