[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