[Pkg] The Trunk: Monticello-ul.473.mcz
commits at source.squeak.org
commits at source.squeak.org
Sat Jun 18 08:51:22 UTC 2011
Levente Uzonyi uploaded a new version of Monticello to project The Trunk:
http://source.squeak.org/trunk/Monticello-ul.473.mcz
==================== Summary ====================
Name: Monticello-ul.473
Author: ul
Time: 18 June 2011, 10:44:47.293 am
UUID: b376eb3d-62ec-0547-aa21-2d736821d84f
Ancestors: Monticello-cmm.471
- Use #displayProgressFrom:to:during: instead of #displayProgressAt:from:to:during:.
=============== Diff against Monticello-cmm.471 ===============
Item was added:
+ SystemOrganization addCategory: #Monticello!
+ SystemOrganization addCategory: #'Monticello-Base'!
+ SystemOrganization addCategory: #'Monticello-Chunk Format'!
+ SystemOrganization addCategory: #'Monticello-Loading'!
+ SystemOrganization addCategory: #'Monticello-Merging'!
+ SystemOrganization addCategory: #'Monticello-Modeling'!
+ SystemOrganization addCategory: #'Monticello-Patching'!
+ SystemOrganization addCategory: #'Monticello-Repositories'!
+ SystemOrganization addCategory: #'Monticello-Storing'!
+ SystemOrganization addCategory: #'Monticello-UI'!
+ SystemOrganization addCategory: #'Monticello-Versioning'!
+ SystemOrganization addCategory: #'Monticello-Mocks'!
+ SystemOrganization addCategory: #'Monticello-Utilities'!
Item was removed:
- SystemOrganization addCategory: #'Monticello-Base'!
- SystemOrganization addCategory: #'Monticello-Chunk Format'!
- SystemOrganization addCategory: #'Monticello-Loading'!
- SystemOrganization addCategory: #'Monticello-Merging'!
- SystemOrganization addCategory: #'Monticello-Modeling'!
- SystemOrganization addCategory: #'Monticello-Patching'!
- SystemOrganization addCategory: #'Monticello-Repositories'!
- SystemOrganization addCategory: #'Monticello-Storing'!
- SystemOrganization addCategory: #'Monticello-UI'!
- SystemOrganization addCategory: #'Monticello-Versioning'!
Item was changed:
----- Method: MCHttpRepository>>displayProgress:during: (in category 'required') -----
displayProgress: label during: workBlock
| nextUpdateTime |
nextUpdateTime := 0.
+ ^label displayProgressFrom: 0.0 to: 1.0 during:[:bar|
- ^label displayProgressAt: Display center
- from: 0.0 to: 1.0 during:[:bar|
[workBlock value] on: HTTPProgress do:[:ex|
(ex total == nil or:[ex amount == nil]) ifFalse:[
(nextUpdateTime < Time millisecondClockValue
or:[ex total = ex amount]) ifTrue:[
bar value: ex amount asFloat / ex total asFloat.
nextUpdateTime := Time millisecondClockValue + 100.
].
].
ex resume.
]
].
!
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 ', pkgName.
"Try again any delayed definitions"
self shouldWarnAboutErrors ifTrue: [self warnAboutErrors].
errorDefinitions do: [:ea | ea load]
displayingProgress: 'Reloading ', pkgName.
"Pass 2: We compile new / changed methods"
methodAdditions do:[:ea| ea createCompiledMethod]
displayingProgress: 'Compiling ', pkgName.
+ 'Installing ', pkgName displayProgressFrom: 0 to: 2 during:[:bar|
- '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].
].
"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.
] on: InMidstOfFileinNotification do: [:n | n resume: true]
] ensure: [self flushChangesFile]!
More information about the Packages
mailing list