Andreas Raab uploaded a new version of MonticelloConfigurations to project The Trunk:
http://source.squeak.org/trunk/MonticelloConfigurations-ar.78.mcz
==================== Summary ====================
Name: MonticelloConfigurations-ar.78
Author: ar
Time: 24 August 2010, 8:07:55.2 pm
UUID: fa7c9f6e-3a07-4140-9fbc-629e26b229c5
Ancestors: MonticelloConfigurations-dtl.77
Add a preference governing whether to automatically load missing (unloaded) packages. By default the setting is true to be able to introduce new required packages in the trunk. Users who want to update in images with some packages unloaded can change the setting but do so at their own risk. You have been warned :-)
=============== Diff against MonticelloConfigurations-dtl.77 ===============
Item was changed:
Object subclass: #MCMcmUpdater
instanceVariableNames: ''
+ classVariableNames: 'DefaultUpdateURL LastUpdateMap UpdateMissingPackages'
- classVariableNames: 'DefaultUpdateURL LastUpdateMap'
poolDictionaries: ''
category: 'MonticelloConfigurations'!
!MCMcmUpdater commentStamp: 'dtl 5/10/2010 23:22' prior: 0!
MCMcmUpdater provides utility methods for updating Monticello packages from Monticello configurations.
When Monticello configurations are stored in a repository, MCMcmUpdater acts as an update stream. It first ensures that each configuration map has been loaded in sequence, then updates the last configuration map to the most recent version for each specified package, and finally loads these versions to produce a fully updated configuration. !
Item was added:
+ ----- Method: MCMcmUpdater class>>updateMissingPackages: (in category 'updating') -----
+ updateMissingPackages: aBool
+ "Whether to update missing (unloaded) packages"
+
+ UpdateMissingPackages := aBool.!
Item was added:
+ ----- Method: MCMcmUpdater class>>updateMissingPackages (in category 'updating') -----
+ updateMissingPackages
+ "Whether to update missing (unloaded) packages"
+
+ <preference: 'Update missing package'
+ category: 'Monticello'
+ description: 'If true, missing (unloaded) packages will be loaded during the update process.'
+ type: #Boolean>
+
+ ^UpdateMissingPackages ifNil:[true]!
Item was changed:
----- Method: MCMcmUpdater class>>updateFromRepositories: (in category 'updating') -----
updateFromRepositories: repositoryUrls
"MCMcmUpdater updateFromRepositories: #(
'http://squeaksource.com/MCUpdateTest'
)"
| repos config |
Preferences enable: #upgradeIsMerge.
LastUpdateMap ifNil:[LastUpdateMap := Dictionary new].
"The list of repositories to consult in order"
repos := repositoryUrls collect:[:url|
MCRepositoryGroup default repositories
detect:[:r| r description = url]
ifNone:[ | r |
r := MCHttpRepository location: url user: '' password: ''.
MCRepositoryGroup default addRepository: r.
r]].
"The list of updates-author.version.mcm sorted by version"
repos do:[:r| r cacheAllFileNamesDuring:[
| minVersion updateList allNames |
updateList := SortedCollection new.
minVersion := LastUpdateMap at: r description ifAbsent:[0].
"Find all the updates-author.version.mcm files"
'Checking ', r description
displayProgressAt: Sensor cursorPoint
from: 0 to: 1 during:[:bar|
bar value: 0.
allNames := r allFileNames.
].
allNames do:[:versionedName| | version base parts author type |
parts := versionedName findTokens: '.-'.
parts size = 4 ifTrue:[
base := parts at: 1.
author := parts at: 2.
version := [(parts at: 3) asNumber] on: Error do:[:ex| ex return: 0].
type := parts at: 4.
].
(base = 'update' and:[version >= minVersion and:[type = 'mcm']])
ifTrue:[updateList add: version -> versionedName]].
"Proceed only if there are updates available at all."
updateList ifNotEmpty: [
"Now process each update file. Check if we have all dependencies and if not,
load the entire configuration (this is mostly to skip older updates quickly)"
updateList do:[:assoc|
ProgressNotification signal: '' extra: 'Processing ', assoc value.
config := r versionFromFileNamed: assoc value.
+ self updateMissingPackages ifFalse:[
+ "Skip packages that are not in the image"
+ config dependencies: (config dependencies
+ select:[:dep| dep package hasWorkingCopy])].
(config dependencies allSatisfy:[:dep| dep isFulfilled])
ifFalse:[config upgrade].
LastUpdateMap at: r description put: assoc key.
] displayingProgress: 'Processing configurations'.
"We've loaded all the provided update configurations.
Use the latest configuration to update all the remaining packages."
config updateFromRepositories.
config upgrade.
]].
].
^config!
Andreas Raab uploaded a new version of MonticelloConfigurations to project The Trunk:
http://source.squeak.org/trunk/MonticelloConfigurations-ar.78.mcz
==================== Summary ====================
Name: MonticelloConfigurations-ar.78
Author: ar
Time: 24 August 2010, 8:07:55.2 pm
UUID: fa7c9f6e-3a07-4140-9fbc-629e26b229c5
Ancestors: MonticelloConfigurations-dtl.77
Add a preference governing whether to automatically load missing (unloaded) packages. By default the setting is true to be able to introduce new required packages in the trunk. Users who want to update in images with some packages unloaded can change the setting but do so at their own risk. You have been warned :-)
=============== Diff against MonticelloConfigurations-dtl.77 ===============
Item was changed:
Object subclass: #MCMcmUpdater
instanceVariableNames: ''
+ classVariableNames: 'DefaultUpdateURL LastUpdateMap UpdateMissingPackages'
- classVariableNames: 'DefaultUpdateURL LastUpdateMap'
poolDictionaries: ''
category: 'MonticelloConfigurations'!
!MCMcmUpdater commentStamp: 'dtl 5/10/2010 23:22' prior: 0!
MCMcmUpdater provides utility methods for updating Monticello packages from Monticello configurations.
When Monticello configurations are stored in a repository, MCMcmUpdater acts as an update stream. It first ensures that each configuration map has been loaded in sequence, then updates the last configuration map to the most recent version for each specified package, and finally loads these versions to produce a fully updated configuration. !
Item was added:
+ ----- Method: MCMcmUpdater class>>updateMissingPackages: (in category 'updating') -----
+ updateMissingPackages: aBool
+ "Whether to update missing (unloaded) packages"
+
+ UpdateMissingPackages := aBool.!
Item was added:
+ ----- Method: MCMcmUpdater class>>updateMissingPackages (in category 'updating') -----
+ updateMissingPackages
+ "Whether to update missing (unloaded) packages"
+
+ <preference: 'Update missing package'
+ category: 'Monticello'
+ description: 'If true, missing (unloaded) packages will be loaded during the update process.'
+ type: #Boolean>
+
+ ^UpdateMissingPackages ifNil:[true]!
Item was changed:
----- Method: MCMcmUpdater class>>updateFromRepositories: (in category 'updating') -----
updateFromRepositories: repositoryUrls
"MCMcmUpdater updateFromRepositories: #(
'http://squeaksource.com/MCUpdateTest'
)"
| repos config |
Preferences enable: #upgradeIsMerge.
LastUpdateMap ifNil:[LastUpdateMap := Dictionary new].
"The list of repositories to consult in order"
repos := repositoryUrls collect:[:url|
MCRepositoryGroup default repositories
detect:[:r| r description = url]
ifNone:[ | r |
r := MCHttpRepository location: url user: '' password: ''.
MCRepositoryGroup default addRepository: r.
r]].
"The list of updates-author.version.mcm sorted by version"
repos do:[:r| r cacheAllFileNamesDuring:[
| minVersion updateList allNames |
updateList := SortedCollection new.
minVersion := LastUpdateMap at: r description ifAbsent:[0].
"Find all the updates-author.version.mcm files"
'Checking ', r description
displayProgressAt: Sensor cursorPoint
from: 0 to: 1 during:[:bar|
bar value: 0.
allNames := r allFileNames.
].
allNames do:[:versionedName| | version base parts author type |
parts := versionedName findTokens: '.-'.
parts size = 4 ifTrue:[
base := parts at: 1.
author := parts at: 2.
version := [(parts at: 3) asNumber] on: Error do:[:ex| ex return: 0].
type := parts at: 4.
].
(base = 'update' and:[version >= minVersion and:[type = 'mcm']])
ifTrue:[updateList add: version -> versionedName]].
"Proceed only if there are updates available at all."
updateList ifNotEmpty: [
"Now process each update file. Check if we have all dependencies and if not,
load the entire configuration (this is mostly to skip older updates quickly)"
updateList do:[:assoc|
ProgressNotification signal: '' extra: 'Processing ', assoc value.
config := r versionFromFileNamed: assoc value.
+ self updateMissingPackages ifFalse:[
+ "Skip packages that are not in the image"
+ config dependencies: (config dependencies
+ select:[:dep| dep package hasWorkingCopy])].
(config dependencies allSatisfy:[:dep| dep isFulfilled])
ifFalse:[config upgrade].
LastUpdateMap at: r description put: assoc key.
] displayingProgress: 'Processing configurations'.
"We've loaded all the provided update configurations.
Use the latest configuration to update all the remaining packages."
config updateFromRepositories.
config upgrade.
]].
].
^config!
Nicolas Cellier uploaded a new version of Network to project The Trunk:
http://source.squeak.org/trunk/Network-nice.80.mcz
==================== Summary ====================
Name: Network-nice.80
Author: nice
Time: 24 August 2010, 5:26:08.286 am
UUID: bb74e76f-51d0-7c49-9a9f-f41718adc9df
Ancestors: Network-ar.79
remove associationsDo: because same as super
=============== Diff against Network-ar.79 ===============
Item was removed:
- ----- Method: UrlArgumentList>>associationsDo: (in category 'enumerating') -----
- associationsDo: aBlock
- self do: [:each |
- aBlock value: each]!
Nicolas Cellier uploaded a new version of Network to project The Trunk:
http://source.squeak.org/trunk/Network-nice.80.mcz
==================== Summary ====================
Name: Network-nice.80
Author: nice
Time: 24 August 2010, 5:26:08.286 am
UUID: bb74e76f-51d0-7c49-9a9f-f41718adc9df
Ancestors: Network-ar.79
remove associationsDo: because same as super
=============== Diff against Network-ar.79 ===============
Item was removed:
- ----- Method: UrlArgumentList>>associationsDo: (in category 'enumerating') -----
- associationsDo: aBlock
- self do: [:each |
- aBlock value: each]!
Nicolas Cellier uploaded a new version of Network to project The Trunk:
http://source.squeak.org/trunk/Network-nice.80.mcz
==================== Summary ====================
Name: Network-nice.80
Author: nice
Time: 24 August 2010, 5:26:08.286 am
UUID: bb74e76f-51d0-7c49-9a9f-f41718adc9df
Ancestors: Network-ar.79
remove associationsDo: because same as super
=============== Diff against Network-ar.79 ===============
Item was removed:
- ----- Method: UrlArgumentList>>associationsDo: (in category 'enumerating') -----
- associationsDo: aBlock
- self do: [:each |
- aBlock value: each]!
Levente Uzonyi uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-ul.485.mcz
==================== Summary ====================
Name: Kernel-ul.485
Author: ul
Time: 23 August 2010, 2:13:52.357 pm
UUID: fce08992-f821-ed46-a863-9935d6a7fe2e
Ancestors: Kernel-dtl.484
- fix LargeInteger printing
=============== Diff against Kernel-dtl.484 ===============
Item was changed:
----- Method: LargePositiveInteger>>printOn:base:nDigits: (in category 'printing') -----
printOn: aStream base: b nDigits: n
"Append a representation of this number in base b on aStream using n digits.
In order to reduce cost of LargePositiveInteger ops, split the number of digts approximatily in two
Should be invoked with: 0 <= self < (b raisedToInteger: n)"
| halfPower half head tail |
n <= 1 ifTrue: [
n <= 0 ifTrue: [self error: 'Number of digits n should be > 0'].
"Note: this is to stop an infinite loop if one ever attempts to print with a huge base
This can happen because choice was to not hardcode any limit for base b
We let Character>>#digitValue: fail"
+ ^aStream nextPut: (Character digitValue: self) ].
- ^Character digitValue: self].
halfPower := n bitShift: -1.
half := b raisedToInteger: halfPower.
head := self quo: half.
tail := self - (head * half).
head printOn: aStream base: b nDigits: n - halfPower.
tail printOn: aStream base: b nDigits: halfPower!
Levente Uzonyi uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-ul.485.mcz
==================== Summary ====================
Name: Kernel-ul.485
Author: ul
Time: 23 August 2010, 2:13:52.357 pm
UUID: fce08992-f821-ed46-a863-9935d6a7fe2e
Ancestors: Kernel-dtl.484
- fix LargeInteger printing
=============== Diff against Kernel-dtl.484 ===============
Item was changed:
----- Method: LargePositiveInteger>>printOn:base:nDigits: (in category 'printing') -----
printOn: aStream base: b nDigits: n
"Append a representation of this number in base b on aStream using n digits.
In order to reduce cost of LargePositiveInteger ops, split the number of digts approximatily in two
Should be invoked with: 0 <= self < (b raisedToInteger: n)"
| halfPower half head tail |
n <= 1 ifTrue: [
n <= 0 ifTrue: [self error: 'Number of digits n should be > 0'].
"Note: this is to stop an infinite loop if one ever attempts to print with a huge base
This can happen because choice was to not hardcode any limit for base b
We let Character>>#digitValue: fail"
+ ^aStream nextPut: (Character digitValue: self) ].
- ^Character digitValue: self].
halfPower := n bitShift: -1.
half := b raisedToInteger: halfPower.
head := self quo: half.
tail := self - (head * half).
head printOn: aStream base: b nDigits: n - halfPower.
tail printOn: aStream base: b nDigits: halfPower!
Levente Uzonyi uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-ul.485.mcz
==================== Summary ====================
Name: Kernel-ul.485
Author: ul
Time: 23 August 2010, 2:13:52.357 pm
UUID: fce08992-f821-ed46-a863-9935d6a7fe2e
Ancestors: Kernel-dtl.484
- fix LargeInteger printing
=============== Diff against Kernel-dtl.484 ===============
Item was changed:
----- Method: LargePositiveInteger>>printOn:base:nDigits: (in category 'printing') -----
printOn: aStream base: b nDigits: n
"Append a representation of this number in base b on aStream using n digits.
In order to reduce cost of LargePositiveInteger ops, split the number of digts approximatily in two
Should be invoked with: 0 <= self < (b raisedToInteger: n)"
| halfPower half head tail |
n <= 1 ifTrue: [
n <= 0 ifTrue: [self error: 'Number of digits n should be > 0'].
"Note: this is to stop an infinite loop if one ever attempts to print with a huge base
This can happen because choice was to not hardcode any limit for base b
We let Character>>#digitValue: fail"
+ ^aStream nextPut: (Character digitValue: self) ].
- ^Character digitValue: self].
halfPower := n bitShift: -1.
half := b raisedToInteger: halfPower.
head := self quo: half.
tail := self - (head * half).
head printOn: aStream base: b nDigits: n - halfPower.
tail printOn: aStream base: b nDigits: halfPower!
David T. Lewis uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-dtl.484.mcz
==================== Summary ====================
Name: Kernel-dtl.484
Author: dtl
Time: 22 August 2010, 11:01:16.199 pm
UUID: 54ee9807-a918-47fb-b619-b54b49c816e0
Ancestors: Kernel-nice.483
Remove Time class>>primUtcWithOffset (introduced in Kernel-dtl.476). The underlying mechanism for representing UTC and offset remains under discussion on the vm-dev list, so this method should not be introduced in trunk without an agreed approach.
=============== Diff against Kernel-nice.483 ===============
Item was removed:
- ----- Method: Time class>>primUtcWithOffset (in category 'clock') -----
- primUtcWithOffset
- "Answer an array with UTC microseconds since the Posix epoch and
- the current seconds offset from GMT in the local time zone."
-
- <primitive: 'primitiveUtcWithOffset'>
- ^ { 0 . 0 }!
David T. Lewis uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-dtl.484.mcz
==================== Summary ====================
Name: Kernel-dtl.484
Author: dtl
Time: 22 August 2010, 11:01:16.199 pm
UUID: 54ee9807-a918-47fb-b619-b54b49c816e0
Ancestors: Kernel-nice.483
Remove Time class>>primUtcWithOffset (introduced in Kernel-dtl.476). The underlying mechanism for representing UTC and offset remains under discussion on the vm-dev list, so this method should not be introduced in trunk without an agreed approach.
=============== Diff against Kernel-nice.483 ===============
Item was removed:
- ----- Method: Time class>>primUtcWithOffset (in category 'clock') -----
- primUtcWithOffset
- "Answer an array with UTC microseconds since the Posix epoch and
- the current seconds offset from GMT in the local time zone."
-
- <primitive: 'primitiveUtcWithOffset'>
- ^ { 0 . 0 }!