(FileStream readOnlyFileNamed: 'source.st') fileIn OldSources size String sourceCodeAt: #escapeEntities: Class organization classify: #category under: #accessing suppressIfDefault: false. OldSources associations anyOne value associations anyOne SmalltalkImage current snapshot: true andQuit: false Undeclared (Smalltalk allClasses select: [:c | c class selectors includes: #initialize ]) reject: [:c | (c class sourceCodeAt: #initialize) beginsWith: #initialize ]. (Smalltalk allClasses select: [:c | c class selectors includes: #initialize ]) do: [:c | | source | source := c class sourceCodeAt: #initialize. source := #initializeClass, (source allButFirst: #initialize size). c class compile: source. c class basicRemoveSelector: #initialize. c class deregisterLocalSelector: #initialize ]. Object class compile: 'initialize'. "----------------------------------" | sources | sources := Dictionary new. Smalltalk allClassesAndTraits do: [:c | | methods | methods := sources at: c name put: Dictionary new. c selectors do: [:sel | methods at: sel put: {(c sourceCodeAt: sel) asString. c organization categoryOfElement: sel} ]. c isTrait ifFalse: [ methods := sources at: c class name put: Dictionary new. c class selectors do: [:sel | methods at: sel put: {(c class sourceCodeAt: sel) asString. c class organization categoryOfElement: sel} ]]]. Smalltalk at: #OldSources put: sources. "----------------------------------" OldSources keysAndValuesDo: [:class :methods | methods keysAndValuesDo: [:sel :source | | newSource newCategory | newSource := ((Compiler evaluate: class) sourceCodeAt: sel) asString. newCategory := (Compiler evaluate: class) organization categoryOfElement: sel. ((newSource = source first) and: [newCategory = source second]) ifFalse: [ Transcript show: class; show: ' >> ', sel; cr ]]]. "----------------------------------" (FileStream readOnlyFileNamed: '1-compression.st') fileIn. (FileStream readOnlyFileNamed: '2-network.st') fileIn. (FileStream readOnlyFileNamed: '3-packageInfo.st') fileIn. (FileStream readOnlyFileNamed: '4-monticello.st') fileIn. "----------------------------------" | repository name wc | repository := MCDirectoryRepository new directory: (FileDirectory on: '/home/krivanek/doc/squeak/kernel3/test/repository'). MCRepositoryGroup default addRepository: repository. name := 'Kernel'. PackageInfo registerPackageName: name. wc := MCWorkingCopy forPackage: (MCPackage new name: name). wc repositoryGroup addRepository: repository. wc newVersion. "----------------------------------" ((MCDirectoryRepository new directory: (FileDirectory on: '/home/krivanek/doc/squeak/kernel3/test/repository')) loadVersionFromFileNamed: 'Kernel-pk.1.mcz') load "----------------------------------" #('Kernel-pk.1.mcz' 'Compression-pk.11.mcz' 'Network-pk.42.mcz' 'PackageInfo-pk.7.mcz' 'Monticello-pk.310.mcz' ) do: [:packageName | ((MCDirectoryRepository new directory: (FileDirectory on: '/home/krivanek/doc/squeak/kernel3/test/repository')) loadVersionFromFileNamed: packageName) load ]. MCFileBasedRepository flushAllCaches. "----------------------------------" #('SUnit-pk.mcz' 'GraphicsFiles-pk.mcz' 'DigitalSignatures-pk.mcz' 'DynamicBindings-gk.mcz' 'KomServices-pk.mcz' 'KomHttpServer-pk.2.mcz' 'Seaside2-pk.7.mcz' ) do: [:packageName | ((MCDirectoryRepository new directory: (FileDirectory on: '/home/krivanek/doc/squeak/kernel3/test/repository')) loadVersionFromFileNamed: packageName) load ]. MCFileBasedRepository flushAllCaches.