[Vm-dev] VM Maker: Cog-eem.264.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu May 7 18:06:48 UTC 2015
Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.264.mcz
==================== Summary ====================
Name: Cog-eem.264
Author: eem
Time: 7 May 2015, 11:06:21.151 am
UUID: 54a6d130-d0ea-4d73-97d0-bf887f4c4210
Ancestors: Cog-eem.263
SpurBootstrap:
Fix the packages and packages calculation given
Scorch's definition of InstructionCLient>>#callPrimitive:.
=============== Diff against Cog-eem.263 ===============
Item was changed:
----- Method: SpurBootstrapMonticelloPackagePatcher>>packagesAndPatches (in category 'private-accessing') -----
packagesAndPatches
"SpurBootstrapMonticelloPackagePatcher new packagesAndPatches"
| spurBootstrap |
packagesAndPatches ifNotNil:
[^packagesAndPatches].
packagesAndPatches := Dictionary new.
spurBootstrap := SpurBootstrap new.
imageTypes ifNotNil:
[spurBootstrap imageTypes: imageTypes].
spurBootstrap prototypeClassNameMetaSelectorMethodDo:
[:className :isMeta :selector :method| | package category source definition |
(Smalltalk classNamed: className)
ifNil: [package := self packageForMissingClassNamed: className]
ifNotNil:
[:behavior| | class methodReference |
class := isMeta ifTrue: [behavior class] ifFalse: [behavior].
(class includesSelector: selector) ifTrue:
[methodReference := (class >> selector) methodReference.
category := methodReference category].
package := (methodReference isNil
+ or: [methodReference category = Categorizer default
+ or: [methodReference category first = $*]]) "This for Scorch's override of InstructionClient>>classPrimitive:"
- or: [methodReference category = Categorizer default])
ifTrue: [PackageOrganizer default packageOfClass: class]
ifFalse: [PackageOrganizer default packageOfMethod: methodReference]].
source := method getSourceFromFile asString allButFirst: method selector size - selector size.
source first ~= selector first ifTrue:
[source replaceFrom: 1 to: selector size with: selector startingAt: 1].
definition := MCAddition of: (MCMethodDefinition new
initializeWithClassName: className
classIsMeta: isMeta
selector: selector
category: (category ifNil: [SpurBootstrap
categoryForClass: className
meta: isMeta
selector: selector])
timeStamp: method timeStamp
source: source).
(method pragmaAt: #remove) ifNotNil:
[definition := definition inverse].
(packagesAndPatches at: package ifAbsentPut: [OrderedCollection new])
add: definition].
^packagesAndPatches!
Item was changed:
----- Method: SpurBootstrapMonticelloPackagePatcher>>patchAndUploadAllInTrunk (in category 'patching') -----
patchAndUploadAllInTrunk
"Look for all versions in the default repository that have patched versions there-in.
Download and patch them and upload the patched versions (overwriting the older ones)."
"(SpurBootstrapMonticelloPackagePatcher new
+ from: 'trunkpackages'
+ to: 'spurpackages')
- from: 'spurpackages'
- to: 'trunkpackages')
patchAndUploadAllInTrunk"
| seed trunk sourceRepo cacheRepo |
seed := 'Are you really sure you want to do this?\It should happen only once!!' withCRs.
3 timesRepeat:
[(UIManager confirm: seed) ifFalse: [^self].
seed := seed copyReplaceAll: 'really ' with: 'really, really '].
sourceDir assureExistence; deleteLocalFiles.
destDir assureExistence; deleteLocalFiles.
sourceRepo := MCDirectoryRepository directory: sourceDir.
cacheRepo := MCCacheRepository default.
(trunk := self trunk) cacheAllFileNamesDuring:
[| latestBranches latestUnbranched |
latestBranches := self packages collect:
[:package|
(trunk versionNamesForPackageNamed: package name, '.spur') detectMin: [:vn | vn asMCVersionName versionNumber]].
+ latestUnbranched := latestBranches collect:
+ [:verName|
+ (trunk versionNamed: (verName copyReplaceAll: '.spur' with: '') asMCVersionName) info ancestors first versionName].
- latestUnbranched := latestBranches collect: [:verName| (trunk versionNamed: (verName copyReplaceAll: '.spur' with: '') asMCVersionName) info ancestors first versionName].
((trunk possiblyNewerVersionsOfAnyOf: latestUnbranched)
reject: [:unpatched| unpatched includesSubString: '.spur'])
do: [:unpatched|
"it is claimed that whether a repository contains a .mcz or a .mcd is irrelevant. At least for the cache repositoriy that's not true."
sourceRepo storeVersion: (self cachedNonDiffyVersionNamed: unpatched from: trunk)].
self patchAsNeeded.
self uploadFrom: (MCDirectoryRepository directory: destDir) to: trunk]!
Item was changed:
----- Method: SpurBootstrapMonticelloPackagePatcher>>uploadFrom:to: (in category 'repository population') -----
uploadFrom: localRepo to: uploadRepository
+ self break.
localRepo allVersionsDo:
[:version|
(uploadRepository includesVersionNamed: version info name) ifFalse:
[uploadRepository storeVersion: version]]!
More information about the Vm-dev
mailing list