[squeak-dev] The Trunk: Kernel-bf.730.mcz
Nicolas Cellier
nicolas.cellier.aka.nice at gmail.com
Fri Jan 11 20:37:55 UTC 2013
Having to spread these cacheDuring: all around client code does not
sound bright to my personal taste...
Nicolas
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
|