[Pkg] The Trunk: Kernel-bf.730.mcz
commits at source.squeak.org
commits at source.squeak.org
Fri Jan 11 20:12:04 UTC 2013
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 Packages
mailing list