[squeak-dev] The Trunk: Kernel-bf.730.mcz
Bert Freudenberg
bert at freudenbergs.de
Fri Jan 11 21:27:46 UTC 2013
On 11.01.2013, at 12:37, Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com> wrote:
> Having to spread these cacheDuring: all around client code does not
> sound bright to my personal taste...
>
> Nicolas
Agreed, but it's all we have for now. Got a better idea?
- Bert -
>
> 2013/1/11 <commits at source.squeak.org>:
>> Bert Freudenberg uploaded a new version of Kernel to project The Trunk:
>> http://source.squeak.org/trunk/Kernel-bf.730.mcz
>>
>> ==================== Summary ====================
>>
>> Name: Kernel-bf.730
>> Author: bf
>> Time: 11 January 2013, 12:10:54.539 pm
>> UUID: 287d829c-b04d-4165-abc5-e045d037bd6d
>> Ancestors: Kernel-nice.729
>>
>> Cache source files during class mutation for noticeable speedup with larger hierarchies.
>>
>> =============== Diff against Kernel-nice.729 ===============
>>
>> Item was changed:
>> ----- Method: ClassBuilder>>recompile:from:to:mutate: (in category 'class definition') -----
>> recompile: force from: oldClass to: newClass mutate: forceMutation
>> "Do the necessary recompilation after changine oldClass to newClass.
>> If required (e.g., when oldClass ~~ newClass) mutate oldClass to newClass
>> and all its subclasses. If forceMutation is true force a mutation even
>> if oldClass and newClass are the same."
>>
>> oldClass == nil ifTrue:[^ newClass].
>>
>> (newClass == oldClass and:[force not and:[forceMutation not]]) ifTrue:[
>> ^newClass].
>>
>> currentClassIndex := 0.
>> maxClassIndex := oldClass withAllSubclasses size.
>>
>> (oldClass == newClass and:[forceMutation not]) ifTrue:[
>> "Recompile from newClass without mutating"
>> self informUserDuring:[
>> newClass isSystemDefined ifFalse:[progress := nil].
>> + CurrentReadOnlySourceFiles cacheDuring: [
>> + newClass withAllSubclassesDo:[:cl|
>> + self showProgressFor: cl.
>> + cl compileAll]]].
>> - newClass withAllSubclassesDo:[:cl|
>> - self showProgressFor: cl.
>> - cl compileAll]].
>> ^newClass].
>> "Recompile and mutate oldClass to newClass"
>> self informUserDuring:[
>> newClass isSystemDefined ifFalse:[progress := nil].
>> + CurrentReadOnlySourceFiles cacheDuring: [
>> + self mutate: oldClass to: newClass].
>> - self mutate: oldClass to: newClass.
>> ].
>> ^oldClass "now mutated to newClass"!
>>
>>
>
More information about the Squeak-dev
mailing list
|