[plt-scheme] 301.11

From: Paulo J. Matos (pocmatos at gmail.com)
Date: Mon Mar 20 17:21:27 EST 2006

I'm quite curious if the current compiler is able to optimize calls like:
(map identity lst) or (srfi1:map! identity lst)?


Paulo Matos

On 20/03/06, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> MzScheme and MrEd are now version 301.11 in the SVN repository trunk.
> (Version 301.10 never made it out of my development branch.)
> IMPORTANT: since the new `compiler-enforce-module-constants' parameter
> defaults to #t, module re-definition is effectively prohibited by
> default. Also, in a namespace produced by `module->namespace', a
> variable can't be redefined or `set!'ed unless the original module
> `set!'ed the variable (or the variable wasn't defined at all). If you
> use `module->namespace' and/or module re-definition for debugging, then
> set `compiler-enforce-module-constants' to #f.
> Changes:
>  * The bytecode compiler now inlines some functions bound by `let',
>    `letrec', or a module-level `define'. The conditions for inlining
>    are typical (e.g., the function has to be "small"). Currently,
>    module-level definitions are inlined only within the same module.
>  * By default, a variable defined in a module top-level is immutable,
>    unless the module (in expanded form) contains a `set!' on the
>    variable.
>    The only way to `set!' such variables before was to use
>    `module->namespace', or to redefine the module. Now, those don't
>    work either, unless the `compiler-enforce-module-constants'
>    parameter is set to #f before compiling the module.
>    If `compiler-enforce-module-constants' is set to #f, then module
>    bindings are not inlined, and the JIT must generate certain run-time
>    checks that are otherwise unnecessary.
>  * Changed `file-position' so that eof as a second argument moves to
>    the end of a file/string port.
>  * Added `procedure-closure-contents-eq?', which is useful for certain
>    caching operations (e.g., in the implementation of lazy contracts).
> Matthew
> _________________________________________________
>   For list-related administrative tasks:
>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme

Paulo Jorge Matos - pocm at sat inesc-id pt
Web: http://sat.inesc-id.pt/~pocm
Computer and Software Engineering

Posted on the users mailing list.