On 10-09-17 11:23, Alistair Grant wrote:
Iceberg enableMetacelloIntegration: true.
Metacello new
repository: 'github://akgrant43/FileAttributes/src';
baseline: 'FileAttributes';
load.
Pharo-7.0.0-alpha.build.110.sha.5827735.arch.64bit
pharo-linux-x86_64threaded-201708312323-caa8241
Ubuntu 16.04LTS
When loading: PrimitiveFailed: primitive #primFileMasks in
FileAttributesPluginPrims failed
Stephan
THERE_BE_DRAGONS_HERE
PrimitiveFailed: primitive #primFileMasks in FileAttributesPluginPrims failed
11 September 2017 11:00:56.536121 am
VM: unix - x86_64 - linux-gnu - CoInterpreter VMMaker.oscog-eem.2266 uuid: 0501d71a-3185-4bdb-a99c-76a5fbbeee22 Sep 1 2017
StackToRegisterMappingCogit VMMaker.oscog-eem.2262 uuid: 8b531242-de02-48aa-b418-8d2dde0bec6c Sep 1 2017
VM: 201708312323 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $ Date: Fri Sep 1 01:23:24 2017 +0200 $ Plugins: 201708312323 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $
Image: Pharo7.0alpha.build.110.sha.58277359523f18a81b762579c80043c898ab74f4 [Build information: alpha.build.110.sha.58277359523f18a81b762579c80043c898ab74f4]
FileAttributesPluginPrims(Object)>>primitiveFailed:
Receiver: a FileAttributesPluginPrims
Arguments and temporary variables:
selector: #primFileMasks
Receiver's instance variables:
a FileAttributesPluginPrims
FileAttributesPluginPrims(Object)>>primitiveFailed
Receiver: a FileAttributesPluginPrims
Arguments and temporary variables:
Receiver's instance variables:
a FileAttributesPluginPrims
FileAttributesPluginPrims>>primFileMasks
Receiver: a FileAttributesPluginPrims
Arguments and temporary variables:
Receiver's instance variables:
a FileAttributesPluginPrims
FileAttributesPluginPrims class>>reset
Receiver: FileAttributesPluginPrims
Arguments and temporary variables:
masks: nil
Receiver's instance variables:
superclass: Object
methodDict: a MethodDictionary(#cantAllocateMemory->FileAttributesPluginPrims>>...etc...
format: 0
layout: a FixedLayout
instanceVariables: nil
organization: a ClassOrganization
subclasses: {UnixFileAttributesPluginPrims. WindowsFileAttributesPluginPrims}
name: #FileAttributesPluginPrims
classPool: a Dictionary(#Encoder->a ZnUTF8Encoder #S_IFBLK->nil #S_IFCHR->nil #...etc...
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'FileSystem-Attributes'
traitComposition: {}
localSelectors: nil
FileAttributesPluginPrims class>>initialize
Receiver: FileAttributesPluginPrims
Arguments and temporary variables:
Receiver's instance variables:
superclass: Object
methodDict: a MethodDictionary(#cantAllocateMemory->FileAttributesPluginPrims>>...etc...
format: 0
layout: a FixedLayout
instanceVariables: nil
organization: a ClassOrganization
subclasses: {UnixFileAttributesPluginPrims. WindowsFileAttributesPluginPrims}
name: #FileAttributesPluginPrims
classPool: a Dictionary(#Encoder->a ZnUTF8Encoder #S_IFBLK->nil #S_IFCHR->nil #...etc...
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'FileSystem-Attributes'
traitComposition: {}
localSelectors: nil
MCMethodDefinition>>postloadOver:
Receiver: a MCMethodDefinition(FileAttributesPluginPrims>>#initialize)
Arguments and temporary variables:
aDefinition: nil
Receiver's instance variables:
classIsMeta: true
source: 'initialize
Encoder := ZnCharacterEncoder newForEncoding: ''utf8''.
...etc...
category: #initialize
selector: #initialize
className: #FileAttributesPluginPrims
timeStamp: 'GitHub 8/9/2017 09:41:37'
[ :each | each postloadOver: (self obsoletionFor: each) ] in MCPackageLoader>>basicLoadDefinitions
Receiver: a MCPackageLoader
Arguments and temporary variables:
each: a MCMethodDefinition(FileAttributesPluginPrims>>#initialize)
Receiver's instance variables:
requirements: #()
unloadableDefinitions: a SortedCollection()
obsoletions: a Dictionary()
additions: an OrderedCollection(a MCMethodDefinition(FileSystemStore>>#attribut...etc...
removals: an OrderedCollection()
errorDefinitions: an OrderedCollection()
provisions: a Set(#GLMUIThemeExtraIcons #OSWindowGenericRenderer #ZnMultiPartFo...etc...
methodAdditions: an OrderedCollection(a MethodAddition a MethodAddition a Metho...etc...
[ :each |
| newLabel |
"Special handling for first and last element"
(count = 0
or: [ count + 1 = size
or: [ (Time millisecondsSince: lastUpdate) >= msecs ] ])
ifTrue: [ bar current: count.
oldLabel = (newLabel := (labelBlock cull: each) ifNil: [ oldLabel ])
ifFalse: [ bar label: newLabel.
oldLabel := newLabel ].
lastUpdate := Time millisecondClockValue ].
aBlock value: each.
count := count + 1 ] in [ :bar |
labelBlock := aStringOrBlock isString
ifTrue: [ bar label: aStringOrBlock.
[ :dummyItem | aStringOrBlock ] ]
ifFalse: [ aStringOrBlock ].
self
do: [ :each |
| newLabel |
"Special handling for first and last element"
(count = 0
or: [ count + 1 = size
or: [ (Time millisecondsSince: lastUpdate) >= msecs ] ])
ifTrue: [ bar current: count.
oldLabel
= (newLabel := (labelBlock cull: each) ifNil: [ oldLabel ])
ifFalse: [ bar label: newLabel.
oldLabel := newLabel ].
lastUpdate := Time millisecondClockValue ].
aBlock value: each.
count := count + 1 ] ] in OrderedCollection(Collection)>>do:displayingProgress:every:
Receiver: an OrderedCollection(a MCMethodDefinition(FileSystemStore>>#attributesClass) a MCMethodDef...etc...
Arguments and temporary variables:
aBlock: [ :each | each postloadOver: (self obsoletionFor: each) ]
aStringOrBlock: 'Initializing...'
msecs: 20
size: 175
bar: a Job
count: 111
labelBlock: [ :dummyItem | aStringOrBlock ]
oldLabel: 'Initializing...'
lastUpdate: 54279
each: a MCMethodDefinition(FileAttributesPluginPrims>>#initialize)
newLabel: nil
Receiver's instance variables:
array: an Array(a MCMethodDefinition(FileSystemStore>>#attributesClass) a MCMet...etc...
firstIndex: 1
lastIndex: 175
OrderedCollection>>do:
Receiver: an OrderedCollection(a MCMethodDefinition(FileSystemStore>>#attributesClass) a MCMethodDef...etc...
Arguments and temporary variables:
aBlock: [ :each |
| newLabel |
"Special handling for first and last element"
(...etc...
index: 112
Receiver's instance variables:
array: an Array(a MCMethodDefinition(FileSystemStore>>#attributesClass) a MCMet...etc...
firstIndex: 1
lastIndex: 175
[ :bar |
labelBlock := aStringOrBlock isString
ifTrue: [ bar label: aStringOrBlock.
[ :dummyItem | aStringOrBlock ] ]
ifFalse: [ aStringOrBlock ].
self
do: [ :each |
| newLabel |
"Special handling for first and last element"
(count = 0
or: [ count + 1 = size
or: [ (Time millisecondsSince: lastUpdate) >= msecs ] ])
ifTrue: [ bar current: count.
oldLabel
= (newLabel := (labelBlock cull: each) ifNil: [ oldLabel ])
ifFalse: [ bar label: newLabel.
oldLabel := newLabel ].
lastUpdate := Time millisecondClockValue ].
aBlock value: each.
count := count + 1 ] ] in OrderedCollection(Collection)>>do:displayingProgress:every:
Receiver: an OrderedCollection(a MCMethodDefinition(FileSystemStore>>#attributesClass) a MCMethodDef...etc...
Arguments and temporary variables:
aBlock: [ :each | each postloadOver: (self obsoletionFor: each) ]
aStringOrBlock: 'Initializing...'
msecs: 20
size: 175
count: 111
labelBlock: [ :dummyItem | aStringOrBlock ]
oldLabel: 'Initializing...'
lastUpdate: 54279
bar: a Job
Receiver's instance variables:
array: an Array(a MCMethodDefinition(FileSystemStore>>#attributesClass) a MCMet...etc...
firstIndex: 1
lastIndex: 175
BlockClosure>>cull:
Receiver: [ :bar |
labelBlock := aStringOrBlock isString
ifTrue: [ bar label: aStringOrBlock.
[ ...etc...
Arguments and temporary variables:
anArg: a Job
Receiver's instance variables:
outerContext: OrderedCollection(Collection)>>do:displayingProgress:every:
startpc: 178
numArgs: 1
[ ^ block cull: self ] in [ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
Receiver: a Job
Arguments and temporary variables:
Receiver's instance variables:
block: [ :bar |
labelBlock := aStringOrBlock isString
ifTrue: [ bar label: aS...etc...
currentValue: 0
min: 0
max: 175
title: 'Initializing...'
children: an OrderedCollection()
isRunning: true
parent: a Job
process: a Process in nil
[ activeProcess psValueAt: index put: anObject.
aBlock value ] in CurrentJob(DynamicVariable)>>value:during:
Receiver: a CurrentJob
Arguments and temporary variables:
anObject: a Job
aBlock: [ ^ block cull: self ]
activeProcess: a Process in nil
oldValue: a Job
Receiver's instance variables:
index: 2
BlockClosure>>ensure:
Receiver: [ activeProcess psValueAt: index put: anObject.
aBlock value ]
Arguments and temporary variables:
aBlock: [ activeProcess psValueAt: index put: oldValue ]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: CurrentJob(DynamicVariable)>>value:during:
startpc: 79
numArgs: 0
CurrentJob(DynamicVariable)>>value:during:
Receiver: a CurrentJob
Arguments and temporary variables:
anObject: a Job
aBlock: [ ^ block cull: self ]
activeProcess: a Process in nil
oldValue: a Job
Receiver's instance variables:
index: 2
CurrentJob class(DynamicVariable class)>>value:during:
Receiver: CurrentJob
Arguments and temporary variables:
anObject: a Job
aBlock: [ ^ block cull: self ]
Receiver's instance variables:
superclass: DynamicVariable
methodDict: a MethodDictionary()
format: 65537
layout: a FixedLayout
instanceVariables: nil
organization: a ClassOrganization
subclasses: nil
name: #CurrentJob
classPool: a Dictionary()
sharedPools: nil
environment: a SystemDictionary(lots of globals)
category: #'Jobs-Base'
traitComposition: {}
localSelectors: nil
soleInstance: a CurrentJob
[ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
Receiver: a Job
Arguments and temporary variables:
Receiver's instance variables:
block: [ :bar |
labelBlock := aStringOrBlock isString
ifTrue: [ bar label: aS...etc...
currentValue: 0
min: 0
max: 175
title: 'Initializing...'
children: an OrderedCollection()
isRunning: true
parent: a Job
process: a Process in nil
BlockClosure>>ensure:
Receiver: [ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ]
Arguments and temporary variables:
aBlock: [ self cleanupAfterRunning ]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: Job>>run
startpc: 77
numArgs: 0
Job>>run
Receiver: a Job
Arguments and temporary variables:
Receiver's instance variables:
block: [ :bar |
labelBlock := aStringOrBlock isString
ifTrue: [ bar label: aS...etc...
currentValue: 0
min: 0
max: 175
title: 'Initializing...'
children: an OrderedCollection()
isRunning: true
parent: a Job
process: a Process in nil
MorphicUIManager(UIManager)>>displayProgress:from:to:during:
Receiver: a MorphicUIManager
Arguments and temporary variables:
titleString: ''
minVal: 0
maxVal: 175
workBlock: [ :bar |
labelBlock := aStringOrBlock isString
ifTrue: [ bar label...etc...
Receiver's instance variables:
interactiveParser: nil
activeTranscript: nil
ByteString(String)>>displayProgressFrom:to:during:
Receiver: ''
Arguments and temporary variables:
minVal: 0
maxVal: 175
workBlock: [ :bar |
labelBlock := aStringOrBlock isString
ifTrue: [ bar label...etc...
Receiver's instance variables:
''
OrderedCollection(Collection)>>do:displayingProgress:every:
Receiver: an OrderedCollection(a MCMethodDefinition(FileSystemStore>>#attributesClass) a MCMethodDef...etc...
Arguments and temporary variables:
count: 111
labelBlock: [ :dummyItem | aStringOrBlock ]
oldLabel: 'Initializing...'
lastUpdate: 54279
aBlock: [ :each | each postloadOver: (self obsoletionFor: each) ]
aStringOrBlock: 'Initializing...'
msecs: 20
size: 175
Receiver's instance variables:
array: an Array(a MCMethodDefinition(FileSystemStore>>#attributesClass) a MCMet...etc...
firstIndex: 1
lastIndex: 175
OrderedCollection(Collection)>>do:displayingProgress:
Receiver: an OrderedCollection(a MCMethodDefinition(FileSystemStore>>#attributesClass) a MCMethodDef...etc...
Arguments and temporary variables:
aBlock: [ :each | each postloadOver: (self obsoletionFor: each) ]
aStringOrBlock: 'Initializing...'
Receiver's instance variables:
array: an Array(a MCMethodDefinition(FileSystemStore>>#attributesClass) a MCMet...etc...
firstIndex: 1
lastIndex: 175
MCPackageLoader>>basicLoadDefinitions
Receiver: a MCPackageLoader
Arguments and temporary variables:
Receiver's instance variables:
requirements: #()
unloadableDefinitions: a SortedCollection()
obsoletions: a Dictionary()
additions: an OrderedCollection(a MCMethodDefinition(FileSystemStore>>#attribut...etc...
removals: an OrderedCollection()
errorDefinitions: an OrderedCollection()
provisions: a Set(#GLMUIThemeExtraIcons #OSWindowGenericRenderer #ZnMultiPartFo...etc...
methodAdditions: an OrderedCollection(a MethodAddition a MethodAddition a Metho...etc...
[ self basicLoadDefinitions ] in MCPackageLoader>>basicLoad
Receiver: a MCPackageLoader
Arguments and temporary variables:
Receiver's instance variables:
requirements: #()
unloadableDefinitions: a SortedCollection()
obsoletions: a Dictionary()
additions: an OrderedCollection(a MCMethodDefinition(FileSystemStore>>#attribut...etc...
removals: an OrderedCollection()
errorDefinitions: an OrderedCollection()
provisions: a Set(#GLMUIThemeExtraIcons #OSWindowGenericRenderer #ZnMultiPartFo...etc...
methodAdditions: an OrderedCollection(a MethodAddition a MethodAddition a Metho...etc...
[ aBlock value ] in SourceFileArray>>deferFlushDuring:
Receiver: a SourceFileArray
Arguments and temporary variables:
aBlock: [ self basicLoadDefinitions ]
Receiver's instance variables:
files: an Array(MultiByteFileStream: '/home/stephan/Desktop/testpharo/Pharo-7.0...etc...
readOnlyQueue: SharedQueue with 1 items
flushChanges: false
BlockClosure>>ensure:
Receiver: [ aBlock value ]
Arguments and temporary variables:
aBlock: [ flushChanges := true.
self flushChangesFile ]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: SourceFileArray>>deferFlushDuring:
startpc: 62
numArgs: 0
SourceFileArray>>deferFlushDuring:
Receiver: a SourceFileArray
Arguments and temporary variables:
aBlock: [ self basicLoadDefinitions ]
Receiver's instance variables:
files: an Array(MultiByteFileStream: '/home/stephan/Desktop/testpharo/Pharo-7.0...etc...
readOnlyQueue: SharedQueue with 1 items
flushChanges: false
MCPackageLoader>>basicLoad
Receiver: a MCPackageLoader
Arguments and temporary variables:
Receiver's instance variables:
requirements: #()
unloadableDefinitions: a SortedCollection()
obsoletions: a Dictionary()
additions: an OrderedCollection(a MCMethodDefinition(FileSystemStore>>#attribut...etc...
removals: an OrderedCollection()
errorDefinitions: an OrderedCollection()
provisions: a Set(#GLMUIThemeExtraIcons #OSWindowGenericRenderer #ZnMultiPartFo...etc...
methodAdditions: an OrderedCollection(a MethodAddition a MethodAddition a Metho...etc...
[ self basicLoad ] in MCPackageLoader>>loadWithNameLike:
Receiver: a MCPackageLoader
Arguments and temporary variables:
baseName: 'FileSystem-Attributes-GitHub.1502264497'
Receiver's instance variables:
requirements: #()
unloadableDefinitions: a SortedCollection()
obsoletions: a Dictionary()
additions: an OrderedCollection(a MCMethodDefinition(FileSystemStore>>#attribut...etc...
removals: an OrderedCollection()
errorDefinitions: an OrderedCollection()
provisions: a Set(#GLMUIThemeExtraIcons #OSWindowGenericRenderer #ZnMultiPartFo...etc...
methodAdditions: an OrderedCollection(a MethodAddition a MethodAddition a Metho...etc...
BlockClosure>>ensure:
Receiver: [ self basicLoad ]
Arguments and temporary variables:
aBlock: [ ChangeSet newChanges: oldChanges ]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: MCPackageLoader>>loadWithNameLike:
startpc: 58
numArgs: 0
MCPackageLoader>>useChangeSetNamed:during:
Receiver: a MCPackageLoader
Arguments and temporary variables:
baseName: 'FileSystem-Attributes-GitHub.1502264497'
aBlock: [ self basicLoad ]
oldChanges: a ChangeSet named Unnamed
newChanges: a ChangeSet named FileSystem-Attributes-GitHub.1502264497
Receiver's instance variables:
requirements: #()
unloadableDefinitions: a SortedCollection()
obsoletions: a Dictionary()
additions: an OrderedCollection(a MCMethodDefinition(FileSystemStore>>#attribut...etc...
removals: an OrderedCollection()
errorDefinitions: an OrderedCollection()
provisions: a Set(#GLMUIThemeExtraIcons #OSWindowGenericRenderer #ZnMultiPartFo...etc...
methodAdditions: an OrderedCollection(a MethodAddition a MethodAddition a Metho...etc...
MCPackageLoader>>useNewChangeSetNamedLike:during:
Receiver: a MCPackageLoader
Arguments and temporary variables:
baseName: 'FileSystem-Attributes-GitHub.1502264497'
aBlock: [ self basicLoad ]
Receiver's instance variables:
requirements: #()
unloadableDefinitions: a SortedCollection()
obsoletions: a Dictionary()
additions: an OrderedCollection(a MCMethodDefinition(FileSystemStore>>#attribut...etc...
removals: an OrderedCollection()
errorDefinitions: an OrderedCollection()
provisions: a Set(#GLMUIThemeExtraIcons #OSWindowGenericRenderer #ZnMultiPartFo...etc...
methodAdditions: an OrderedCollection(a MethodAddition a MethodAddition a Metho...etc...
MCPackageLoader>>loadWithNameLike:
Receiver: a MCPackageLoader
Arguments and temporary variables:
baseName: 'FileSystem-Attributes-GitHub.1502264497'
Receiver's instance variables:
requirements: #()
unloadableDefinitions: a SortedCollection()
obsoletions: a Dictionary()
additions: an OrderedCollection(a MCMethodDefinition(FileSystemStore>>#attribut...etc...
removals: an OrderedCollection()
errorDefinitions: an OrderedCollection()
provisions: a Set(#GLMUIThemeExtraIcons #OSWindowGenericRenderer #ZnMultiPartFo...etc...
methodAdditions: an OrderedCollection(a MethodAddition a MethodAddition a Metho...etc...
MCVersionLoader>>basicLoadWithNameLike:
Receiver: a MCVersionLoader
Arguments and temporary variables:
aString: 'FileSystem-Attributes-GitHub.1502264497'
loader: a MCPackageLoader
Receiver's instance variables:
versions: an OrderedCollection(a MCVersion(an IceMCVersionInfo(FileSystem-Attri...etc...
[ self basicLoadWithNameLike: aString ] in MCVersionLoader>>loadWithNameLike:
Receiver: a MCVersionLoader
Arguments and temporary variables:
aString: 'FileSystem-Attributes-GitHub.1502264497'
Receiver's instance variables:
versions: an OrderedCollection(a MCVersion(an IceMCVersionInfo(FileSystem-Attri...etc...
[ returnValue := aBlock value ] in [ [ returnValue := aBlock value ]
ensure: [ self announceLoadStop: aString ] ] in MCVersionLoader>>announceLoad:do:
Receiver: a MCVersionLoader
Arguments and temporary variables:
aString: 'FileSystem-Attributes-GitHub.1502264497'
aBlock: [ self basicLoadWithNameLike: aString ]
returnValue: nil
Receiver's instance variables:
versions: an OrderedCollection(a MCVersion(an IceMCVersionInfo(FileSystem-Attri...etc...
BlockClosure>>ensure:
Receiver: [ returnValue := aBlock value ]
Arguments and temporary variables:
aBlock: [ self announceLoadStop: aString ]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: [ [ returnValue := aBlock value ]
ensure: [ self announceLoadSto...etc...
startpc: 78
numArgs: 0
[ [ returnValue := aBlock value ]
ensure: [ self announceLoadStop: aString ] ] in MCVersionLoader>>announceLoad:do:
Receiver: a MCVersionLoader
Arguments and temporary variables:
aString: 'FileSystem-Attributes-GitHub.1502264497'
aBlock: [ self basicLoadWithNameLike: aString ]
returnValue: nil
Receiver's instance variables:
versions: an OrderedCollection(a MCVersion(an IceMCVersionInfo(FileSystem-Attri...etc...
--- The full stack ---
FileAttributesPluginPrims(Object)>>primitiveFailed:
FileAttributesPluginPrims(Object)>>primitiveFailed
FileAttributesPluginPrims>>primFileMasks
FileAttributesPluginPrims class>>reset
FileAttributesPluginPrims class>>initialize
MCMethodDefinition>>postloadOver:
[ :each | each postloadOver: (self obsoletionFor: each) ] in MCPackageLoader>>basicLoadDefinitions
[ :each |
| newLabel |
"Special handling for first and last element"
(count = 0
or: [ count + 1 = size
or: [ (Time millisecondsSince: lastUpdate) >= msecs ] ])
ifTrue: [ bar current: count.
oldLabel = (newLabel := (labelBlock cull: each) ifNil: [ oldLabel ])
ifFalse: [ bar label: newLabel.
oldLabel := newLabel ].
lastUpdate := Time millisecondClockValue ].
aBlock value: each.
count := count + 1 ] in [ :bar |
labelBlock := aStringOrBlock isString
ifTrue: [ bar label: aStringOrBlock.
[ :dummyItem | aStringOrBlock ] ]
ifFalse: [ aStringOrBlock ].
self
do: [ :each |
| newLabel |
"Special handling for first and last element"
(count = 0
or: [ count + 1 = size
or: [ (Time millisecondsSince: lastUpdate) >= msecs ] ])
ifTrue: [ bar current: count.
oldLabel
= (newLabel := (labelBlock cull: each) ifNil: [ oldLabel ])
ifFalse: [ bar label: newLabel.
oldLabel := newLabel ].
lastUpdate := Time millisecondClockValue ].
aBlock value: each.
count := count + 1 ] ] in OrderedCollection(Collection)>>do:displayingProgress:every:
OrderedCollection>>do:
[ :bar |
labelBlock := aStringOrBlock isString
ifTrue: [ bar label: aStringOrBlock.
[ :dummyItem | aStringOrBlock ] ]
ifFalse: [ aStringOrBlock ].
self
do: [ :each |
| newLabel |
"Special handling for first and last element"
(count = 0
or: [ count + 1 = size
or: [ (Time millisecondsSince: lastUpdate) >= msecs ] ])
ifTrue: [ bar current: count.
oldLabel
= (newLabel := (labelBlock cull: each) ifNil: [ oldLabel ])
ifFalse: [ bar label: newLabel.
oldLabel := newLabel ].
lastUpdate := Time millisecondClockValue ].
aBlock value: each.
count := count + 1 ] ] in OrderedCollection(Collection)>>do:displayingProgress:every:
BlockClosure>>cull:
[ ^ block cull: self ] in [ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
[ activeProcess psValueAt: index put: anObject.
aBlock value ] in CurrentJob(DynamicVariable)>>value:during:
BlockClosure>>ensure:
CurrentJob(DynamicVariable)>>value:during:
CurrentJob class(DynamicVariable class)>>value:during:
[ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
BlockClosure>>ensure:
Job>>run
MorphicUIManager(UIManager)>>displayProgress:from:to:during:
ByteString(String)>>displayProgressFrom:to:during:
OrderedCollection(Collection)>>do:displayingProgress:every:
OrderedCollection(Collection)>>do:displayingProgress:
MCPackageLoader>>basicLoadDefinitions
[ self basicLoadDefinitions ] in MCPackageLoader>>basicLoad
[ aBlock value ] in SourceFileArray>>deferFlushDuring:
BlockClosure>>ensure:
SourceFileArray>>deferFlushDuring:
MCPackageLoader>>basicLoad
[ self basicLoad ] in MCPackageLoader>>loadWithNameLike:
BlockClosure>>ensure:
MCPackageLoader>>useChangeSetNamed:during:
MCPackageLoader>>useNewChangeSetNamedLike:during:
MCPackageLoader>>loadWithNameLike:
MCVersionLoader>>basicLoadWithNameLike:
[ self basicLoadWithNameLike: aString ] in MCVersionLoader>>loadWithNameLike:
[ returnValue := aBlock value ] in [ [ returnValue := aBlock value ]
ensure: [ self announceLoadStop: aString ] ] in MCVersionLoader>>announceLoad:do:
BlockClosure>>ensure:
[ [ returnValue := aBlock value ]
ensure: [ self announceLoadStop: aString ] ] in MCVersionLoader>>announceLoad:do:
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
BlockClosure>>ensure:
MCVersionLoader>>announceLoad:do:
MCVersionLoader>>loadWithNameLike:
[ self ensurePackage: version package.
self loadWithNameLike: version info name ] in [ | version |
version := versions first.
[ self ensurePackage: version package.
self loadWithNameLike: version info name ] asJob
title: 'Loading ' , version info name asString;
run ] in MCVersionLoader>>load
BlockClosure>>cull:
[ ^ block cull: self ] in [ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
[ activeProcess psValueAt: index put: anObject.
aBlock value ] in CurrentJob(DynamicVariable)>>value:during:
BlockClosure>>ensure:
CurrentJob(DynamicVariable)>>value:during:
CurrentJob class(DynamicVariable class)>>value:during:
[ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
BlockClosure>>ensure:
Job>>run
[ | version |
version := versions first.
[ self ensurePackage: version package.
self loadWithNameLike: version info name ] asJob
title: 'Loading ' , version info name asString;
run ] in MCVersionLoader>>load
BlockClosure>>ensure:
RPackageSet class>>withCacheDo:
MCVersionLoader>>load
MetacelloGoferLoad(GoferLoad)>>execute
[ "mcLoader preLoad: packageSpec."
goferLoad := MetacelloGoferLoad on: aGofer.
goferLoad addResolved: resolvedReference.
goferLoad execute.
MetacelloPlatform current clearCurrentVersionCache "mcLoader postLoad: packageSpec" ] in [ | loadBlock goferLoad answers resolvedReference |
aGofer disablePackageCache. "for good luck:)"
resolvedReference := self
resolvePackageSpec: packageSpec
gofer: aGofer.
resolvedReference isNil
ifTrue:
[ "Package version already loaded into image" ^ self ].
loadBlock := [ "mcLoader preLoad: packageSpec."
goferLoad := MetacelloGoferLoad on: aGofer.
goferLoad addResolved: resolvedReference.
goferLoad execute.
MetacelloPlatform current clearCurrentVersionCache "mcLoader postLoad: packageSpec" ].
(answers := packageSpec answers) notEmpty
ifTrue: [ loadBlock valueSupplyingMetacelloAnswers: answers ]
ifFalse: [ loadBlock value ].
resolvedReference workingCopy repositoryGroup
addRepository: aPackageLoadDirective repository.
Transcript
cr;
show:
'Loaded -> ' , resolvedReference name , ' --- '
, aPackageLoadDirective repository repositoryDescription , ' --- '
, resolvedReference repository description ] in MetacelloLoadingMCSpecLoader(MetacelloCommonMCSpecLoader)>>loadPackageDirective:gofer:
[ | loadBlock goferLoad answers resolvedReference |
aGofer disablePackageCache. "for good luck:)"
resolvedReference := self
resolvePackageSpec: packageSpec
gofer: aGofer.
resolvedReference isNil
ifTrue:
[ "Package version already loaded into image" ^ self ].
loadBlock := [ "mcLoader preLoad: packageSpec."
goferLoad := MetacelloGoferLoad on: aGofer.
goferLoad addResolved: resolvedReference.
goferLoad execute.
MetacelloPlatform current clearCurrentVersionCache "mcLoader postLoad: packageSpec" ].
(answers := packageSpec answers) notEmpty
ifTrue: [ loadBlock valueSupplyingMetacelloAnswers: answers ]
ifFalse: [ loadBlock value ].
resolvedReference workingCopy repositoryGroup
addRepository: aPackageLoadDirective repository.
Transcript
cr;
show:
'Loaded -> ' , resolvedReference name , ' --- '
, aPackageLoadDirective repository repositoryDescription , ' --- '
, resolvedReference repository description ] in MetacelloLoadingMCSpecLoader(MetacelloCommonMCSpecLoader)>>loadPackageDirective:gofer:
IceMetacelloPharoPlatform(MetacelloPlatform)>>do:displaying:
MetacelloLoadingMCSpecLoader(MetacelloCommonMCSpecLoader)>>loadPackageDirective:gofer:
MetacelloLinearLoadDirective(MetacelloVersionLoadDirective)>>loadPackageDirective:gofer:
MetacelloPackageLoadDirective>>loadUsing:gofer:
[ :directive | directive loadUsing: aLoaderDirective gofer: aGofer ] in MetacelloLinearLoadDirective(MetacelloVersionLoadDirective)>>loadLinearLoadDirective:gofer:
OrderedCollection>>do:
MetacelloLinearLoadDirective(MetacelloVersionLoadDirective)>>loadLinearLoadDirective:gofer:
MetacelloLinearLoadDirective>>loadUsing:gofer:
[ :directive | directive loadUsing: aLoaderDirective gofer: aGofer ] in MetacelloLinearLoadDirective(MetacelloVersionLoadDirective)>>loadLinearLoadDirective:gofer:
OrderedCollection>>do:
MetacelloLinearLoadDirective(MetacelloVersionLoadDirective)>>loadLinearLoadDirective:gofer:
MetacelloLinearLoadDirective>>loadUsing:gofer:
MetacelloLinearLoadDirective(MetacelloVersionLoadDirective)>>loadWithPolicy:
MetacelloLoaderPolicy>>load
MetacelloFetchingMCSpecLoader>>doLoad
[ fetchLoader doLoad ] in [ | 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:
IceMetacelloPharoPlatform(MetacelloPlatform)>>do:displaying:
[ | 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
[ | version loadedSpec |
self setDefaultsAndValidateProjectSpec.
[ loadedSpec := (self lookupProjectSpecFor: self projectSpec) copy ]
on: MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
do:
[ :ex | ex handleOnDownGrade: onDownGradeBlock onUpgrade: onUpgradeBlock ].
version := loadedSpec versionForScriptEngine: self.
self
root:
(required isEmpty
ifTrue: [ version load ]
ifFalse: [ version load: required ]) loadDirective.
loadedSpec loads: required.
MetacelloProjectRegistration
registrationForProjectSpec: loadedSpec
ifAbsent: [ :new |
new
loadedInImage: true;
registerProject ]
ifPresent: [ :existing :new |
existing
copyOnWrite: [ :existingCopy |
existingCopy
loadedInImage: true;
merge: new ] ] ] in [ self
handleNotificationsForAction: [ | version loadedSpec |
self setDefaultsAndValidateProjectSpec.
[ loadedSpec := (self lookupProjectSpecFor: self projectSpec) copy ]
on: MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
do:
[ :ex | ex handleOnDownGrade: onDownGradeBlock onUpgrade: onUpgradeBlock ].
version := loadedSpec versionForScriptEngine: self.
self
root:
(required isEmpty
ifTrue: [ version load ]
ifFalse: [ version load: required ]) loadDirective.
loadedSpec loads: required.
MetacelloProjectRegistration
registrationForProjectSpec: loadedSpec
ifAbsent: [ :new |
new
loadedInImage: true;
registerProject ]
ifPresent: [ :existing :new |
existing
copyOnWrite: [ :existingCopy |
existingCopy
loadedInImage: true;
merge: new ] ] ] ] in MetacelloScriptEngine>>load:onProjectDownGrade:onProjectUpgrade:
BlockClosure>>on:do:
[ actionBlock
on:
MetacelloLookupProjectSpec , MetacelloLookupProjectSpecForLoad
, MetacelloProjectSpecLoadedNotification
, MetacelloScriptEnsureProjectLoadedForDevelopment
, MetacelloLookupBaselineSpecForEnsureLoad
do:
[ :ex | "lookup and registration handlers need to be innermost set of handlers ...they may throw option notifications" ex handleResolutionFor: self ] ] in [ [ actionBlock
on:
MetacelloLookupProjectSpec , MetacelloLookupProjectSpecForLoad
, MetacelloProjectSpecLoadedNotification
, MetacelloScriptEnsureProjectLoadedForDevelopment
, MetacelloLookupBaselineSpecForEnsureLoad
do:
[ :ex | "lookup and registration handlers need to be innermost set of handlers ...they may throw option notifications" ex handleResolutionFor: self ] ]
on:
MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
, MetacelloAllowConflictingProjectUpgrade
do:
[ :ex | "option handlers need to be outermost set of handlers ... last line of defense before users are involved" ex handleResolutionFor: self ] ] in [ [ [ actionBlock
on:
MetacelloLookupProjectSpec , MetacelloLookupProjectSpecForLoad
, MetacelloProjectSpecLoadedNotification
, MetacelloScriptEnsureProjectLoadedForDevelopment
, MetacelloLookupBaselineSpecForEnsureLoad
do:
[ :ex | "lookup and registration handlers need to be innermost set of handlers ...they may throw option notifications" ex handleResolutionFor: self ] ]
on:
MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
, MetacelloAllowConflictingProjectUpgrade
do:
[ :ex | "option handlers need to be outermost set of handlers ... last line of defense before users are involved" ex handleResolutionFor: self ] ]
on: MetacelloAllowLockedProjectChange
do:
[ :ex | "MetacelloAllowLockedProjectChange need to be outermost handler ... since it is signaled from second line of handlers" ex handleResolutionFor: self ] ] in MetacelloScriptEngine>>handleNotificationsForAction:
BlockClosure>>on:do:
[ [ actionBlock
on:
MetacelloLookupProjectSpec , MetacelloLookupProjectSpecForLoad
, MetacelloProjectSpecLoadedNotification
, MetacelloScriptEnsureProjectLoadedForDevelopment
, MetacelloLookupBaselineSpecForEnsureLoad
do:
[ :ex | "lookup and registration handlers need to be innermost set of handlers ...they may throw option notifications" ex handleResolutionFor: self ] ]
on:
MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
, MetacelloAllowConflictingProjectUpgrade
do:
[ :ex | "option handlers need to be outermost set of handlers ... last line of defense before users are involved" ex handleResolutionFor: self ] ] in [ [ [ actionBlock
on:
MetacelloLookupProjectSpec , MetacelloLookupProjectSpecForLoad
, MetacelloProjectSpecLoadedNotification
, MetacelloScriptEnsureProjectLoadedForDevelopment
, MetacelloLookupBaselineSpecForEnsureLoad
do:
[ :ex | "lookup and registration handlers need to be innermost set of handlers ...they may throw option notifications" ex handleResolutionFor: self ] ]
on:
MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
, MetacelloAllowConflictingProjectUpgrade
do:
[ :ex | "option handlers need to be outermost set of handlers ... last line of defense before users are involved" ex handleResolutionFor: self ] ]
on: MetacelloAllowLockedProjectChange
do:
[ :ex | "MetacelloAllowLockedProjectChange need to be outermost handler ... since it is signaled from second line of handlers" ex handleResolutionFor: self ] ] in MetacelloScriptEngine>>handleNotificationsForAction:
BlockClosure>>on:do:
[ [ [ actionBlock
on:
MetacelloLookupProjectSpec , MetacelloLookupProjectSpecForLoad
, MetacelloProjectSpecLoadedNotification
, MetacelloScriptEnsureProjectLoadedForDevelopment
, MetacelloLookupBaselineSpecForEnsureLoad
do:
[ :ex | "lookup and registration handlers need to be innermost set of handlers ...they may throw option notifications" ex handleResolutionFor: self ] ]
on:
MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
, MetacelloAllowConflictingProjectUpgrade
do:
[ :ex | "option handlers need to be outermost set of handlers ... last line of defense before users are involved" ex handleResolutionFor: self ] ]
on: MetacelloAllowLockedProjectChange
do:
[ :ex | "MetacelloAllowLockedProjectChange need to be outermost handler ... since it is signaled from second line of handlers" ex handleResolutionFor: self ] ] in MetacelloScriptEngine>>handleNotificationsForAction:
BlockClosure>>on:do:
MetacelloScriptEngine>>handleNotificationsForAction:
[ self
handleNotificationsForAction: [ | version loadedSpec |
self setDefaultsAndValidateProjectSpec.
[ loadedSpec := (self lookupProjectSpecFor: self projectSpec) copy ]
on: MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
do:
[ :ex | ex handleOnDownGrade: onDownGradeBlock onUpgrade: onUpgradeBlock ].
version := loadedSpec versionForScriptEngine: self.
self
root:
(required isEmpty
ifTrue: [ version load ]
ifFalse: [ version load: required ]) loadDirective.
loadedSpec loads: required.
MetacelloProjectRegistration
registrationForProjectSpec: loadedSpec
ifAbsent: [ :new |
new
loadedInImage: true;
registerProject ]
ifPresent: [ :existing :new |
existing
copyOnWrite: [ :existingCopy |
existingCopy
loadedInImage: true;
merge: new ] ] ] ] in MetacelloScriptEngine>>load:onProjectDownGrade:onProjectUpgrade:
BlockClosure>>ensure:
MetacelloProjectRegistration class>>copyRegistryRestoreOnErrorWhile:
MetacelloScriptEngine>>load:onProjectDownGrade:onProjectUpgrade:
MetacelloScriptEngine>>load:
[ :projectSpec |
| engine |
engine := MetacelloScriptEngine new
options: self options copy;
projectSpec: projectSpec;
yourself.
engine perform: actionArg key withArguments: actionArg value.
engine root ifNotNil: [ :root | self roots add: root ] ] in MetacelloScriptApiExecutor(MetacelloScriptExecutor)>>execute:
[ :projectSpec |
projectSpec
ifNotNil: [ projectSpecBlock
value: (self applyArgsToProjectSpec: projectSpec copy) ] ] in MetacelloScriptApiExecutor>>executeString:do:
Array(SequenceableCollection)>>do:
MetacelloScriptApiExecutor>>executeString:do:
ByteString(String)>>execute:against:
MetacelloScriptApiExecutor(MetacelloScriptExecutor)>>execute:
Metacello>>execute:args:
Metacello>>load
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[ textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [ textMorph textArea
handleEdit: [ textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in GLMMorphicPharoScriptRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[ textMorph textArea
handleEdit: [ textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in GLMMorphicPharoScriptRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
WorldState>>runStepMethodsIn:
WorldMorph>>runStepMethods
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
WorldMorph>>doOneCycle
WorldMorph class>>doOneCycle
[ [ WorldMorph doOneCycle.
Processor yield.
false ] whileFalse: [ ] ] in MorphicUIManager>>spawnNewProcess
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------