[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