NewCompiler and Preferences compileBlocksAsClosures

Stephan Rudlof sr at evolgo.de
Mon Oct 16 20:33:50 UTC 2006


On 16.10.2006 15:09, Marcus Denker wrote:
> 
> On 16.10.2006, at 10:51, Klaus D. Witzel wrote:
> 
>> List,
>>
>> the value of Preferences compileBlocksAsClosures can have a meaning
>>
>> - for a single or a group of methods
>> - for all methods of one or more classes
>> - for the lifetime of the current session
>> - forever
>>
> 
> If you set this preference to true, new methods are compiled with the 
> closures. Even when you turn it off, these methods keep on having 
> closure semantics.
> 
>> It is easy to predict problems when a method was compiled with 
>> Preferences compileBlocksAsClosures set true and, after it was 
>> distributed, whoever loads it has Preferences compileBlocksAsClosures 
>> set false.
>>
> 
> Yes.
> 
>> Wouldn't it be time to make Preferences compileBlocksAsClosures a 
>> pragma (a method property), in the sense of a compiler directive, in 
>> the scope of the method being (re-)compiled.
>>
> 
> I don't think this is that good... we want to be able to recompile the 
> whole image with closures without needing to put a pragma in all methods.

What about two preferences
- compileBlocksAsClosuresDefault (default false, for methods without pragma and pragma value "followPreference")
- forceCompileAllBlocksAsClosures (default false with no effect then; overriding pragma and previous pref, if true)
, with a pragmaCompileBlocksAsClosures having three possible values
- true             (overriding compileBlocksAsClosuresDefault),
- false            (overriding compileBlocksAsClosuresDefault) or
- followPreference (following  compileBlocksAsClosuresDefault)
?

Stephan
 
> 
>    Marcus
> 
> 
> 

-- 
Stephan Rudlof (sr at evolgo.de)
   "Genius doesn't work on an assembly line basis.
    You can't simply say, 'Today I will be brilliant.'"
    -- Kirk, "The Ultimate Computer", stardate 4731.3



More information about the Squeak-dev mailing list