or you might borrow a line from Apple. Their installer says "Optimizing system performance..." once it gets to the last phase ;)<br><br><div class="gmail_quote">On Thu, Dec 10, 2009 at 12:43 AM, <span dir="ltr"><<a href="mailto:commits@source.squeak.org">commits@source.squeak.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Andreas Raab uploaded a new version of Monticello to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/Monticello-ar.334.mcz" target="_blank">http://source.squeak.org/trunk/Monticello-ar.334.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Monticello-ar.334<br>
Author: ar<br>
Time: 10 December 2009, 12:42:59 pm<br>
UUID: 4a73ef6b-47d1-9b44-b744-e5b9e3071518<br>
Ancestors: Monticello-ar.333<br>
<br>
A little white lie: When loading sizable packages, most of the time can be spent in notifying the observers. Tell the users that we're still installing because it's embarrassing to let them know that we're wasting our time in notifications.<br>
<br>
=============== Diff against Monticello-ar.333 ===============<br>
<br>
Item was changed:<br>
----- Method: MCPackageLoader>>basicLoad (in category 'private') -----<br>
basicLoad<br>
errorDefinitions := OrderedCollection new.<br>
[["Pass 1: Load everything but the methods, which are collected in methodAdditions."<br>
additions do: [:ea |<br>
[ea isMethodDefinition<br>
ifTrue:[methodAdditions add: ea asMethodAddition]<br>
ifFalse:[ea load]]on: Error do: [errorDefinitions add: ea].<br>
] displayingProgress: 'Reshaping classes...'.<br>
<br>
"Pass 2: We compile new / changed methods"<br>
methodAdditions do:[:ea| ea createCompiledMethod] displayingProgress: 'Compiling...'.<br>
<br>
'Installing...' displayProgressAt: Sensor cursorPoint from: 0 to: 2 during:[:bar|<br>
"There is progress *during* installation since a progress bar update<br>
will redraw the world and potentially call methods that we're just trying to install."<br>
bar value: 1.<br>
<br>
"Pass 3: Install the new / changed methods<br>
(this is a separate pass to allow compiler changes to be loaded)"<br>
methodAdditions do:[:ea| ea installMethod].<br>
<br>
"Pass 4: Remove the obsolete methods"<br>
removals do:[:ea| ea unload].<br>
].<br>
<br>
"Try again any delayed definitions"<br>
self shouldWarnAboutErrors ifTrue: [self warnAboutErrors].<br>
errorDefinitions do: [:ea | ea load] displayingProgress: 'Reloading...'.<br>
<br>
"Finally, notify observers for the method additions"<br>
+ methodAdditions do: [:each | each notifyObservers]<br>
+ "the message is fake but actually telling people how much time we spend<br>
+ in the notifications is embarrassing so lie instead"<br>
+ displayingProgress: 'Installing...'.<br>
- methodAdditions do: [:each | each notifyObservers].<br>
<br>
additions do: [:ea | ea postloadOver: (self obsoletionFor: ea)] displayingProgress: 'Initializing...'<br>
] on: InMidstOfFileinNotification do: [:n | n resume: true]<br>
] ensure: [self flushChangesFile]!<br>
<br>
<br>
</blockquote></div><br>