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

Reply via email to