NewCompiler and Preferences compileBlocksAsClosures
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:
>> 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.
>> 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 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