4 December 2011 6:55:16 pm VM: Win32 - IX86 - 6.1 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog-IgorStasenko.123] Image: Pharo1.3 [Latest update: #13315] SmallInteger(Object)>>doesNotUnderstand: #isEmpty Receiver: 19 Arguments and temporary variables: aMessage: isEmpty exception: MessageNotUnderstood: SmallInteger>>isEmpty resumeValue: nil Receiver's instance variables: 19 MetacelloMCVersionSpec>>resolveToLoadableSpecs:map: Receiver: spec blessing: #'release'. spec description: 'New version'. spec author: 'AlexandreBergel'...etc... Arguments and temporary variables: < Receiver's instance variables: project: ConfigurationOfMondrian(default [ConfigurationOfMondrian], defaultMini...etc... loader: a MetacelloLoadingMCSpecLoader versionString: '2.49' blessing: spec value: #release description: spec value: 'New version' author: spec value: 'AlexandreBergel' timestamp: spec value: '2/17/2011 10:00' preLoadDoIt: nil postLoadDoIt: nil packages: spec add: [ spec name: 'Mondrian-Core'; file: 'Mondrian-Core...etc... repositories: spec repository: 'http://www.squeaksource.com/Mondrian' MetacelloMCVersionSpec>>resolveToLoadableSpecs: Receiver: spec blessing: #'release'. spec description: 'New version'. spec author: 'AlexandreBergel'...etc... Arguments and temporary variables: nameList: 19 map: a Dictionary() Receiver's instance variables: project: ConfigurationOfMondrian(default [ConfigurationOfMondrian], defaultMini...etc... loader: a MetacelloLoadingMCSpecLoader versionString: '2.49' blessing: spec value: #release description: spec value: 'New version' author: spec value: 'AlexandreBergel' timestamp: spec value: '2/17/2011 10:00' preLoadDoIt: nil postLoadDoIt: nil packages: spec add: [ spec name: 'Mondrian-Core'; file: 'Mondrian-Core...etc... repositories: spec repository: 'http://www.squeaksource.com/Mondrian' [:cache | names := (self resolveToLoadableSpecs: nameList) collect: [:spec | spec name]. cache at: cacheKey put: names] in MetacelloMCVersionSpec>>expandToLoadableSpecNames: Receiver: spec blessing: #'release'. spec description: 'New version'. spec author: 'AlexandreBergel'...etc... Arguments and temporary variables: nameList: a Dictionary(#('1.0 [ConfigurationOfFame]' #('ALL'))->#('Fame-ImportE...etc... cacheKey: 19 names: #('2.49 [ConfigurationOfMondrian]' 19) cache: #(nil) Receiver's instance variables: project: ConfigurationOfMondrian(default [ConfigurationOfMondrian], defaultMini...etc... loader: a MetacelloLoadingMCSpecLoader versionString: '2.49' blessing: spec value: #release description: spec value: 'New version' author: spec value: 'AlexandreBergel' timestamp: spec value: '2/17/2011 10:00' preLoadDoIt: nil postLoadDoIt: nil packages: spec add: [ spec name: 'Mondrian-Core'; file: 'Mondrian-Core...etc... repositories: spec repository: 'http://www.squeaksource.com/Mondrian' [:dict | | cache value hasEntry | cache := dict at: cacheName ifAbsent: []. cache ~~ nil ifTrue: [hasEntry := true. value := cache at: key ifAbsent: [hasEntry := false]. hasEntry ifTrue: [^ value]] ifFalse: [cache := cacheClass new. dict at: cacheName put: cache]. ^ aBlock value: cache] in MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:cacheClass:at:doing: Receiver: a MetacelloPharoPlatform Arguments and temporary variables: cacheName: a Dictionary(#ancestors->a Dictionary(size 654) #currentVersion->a D...etc... cacheClass: #loadableSpecNames key: Dictionary aBlock: #('2.49 [ConfigurationOfMondrian]' 19) dict: [:cache | names := (self resolveToLoadableSpecs: nameList) collect: ...etc... cache: a Dictionary(#('1.0 [ConfigurationOfFame]' #('ALL'))->#('Fame-ImportExpo...etc... value: false hasEntry: #(false) Receiver's instance variables: bypassProgressBars: false bypassGoferLoadUpdateCategories: false [^ aBlock value: dict] in MetacelloPharoPlatform(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary: Receiver: a MetacelloPharoPlatform Arguments and temporary variables: aBlock: [:dict | | cache value hasEntry | cache := dict at: cacheName ...etc... dict: a Dictionary(#ancestors->a Dictionary(size 654) #currentVersion->a Dictio...etc... Receiver's instance variables: bypassProgressBars: false bypassGoferLoadUpdateCategories: false BlockClosure>>on:do: Receiver: [^ aBlock value: dict] Arguments and temporary variables: exception: an ExceptionSet handlerAction: [:ex | | keys | (ex isKindOf: MetacelloStackCacheNotification) ...etc... handlerActive: true Receiver's instance variables: outerContext: MetacelloPharoPlatform(MetacelloPlatform)>>useStackCacheDuring:de...etc... startpc: 100 numArgs: 0 MetacelloPharoPlatform(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary: Receiver: a MetacelloPharoPlatform Arguments and temporary variables: aBlock: [:dict | | cache value hasEntry | cache := dict at: cacheName ...etc... defaultDictionary: nil dict: a Dictionary(#ancestors->a Dictionary(size 654) #currentVersion->a Dictio...etc... Receiver's instance variables: bypassProgressBars: false bypassGoferLoadUpdateCategories: false MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:cacheClass:at:doing: Receiver: a MetacelloPharoPlatform Arguments and temporary variables: cacheName: #loadableSpecNames cacheClass: Dictionary key: #('2.49 [ConfigurationOfMondrian]' 19) aBlock: [:cache | names := (self resolveToLoadableSpecs: nameList) collect...etc... Receiver's instance variables: bypassProgressBars: false bypassGoferLoadUpdateCategories: false MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:at:doing: Receiver: a MetacelloPharoPlatform Arguments and temporary variables: cacheName: #loadableSpecNames key: #('2.49 [ConfigurationOfMondrian]' 19) aBlock: [:cache | names := (self resolveToLoadableSpecs: nameList) collect...etc... Receiver's instance variables: bypassProgressBars: false bypassGoferLoadUpdateCategories: false MetacelloMCVersionSpec>>expandToLoadableSpecNames: Receiver: spec blessing: #'release'. spec description: 'New version'. spec author: 'AlexandreBergel'...etc... Arguments and temporary variables: nameList: 19 cacheKey: #('2.49 [ConfigurationOfMondrian]' 19) names: #(nil) Receiver's instance variables: project: ConfigurationOfMondrian(default [ConfigurationOfMondrian], defaultMini...etc... loader: a MetacelloLoadingMCSpecLoader versionString: '2.49' blessing: spec value: #release description: spec value: 'New version' author: spec value: 'AlexandreBergel' timestamp: spec value: '2/17/2011 10:00' preLoadDoIt: nil postLoadDoIt: nil packages: spec add: [ spec name: 'Mondrian-Core'; file: 'Mondrian-Core...etc... repositories: spec repository: 'http://www.squeaksource.com/Mondrian' MetacelloMCVersion>>expandToLoadableSpecNames: Receiver: 2.49 [ConfigurationOfMondrian] Arguments and temporary variables: nameList: 19 Receiver's instance variables: spec: spec blessing: #'release'. spec description: 'New version'. spec author: ...etc... versionNumber: 2.49 importedVersions: an OrderedCollection('2.8-baseline') versionStatus: #noStatus loaderPolicy: nil [vrsn expandToLoadableSpecNames: (loadList := self loadListForVersion: vrsn)] in MetacelloMCProjectSpec>>relativeCurrentVersion Receiver: spec name: 'Mondrian for DSM'; className: 'ConfigurationOfMondrian'; versionString: '2...etc... Arguments and temporary variables: < Receiver's instance variables: project: ConfigurationOfDSM(default [ConfigurationOfDSM], withAllProto [Configu...etc... loader: nil name: 'Mondrian for DSM' className: 'ConfigurationOfMondrian' versionString: '2.49' operator: nil loads: nil preLoadDoIt: nil postLoadDoIt: nil projectPackage: spec name: 'ConfigurationOfMondrian'; file: 'ConfigurationOf...etc... BlockClosure>>on:do: Receiver: [vrsn expandToLoadableSpecNames: (loadList := self loadListForVersion: vrsn)] Arguments and temporary variables: exception: Error handlerAction: [:ex | vrsn blessing == #development ifTrue: [self projectPac...etc... handlerActive: false Receiver's instance variables: outerContext: MetacelloMCProjectSpec>>relativeCurrentVersion startpc: 86 numArgs: 0 MetacelloMCProjectSpec>>relativeCurrentVersion Receiver: spec name: 'Mondrian for DSM'; className: 'ConfigurationOfMondrian'; versionString: '2...etc... Arguments and temporary variables: < Receiver's instance variables: project: ConfigurationOfDSM(default [ConfigurationOfDSM], withAllProto [Configu...etc... loader: nil name: 'Mondrian for DSM' className: 'ConfigurationOfMondrian' versionString: '2.49' operator: nil loads: nil preLoadDoIt: nil postLoadDoIt: nil projectPackage: spec name: 'ConfigurationOfMondrian'; file: 'ConfigurationOf...etc... MetacelloProjectReferenceSpec>>relativeCurrentVersion Receiver: spec name: 'Mondrian for DSM'; projectReference: [ spec className: 'ConfigurationO...etc... Arguments and temporary variables: Receiver's instance variables: project: ConfigurationOfDSM(default [ConfigurationOfDSM], withAllProto [Configu...etc... loader: nil name: 'Mondrian for DSM' requires: #() includes: #() answers: nil projectReference: spec name: 'Mondrian for DSM'; className: 'ConfigurationOf...etc... [:prj | | vrsn currentVersion | status hasNoProject: false. vrsn := prj versionOrNil. vrsn ~~ nil ifTrue: [(currentVersion := prj relativeCurrentVersion) ~~ nil ifTrue: [status vrsnStatus add: currentVersion versionStatus]]. currentVersion ~~ nil ifTrue: [status aProjectIsLoaded: true. (currentVersion perform: #= with: vrsn) ifTrue: [status aLoadedProjectIsExact: true] ifFalse: [(currentVersion perform: prj projectReference operator with: vrsn) ifTrue: [status aLoadedProjectIsCurrent: true] ifFalse: [status aLoadedProjectIsNotCurrent: true]]] ifFalse: [status aProjectNotLoaded: true]] in MetacelloMCVersionSpec>>isPartiallyCurrentAgainst: Receiver: spec blessing: #'release'. spec description: 'New version'. spec author: 'AlexandreBergel'...etc... Arguments and temporary variables: status: spec name: 'Mondrian for DSM'; projectReference: [ spec classNa...etc... prj: a MetacelloMCPartiallyLoadedStatus vrsn: 2.49 [ConfigurationOfMondrian] currentVersion: nil Receiver's instance variables: project: ConfigurationOfDSM(default [ConfigurationOfDSM], withAllProto [Configu...etc... loader: a MetacelloFetchingMCSpecLoader(linear load : explicit load : default...etc... versionString: '2.2' blessing: spec value: #release description: spec value: 'New version' author: spec value: 'AlexandreBergel' timestamp: spec value: '2/19/2011 18:43' preLoadDoIt: nil postLoadDoIt: nil packages: spec add: [ spec name: 'Tests'; includes: #('Moose-Tests-Dsm...etc... repositories: spec repository: 'http://www.squeaksource.com/dsm' MetacelloProjectReferenceSpec>>projectDo:packageDo:groupDo: Receiver: spec name: 'Mondrian for DSM'; projectReference: [ spec className: 'ConfigurationO...etc... Arguments and temporary variables: projectBlock: [:prj | | vrsn currentVersion | status hasNoProject: false. vrs...etc... packageBlock: [:pkg | status hasNoPackage: false. pkg currentPackageLoaded:...etc... groupBlock: [:ignoredGroup | status abort: true. ^ status] Receiver's instance variables: project: ConfigurationOfDSM(default [ConfigurationOfDSM], withAllProto [Configu...etc... loader: nil name: 'Mondrian for DSM' requires: #() includes: #() answers: nil projectReference: spec name: 'Mondrian for DSM'; className: 'ConfigurationOf...etc... [:name | | pkgSpec | (pkgSpec := map at: name ifAbsent: []) ~~ nil ifTrue: [pkgSpec projectDo: projectBlock packageDo: packageBlock groupDo: groupBlock]] in MetacelloMCVersionSpec>>specsNamed:projectDo:packageDo:groupDo: Receiver: spec blessing: #'release'. spec description: 'New version'. spec author: 'AlexandreBergel'...etc... Arguments and temporary variables: projectBlock: 'Mondrian for DSM' packageBlock: [:prj | | vrsn currentVersion | status hasNoProject: false. vrs...etc... groupBlock: [:pkg | status hasNoPackage: false. pkg currentPackageLoaded: [...etc... map: [:ignoredGroup | status abort: true. ^ status] name: a Dictionary('Mondrian for DSM'->spec name: 'Mondrian for DSM'; projec...etc... pkgSpec: spec name: 'Mondrian for DSM'; projectReference: [ spec classN...etc... Receiver's instance variables: project: ConfigurationOfDSM(default [ConfigurationOfDSM], withAllProto [Configu...etc... loader: a MetacelloFetchingMCSpecLoader(linear load : explicit load : default...etc... versionString: '2.2' blessing: spec value: #release description: spec value: 'New version' author: spec value: 'AlexandreBergel' timestamp: spec value: '2/19/2011 18:43' preLoadDoIt: nil postLoadDoIt: nil packages: spec add: [ spec name: 'Tests'; includes: #('Moose-Tests-Dsm...etc... repositories: spec repository: 'http://www.squeaksource.com/dsm' Array(SequenceableCollection)>>do: Receiver: #('Mondrian for DSM' 'Moose-CycleTable' 'Moose-Dsm' 'Moose-MondrianPaintings' 'Moose-TestR...etc... Arguments and temporary variables: aBlock: [:name | | pkgSpec | (pkgSpec := map at: name ifAbsent: []) ~...etc... index: 1 indexLimiT: 7 Receiver's instance variables: #('Mondrian for DSM' 'Moose-CycleTable' 'Moose-Dsm' 'Moose-MondrianPaintings' 'Moose-TestR...etc... MetacelloMCVersionSpec>>specsNamed:projectDo:packageDo:groupDo: Receiver: spec blessing: #'release'. spec description: 'New version'. spec author: 'AlexandreBergel'...etc... Arguments and temporary variables: packageAndProjectNames: #('Mondrian for DSM' 'Moose-CycleTable' 'Moose-Dsm' 'Mo...etc... projectBlock: [:prj | | vrsn currentVersion | status hasNoProject: false. vrs...etc... packageBlock: [:pkg | status hasNoPackage: false. pkg currentPackageLoaded:...etc... groupBlock: [:ignoredGroup | status abort: true. ^ status] map: a Dictionary('Mondrian for DSM'->spec name: 'Mondrian for DSM'; project...etc... Receiver's instance variables: project: ConfigurationOfDSM(default [ConfigurationOfDSM], withAllProto [Configu...etc... loader: a MetacelloFetchingMCSpecLoader(linear load : explicit load : default...etc... versionString: '2.2' blessing: spec value: #release description: spec value: 'New version' author: spec value: 'AlexandreBergel' timestamp: spec value: '2/19/2011 18:43' preLoadDoIt: nil postLoadDoIt: nil packages: spec add: [ spec name: 'Tests'; includes: #('Moose-Tests-Dsm...etc... repositories: spec repository: 'http://www.squeaksource.com/dsm' MetacelloMCVersionSpec>>isPartiallyCurrentAgainst: Receiver: spec blessing: #'release'. spec description: 'New version'. spec author: 'AlexandreBergel'...etc... Arguments and temporary variables: resolvedPackageAndProjectNames: #('Mondrian for DSM' 'Moose-CycleTable' 'Moose-...etc... mcLoader: a MetacelloFetchingMCSpecLoader(linear load : explicit load : defau...etc... status: a MetacelloMCPartiallyLoadedStatus Receiver's instance variables: project: ConfigurationOfDSM(default [ConfigurationOfDSM], withAllProto [Configu...etc... loader: a MetacelloFetchingMCSpecLoader(linear load : explicit load : default...etc... versionString: '2.2' blessing: spec value: #release description: spec value: 'New version' author: spec value: 'AlexandreBergel' timestamp: spec value: '2/19/2011 18:43' preLoadDoIt: nil postLoadDoIt: nil packages: spec add: [ spec name: 'Tests'; includes: #('Moose-Tests-Dsm...etc... repositories: spec repository: 'http://www.squeaksource.com/dsm' [:version | | status matchBlock | status := resolvedPackageAndProjectNames isNil ifTrue: [version spec isPartiallyCurrent] ifFalse: [version spec isPartiallyCurrentAgainst: resolvedPackageAndProjectNames]. matchBlock := [:matchStatus | cv := version copy. cv versionStatus: matchStatus. ^ cache at: cacheKey put: cv]. status isAllLoadedToSpec: matchBlock. status isLoadedToSpec: matchBlock. status isLoadedMatchConstraints: matchBlock. status isSomethingLoaded: [:matchStatus | latestSomethingLoaded isNil ifTrue: [cv := version copy. cv versionStatus: matchStatus. latestSomethingLoaded := cv]]] in [:cache | | versions cv latestSomethingLoaded | cv := nil. versions := self sortedAndFilteredVersions. versions do: [:version | | status matchBlock | status := resolvedPackageAndProjectNames isNil ifTrue: [version spec isPartiallyCurrent] ifFalse: [version spec isPartiallyCurrentAgainst: resolvedPackageAndProjectNames]. matchBlock := [:matchStatus | cv := version copy. cv versionStatus: matchStatus. ^ cache at: cacheKey put: cv]. status isAllLoadedToSpec: matchBlock. status isLoadedToSpec: matchBlock. status isLoadedMatchConstraints: matchBlock. status isSomethingLoaded: [:matchStatus | latestSomethingLoaded isNil ifTrue: [cv := version copy. cv versionStatus: matchStatus. latestSomethingLoaded := cv]]]. latestSomethingLoaded ifNotNil: [^ cache at: cacheKey put: latestSomethingLoaded]. ^ cache at: cacheKey put: nil] in MetacelloMCProject(MetacelloProject)>>currentVersionAgainst: Receiver: ConfigurationOfDSM(default [ConfigurationOfDSM], withAllProto [ConfigurationOfDSM], 2.0-be...etc... Arguments and temporary variables: < Receiver's instance variables: versionMap: a Dictionary('2.0-beta.1'->2.0-beta.1 [ConfigurationOfDSM] '2.0-bet...etc... symbolicVersionMap: a Dictionary(#bleedingEdge->'2.3-baseline' #development->'2...etc... loader: a MetacelloFetchingMCSpecLoader(linear load : explicit load : default...etc... loaderClass: nil loadType: nil configuration: a ConfigurationOfDSM projectAttributes: nil Array(SequenceableCollection)>>do: Receiver: an Array(2.3 [ConfigurationOfDSM] 2.2 [ConfigurationOfDSM] 2.1 [ConfigurationOfDSM] 2.0.5 ...etc... Arguments and temporary variables: aBlock: [:version | | status matchBlock | status := resolvedPackageAndProjectN...etc... index: 2 indexLimiT: 12 Receiver's instance variables: an Array(2.3 [ConfigurationOfDSM] 2.2 [ConfigurationOfDSM] 2.1 [ConfigurationOfDSM] 2.0.5 ...etc... [:cache | | versions cv latestSomethingLoaded | cv := nil. versions := self sortedAndFilteredVersions. versions do: [:version | | status matchBlock | status := resolvedPackageAndProjectNames isNil ifTrue: [version spec isPartiallyCurrent] ifFalse: [version spec isPartiallyCurrentAgainst: resolvedPackageAndProjectNames]. matchBlock := [:matchStatus | cv := version copy. cv versionStatus: matchStatus. ^ cache at: cacheKey put: cv]. status isAllLoadedToSpec: matchBlock. status isLoadedToSpec: matchBlock. status isLoadedMatchConstraints: matchBlock. status isSomethingLoaded: [:matchStatus | latestSomethingLoaded isNil ifTrue: [cv := version copy. cv versionStatus: matchStatus. latestSomethingLoaded := cv]]]. latestSomethingLoaded ifNotNil: [^ cache at: cacheKey put: latestSomethingLoaded]. ^ cache at: cacheKey put: nil] in MetacelloMCProject(MetacelloProject)>>currentVersionAgainst: Receiver: ConfigurationOfDSM(default [ConfigurationOfDSM], withAllProto [ConfigurationOfDSM], 2.0-be...etc... Arguments and temporary variables: < Receiver's instance variables: versionMap: a Dictionary('2.0-beta.1'->2.0-beta.1 [ConfigurationOfDSM] '2.0-bet...etc... symbolicVersionMap: a Dictionary(#bleedingEdge->'2.3-baseline' #development->'2...etc... loader: a MetacelloFetchingMCSpecLoader(linear load : explicit load : default...etc... loaderClass: nil loadType: nil configuration: a ConfigurationOfDSM projectAttributes: nil [:dict | | cache value hasEntry | cache := dict at: cacheName ifAbsent: []. cache ~~ nil ifTrue: [hasEntry := true. value := cache at: key ifAbsent: [hasEntry := false]. hasEntry ifTrue: [^ value]] ifFalse: [cache := cacheClass new. dict at: cacheName put: cache]. ^ aBlock value: cache] in MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:cacheClass:at:doing: Receiver: a MetacelloPharoPlatform Arguments and temporary variables: cacheName: a Dictionary(#ancestors->a Dictionary(size 654) #currentVersion->a D...etc... cacheClass: #currentVersionAgainst: key: Dictionary aBlock: {ConfigurationOfDSM. #('Mondrian for DSM' 'Moose-CycleTable' 'Moose-Dsm...etc... dict: [:cache | | versions cv latestSomethingLoaded | cv := nil. versions := ...etc... cache: a Dictionary({ConfigurationOfEyeSee. #('EyeSee-Axis' 'EyeSee-Core' 'EyeS...etc... value: false hasEntry: #(false) Receiver's instance variables: bypassProgressBars: false bypassGoferLoadUpdateCategories: false [^ aBlock value: dict] in MetacelloPharoPlatform(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary: Receiver: a MetacelloPharoPlatform Arguments and temporary variables: aBlock: [:dict | | cache value hasEntry | cache := dict at: cacheName ...etc... dict: a Dictionary(#ancestors->a Dictionary(size 654) #currentVersion->a Dictio...etc... Receiver's instance variables: bypassProgressBars: false bypassGoferLoadUpdateCategories: false BlockClosure>>on:do: Receiver: [^ aBlock value: dict] Arguments and temporary variables: exception: an ExceptionSet handlerAction: [:ex | | keys | (ex isKindOf: MetacelloStackCacheNotification) ...etc... handlerActive: true Receiver's instance variables: outerContext: MetacelloPharoPlatform(MetacelloPlatform)>>useStackCacheDuring:de...etc... startpc: 100 numArgs: 0 MetacelloPharoPlatform(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary: Receiver: a MetacelloPharoPlatform Arguments and temporary variables: aBlock: [:dict | | cache value hasEntry | cache := dict at: cacheName ...etc... defaultDictionary: nil dict: a Dictionary(#ancestors->a Dictionary(size 654) #currentVersion->a Dictio...etc... Receiver's instance variables: bypassProgressBars: false bypassGoferLoadUpdateCategories: false MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:cacheClass:at:doing: Receiver: a MetacelloPharoPlatform Arguments and temporary variables: cacheName: #currentVersionAgainst: cacheClass: Dictionary key: {ConfigurationOfDSM. #('Mondrian for DSM' 'Moose-CycleTable' 'Moose-Dsm' '...etc... aBlock: [:cache | | versions cv latestSomethingLoaded | cv := nil. versions :...etc... Receiver's instance variables: bypassProgressBars: false bypassGoferLoadUpdateCategories: false MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:at:doing: Receiver: a MetacelloPharoPlatform Arguments and temporary variables: cacheName: #currentVersionAgainst: key: {ConfigurationOfDSM. #('Mondrian for DSM' 'Moose-CycleTable' 'Moose-Dsm' '...etc... aBlock: [:cache | | versions cv latestSomethingLoaded | cv := nil. versions :...etc... Receiver's instance variables: bypassProgressBars: false bypassGoferLoadUpdateCategories: false MetacelloMCProject(MetacelloProject)>>currentVersionAgainst: Receiver: ConfigurationOfDSM(default [ConfigurationOfDSM], withAllProto [ConfigurationOfDSM], 2.0-be...etc... Arguments and temporary variables: resolvedPackageAndProjectNames: #('Mondrian for DSM' 'Moose-CycleTable' 'Moose-...etc... cacheKey: {ConfigurationOfDSM. #('Mondrian for DSM' 'Moose-CycleTable' 'Moose-D...etc... Receiver's instance variables: versionMap: a Dictionary('2.0-beta.1'->2.0-beta.1 [ConfigurationOfDSM] '2.0-bet...etc... symbolicVersionMap: a Dictionary(#bleedingEdge->'2.3-baseline' #development->'2...etc... loader: a MetacelloFetchingMCSpecLoader(linear load : explicit load : default...etc... loaderClass: nil loadType: nil configuration: a ConfigurationOfDSM projectAttributes: nil MetacelloMCProjectSpec>>relativeCurrentVersion Receiver: spec name: 'DSM for Moose'; className: 'ConfigurationOfDSM'; versionString: '2.1'; re...etc... Arguments and temporary variables: < Receiver's instance variables: project: ConfigurationOfMoose(coreDefault [ConfigurationOfMoose], default [Conf...etc... loader: nil name: 'DSM for Moose' className: 'ConfigurationOfDSM' versionString: '2.1' operator: nil loads: nil preLoadDoIt: nil postLoadDoIt: nil projectPackage: spec name: 'ConfigurationOfDSM'; file: 'ConfigurationOfDSM';...etc... MetacelloProjectReferenceSpec>>relativeCurrentVersion Receiver: spec name: 'DSM for Moose'; projectReference: [ spec className: 'ConfigurationOfDS...etc... Arguments and temporary variables: Receiver's instance variables: project: ConfigurationOfMoose(coreDefault [ConfigurationOfMoose], default [Conf...etc... loader: nil name: 'DSM for Moose' requires: #() includes: #() answers: nil projectReference: spec name: 'DSM for Moose'; className: 'ConfigurationOfDSM...etc... [:prj | | vrsn currentVersion | status hasNoProject: false. vrsn := prj versionOrNil. vrsn ~~ nil ifTrue: [(currentVersion := prj relativeCurrentVersion) ~~ nil ifTrue: [status vrsnStatus add: currentVersion versionStatus]]. currentVersion ~~ nil ifTrue: [status aProjectIsLoaded: true. (currentVersion perform: #= with: vrsn) ifTrue: [status aLoadedProjectIsExact: true] ifFalse: [(currentVersion perform: prj projectReference operator with: vrsn) ifTrue: [status aLoadedProjectIsCurrent: true] ifFalse: [status aLoadedProjectIsNotCurrent: true]]] ifFalse: [status aProjectNotLoaded: true]] in MetacelloMCVersionSpec>>isPartiallyCurrentAgainst: Receiver: spec blessing: #'development'. spec description: ''. spec author: 'AlexandreBergel'. spec ...etc... Arguments and temporary variables: status: spec name: 'DSM for Moose'; projectReference: [ spec className:...etc... prj: a MetacelloMCPartiallyLoadedStatus vrsn: 2.1 [ConfigurationOfDSM] currentVersion: nil Receiver's instance variables: project: ConfigurationOfMoose(coreDefault [ConfigurationOfMoose], default [Conf...etc... loader: a MetacelloLoadingMCSpecLoader versionString: '4.4-beta.1' blessing: spec value: #development description: spec value: '' author: spec value: 'AlexandreBergel' timestamp: spec value: '5/16/2011 16:06' preLoadDoIt: nil postLoadDoIt: nil packages: spec add: [ spec name: 'Famix-Core'; requires: #('Moose-Core...etc... repositories: spec repository: 'http://www.squeaksource.com/Moose' MetacelloProjectReferenceSpec>>projectDo:packageDo:groupDo: Receiver: spec name: 'DSM for Moose'; projectReference: [ spec className: 'ConfigurationOfDS...etc... Arguments and temporary variables: projectBlock: [:prj | | vrsn currentVersion | status hasNoProject: false. vrs...etc... packageBlock: [:pkg | status hasNoPackage: false. pkg currentPackageLoaded:...etc... groupBlock: [:ignoredGroup | status abort: true. ^ status] Receiver's instance variables: project: ConfigurationOfMoose(coreDefault [ConfigurationOfMoose], default [Conf...etc... loader: nil name: 'DSM for Moose' requires: #() includes: #() answers: nil projectReference: spec name: 'DSM for Moose'; className: 'ConfigurationOfDSM...etc... [:name | | pkgSpec | (pkgSpec := map at: name ifAbsent: []) ~~ nil ifTrue: [pkgSpec projectDo: projectBlock packageDo: packageBlock groupDo: groupBlock]] in MetacelloMCVersionSpec>>specsNamed:projectDo:packageDo:groupDo: Receiver: spec blessing: #'development'. spec description: ''. spec author: 'AlexandreBergel'. spec ...etc... Arguments and temporary variables: projectBlock: 'DSM for Moose' packageBlock: [:prj | | vrsn currentVersion | status hasNoProject: false. vrs...etc... groupBlock: [:pkg | status hasNoPackage: false. pkg currentPackageLoaded: [...etc... map: [:ignoredGroup | status abort: true. ^ status] name: a Dictionary('Arki-Reporter-Browser'->spec name: 'Arki-Reporter-Browser...etc... pkgSpec: spec name: 'DSM for Moose'; projectReference: [ spec className...etc... Receiver's instance variables: project: ConfigurationOfMoose(coreDefault [ConfigurationOfMoose], default [Conf...etc... loader: a MetacelloLoadingMCSpecLoader versionString: '4.4-beta.1' blessing: spec value: #development description: spec value: '' author: spec value: 'AlexandreBergel' timestamp: spec value: '5/16/2011 16:06' preLoadDoIt: nil postLoadDoIt: nil packages: spec add: [ spec name: 'Famix-Core'; requires: #('Moose-Core...etc... repositories: spec repository: 'http://www.squeaksource.com/Moose' Array(SequenceableCollection)>>do: Receiver: #('DSM for Moose' 'Fame' 'Famix-Core' 'Famix-Extensions' 'Famix-File' 'Famix-Implementatio...etc... Arguments and temporary variables: aBlock: [:name | | pkgSpec | (pkgSpec := map at: name ifAbsent: []) ~...etc... index: 1 indexLimiT: 20 Receiver's instance variables: #('DSM for Moose' 'Fame' 'Famix-Core' 'Famix-Extensions' 'Famix-File' 'Famix-Implementatio...etc... MetacelloMCVersionSpec>>specsNamed:projectDo:packageDo:groupDo: Receiver: spec blessing: #'development'. spec description: ''. spec author: 'AlexandreBergel'. spec ...etc... Arguments and temporary variables: packageAndProjectNames: #('DSM for Moose' 'Fame' 'Famix-Core' 'Famix-Extensions...etc... projectBlock: [:prj | | vrsn currentVersion | status hasNoProject: false. vrs...etc... packageBlock: [:pkg | status hasNoPackage: false. pkg currentPackageLoaded:...etc... groupBlock: [:ignoredGroup | status abort: true. ^ status] map: a Dictionary('Arki-Reporter-Browser'->spec name: 'Arki-Reporter-Browser'...etc... Receiver's instance variables: project: ConfigurationOfMoose(coreDefault [ConfigurationOfMoose], default [Conf...etc... loader: a MetacelloLoadingMCSpecLoader versionString: '4.4-beta.1' blessing: spec value: #development description: spec value: '' author: spec value: 'AlexandreBergel' timestamp: spec value: '5/16/2011 16:06' preLoadDoIt: nil postLoadDoIt: nil packages: spec add: [ spec name: 'Famix-Core'; requires: #('Moose-Core...etc... repositories: spec repository: 'http://www.squeaksource.com/Moose' --- The full stack --- SmallInteger(Object)>>doesNotUnderstand: #isEmpty MetacelloMCVersionSpec>>resolveToLoadableSpecs:map: MetacelloMCVersionSpec>>resolveToLoadableSpecs: [:cache | names := (self resolveToLoadableSpecs: nameList) collect: [:spec | spec name]. cache at: cacheKey put: names] in MetacelloMCVersionSpec>>expandToLoadableSpecNames: [:dict | | cache value hasEntry | cache := dict at: cacheName ifAbsent: []. cache ~~ nil ifTrue: [hasEntry := true. value := cache at: key ifAbsent: [hasEntry := false]. hasEntry ifTrue: [^ value]] ifFalse: [cache := cacheClass new. dict at: cacheName put: cache]. ^ aBlock value: cache] in MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:cacheClass:at:doing: [^ aBlock value: dict] in MetacelloPharoPlatform(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary: BlockClosure>>on:do: MetacelloPharoPlatform(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary: MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:cacheClass:at:doing: MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:at:doing: MetacelloMCVersionSpec>>expandToLoadableSpecNames: MetacelloMCVersion>>expandToLoadableSpecNames: [vrsn expandToLoadableSpecNames: (loadList := self loadListForVersion: vrsn)] in MetacelloMCProjectSpec>>relativeCurrentVersion BlockClosure>>on:do: MetacelloMCProjectSpec>>relativeCurrentVersion MetacelloProjectReferenceSpec>>relativeCurrentVersion [:prj | | vrsn currentVersion | status hasNoProject: false. vrsn := prj versionOrNil. vrsn ~~ nil ifTrue: [(currentVersion := prj relativeCurrentVersion) ~~ nil ifTrue: [status vrsnStatus add: currentVersion versionStatus]]. currentVersion ~~ nil ifTrue: [status aProjectIsLoaded: true. (currentVersion perform: #= with: vrsn) ifTrue: [status aLoadedProjectIsExact: true] ifFalse: [(currentVersion perform: prj projectReference operator with: vrsn) ifTrue: [status aLoadedProjectIsCurrent: true] ifFalse: [status aLoadedProjectIsNotCurrent: true]]] ifFalse: [status aProjectNotLoaded: true]] in MetacelloMCVersionSpec>>isPartiallyCurrentAgainst: MetacelloProjectReferenceSpec>>projectDo:packageDo:groupDo: [:name | | pkgSpec | (pkgSpec := map at: name ifAbsent: []) ~~ nil ifTrue: [pkgSpec projectDo: projectBlock packageDo: packageBlock groupDo: groupBlock]] in MetacelloMCVersionSpec>>specsNamed:projectDo:packageDo:groupDo: Array(SequenceableCollection)>>do: MetacelloMCVersionSpec>>specsNamed:projectDo:packageDo:groupDo: MetacelloMCVersionSpec>>isPartiallyCurrentAgainst: [:version | | status matchBlock | status := resolvedPackageAndProjectNames isNil ifTrue: [version spec isPartiallyCurrent] ifFalse: [version spec isPartiallyCurrentAgainst: resolvedPackageAndProjectNames]. matchBlock := [:matchStatus | cv := version copy. cv versionStatus: matchStatus. ^ cache at: cacheKey put: cv]. status isAllLoadedToSpec: matchBlock. status isLoadedToSpec: matchBlock. status isLoadedMatchConstraints: matchBlock. status isSomethingLoaded: [:matchStatus | latestSomethingLoaded isNil ifTrue: [cv := version copy. cv versionStatus: matchStatus. latestSomethingLoaded := cv]]] in [:cache | | versions cv latestSomethingLoaded | cv := nil. versions := self sortedAndFilteredVersions. versions do: [:version | | status matchBlock | status := resolvedPackageAndProjectNames isNil ifTrue: [version spec isPartiallyCurrent] ifFalse: [version spec isPartiallyCurrentAgainst: resolvedPackageAndProjectNames]. matchBlock := [:matchStatus | cv := version copy. cv versionStatus: matchStatus. ^ cache at: cacheKey put: cv]. status isAllLoadedToSpec: matchBlock. status isLoadedToSpec: matchBlock. status isLoadedMatchConstraints: matchBlock. status isSomethingLoaded: [:matchStatus | latestSomethingLoaded isNil ifTrue: [cv := version copy. cv versionStatus: matchStatus. latestSomethingLoaded := cv]]]. latestSomethingLoaded ifNotNil: [^ cache at: cacheKey put: latestSomethingLoaded]. ^ cache at: cacheKey put: nil] in MetacelloMCProject(MetacelloProject)>>currentVersionAgainst: Array(SequenceableCollection)>>do: [:cache | | versions cv latestSomethingLoaded | cv := nil. versions := self sortedAndFilteredVersions. versions do: [:version | | status matchBlock | status := resolvedPackageAndProjectNames isNil ifTrue: [version spec isPartiallyCurrent] ifFalse: [version spec isPartiallyCurrentAgainst: resolvedPackageAndProjectNames]. matchBlock := [:matchStatus | cv := version copy. cv versionStatus: matchStatus. ^ cache at: cacheKey put: cv]. status isAllLoadedToSpec: matchBlock. status isLoadedToSpec: matchBlock. status isLoadedMatchConstraints: matchBlock. status isSomethingLoaded: [:matchStatus | latestSomethingLoaded isNil ifTrue: [cv := version copy. cv versionStatus: matchStatus. latestSomethingLoaded := cv]]]. latestSomethingLoaded ifNotNil: [^ cache at: cacheKey put: latestSomethingLoaded]. ^ cache at: cacheKey put: nil] in MetacelloMCProject(MetacelloProject)>>currentVersionAgainst: [:dict | | cache value hasEntry | cache := dict at: cacheName ifAbsent: []. cache ~~ nil ifTrue: [hasEntry := true. value := cache at: key ifAbsent: [hasEntry := false]. hasEntry ifTrue: [^ value]] ifFalse: [cache := cacheClass new. dict at: cacheName put: cache]. ^ aBlock value: cache] in MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:cacheClass:at:doing: [^ aBlock value: dict] in MetacelloPharoPlatform(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary: BlockClosure>>on:do: MetacelloPharoPlatform(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary: MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:cacheClass:at:doing: MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:at:doing: MetacelloMCProject(MetacelloProject)>>currentVersionAgainst: MetacelloMCProjectSpec>>relativeCurrentVersion MetacelloProjectReferenceSpec>>relativeCurrentVersion [:prj | | vrsn currentVersion | status hasNoProject: false. vrsn := prj versionOrNil. vrsn ~~ nil ifTrue: [(currentVersion := prj relativeCurrentVersion) ~~ nil ifTrue: [status vrsnStatus add: currentVersion versionStatus]]. currentVersion ~~ nil ifTrue: [status aProjectIsLoaded: true. (currentVersion perform: #= with: vrsn) ifTrue: [status aLoadedProjectIsExact: true] ifFalse: [(currentVersion perform: prj projectReference operator with: vrsn) ifTrue: [status aLoadedProjectIsCurrent: true] ifFalse: [status aLoadedProjectIsNotCurrent: true]]] ifFalse: [status aProjectNotLoaded: true]] in MetacelloMCVersionSpec>>isPartiallyCurrentAgainst: MetacelloProjectReferenceSpec>>projectDo:packageDo:groupDo: [:name | | pkgSpec | (pkgSpec := map at: name ifAbsent: []) ~~ nil ifTrue: [pkgSpec projectDo: projectBlock packageDo: packageBlock groupDo: groupBlock]] in MetacelloMCVersionSpec>>specsNamed:projectDo:packageDo:groupDo: Array(SequenceableCollection)>>do: MetacelloMCVersionSpec>>specsNamed:projectDo:packageDo:groupDo: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MetacelloMCVersionSpec>>isPartiallyCurrentAgainst: [:version | | status matchBlock | status := resolvedPackageAndProjectNames isNil ifTrue: [version spec isPartiallyCurrent] ifFalse: [version spec isPartiallyCurrentAgainst: resolvedPackageAndProjectNames]. matchBlock := [:matchStatus | cv := version copy. cv versionStatus: matchStatus. ^ cache at: cacheKey put: cv]. status isAllLoadedToSpec: matchBlock. status isLoadedToSpec: matchBlock. status isLoadedMatchConstraints: matchBlock. status isSomethingLoaded: [:matchStatus | latestSomethingLoaded isNil ifTrue: [cv := version copy. cv versionStatus: matchStatus. latestSomethingLoaded := cv]]] in [:cache | | versions cv latestSomethingLoaded | cv := nil. versions := self sortedAndFilteredVersions. versions do: [:version | | status matchBlock | status := resolvedPackageAndProjectNames isNil ifTrue: [version spec isPartiallyCurrent] ifFalse: [version spec isPartiallyCurrentAgainst: resolvedPackageAndProjectNames]. matchBlock := [:matchStatus | cv := version copy. cv versionStatus: matchStatus. ^ cache at: cacheKey put: cv]. status isAllLoadedToSpec: matchBlock. status isLoadedToSpec: matchBlock. status isLoadedMatchConstraints: matchBlock. status isSomethingLoaded: [:matchStatus | latestSomethingLoaded isNil ifTrue: [cv := version copy. cv versionStatus: matchStatus. latestSomethingLoaded := cv]]]. latestSomethingLoaded ifNotNil: [^ cache at: cacheKey put: latestSomethingLoaded]. ^ cache at: cacheKey put: nil] in MetacelloMCProject(MetacelloProject)>>currentVersionAgainst: Array(SequenceableCollection)>>do: [:cache | | versions cv latestSomethingLoaded | cv := nil. versions := self sortedAndFilteredVersions. versions do: [:version | | status matchBlock | status := resolvedPackageAndProjectNames isNil ifTrue: [version spec isPartiallyCurrent] ifFalse: [version spec isPartiallyCurrentAgainst: resolvedPackageAndProjectNames]. matchBlock := [:matchStatus | cv := version copy. cv versionStatus: matchStatus. ^ cache at: cacheKey put: cv]. status isAllLoadedToSpec: matchBlock. status isLoadedToSpec: matchBlock. status isLoadedMatchConstraints: matchBlock. status isSomethingLoaded: [:matchStatus | latestSomethingLoaded isNil ifTrue: [cv := version copy. cv versionStatus: matchStatus. latestSomethingLoaded := cv]]]. latestSomethingLoaded ifNotNil: [^ cache at: cacheKey put: latestSomethingLoaded]. ^ cache at: cacheKey put: nil] in MetacelloMCProject(MetacelloProject)>>currentVersionAgainst: [:dict | | cache value hasEntry | cache := dict at: cacheName ifAbsent: []. cache ~~ nil ifTrue: [hasEntry := true. value := cache at: key ifAbsent: [hasEntry := false]. hasEntry ifTrue: [^ value]] ifFalse: [cache := cacheClass new. dict at: cacheName put: cache]. ^ aBlock value: cache] in MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:cacheClass:at:doing: [^ aBlock value: dict] in MetacelloPharoPlatform(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary: BlockClosure>>on:do: MetacelloPharoPlatform(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary: MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:cacheClass:at:doing: MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:at:doing: MetacelloMCProject(MetacelloProject)>>currentVersionAgainst: MetacelloMCProjectSpec>>relativeCurrentVersion MetacelloProjectReferenceSpec>>relativeCurrentVersion [:prj | | vrsn currentVersion | status hasNoProject: false. vrsn := prj versionOrNil. vrsn ~~ nil ifTrue: [(currentVersion := prj relativeCurrentVersion) ~~ nil ifTrue: [status vrsnStatus add: currentVersion versionStatus]]. currentVersion ~~ nil ifTrue: [status aProjectIsLoaded: true. (currentVersion perform: #= with: vrsn) ifTrue: [status aLoadedProjectIsExact: true] ifFalse: [(currentVersion perform: prj projectReference operator with: vrsn) ifTrue: [status aLoadedProjectIsCurrent: true] ifFalse: [status aLoadedProjectIsNotCurrent: true]]] ifFalse: [status aProjectNotLoaded: true]] in MetacelloMCVersionSpec>>isPartiallyCurrentAgainst: MetacelloProjectReferenceSpec>>projectDo:packageDo:groupDo: [:name | | pkgSpec | (pkgSpec := map at: name ifAbsent: []) ~~ nil ifTrue: [pkgSpec projectDo: projectBlock packageDo: packageBlock groupDo: groupBlock]] in MetacelloMCVersionSpec>>specsNamed:projectDo:packageDo:groupDo: Array(SequenceableCollection)>>do: MetacelloMCVersionSpec>>specsNamed:projectDo:packageDo:groupDo: MetacelloMCVersionSpec>>isPartiallyCurrentAgainst: MetacelloMCVersionSpec>>isPartiallyCurrent [:version | | status matchBlock | status := resolvedPackageAndProjectNames isNil ifTrue: [version spec isPartiallyCurrent] ifFalse: [version spec isPartiallyCurrentAgainst: resolvedPackageAndProjectNames]. matchBlock := [:matchStatus | cv := version copy. cv versionStatus: matchStatus. ^ cache at: cacheKey put: cv]. status isAllLoadedToSpec: matchBlock. status isLoadedToSpec: matchBlock. status isLoadedMatchConstraints: matchBlock. status isSomethingLoaded: [:matchStatus | latestSomethingLoaded isNil ifTrue: [cv := version copy. cv versionStatus: matchStatus. latestSomethingLoaded := cv]]] in [:cache | | versions cv latestSomethingLoaded | cv := nil. versions := self sortedAndFilteredVersions. versions do: [:version | | status matchBlock | status := resolvedPackageAndProjectNames isNil ifTrue: [version spec isPartiallyCurrent] ifFalse: [version spec isPartiallyCurrentAgainst: resolvedPackageAndProjectNames]. matchBlock := [:matchStatus | cv := version copy. cv versionStatus: matchStatus. ^ cache at: cacheKey put: cv]. status isAllLoadedToSpec: matchBlock. status isLoadedToSpec: matchBlock. status isLoadedMatchConstraints: matchBlock. status isSomethingLoaded: [:matchStatus | latestSomethingLoaded isNil ifTrue: [cv := version copy. cv versionStatus: matchStatus. latestSomethingLoaded := cv]]]. latestSomethingLoaded ifNotNil: [^ cache at: cacheKey put: latestSomethingLoaded]. ^ cache at: cacheKey put: nil] in MetacelloMCProject(MetacelloProject)>>currentVersionAgainst: Array(SequenceableCollection)>>do: [:cache | | versions cv latestSomethingLoaded | cv := nil. versions := self sortedAndFilteredVersions. versions do: [:version | | status matchBlock | status := resolvedPackageAndProjectNames isNil ifTrue: [version spec isPartiallyCurrent] ifFalse: [version spec isPartiallyCurrentAgainst: resolvedPackageAndProjectNames]. matchBlock := [:matchStatus | cv := version copy. cv versionStatus: matchStatus. ^ cache at: cacheKey put: cv]. status isAllLoadedToSpec: matchBlock. status isLoadedToSpec: matchBlock. status isLoadedMatchConstraints: matchBlock. status isSomethingLoaded: [:matchStatus | latestSomethingLoaded isNil ifTrue: [cv := version copy. cv versionStatus: matchStatus. latestSomethingLoaded := cv]]]. latestSomethingLoaded ifNotNil: [^ cache at: cacheKey put: latestSomethingLoaded]. ^ cache at: cacheKey put: nil] in MetacelloMCProject(MetacelloProject)>>currentVersionAgainst: [:dict | | cache value hasEntry | cache := dict at: cacheName ifAbsent: []. cache ~~ nil ifTrue: [hasEntry := true. value := cache at: key ifAbsent: [hasEntry := false]. hasEntry ifTrue: [^ value]] ifFalse: [cache := cacheClass new. dict at: cacheName put: cache]. ^ aBlock value: cache] in MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:cacheClass:at:doing: [^ aBlock value: dict] in MetacelloPharoPlatform(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary: BlockClosure>>on:do: MetacelloPharoPlatform(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary: MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:cacheClass:at:doing: MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:at:doing: MetacelloMCProject(MetacelloProject)>>currentVersionAgainst: [:cache | cv := self currentVersionAgainst: nil. ^ cache at: cacheKey put: cv] in MetacelloMCProject(MetacelloProject)>>currentVersion [:dict | | cache value hasEntry | cache := dict at: cacheName ifAbsent: []. cache ~~ nil ifTrue: [hasEntry := true. value := cache at: key ifAbsent: [hasEntry := false]. hasEntry ifTrue: [^ value]] ifFalse: [cache := cacheClass new. dict at: cacheName put: cache]. ^ aBlock value: cache] in MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:cacheClass:at:doing: [^ aBlock value: dict] in MetacelloPharoPlatform(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary: BlockClosure>>on:do: MetacelloPharoPlatform(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary: MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:cacheClass:at:doing: MetacelloPharoPlatform(MetacelloPlatform)>>stackCacheFor:at:doing: MetacelloMCProject(MetacelloProject)>>currentVersion MetacelloMCProjectSpec>>compareCurrentVersion:targetVersionStatus:using: [:pkg | pkg ensureLoadedForDevelopmentUsing: mcLoader. mcLoader ignoreImage ifFalse: [(pkg compareCurrentVersion: self operator targetVersionStatus: #(#allLoadedToSpec ) using: mcLoader) ifTrue: [packages removeKey: pkg name]]] in MetacelloMCVersionSpecLoader>>load Array(SequenceableCollection)>>do: MetacelloMCVersionSpecLoader>>load MetacelloMCVersion>>executeLoadFromArray: [:dict | ^ self executeLoadFromArray: anArray] in [self versionSpec loader: newLoader. MetacelloPlatform current useStackCacheDuring: [:dict | ^ self executeLoadFromArray: anArray] defaultDictionary: Dictionary new] in [[self versionSpec loader: newLoader. MetacelloPlatform current useStackCacheDuring: [:dict | ^ self executeLoadFromArray: anArray] defaultDictionary: Dictionary new] ensure: [self versionSpec loader: originalLoader]] in MetacelloMCVersion>>fetchRequiredFromArray: [^ aBlock value: dict] in MetacelloPharoPlatform(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary: BlockClosure>>on:do: MetacelloPharoPlatform(MetacelloPlatform)>>useStackCacheDuring:defaultDictionary: [self versionSpec loader: newLoader. MetacelloPlatform current useStackCacheDuring: [:dict | ^ self executeLoadFromArray: anArray] defaultDictionary: Dictionary new] in [[self versionSpec loader: newLoader. MetacelloPlatform current useStackCacheDuring: [:dict | ^ self executeLoadFromArray: anArray] defaultDictionary: Dictionary new] ensure: [self versionSpec loader: originalLoader]] in MetacelloMCVersion>>fetchRequiredFromArray: BlockClosure>>ensure: [[self versionSpec loader: newLoader. MetacelloPlatform current useStackCacheDuring: [:dict | ^ self executeLoadFromArray: anArray] defaultDictionary: Dictionary new] ensure: [self versionSpec loader: originalLoader]] in MetacelloMCVersion>>fetchRequiredFromArray: [:bar | bar value: 1. aBlock value. bar value: 2] in MetacelloPharoPlatform>>do:displaying: [result := workBlock value: progress] in [[result := workBlock value: progress] on: ProgressNotification do: [:ex | ex extraParam isString ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam]. ex resume]] in ProgressInitiationException>>defaultMorphicAction BlockClosure>>on:do: [[result := workBlock value: progress] on: ProgressNotification do: [:ex | ex extraParam isString ifTrue: [SystemProgressMorph uniqueInstance labelAt: progress put: ex extraParam]. ex resume]] in ProgressInitiationException>>defaultMorphicAction BlockClosure>>ensure: ProgressInitiationException>>defaultMorphicAction MorphicUIManager>>progressInitiationExceptionDefaultAction: ProgressInitiationException>>defaultAction UndefinedObject>>handleSignal: MethodContext(ContextPart)>>handleSignal: MethodContext(ContextPart)>>handleSignal: ProgressInitiationException(Exception)>>signal ProgressInitiationException>>display:at:from:to:during: ProgressInitiationException class>>display:at:from:to:during: ByteString(String)>>displayProgressAt:from:to:during: MetacelloPharoPlatform>>do:displaying: MetacelloMCVersion>>fetchRequiredFromArray: [| fetchLoader | fetchLoader := self fetchRequiredFromArray: (self defaultPackageNamesToLoad: anArray). MetacelloPlatform current do: [fetchLoader doLoad] displaying: 'Loading ' , displayString. Transcript cr; show: '...finished ' , self versionNumber printString. ^ fetchLoader] in MetacelloMCVersion>>doLoadRequiredFromArray: BlockClosure>>ensure: MetacelloMCVersion>>doLoadRequiredFromArray: MetacelloMCVersion>>load ConfigurationOfMoose class>>loadDefault ConfigurationOfMoose class>>DoIt Compiler>>evaluate:in:to:notifying:ifFail:logged: [rcvr class evaluatorClass new evaluate: self selectionForDoitAsStream in: ctxt to: rcvr notifying: self morph ifFail: [self morph flash. ^ nil] logged: true] in SmalltalkEditor>>evaluateSelectionAndDo: BlockClosure>>on:do: SmalltalkEditor>>evaluateSelectionAndDo: SmalltalkEditor>>evaluateSelection SmalltalkEditor>>doIt SmalltalkEditor>>doIt: SmalltalkEditor(TextEditor)>>performCmdActionsWith:shifted:return: SmalltalkEditor(TextEditor)>>dispatchCommandOn:return: SmalltalkEditor(TextEditor)>>dispatchOn: [self dispatchOn: aKeyboardEvent] in SmalltalkEditor(TextEditor)>>keystroke: SmalltalkEditor(TextEditor)>>handleKeystrokeAction: SmalltalkEditor(TextEditor)>>handleEditionAction:fromKeyboardEvent: SmalltalkEditor(TextEditor)>>keystroke: [editor keystroke: evt] in [| action | evt keyValue = 13 ifTrue: [action := self crAction. action ifNotNil: [evt hand newKeyboardFocus: nil. ^ action value]]. self handleInteraction: [editor keystroke: evt]. self updateFromParagraph. super keyStroke: evt] in OBTextMorph(TextMorph)>>keyStroke: OBTextMorph(TextMorph)>>handleInteraction: OBTextMorph(TextMorphForEditView)>>handleInteraction: [| action | evt keyValue = 13 ifTrue: [action := self crAction. action ifNotNil: [evt hand newKeyboardFocus: nil. ^ action value]]. self handleInteraction: [editor keystroke: evt]. self updateFromParagraph. super keyStroke: evt] in OBTextMorph(TextMorph)>>keyStroke: ECToolSet class>>codeCompletionAround:textMorph:keyStroke: ToolRegistry>>codeCompletionAround:textMorph:keyStroke: OBTextMorph(TextMorph)>>keyStroke: OBTextMorph(TextMorphForEditView)>>keyStroke: OBTextMorph>>keyStroke: OBTextMorph(TextMorph)>>handleKeystroke: KeyboardEvent>>sentTo: OBTextMorph(Morph)>>handleEvent: OBTextMorph(Morph)>>handleFocusEvent: [ActiveHand := self. ActiveEvent := anEvent. result := focusHolder handleFocusEvent: (anEvent transformedBy: (focusHolder transformedFrom: self))] in HandMorph>>sendFocusEvent:to:clear: [aBlock value] in PasteUpMorph>>becomeActiveDuring: BlockClosure>>on:do: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendFocusEvent:to:clear: HandMorph>>sendEvent:focus:clear: HandMorph>>sendKeyboardEvent: HandMorph>>handleEvent: HandMorph>>processEvents [:h | ActiveHand := h. h processEvents. ActiveHand := nil] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [[World doOneCycle. Processor yield. false] whileFalse. nil] in Project class>>spawnNewProcess [self value. Processor terminateActive] in BlockClosure>>newProcess