[Pkg] The Trunk: Monticello-ar.347.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Dec 30 16:26:17 UTC 2009


Andreas Raab uploaded a new version of Monticello to project The Trunk:
http://source.squeak.org/trunk/Monticello-ar.347.mcz

==================== Summary ====================

Name: Monticello-ar.347
Author: ar
Time: 30 December 2009, 5:25:47 am
UUID: f5913c41-3f80-e44c-b1a6-e04e9a18b30d
Ancestors: Monticello-ar.346

Have MCPackageLoader use the best guess about the package being installed in progress notifications.

=============== Diff against Monticello-ar.346 ===============

Item was changed:
  ----- Method: MCPackageLoader>>basicLoad (in category 'private') -----
  basicLoad
+ 	"Load the contents of some package. This is the core loading method
+ 	in Monticello. Be wary about modifying it unless you understand the details
+ 	and dependencies of the various entities being modified."
+ 	| pkgName |
  	errorDefinitions := OrderedCollection new.
+ 	"Obviously this isn't the package name but we don't have anything else
+ 	to use here. ChangeSet current name will generally work since a CS is 
+ 	usually installed prior to installation."
+ 	pkgName := ChangeSet current name.
- 	[["Pass 1: Load everything but the methods,  which are collected in methodAdditions."
- 	additions do: [:ea | 
- 		[ea isMethodDefinition 
- 			ifTrue:[methodAdditions add: ea asMethodAddition]
- 			ifFalse:[ea load]]on: Error do: [errorDefinitions add: ea].
- 	] displayingProgress: 'Reshaping classes...'.
- 
- 	"Pass 2: We compile new / changed methods"
- 	methodAdditions do:[:ea| ea createCompiledMethod] displayingProgress: 'Compiling...'.
- 
- 	'Installing...' displayProgressAt: Sensor cursorPoint from: 0 to: 2 during:[:bar|
- 		"There is progress *during* installation since a progress bar update
- 		will redraw the world and potentially call methods that we're just trying to install."
- 		bar value: 1.
- 
- 		"Pass 3: Install the new / changed methods
- 		(this is a separate pass to allow compiler changes to be loaded)"
- 		methodAdditions do:[:ea| ea installMethod].
- 
- 		"Pass 4: Remove the obsolete methods"
- 		removals do:[:ea| ea unload].
- 	].
- 
- 	"Try again any delayed definitions"
- 	self shouldWarnAboutErrors ifTrue: [self warnAboutErrors].
- 	errorDefinitions do: [:ea | ea load] displayingProgress: 'Reloading...'.
- 
- 	"Finally, notify observers for the method additions"
- 	methodAdditions do: [:each | each notifyObservers] 
- 		"the message is fake but actually telling people how much time we spend
- 		in the notifications is embarrassing so lie instead"
- 		displayingProgress: 'Installing...'.
  
+ 	[["Pass 1: Load everything but the methods,  which are collected in methodAdditions."
+ 	additions do: [:ea | 
+ 		[ea isMethodDefinition 
+ 			ifTrue:[methodAdditions add: ea asMethodAddition]
+ 			ifFalse:[ea load]]on: Error do: [errorDefinitions add: ea].
+ 	] displayingProgress: 'Reshaping ', pkgName.
+ 
+ 	"Pass 2: We compile new / changed methods"
+ 	methodAdditions do:[:ea| ea createCompiledMethod] 
+ 		displayingProgress: 'Compiling ', pkgName.
+ 
+ 	'Installing ', pkgName displayProgressAt: Sensor cursorPoint from: 0 to: 2 during:[:bar|
+ 		"There is no progress *during* installation since a progress bar update
+ 		will redraw the world and potentially call methods that we're just trying to install."
+ 		bar value: 1.
+ 
+ 		"Pass 3: Install the new / changed methods
+ 		(this is a separate pass to allow compiler changes to be loaded)"
+ 		methodAdditions do:[:ea| ea installMethod].
+ 
+ 		"Pass 4: Remove the obsolete methods"
+ 		removals do:[:ea| ea unload].
+ 	].
+ 
+ 	"Try again any delayed definitions"
+ 	self shouldWarnAboutErrors ifTrue: [self warnAboutErrors].
+ 	errorDefinitions do: [:ea | ea load] 
+ 		displayingProgress: 'Reloading ', pkgName.
+ 
+ 	"Finally, notify observers for the method additions"
+ 	methodAdditions do: [:each | each notifyObservers] 
+ 		"the message is fake but actually telling people how much time we spend
+ 		in the notifications is embarrassing so lie instead"
+ 		displayingProgress: 'Installing ', pkgName.
+ 
+ 	additions do: [:ea | ea postloadOver: (self obsoletionFor: ea)] 
+ 		displayingProgress: 'Initializing ', pkgName.
+ 
- 	additions do: [:ea | ea postloadOver: (self obsoletionFor: ea)] displayingProgress: 'Initializing...'
  	] on: InMidstOfFileinNotification do: [:n | n resume: true]
  	] ensure: [self flushChangesFile]!



More information about the Packages mailing list