This is reproducible for me if I do:
Gofer new
squeaksource: 'MetacelloRepository';
package: 'ConfigurationOfExternalWebBrowser';
load.
(Smalltalk at: #ConfigurationOfExternalWebBrowser) load
Find the error log attached.
Alex
2010/10/8 Alexander Lazarević <[email protected]>:
> Just when I was about to test drive Torstens configuration of
> ExternalWebBrowser, the image hangs somewhere while loading. I'm able
> to abort it and find myself in some ensure block of an crticial
> section of WeakArray finalization?! Trying to quit just hangs the
> image for good.
> BTW, this is on Windows.
>
> Alex
>
> 2010/10/8 Pavel Krivanek <[email protected]>:
>> Strange...
>> Linux VM 4.0.3.2202 from squeakvm.org worked well and your prebuilt image
>> works with all this three virtual machines. Any idea why?
>> -- Pavel
>>
>> On Fri, Oct 8, 2010 at 10:49 AM, Marcus Denker <[email protected]>
>> wrote:
>>>
>>> On Oct 8, 2010, at 10:39 AM, Pavel Krivanek wrote:
>>>
>>> > Hmm, this is the result for Linux and
>>> > cogvm 3.9-7 and pharovm 3.10-3
>>> >
>>> >
>>>
>>> can you try:
>>>
>>> https://gforge.inria.fr/frs/download.php/27589/PharoCore-1.2-12186.zip
>>>
>>>
>>> --
>>> Marcus Denker -- http://www.marcusdenker.de
>>> INRIA Lille -- Nord Europe. Team RMoD.
>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [email protected]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [email protected]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
8 October 2010 11:19:18 am
VM: Win32 - IX86 - NT - Squeak3.10.2 of '5 June 2008' [latest update: #7179]
Image: Pharo1.2a [Latest update: #12186]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir C:\Users\laza\Desktop\PharoCore-1.2-12172
Trusted Dir C:\Users\laza\Desktop\PharoCore-1.2-12172\laza
Untrusted Dir C:\Users\laza\Documents\My Squeak
[caught := true.
self wait.
blockValue := mutuallyExcludedBlock value] in Semaphore>>critical:
Receiver: a Semaphore()
Arguments and temporary variables:
mutuallyExcludedBlock: [blockValue := [mutuallyExcludedBlock
value]
ifError...etc...
blockValue: #(nil true)
caught: a Semaphore()
Receiver's instance variables:
firstLink: nil
lastLink: nil
excessSignals: 0
BlockClosure>>ensure:
Receiver: [caught := true.
self wait.
blockValue := mutuallyExcludedBlock value]
Arguments and temporary variables:
aBlock: [caught
ifTrue: [self signal]]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: Semaphore>>critical:
startpc: 38
numArgs: 0
Semaphore>>critical:
Receiver: a Semaphore()
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
firstLink: nil
lastLink: nil
excessSignals: 0
Semaphore>>critical:ifError:
Receiver: a Semaphore()
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
firstLink: nil
lastLink: nil
excessSignals: 0
WeakArray class>>addWeakDependent:
Receiver: WeakArray
Arguments and temporary variables:
anObject: a WeakIdentityKeyDictionary()
Receiver's instance variables:
superclass: Array
methodDict: a MethodDictionary()
format: 514
instanceVariables: nil
organization: ('as yet unclassified')
subclasses: nil
name: #WeakArray
classPool: a Dictionary(#FinalizationDependents->a
WeakArray(nil a WeakRegistry...etc...
sharedPools: nil
environment: a SystemDictionary(lots of globals)
category: #'Collections-Weak'
traitComposition: {}
localSelectors: nil
MCMethodDefinition class>>cachedDefinitions
Receiver: MCMethodDefinition
Arguments and temporary variables:
Receiver's instance variables:
superclass: MCDefinition
methodDict: a MethodDictionary(#=->(MCMethodDefinition>>#=
"a CompiledMethod(13...etc...
format: 142
instanceVariables: #('classIsMeta' 'source' 'category'
'selector' 'className' '...etc...
organization: ('accessing' actualClass category classIsMeta
className fullTimeS...etc...
subclasses: nil
name: #MCMethodDefinition
classPool: a Dictionary(#Definitions->a
WeakIdentityKeyDictionary() )
sharedPools: nil
environment: a SystemDictionary(lots of globals)
category: #'Monticello-Modeling'
traitComposition: nil
localSelectors: nil
MCMethodDefinition class>>forMethodReference:
Receiver: MCMethodDefinition
Arguments and temporary variables:
aMethodReference: a MethodReference Object >>
#metacelloIntegerLessThanSelf:
definition: nil
Receiver's instance variables:
superclass: MCDefinition
methodDict: a MethodDictionary(#=->(MCMethodDefinition>>#=
"a CompiledMethod(13...etc...
format: 142
instanceVariables: #('classIsMeta' 'source' 'category'
'selector' 'className' '...etc...
organization: ('accessing' actualClass category classIsMeta
className fullTimeS...etc...
subclasses: nil
name: #MCMethodDefinition
classPool: a Dictionary(#Definitions->a
WeakIdentityKeyDictionary() )
sharedPools: nil
environment: a SystemDictionary(lots of globals)
category: #'Monticello-Modeling'
traitComposition: nil
localSelectors: nil
MethodReference>>asMethodDefinition
Receiver: a MethodReference Object >> #metacelloIntegerLessThanSelf:
Arguments and temporary variables:
Receiver's instance variables:
classSymbol: #Object
classIsMeta: false
methodSymbol: #metacelloIntegerLessThanSelf:
stringVersion: 'Object metacelloIntegerLessThanSelf:'
category: nil
package: nil
[:ea | definitions add: ea asMethodDefinition] in MCPackage>>snapshot
Receiver: a MCPackage(Metacello-Core)
Arguments and temporary variables:
definitions: a MethodReference Object >>
#metacelloIntegerLessThanSelf:
ea: an OrderedCollection(a
MCOrganizationDefinition(#(#'Metacello-Core-Exceptio...etc...
Receiver's instance variables:
name: 'Metacello-Core'
[:each |
| newLabel |
(count = 0
or: [count + 1 = size
or: [(Time millisecondsSince:
lastUpdate)
>= msecs]])
ifTrue: [bar value: count.
oldLabel = (newLabel := (labelBlock value: each)
ifNil:
[oldLabel])
ifFalse: [ProgressNotification signal: ''
extra: (oldLabel := newLabel)].
lastUpdate := Time millisecondClockValue].
aBlock value: each.
count := count + 1] in [:bar | self
do: [:each |
| newLabel |
(count = 0
or: [count + 1 = size
or: [(Time
millisecondsSince: lastUpdate)
>=
msecs]])
ifTrue: [bar value: count.
oldLabel = (newLabel := (labelBlock
value: each)
ifNil: [oldLabel])
ifFalse: [ProgressNotification
signal: '' extra: (oldLabel := newLabel)].
lastUpdate := Time
millisecondClockValue].
aBlock value: each.
count := count + 1]] in
Array(Collection)>>do:displayingProgress:every:
Receiver: an Array(a MethodReference Object >>
#metacelloIntegerLessThanSelf: a MethodReference Obje...etc...
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
an Array(a MethodReference Object >> #metacelloIntegerLessThanSelf: a
MethodReference Obje...etc...
Array(SequenceableCollection)>>do:
Receiver: an Array(a MethodReference Object >>
#metacelloIntegerLessThanSelf: a MethodReference Obje...etc...
Arguments and temporary variables:
aBlock: [:each |
| newLabel |
(count = 0
or: [count + 1 = size
or: [(T...etc...
index: 1
indexLimiT: 434
Receiver's instance variables:
an Array(a MethodReference Object >> #metacelloIntegerLessThanSelf: a
MethodReference Obje...etc...
[:bar | self
do: [:each |
| newLabel |
(count = 0
or: [count + 1 = size
or: [(Time
millisecondsSince: lastUpdate)
>=
msecs]])
ifTrue: [bar value: count.
oldLabel = (newLabel := (labelBlock
value: each)
ifNil: [oldLabel])
ifFalse: [ProgressNotification
signal: '' extra: (oldLabel := newLabel)].
lastUpdate := Time
millisecondClockValue].
aBlock value: each.
count := count + 1]] in
Array(Collection)>>do:displayingProgress:every:
Receiver: an Array(a MethodReference Object >>
#metacelloIntegerLessThanSelf: a MethodReference Obje...etc...
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
an Array(a MethodReference Object >> #metacelloIntegerLessThanSelf: a
MethodReference Obje...etc...
[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
Receiver: ProgressInitiationException:
Arguments and temporary variables:
progress: [:barValArg |
| barVal return newBarSize |
barVal := barValArg.
ret...etc...
result: #(nil)
Receiver's instance variables:
messageText: nil
tag: nil
signalContext: ProgressInitiationException(Exception)>>signal
handlerContext: nil
outerContext: nil
workBlock: [:bar | self
do: [:each |
| newLabel |
(count = 0
or: ...etc...
maxVal: 434
minVal: 0
aPoint: 2...@321
progressTitle: ''
BlockClosure>>on:do:
Receiver: [result := workBlock value: progress]
Arguments and temporary variables:
exception: ProgressNotification
handlerAction: [:ex |
ex extraParam isString
ifTrue: [SystemProgressMorph un...etc...
handlerActive: true
Receiver's instance variables:
outerContext: [[result := workBlock value: progress]
on: ProgressNotification...etc...
startpc: 83
numArgs: 0
[[result := workBlock value: progress]
on: ProgressNotification
do: [:ex |
ex extraParam isString
ifTrue: [SystemProgressMorph uniqueInstance
labelAt: progress put: ex extraParam].
ex resume]] in
ProgressInitiationException>>defaultMorphicAction
Receiver: ProgressInitiationException:
Arguments and temporary variables:
progress: [:barValArg |
| barVal return newBarSize |
barVal := barValArg.
ret...etc...
result: #(nil)
Receiver's instance variables:
messageText: nil
tag: nil
signalContext: ProgressInitiationException(Exception)>>signal
handlerContext: nil
outerContext: nil
workBlock: [:bar | self
do: [:each |
| newLabel |
(count = 0
or: ...etc...
maxVal: 434
minVal: 0
aPoint: 2...@321
progressTitle: ''
BlockClosure>>ensure:
Receiver: [[result := workBlock value: progress]
on: ProgressNotification
do: [:ex |
ex extr...etc...
Arguments and temporary variables:
aBlock: [SystemProgressMorph close: progress]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext:
ProgressInitiationException>>defaultMorphicAction
startpc: 77
numArgs: 0
ProgressInitiationException>>defaultMorphicAction
Receiver: ProgressInitiationException:
Arguments and temporary variables:
progress: [:barValArg |
| barVal return newBarSize |
barVal := barValArg.
ret...etc...
result: #(nil)
Receiver's instance variables:
messageText: nil
tag: nil
signalContext: ProgressInitiationException(Exception)>>signal
handlerContext: nil
outerContext: nil
workBlock: [:bar | self
do: [:each |
| newLabel |
(count = 0
or: ...etc...
maxVal: 434
minVal: 0
aPoint: 2...@321
progressTitle: ''
MorphicUIManager>>progressInitiationExceptionDefaultAction:
Receiver: a MorphicUIManager
Arguments and temporary variables:
anException: ProgressInitiationException:
Receiver's instance variables:
interactiveParser: nil
ProgressInitiationException>>defaultAction
Receiver: ProgressInitiationException:
Arguments and temporary variables:
Receiver's instance variables:
messageText: nil
tag: nil
signalContext: ProgressInitiationException(Exception)>>signal
handlerContext: nil
outerContext: nil
workBlock: [:bar | self
do: [:each |
| newLabel |
(count = 0
or: ...etc...
maxVal: 434
minVal: 0
aPoint: 2...@321
progressTitle: ''
UndefinedObject>>handleSignal:
Receiver: nil
Arguments and temporary variables:
exception: ProgressInitiationException:
Receiver's instance variables:
nil
MethodContext(ContextPart)>>handleSignal:
Receiver: BlockClosure>>on:do:
Arguments and temporary variables:
exception: ProgressInitiationException:
val: nil
Receiver's instance variables:
sender: PasteUpMorph>>becomeActiveDuring:
pc: 17
stackp: 3
method: (BlockClosure>>#on:do: "a
CompiledMethod(88866816)")
closureOrNil: nil
receiver: [aBlock value]
MethodContext(ContextPart)>>handleSignal:
Receiver: BlockClosure>>on:do:
Arguments and temporary variables:
exception: ProgressInitiationException:
val: nil
Receiver's instance variables:
sender: SmalltalkEditor>>evaluateSelection
pc: 17
stackp: 3
method: (BlockClosure>>#on:do: "a
CompiledMethod(88866816)")
closureOrNil: nil
receiver: [rcvr class evaluatorClass new
evaluate: self selectionForDoitAsStr...etc...
MethodContext(ContextPart)>>handleSignal:
Receiver: BlockClosure>>on:do:
Arguments and temporary variables:
exception: ProgressInitiationException:
val: nil
Receiver's instance variables:
sender: [:repositoryUrl | [self bootstrapMetacelloFrom:
repositoryUrl.
version...etc...
pc: 17
stackp: 3
method: (BlockClosure>>#on:do: "a
CompiledMethod(88866816)")
closureOrNil: nil
receiver: [self bootstrapMetacelloFrom: repositoryUrl.
version := self project...etc...
ProgressInitiationException(Exception)>>signal
Receiver: ProgressInitiationException:
Arguments and temporary variables:
Receiver's instance variables:
messageText: nil
tag: nil
signalContext: ProgressInitiationException(Exception)>>signal
handlerContext: nil
outerContext: nil
workBlock: [:bar | self
do: [:each |
| newLabel |
(count = 0
or: ...etc...
maxVal: 434
minVal: 0
aPoint: 2...@321
progressTitle: ''
ProgressInitiationException>>display:at:from:to:during:
Receiver: ProgressInitiationException:
Arguments and temporary variables:
argString: ''
argPoint: 2...@321
argMinVal: 0
argMaxVal: 434
argWorkBlock: [:bar | self
do: [:each |
| newLabel |
(count = 0
o...etc...
Receiver's instance variables:
messageText: nil
tag: nil
signalContext: ProgressInitiationException(Exception)>>signal
handlerContext: nil
outerContext: nil
workBlock: [:bar | self
do: [:each |
| newLabel |
(count = 0
or: ...etc...
maxVal: 434
minVal: 0
aPoint: 2...@321
progressTitle: ''
ProgressInitiationException class>>display:at:from:to:during:
Receiver: ProgressInitiationException
Arguments and temporary variables:
aString: ''
aPoint: 2...@321
minVal: 0
maxVal: 434
workBlock: [:bar | self
do: [:each |
| newLabel |
(count = 0
or: ...etc...
Receiver's instance variables:
superclass: Exception
methodDict: a
MethodDictionary(#defaultAction->(ProgressInitiationException>>#d...etc...
format: 150
instanceVariables: #('workBlock' 'maxVal' 'minVal'
'aPoint' 'progressTitle')
organization: ('accessing' workBlock)
('as yet unclassified' defaultAction disp...etc...
subclasses: nil
name: #ProgressInitiationException
classPool: nil
sharedPools: nil
environment: a SystemDictionary(lots of globals)
category: #'UIManager-Support'
traitComposition: {}
localSelectors: nil
ByteString(String)>>displayProgressAt:from:to:during:
Receiver: ''
Arguments and temporary variables:
aPoint: 2...@321
minVal: 0
maxVal: 434
workBlock: [:bar | self
do: [:each |
| newLabel |
(count = 0
or: ...etc...
Receiver's instance variables:
''
Array(Collection)>>do:displayingProgress:every:
Receiver: an Array(a MethodReference Object >>
#metacelloIntegerLessThanSelf: a MethodReference Obje...etc...
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
an Array(a MethodReference Object >> #metacelloIntegerLessThanSelf: a
MethodReference Obje...etc...
Array(Collection)>>do:displayingProgress:
Receiver: an Array(a MethodReference Object >>
#metacelloIntegerLessThanSelf: a MethodReference Obje...etc...
Arguments and temporary variables:
aBlock: [:ea | definitions add: ea asMethodDefinition]
aStringOrBlock: 'Snapshotting methods...'
Receiver's instance variables:
an Array(a MethodReference Object >> #metacelloIntegerLessThanSelf: a
MethodReference Obje...etc...
MCPackage>>snapshot
Receiver: a MCPackage(Metacello-Core)
Arguments and temporary variables:
packageInfo: a PackageInfo(Metacello-Core)
definitions: an OrderedCollection(a
MCOrganizationDefinition(#(#'Metacello-Core...etc...
categories: #(#'Metacello-Core-Exceptions'
#'Metacello-Core-Loaders' #'Metacell...etc...
Receiver's instance variables:
name: 'Metacello-Core'
MCMultiPackageLoader(MCPackageLoader)>>updatePackage:withSnapshot:
Receiver: a MCMultiPackageLoader
Arguments and temporary variables:
aPackage: a MCPackage(Metacello-Core)
aSnapshot: a MCSnapshot
patch: nil
packageSnap: nil
Receiver's instance variables:
requirements: nil
unloadableDefinitions: nil
obsoletions: a Dictionary()
additions: an OrderedCollection()
removals: an OrderedCollection()
errorDefinitions: nil
provisions: nil
methodAdditions: an OrderedCollection()
[:ea | ea canOptimizeLoading
ifTrue: [ea patch applyTo: loader]
ifFalse: [loader updatePackage: ea package withSnapshot: ea
snapshot]] in MCVersionLoader>>loadWithNameLike:
Receiver: a MCVersionLoader
Arguments and temporary variables:
loader: a MCVersion(Metacello-Core-DaleHenrichs.366)
ea: a MCMultiPackageLoader
Receiver's instance variables:
versions: an OrderedCollection(a
MCVersion(Metacello-Core-DaleHenrichs.366) a M...etc...
OrderedCollection>>do:
Receiver: an OrderedCollection(a
MCVersion(Metacello-Core-DaleHenrichs.366) a MCVersion(Metacello-MC...etc...
Arguments and temporary variables:
aBlock: [:ea | ea canOptimizeLoading
ifTrue: [ea patch applyTo: loader]
ifF...etc...
index: 3
Receiver's instance variables:
array: an Array(nil nil a
MCVersion(Metacello-Core-DaleHenrichs.366) a MCVersio...etc...
firstIndex: 3
lastIndex: 5
MCVersionLoader>>loadWithNameLike:
Receiver: a MCVersionLoader
Arguments and temporary variables:
aString: 'Metacello-Core-DaleHenrichs.366'
loader: a MCMultiPackageLoader
Receiver's instance variables:
versions: an OrderedCollection(a
MCVersion(Metacello-Core-DaleHenrichs.366) a M...etc...
MCVersionLoader>>load
Receiver: a MCVersionLoader
Arguments and temporary variables:
Receiver's instance variables:
versions: an OrderedCollection(a
MCVersion(Metacello-Core-DaleHenrichs.366) a M...etc...
MetacelloGoferLoad(GoferLoad)>>execute
Receiver: a MetacelloGoferLoad
Arguments and temporary variables:
Receiver's instance variables:
gofer: a Gofer
model: a MCVersionLoader
[goferLoad execute.
pkgLoads
do: [:packageLoadDirective | packageLoadDirective
resolvedReference
ifNil: [Transcript cr; tab; show: 'Already
Loaded -> ' , packageLoadDirective file]
ifNotNil: [Transcript cr; tab; show: 'Loaded ->
' , packageLoadDirective file , ' --- ' , packageLoadDirective repository
description , ' --- ' , packageLoadDirective resolvedReference repository
description.
packageLoadDirective resolvedReference
workingCopy repositoryGroup addRepository: packageLoadDirective repository]].
MetacelloPlatform current clearCurrentVersionCache] in [| goferLoad
loadBlock answers |
goferLoad := MetacelloGoferLoad on: aGofer.
answers := OrderedCollection new.
pkgLoads
do: [:packageLoadDirective |
| resolvedReference |
aGofer disablePackageCache.
(resolvedReference := self resolvePackageSpec:
packageLoadDirective spec gofer: aGofer) ~~ nil
ifTrue: [goferLoad addResolved:
resolvedReference.
answers addAll: packageLoadDirective
spec answers.
packageLoadDirective resolvedReference:
resolvedReference]].
Transcript cr; show: 'Starting atomic load'.
loadBlock := [goferLoad execute.
pkgLoads
do: [:packageLoadDirective |
packageLoadDirective resolvedReference
ifNil: [Transcript cr; tab;
show: 'Already Loaded -> ' , packageLoadDirective file]
ifNotNil: [Transcript cr; tab;
show: 'Loaded -> ' , packageLoadDirective file , ' --- ' , packageLoadDirective
repository description , ' --- ' , packageLoadDirective resolvedReference
repository description.
packageLoadDirective
resolvedReference workingCopy repositoryGroup addRepository:
packageLoadDirective repository]].
MetacelloPlatform current clearCurrentVersionCache].
answers notEmpty
ifTrue: [loadBlock valueSupplyingMetacelloAnswers: answers]
ifFalse: [loadBlock value].
Transcript cr; show: 'Finished atomic load'] in
MetacelloLoadingMCSpecLoader(MetacelloCommonMCSpecLoader)>>loadPackageDirectives:gofer:
Receiver: a MetacelloLoadingMCSpecLoader
Arguments and temporary variables:
pkgLoads: an OrderedCollection(load :
Metacello-Core-DaleHenrichs.366 load : Me...etc...
goferLoad: a MetacelloGoferLoad
Receiver's instance variables:
spec: a MetacelloMCVersionSpecLoader
operator: nil
loaderPolicy: a MetacelloLoaderPolicy
disablePackageCache: false
[| goferLoad loadBlock answers |
goferLoad := MetacelloGoferLoad on: aGofer.
answers := OrderedCollection new.
pkgLoads
do: [:packageLoadDirective |
| resolvedReference |
aGofer disablePackageCache.
(resolvedReference := self resolvePackageSpec:
packageLoadDirective spec gofer: aGofer) ~~ nil
ifTrue: [goferLoad addResolved:
resolvedReference.
answers addAll: packageLoadDirective
spec answers.
packageLoadDirective resolvedReference:
resolvedReference]].
Transcript cr; show: 'Starting atomic load'.
loadBlock := [goferLoad execute.
pkgLoads
do: [:packageLoadDirective |
packageLoadDirective resolvedReference
ifNil: [Transcript cr; tab;
show: 'Already Loaded -> ' , packageLoadDirective file]
ifNotNil: [Transcript cr; tab;
show: 'Loaded -> ' , packageLoadDirective file , ' --- ' , packageLoadDirective
repository description , ' --- ' , packageLoadDirective resolvedReference
repository description.
packageLoadDirective
resolvedReference workingCopy repositoryGroup addRepository:
packageLoadDirective repository]].
MetacelloPlatform current clearCurrentVersionCache].
answers notEmpty
ifTrue: [loadBlock valueSupplyingMetacelloAnswers: answers]
ifFalse: [loadBlock value].
Transcript cr; show: 'Finished atomic load'] in
MetacelloLoadingMCSpecLoader(MetacelloCommonMCSpecLoader)>>loadPackageDirectives:gofer:
Receiver: a MetacelloLoadingMCSpecLoader
Arguments and temporary variables:
pkgLoads: an OrderedCollection(load :
Metacello-Core-DaleHenrichs.366 load : Me...etc...
aGofer: a Gofer
goferLoad: a MetacelloGoferLoad
loadBlock: [goferLoad execute.
pkgLoads
do: [:packageLoadDirective | package...etc...
answers: an OrderedCollection()
Receiver's instance variables:
spec: a MetacelloMCVersionSpecLoader
operator: nil
loaderPolicy: a MetacelloLoaderPolicy
disablePackageCache: false
MetacelloPlatform>>do:displaying:
Receiver: a MetacelloPlatform
Arguments and temporary variables:
aBlock: [| goferLoad loadBlock answers |
goferLoad := MetacelloGoferLoad on: aG...etc...
aString: 'Atomic Load...'
Receiver's instance variables:
bypassProgressBars: false
--- The full stack ---
[caught := true.
self wait.
blockValue := mutuallyExcludedBlock value] in Semaphore>>critical:
BlockClosure>>ensure:
Semaphore>>critical:
Semaphore>>critical:ifError:
WeakArray class>>addWeakDependent:
MCMethodDefinition class>>cachedDefinitions
MCMethodDefinition class>>forMethodReference:
MethodReference>>asMethodDefinition
[:ea | definitions add: ea asMethodDefinition] in MCPackage>>snapshot
[:each |
| newLabel |
(count = 0
or: [count + 1 = size
or: [(Time millisecondsSince:
lastUpdate)
>= msecs]])
ifTrue: [bar value: count.
oldLabel = (newLabel := (labelBlock value: each)
ifNil:
[oldLabel])
ifFalse: [ProgressNotification signal: ''
extra: (oldLabel := newLabel)].
lastUpdate := Time millisecondClockValue].
aBlock value: each.
count := count + 1] in [:bar | self
do: [:each |
| newLabel |
(count = 0
or: [count + 1 = size
or: [(Time
millisecondsSince: lastUpdate)
>=
msecs]])
ifTrue: [bar value: count.
oldLabel = (newLabel := (labelBlock
value: each)
ifNil: [oldLabel])
ifFalse: [ProgressNotification
signal: '' extra: (oldLabel := newLabel)].
lastUpdate := Time
millisecondClockValue].
aBlock value: each.
count := count + 1]] in
Array(Collection)>>do:displayingProgress:every:
Array(SequenceableCollection)>>do:
[:bar | self
do: [:each |
| newLabel |
(count = 0
or: [count + 1 = size
or: [(Time
millisecondsSince: lastUpdate)
>=
msecs]])
ifTrue: [bar value: count.
oldLabel = (newLabel := (labelBlock
value: each)
ifNil: [oldLabel])
ifFalse: [ProgressNotification
signal: '' extra: (oldLabel := newLabel)].
lastUpdate := Time
millisecondClockValue].
aBlock value: each.
count := count + 1]] in
Array(Collection)>>do:displayingProgress:every:
[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:
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:
Array(Collection)>>do:displayingProgress:every:
Array(Collection)>>do:displayingProgress:
MCPackage>>snapshot
MCMultiPackageLoader(MCPackageLoader)>>updatePackage:withSnapshot:
[:ea | ea canOptimizeLoading
ifTrue: [ea patch applyTo: loader]
ifFalse: [loader updatePackage: ea package withSnapshot: ea
snapshot]] in MCVersionLoader>>loadWithNameLike:
OrderedCollection>>do:
MCVersionLoader>>loadWithNameLike:
MCVersionLoader>>load
MetacelloGoferLoad(GoferLoad)>>execute
[goferLoad execute.
pkgLoads
do: [:packageLoadDirective | packageLoadDirective
resolvedReference
ifNil: [Transcript cr; tab; show: 'Already
Loaded -> ' , packageLoadDirective file]
ifNotNil: [Transcript cr; tab; show: 'Loaded ->
' , packageLoadDirective file , ' --- ' , packageLoadDirective repository
description , ' --- ' , packageLoadDirective resolvedReference repository
description.
packageLoadDirective resolvedReference
workingCopy repositoryGroup addRepository: packageLoadDirective repository]].
MetacelloPlatform current clearCurrentVersionCache] in [| goferLoad
loadBlock answers |
goferLoad := MetacelloGoferLoad on: aGofer.
answers := OrderedCollection new.
pkgLoads
do: [:packageLoadDirective |
| resolvedReference |
aGofer disablePackageCache.
(resolvedReference := self resolvePackageSpec:
packageLoadDirective spec gofer: aGofer) ~~ nil
ifTrue: [goferLoad addResolved:
resolvedReference.
answers addAll: packageLoadDirective
spec answers.
packageLoadDirective resolvedReference:
resolvedReference]].
Transcript cr; show: 'Starting atomic load'.
loadBlock := [goferLoad execute.
pkgLoads
do: [:packageLoadDirective |
packageLoadDirective resolvedReference
ifNil: [Transcript cr; tab;
show: 'Already Loaded -> ' , packageLoadDirective file]
ifNotNil: [Transcript cr; tab;
show: 'Loaded -> ' , packageLoadDirective file , ' --- ' , packageLoadDirective
repository description , ' --- ' , packageLoadDirective resolvedReference
repository description.
packageLoadDirective
resolvedReference workingCopy repositoryGroup addRepository:
packageLoadDirective repository]].
MetacelloPlatform current clearCurrentVersionCache].
answers notEmpty
ifTrue: [loadBlock valueSupplyingMetacelloAnswers: answers]
ifFalse: [loadBlock value].
Transcript cr; show: 'Finished atomic load'] in
MetacelloLoadingMCSpecLoader(MetacelloCommonMCSpecLoader)>>loadPackageDirectives:gofer:
[| goferLoad loadBlock answers |
goferLoad := MetacelloGoferLoad on: aGofer.
answers := OrderedCollection new.
pkgLoads
do: [:packageLoadDirective |
| resolvedReference |
aGofer disablePackageCache.
(resolvedReference := self resolvePackageSpec:
packageLoadDirective spec gofer: aGofer) ~~ nil
ifTrue: [goferLoad addResolved:
resolvedReference.
answers addAll: packageLoadDirective
spec answers.
packageLoadDirective resolvedReference:
resolvedReference]].
Transcript cr; show: 'Starting atomic load'.
loadBlock := [goferLoad execute.
pkgLoads
do: [:packageLoadDirective |
packageLoadDirective resolvedReference
ifNil: [Transcript cr; tab;
show: 'Already Loaded -> ' , packageLoadDirective file]
ifNotNil: [Transcript cr; tab;
show: 'Loaded -> ' , packageLoadDirective file , ' --- ' , packageLoadDirective
repository description , ' --- ' , packageLoadDirective resolvedReference
repository description.
packageLoadDirective
resolvedReference workingCopy repositoryGroup addRepository:
packageLoadDirective repository]].
MetacelloPlatform current clearCurrentVersionCache].
answers notEmpty
ifTrue: [loadBlock valueSupplyingMetacelloAnswers: answers]
ifFalse: [loadBlock value].
Transcript cr; show: 'Finished atomic load'] in
MetacelloLoadingMCSpecLoader(MetacelloCommonMCSpecLoader)>>loadPackageDirectives:gofer:
MetacelloPlatform>>do:displaying:
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
MetacelloLoadingMCSpecLoader(MetacelloCommonMCSpecLoader)>>loadPackageDirectives:gofer:
MetacelloAtomicLoadDirective>>finalizeLoad:
MetacelloLinearLoadDirective(MetacelloVersionLoadDirective)>>loadAtomicLoadDirective:gofer:
MetacelloAtomicLoadDirective>>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: anArray.
MetacelloPlatform current
do: [fetchLoader doLoad]
displaying: 'Loading ' , displayString.
Transcript cr; show: '...finished ' , self versionNumber printString.
^ fetchLoader] in MetacelloMCVersion>>doLoadRequiredFromArray:
MetacelloPlatform>>do:displaying:
[| fetchLoader |
fetchLoader := self fetchRequiredFromArray: 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
[self bootstrapMetacelloFrom: repositoryUrl.
version := self project latestVersion.
retry
ifTrue: [version
repositoryOverrides: (Array
with: (MCHttpRepository
location:
repositoryUrl
user: ''
password: ''))].
version load] in [:repositoryUrl | [self bootstrapMetacelloFrom:
repositoryUrl.
version := self project latestVersion.
retry
ifTrue: [version
repositoryOverrides: (Array
with: (MCHttpRepository
location:
repositoryUrl
user: ''
password: ''))].
version load.
^ self]
on: Error
do: [:ex |
error := ex.
Transcript cr; show: 'failed ensureMetacello: '; show:
ex description printString; show: '...retrying'.
retry := true.
ex return: nil]] in [| retry version error |
retry := false.
(Array with: 'http://seaside.gemstone.com/ss/metacello' with:
'http://www.squeaksource.com/metacello')
do: [:repositoryUrl | [self bootstrapMetacelloFrom:
repositoryUrl.
version := self project latestVersion.
retry
ifTrue: [version
repositoryOverrides: (Array
with:
(MCHttpRepository
location: repositoryUrl
user: ''
password: ''))].
version load.
^ self]
on: Error
do: [:ex |
error := ex.
Transcript cr; show: 'failed
ensureMetacello: '; show: ex description printString; show: '...retrying'.
retry := true.
ex return: nil]].
self error: 'retry with alternate repository failed: ' , error
description printString] in ConfigurationOfMetacello class>>ensureMetacello
BlockClosure>>on:do:
[:repositoryUrl | [self bootstrapMetacelloFrom: repositoryUrl.
version := self project latestVersion.
retry
ifTrue: [version
repositoryOverrides: (Array
with: (MCHttpRepository
location:
repositoryUrl
user: ''
password: ''))].
version load.
^ self]
on: Error
do: [:ex |
error := ex.
Transcript cr; show: 'failed ensureMetacello: '; show:
ex description printString; show: '...retrying'.
retry := true.
ex return: nil]] in [| retry version error |
retry := false.
(Array with: 'http://seaside.gemstone.com/ss/metacello' with:
'http://www.squeaksource.com/metacello')
do: [:repositoryUrl | [self bootstrapMetacelloFrom:
repositoryUrl.
version := self project latestVersion.
retry
ifTrue: [version
repositoryOverrides: (Array
with:
(MCHttpRepository
location: repositoryUrl
user: ''
password: ''))].
version load.
^ self]
on: Error
do: [:ex |
error := ex.
Transcript cr; show: 'failed
ensureMetacello: '; show: ex description printString; show: '...retrying'.
retry := true.
ex return: nil]].
self error: 'retry with alternate repository failed: ' , error
description printString] in ConfigurationOfMetacello class>>ensureMetacello
Array(SequenceableCollection)>>do:
[| retry version error |
retry := false.
(Array with: 'http://seaside.gemstone.com/ss/metacello' with:
'http://www.squeaksource.com/metacello')
do: [:repositoryUrl | [self bootstrapMetacelloFrom:
repositoryUrl.
version := self project latestVersion.
retry
ifTrue: [version
repositoryOverrides: (Array
with:
(MCHttpRepository
location: repositoryUrl
user: ''
password: ''))].
version load.
^ self]
on: Error
do: [:ex |
error := ex.
Transcript cr; show: 'failed
ensureMetacello: '; show: ex description printString; show: '...retrying'.
retry := true.
ex return: nil]].
self error: 'retry with alternate repository failed: ' , error
description printString] in ConfigurationOfMetacello class>>ensureMetacello
SystemDictionary(Dictionary)>>at:ifAbsent:
SmalltalkImage>>at:ifAbsent:
ConfigurationOfMetacello class>>ensureMetacello
ConfigurationOfMetacello>>project
ConfigurationOfMetacello class>>project
ConfigurationOfMetacello class>>load
[Smalltalk
at: #Gofer
ifAbsent: [self bootstrapPackage: 'Gofer-lr.83' from:
'http://seaside.gemstone.com/ss/metacello'].
Smalltalk
at: #Gofer
ifPresent: [:goferClass |
| gofer |
gofer := goferClass new url:
'http://seaside.gemstone.com/ss/metacello';
yourself.
[gofer addPackage: 'ConfigurationOfMetacello']
on: Warning
do: [:ex | ex resume].
gofer load].
(Smalltalk at: #ConfigurationOfMetacello)
perform: #load] in ConfigurationOfExternalWebBrowser
class>>ensureMetacello
SystemDictionary(Dictionary)>>at:ifAbsent:
SmalltalkImage>>at:ifAbsent:
ConfigurationOfExternalWebBrowser class>>ensureMetacello
ConfigurationOfExternalWebBrowser>>project
ConfigurationOfExternalWebBrowser class>>project
ConfigurationOfExternalWebBrowser class>>load
UndefinedObject>>DoIt
Compiler>>evaluate:in:to:notifying:ifFail:logged:
[rcvr class evaluatorClass new
evaluate: self selectionForDoitAsStream
in: ctxt
to: rcvr
notifying: self
ifFail: [FakeClassPool adopt: nil.
^ #failedDoit]
logged: true] in SmalltalkEditor>>evaluateSelection
BlockClosure>>on:do:
SmalltalkEditor>>evaluateSelection
SmalltalkEditor>>doIt
SmalltalkEditor>>doIt:
SmalltalkEditor(TextEditor)>>dispatchOn:
SmalltalkEditor(TextEditor)>>processKeyStroke:
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 TextMorphForEditView(TextMorph)>>keyStroke:
TextMorphForEditView(TextMorph)>>handleInteraction:
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 TextMorphForEditView(TextMorph)>>keyStroke:
StandardToolSet class>>codeCompletionAround:textMorph:keyStroke:
ToolSet class>>codeCompletionAround:textMorph:keyStroke:
TextMorphForEditView(TextMorph)>>keyStroke:
TextMorphForEditView>>keyStroke:
TextMorphForEditView(TextMorph)>>handleKeystroke:
KeyboardEvent>>sentTo:
TextMorphForEditView(Morph)>>handleEvent:
TextMorphForEditView(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
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project