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]! |
Free forum by Nabble | Edit this page |