something happened to trunk?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

something happened to trunk?

Chris Muller-3
After updating Eliot's trunk46-spur image (2014-12-01) to latest Trunk
code, I can no longer load my base "Ma-Installer" package.  If I don't
update Eliots image with Trunk, then I have no problems whatsoever.

What broke?

Error: Metaclasses can only have one instance
25 January 2015 2:12:26.263 pm

VM: unix - Smalltalk
Image: Squeak4.5 [latest update: #14078]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /home/cmm/Chris/dev/Squeak
Trusted Dir /home/cmm/Chris/dev/Squeak/secure
Untrusted Dir /home/cmm/Chris/dev/Squeak/My Squeak

Metaclass(Object)>>error:
Receiver: MaInstaller class
Arguments and temporary variables:
aString: 'Metaclasses can only have one instance'
Receiver's instance variables:
superclass: Installer class
methodDict: a MethodDictionary()
format: 65548
instanceVariables: #('localRepository')
organization: ('as yet unclassified')

thisClass: MaInstaller

Metaclass(ClassDescription)>>updateInstances:from:isMeta:
Receiver: MaInstaller class
Arguments and temporary variables:
oldInstances: {MaInstaller}
oldClass: MaInstaller class
isMeta: true
map: nil
variable: nil
instSize: nil
newInstances: nil
i: nil
iLimiT: nil
Receiver's instance variables:
superclass: Installer class
methodDict: a MethodDictionary()
format: 65548
instanceVariables: #('localRepository')
organization: ('as yet unclassified')

thisClass: MaInstaller

Metaclass(ClassDescription)>>updateInstancesFrom:
Receiver: MaInstaller class
Arguments and temporary variables:
oldClass: MaInstaller class
Receiver's instance variables:
superclass: Installer class
methodDict: a MethodDictionary()
format: 65548
instanceVariables: #('localRepository')
organization: ('as yet unclassified')

thisClass: MaInstaller

[] in ClassBuilder>>update:to:
Receiver: a ClassBuilder
Arguments and temporary variables:
oldClass: MaInstaller class
newClass: MaInstaller class
meta: true
Receiver's instance variables:
environ: Smalltalk
classMap: nil
instVarMap: an IdentityDictionary()
progress: [closure] in SystemProgressMorph>>position:label:min:max:
maxClassIndex: 1
currentClassIndex: 1

BlockClosure>>ensure:
Receiver: [closure] in ClassBuilder>>update:to:
Arguments and temporary variables:
aBlock: [closure] in BlockClosure>>valueUnpreemptively
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: ClassBuilder>>update:to:
startpc: 75
numArgs: 0

BlockClosure>>valueUnpreemptively
Receiver: [closure] in ClassBuilder>>update:to:
Arguments and temporary variables:
activeProcess: a Process in nil
oldPriority: 40
result: nil
Receiver's instance variables:
outerContext: ClassBuilder>>update:to:
startpc: 75
numArgs: 0

ClassBuilder>>update:to:
Receiver: a ClassBuilder
Arguments and temporary variables:
oldClass: MaInstaller class
newClass: MaInstaller class
meta: true
Receiver's instance variables:
environ: Smalltalk
classMap: nil
instVarMap: an IdentityDictionary()
progress: [closure] in SystemProgressMorph>>position:label:min:max:
maxClassIndex: 1
currentClassIndex: 1

ClassBuilder>>mutate:to:
Receiver: a ClassBuilder
Arguments and temporary variables:
oldClass: MaInstaller class
newClass: MaInstaller class
Receiver's instance variables:
environ: Smalltalk
classMap: nil
instVarMap: an IdentityDictionary()
progress: [closure] in SystemProgressMorph>>position:label:min:max:
maxClassIndex: 1
currentClassIndex: 1

[] in [] in ClassBuilder>>recompile:from:to:mutate:
Receiver: a ClassBuilder
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
environ: Smalltalk
classMap: nil
instVarMap: an IdentityDictionary()
progress: [closure] in SystemProgressMorph>>position:label:min:max:
maxClassIndex: 1
currentClassIndex: 1

BlockClosure>>on:do:
Receiver: [closure] in [] in ClassBuilder>>recompile:from:to:mutate:
Arguments and temporary variables:
exception: CurrentReadOnlySourceFiles
handlerAction: [closure] in CurrentReadOnlySourceFiles class>>cacheDuring:
handlerActive: true
Receiver's instance variables:
outerContext: [] in ClassBuilder>>recompile:from:to:mutate:
startpc: 161
numArgs: 0

CurrentReadOnlySourceFiles class>>cacheDuring:
Receiver: CurrentReadOnlySourceFiles
Arguments and temporary variables:
aBlock: [closure] in [] in ClassBuilder>>recompile:from:to:mutate:
currentReadOnlySouceFiles: {an
ExpandedSourceFileArray(MultiByteFileStream: '/u...etc...
Receiver's instance variables:
superclass: Exception
methodDict: a MethodDictionary(#defaultAction->(CurrentReadOnlySourceFiles>>#de...etc...
format: 65541
instanceVariables: nil
organization: ('handling' defaultAction)

subclasses: nil
name: #CurrentReadOnlySourceFiles
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #'Files-System'

[] in ClassBuilder>>recompile:from:to:mutate:
Receiver: a ClassBuilder
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
environ: Smalltalk
classMap: nil
instVarMap: an IdentityDictionary()
progress: [closure] in SystemProgressMorph>>position:label:min:max:
maxClassIndex: 1
currentClassIndex: 1

[] in ClassBuilder>>informUserDuring:
Receiver: a ClassBuilder
Arguments and temporary variables:
aBlock: [closure] in SystemProgressMorph>>position:label:min:max:
bar: [closure] in ClassBuilder>>recompile:from:to:mutate:
Receiver's instance variables:
environ: Smalltalk
classMap: nil
instVarMap: an IdentityDictionary()
progress: [closure] in SystemProgressMorph>>position:label:min:max:
maxClassIndex: 1
currentClassIndex: 1

[] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
Receiver: a MorphicUIManager
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
toolBuilder: nil

BlockClosure>>on:do:
Receiver: [closure] in [] in
MorphicUIManager>>displayProgress:at:from:to:during:
Arguments and temporary variables:
exception: ProgressNotification
handlerAction: [closure] in [] in
MorphicUIManager>>displayProgress:at:from:to:...etc...
handlerActive: true
Receiver's instance variables:
outerContext: [] in MorphicUIManager>>displayProgress:at:from:to:during:
startpc: 86
numArgs: 0

[] in MorphicUIManager>>displayProgress:at:from:to:during:
Receiver: a MorphicUIManager
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
toolBuilder: nil

BlockClosure>>ensure:
Receiver: [closure] in MorphicUIManager>>displayProgress:at:from:to:during:
Arguments and temporary variables:
aBlock: [closure] in MorphicUIManager>>displayProgress:at:from:to:during:
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: MorphicUIManager>>displayProgress:at:from:to:during:
startpc: 79
numArgs: 0

MorphicUIManager>>displayProgress:at:from:to:during:
Receiver: a MorphicUIManager
Arguments and temporary variables:
titleString: ' '
aPoint: 400@300
minVal: 0
maxVal: 0
workBlock: [closure] in ClassBuilder>>informUserDuring:
progress: [closure] in SystemProgressMorph>>position:label:min:max:
result: #(nil)
Receiver's instance variables:
toolBuilder: nil

ProgressInitiationException>>defaultResumeValue
Receiver: ProgressInitiationException:
Arguments and temporary variables:

Receiver's instance variables:
messageText: nil
tag: nil
signalContext: ProgressInitiationException(Exception)>>signal
handlerContext: nil
outerContext: nil
workBlock: [closure] in ClassBuilder>>informUserDuring:
maxVal: 0
minVal: 0
aPoint: 400@300
progressTitle: ' '


--- The full stack ---
Metaclass(Object)>>error:
Metaclass(ClassDescription)>>updateInstances:from:isMeta:
Metaclass(ClassDescription)>>updateInstancesFrom:
[] in ClassBuilder>>update:to:
BlockClosure>>ensure:
BlockClosure>>valueUnpreemptively
ClassBuilder>>update:to:
ClassBuilder>>mutate:to:
[] in [] in ClassBuilder>>recompile:from:to:mutate:
BlockClosure>>on:do:
CurrentReadOnlySourceFiles class>>cacheDuring:
[] in ClassBuilder>>recompile:from:to:mutate:
[] in ClassBuilder>>informUserDuring:
[] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
BlockClosure>>on:do:
[] in MorphicUIManager>>displayProgress:at:from:to:during:
BlockClosure>>ensure:
MorphicUIManager>>displayProgress:at:from:to:during:
ProgressInitiationException>>defaultResumeValue
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ProgressInitiationException(Exception)>>resume
ProgressInitiationException>>defaultAction
UndefinedObject>>handleSignal:
MethodContext(ContextPart)>>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:
SystemProgressMorph class>>informUserAt:during:
MorphicUIManager>>informUserDuring:
ClassBuilder>>informUserDuring:
ClassBuilder>>recompile:from:to:mutate:
ClassBuilder>>class:instanceVariableNames:unsafe:
ClassBuilder>>class:instanceVariableNames:
Metaclass>>instanceVariableNames:
MCClassDefinition>>load
[] in [] in [] in [] in [] in MCPackageLoader>>basicLoad
[] in [] in OrderedCollection(Collection)>>do:displayingProgress:every:
OrderedCollection>>do:
[] in OrderedCollection(Collection)>>do:displayingProgress:every:
[] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
BlockClosure>>on:do:
[] in MorphicUIManager>>displayProgress:at:from:to:during:
BlockClosure>>ensure:
MorphicUIManager>>displayProgress:at:from:to:during:
ProgressInitiationException>>defaultResumeValue
ProgressInitiationException(Exception)>>resume
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:
ByteString(String)>>displayProgressFrom:to:during:
OrderedCollection(Collection)>>do:displayingProgress:every:
OrderedCollection(Collection)>>do:displayingProgress:
[] in [] in [] in [] in MCPackageLoader>>basicLoad
-- and more not shown --

Reply | Threaded
Open this post in threaded view
|

Re: something happened to trunk?

Tobias Pape

On 25.01.2015, at 21:19, Chris Muller <[hidden email]> wrote:

> After updating Eliot's trunk46-spur image (2014-12-01) to latest Trunk
> code, I can no longer load my base "Ma-Installer" package.  If I don't
> update Eliots image with Trunk, then I have no problems whatsoever.
>
> What broke?

Judging from your stack trace, Metaclass(ClassDescription)>>updateInstances:from:isMeta:
gets called with oldInstances: {MaInstaller}.

There's a check
        oldInstances size = 1 ifFalse:[^self error:'Metaclasses can only have one instance'].

So apparently, {MaInstaller} size ~= 1, which is puzzling,
What do you get if you PrintIt?

Best
        -Tobias


>
> Error: Metaclasses can only have one instance
> 25 January 2015 2:12:26.263 pm
>
> VM: unix - Smalltalk
> Image: Squeak4.5 [latest update: #14078]
>
> SecurityManager state:
> Restricted: false
> FileAccess: true
> SocketAccess: true
> Working Dir /home/cmm/Chris/dev/Squeak
> Trusted Dir /home/cmm/Chris/dev/Squeak/secure
> Untrusted Dir /home/cmm/Chris/dev/Squeak/My Squeak
>
> Metaclass(Object)>>error:
> Receiver: MaInstaller class
> Arguments and temporary variables:
> aString: 'Metaclasses can only have one instance'
> Receiver's instance variables:
> superclass: Installer class
> methodDict: a MethodDictionary()
> format: 65548
> instanceVariables: #('localRepository')
> organization: ('as yet unclassified')
>
> thisClass: MaInstaller
>
> Metaclass(ClassDescription)>>updateInstances:from:isMeta:
> Receiver: MaInstaller class
> Arguments and temporary variables:
> oldInstances: {MaInstaller}
> oldClass: MaInstaller class
> isMeta: true
> map: nil
> variable: nil
> instSize: nil
> newInstances: nil
> i: nil
> iLimiT: nil
> Receiver's instance variables:
> superclass: Installer class
> methodDict: a MethodDictionary()
> format: 65548
> instanceVariables: #('localRepository')
> organization: ('as yet unclassified')
>
> thisClass: MaInstaller
>
> Metaclass(ClassDescription)>>updateInstancesFrom:
> Receiver: MaInstaller class
> Arguments and temporary variables:
> oldClass: MaInstaller class
> Receiver's instance variables:
> superclass: Installer class
> methodDict: a MethodDictionary()
> format: 65548
> instanceVariables: #('localRepository')
> organization: ('as yet unclassified')
>
> thisClass: MaInstaller
>
> [] in ClassBuilder>>update:to:
> Receiver: a ClassBuilder
> Arguments and temporary variables:
> oldClass: MaInstaller class
> newClass: MaInstaller class
> meta: true
> Receiver's instance variables:
> environ: Smalltalk
> classMap: nil
> instVarMap: an IdentityDictionary()
> progress: [closure] in SystemProgressMorph>>position:label:min:max:
> maxClassIndex: 1
> currentClassIndex: 1
>
> BlockClosure>>ensure:
> Receiver: [closure] in ClassBuilder>>update:to:
> Arguments and temporary variables:
> aBlock: [closure] in BlockClosure>>valueUnpreemptively
> complete: nil
> returnValue: nil
> Receiver's instance variables:
> outerContext: ClassBuilder>>update:to:
> startpc: 75
> numArgs: 0
>
> BlockClosure>>valueUnpreemptively
> Receiver: [closure] in ClassBuilder>>update:to:
> Arguments and temporary variables:
> activeProcess: a Process in nil
> oldPriority: 40
> result: nil
> Receiver's instance variables:
> outerContext: ClassBuilder>>update:to:
> startpc: 75
> numArgs: 0
>
> ClassBuilder>>update:to:
> Receiver: a ClassBuilder
> Arguments and temporary variables:
> oldClass: MaInstaller class
> newClass: MaInstaller class
> meta: true
> Receiver's instance variables:
> environ: Smalltalk
> classMap: nil
> instVarMap: an IdentityDictionary()
> progress: [closure] in SystemProgressMorph>>position:label:min:max:
> maxClassIndex: 1
> currentClassIndex: 1
>
> ClassBuilder>>mutate:to:
> Receiver: a ClassBuilder
> Arguments and temporary variables:
> oldClass: MaInstaller class
> newClass: MaInstaller class
> Receiver's instance variables:
> environ: Smalltalk
> classMap: nil
> instVarMap: an IdentityDictionary()
> progress: [closure] in SystemProgressMorph>>position:label:min:max:
> maxClassIndex: 1
> currentClassIndex: 1
>
> [] in [] in ClassBuilder>>recompile:from:to:mutate:
> Receiver: a ClassBuilder
> Arguments and temporary variables:
> <<error during printing>
> Receiver's instance variables:
> environ: Smalltalk
> classMap: nil
> instVarMap: an IdentityDictionary()
> progress: [closure] in SystemProgressMorph>>position:label:min:max:
> maxClassIndex: 1
> currentClassIndex: 1
>
> BlockClosure>>on:do:
> Receiver: [closure] in [] in ClassBuilder>>recompile:from:to:mutate:
> Arguments and temporary variables:
> exception: CurrentReadOnlySourceFiles
> handlerAction: [closure] in CurrentReadOnlySourceFiles class>>cacheDuring:
> handlerActive: true
> Receiver's instance variables:
> outerContext: [] in ClassBuilder>>recompile:from:to:mutate:
> startpc: 161
> numArgs: 0
>
> CurrentReadOnlySourceFiles class>>cacheDuring:
> Receiver: CurrentReadOnlySourceFiles
> Arguments and temporary variables:
> aBlock: [closure] in [] in ClassBuilder>>recompile:from:to:mutate:
> currentReadOnlySouceFiles: {an
> ExpandedSourceFileArray(MultiByteFileStream: '/u...etc...
> Receiver's instance variables:
> superclass: Exception
> methodDict: a MethodDictionary(#defaultAction->(CurrentReadOnlySourceFiles>>#de...etc...
> format: 65541
> instanceVariables: nil
> organization: ('handling' defaultAction)
>
> subclasses: nil
> name: #CurrentReadOnlySourceFiles
> classPool: nil
> sharedPools: nil
> environment: Smalltalk
> category: #'Files-System'
>
> [] in ClassBuilder>>recompile:from:to:mutate:
> Receiver: a ClassBuilder
> Arguments and temporary variables:
> <<error during printing>
> Receiver's instance variables:
> environ: Smalltalk
> classMap: nil
> instVarMap: an IdentityDictionary()
> progress: [closure] in SystemProgressMorph>>position:label:min:max:
> maxClassIndex: 1
> currentClassIndex: 1
>
> [] in ClassBuilder>>informUserDuring:
> Receiver: a ClassBuilder
> Arguments and temporary variables:
> aBlock: [closure] in SystemProgressMorph>>position:label:min:max:
> bar: [closure] in ClassBuilder>>recompile:from:to:mutate:
> Receiver's instance variables:
> environ: Smalltalk
> classMap: nil
> instVarMap: an IdentityDictionary()
> progress: [closure] in SystemProgressMorph>>position:label:min:max:
> maxClassIndex: 1
> currentClassIndex: 1
>
> [] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
> Receiver: a MorphicUIManager
> Arguments and temporary variables:
> <<error during printing>
> Receiver's instance variables:
> toolBuilder: nil
>
> BlockClosure>>on:do:
> Receiver: [closure] in [] in
> MorphicUIManager>>displayProgress:at:from:to:during:
> Arguments and temporary variables:
> exception: ProgressNotification
> handlerAction: [closure] in [] in
> MorphicUIManager>>displayProgress:at:from:to:...etc...
> handlerActive: true
> Receiver's instance variables:
> outerContext: [] in MorphicUIManager>>displayProgress:at:from:to:during:
> startpc: 86
> numArgs: 0
>
> [] in MorphicUIManager>>displayProgress:at:from:to:during:
> Receiver: a MorphicUIManager
> Arguments and temporary variables:
> <<error during printing>
> Receiver's instance variables:
> toolBuilder: nil
>
> BlockClosure>>ensure:
> Receiver: [closure] in MorphicUIManager>>displayProgress:at:from:to:during:
> Arguments and temporary variables:
> aBlock: [closure] in MorphicUIManager>>displayProgress:at:from:to:during:
> complete: nil
> returnValue: nil
> Receiver's instance variables:
> outerContext: MorphicUIManager>>displayProgress:at:from:to:during:
> startpc: 79
> numArgs: 0
>
> MorphicUIManager>>displayProgress:at:from:to:during:
> Receiver: a MorphicUIManager
> Arguments and temporary variables:
> titleString: ' '
> aPoint: 400@300
> minVal: 0
> maxVal: 0
> workBlock: [closure] in ClassBuilder>>informUserDuring:
> progress: [closure] in SystemProgressMorph>>position:label:min:max:
> result: #(nil)
> Receiver's instance variables:
> toolBuilder: nil
>
> ProgressInitiationException>>defaultResumeValue
> Receiver: ProgressInitiationException:
> Arguments and temporary variables:
>
> Receiver's instance variables:
> messageText: nil
> tag: nil
> signalContext: ProgressInitiationException(Exception)>>signal
> handlerContext: nil
> outerContext: nil
> workBlock: [closure] in ClassBuilder>>informUserDuring:
> maxVal: 0
> minVal: 0
> aPoint: 400@300
> progressTitle: ' '




Reply | Threaded
Open this post in threaded view
|

Re: something happened to trunk?

Eliot Miranda-2
In reply to this post by Chris Muller-3
Hi Chris,

On Jan 25, 2015, at 12:19 PM, Chris Muller <[hidden email]> wrote:

> After updating Eliot's trunk46-spur image (2014-12-01) to latest Trunk
> code, I can no longer load my base "Ma-Installer" package.  If I don't
> update Eliots image with Trunk, then I have no problems whatsoever.
>
> What broke?
>
> Error: Metaclasses can only have one instance

It could be a become bug with class table management.  Can you let me have the image and instructions to try and reproduce the bug?


> 25 January 2015 2:12:26.263 pm
>
> VM: unix - Smalltalk
> Image: Squeak4.5 [latest update: #14078]
>
> SecurityManager state:
> Restricted: false
> FileAccess: true
> SocketAccess: true
> Working Dir /home/cmm/Chris/dev/Squeak
> Trusted Dir /home/cmm/Chris/dev/Squeak/secure
> Untrusted Dir /home/cmm/Chris/dev/Squeak/My Squeak
>
> Metaclass(Object)>>error:
> Receiver: MaInstaller class
> Arguments and temporary variables:
> aString: 'Metaclasses can only have one instance'
> Receiver's instance variables:
> superclass: Installer class
> methodDict: a MethodDictionary()
> format: 65548
> instanceVariables: #('localRepository')
> organization: ('as yet unclassified')
>
> thisClass: MaInstaller
>
> Metaclass(ClassDescription)>>updateInstances:from:isMeta:
> Receiver: MaInstaller class
> Arguments and temporary variables:
> oldInstances: {MaInstaller}
> oldClass: MaInstaller class
> isMeta: true
> map: nil
> variable: nil
> instSize: nil
> newInstances: nil
> i: nil
> iLimiT: nil
> Receiver's instance variables:
> superclass: Installer class
> methodDict: a MethodDictionary()
> format: 65548
> instanceVariables: #('localRepository')
> organization: ('as yet unclassified')
>
> thisClass: MaInstaller
>
> Metaclass(ClassDescription)>>updateInstancesFrom:
> Receiver: MaInstaller class
> Arguments and temporary variables:
> oldClass: MaInstaller class
> Receiver's instance variables:
> superclass: Installer class
> methodDict: a MethodDictionary()
> format: 65548
> instanceVariables: #('localRepository')
> organization: ('as yet unclassified')
>
> thisClass: MaInstaller
>
> [] in ClassBuilder>>update:to:
> Receiver: a ClassBuilder
> Arguments and temporary variables:
> oldClass: MaInstaller class
> newClass: MaInstaller class
> meta: true
> Receiver's instance variables:
> environ: Smalltalk
> classMap: nil
> instVarMap: an IdentityDictionary()
> progress: [closure] in SystemProgressMorph>>position:label:min:max:
> maxClassIndex: 1
> currentClassIndex: 1
>
> BlockClosure>>ensure:
> Receiver: [closure] in ClassBuilder>>update:to:
> Arguments and temporary variables:
> aBlock: [closure] in BlockClosure>>valueUnpreemptively
> complete: nil
> returnValue: nil
> Receiver's instance variables:
> outerContext: ClassBuilder>>update:to:
> startpc: 75
> numArgs: 0
>
> BlockClosure>>valueUnpreemptively
> Receiver: [closure] in ClassBuilder>>update:to:
> Arguments and temporary variables:
> activeProcess: a Process in nil
> oldPriority: 40
> result: nil
> Receiver's instance variables:
> outerContext: ClassBuilder>>update:to:
> startpc: 75
> numArgs: 0
>
> ClassBuilder>>update:to:
> Receiver: a ClassBuilder
> Arguments and temporary variables:
> oldClass: MaInstaller class
> newClass: MaInstaller class
> meta: true
> Receiver's instance variables:
> environ: Smalltalk
> classMap: nil
> instVarMap: an IdentityDictionary()
> progress: [closure] in SystemProgressMorph>>position:label:min:max:
> maxClassIndex: 1
> currentClassIndex: 1
>
> ClassBuilder>>mutate:to:
> Receiver: a ClassBuilder
> Arguments and temporary variables:
> oldClass: MaInstaller class
> newClass: MaInstaller class
> Receiver's instance variables:
> environ: Smalltalk
> classMap: nil
> instVarMap: an IdentityDictionary()
> progress: [closure] in SystemProgressMorph>>position:label:min:max:
> maxClassIndex: 1
> currentClassIndex: 1
>
> [] in [] in ClassBuilder>>recompile:from:to:mutate:
> Receiver: a ClassBuilder
> Arguments and temporary variables:
> <<error during printing>
> Receiver's instance variables:
> environ: Smalltalk
> classMap: nil
> instVarMap: an IdentityDictionary()
> progress: [closure] in SystemProgressMorph>>position:label:min:max:
> maxClassIndex: 1
> currentClassIndex: 1
>
> BlockClosure>>on:do:
> Receiver: [closure] in [] in ClassBuilder>>recompile:from:to:mutate:
> Arguments and temporary variables:
> exception: CurrentReadOnlySourceFiles
> handlerAction: [closure] in CurrentReadOnlySourceFiles class>>cacheDuring:
> handlerActive: true
> Receiver's instance variables:
> outerContext: [] in ClassBuilder>>recompile:from:to:mutate:
> startpc: 161
> numArgs: 0
>
> CurrentReadOnlySourceFiles class>>cacheDuring:
> Receiver: CurrentReadOnlySourceFiles
> Arguments and temporary variables:
> aBlock: [closure] in [] in ClassBuilder>>recompile:from:to:mutate:
> currentReadOnlySouceFiles: {an
> ExpandedSourceFileArray(MultiByteFileStream: '/u...etc...
> Receiver's instance variables:
> superclass: Exception
> methodDict: a MethodDictionary(#defaultAction->(CurrentReadOnlySourceFiles>>#de...etc...
> format: 65541
> instanceVariables: nil
> organization: ('handling' defaultAction)
>
> subclasses: nil
> name: #CurrentReadOnlySourceFiles
> classPool: nil
> sharedPools: nil
> environment: Smalltalk
> category: #'Files-System'
>
> [] in ClassBuilder>>recompile:from:to:mutate:
> Receiver: a ClassBuilder
> Arguments and temporary variables:
> <<error during printing>
> Receiver's instance variables:
> environ: Smalltalk
> classMap: nil
> instVarMap: an IdentityDictionary()
> progress: [closure] in SystemProgressMorph>>position:label:min:max:
> maxClassIndex: 1
> currentClassIndex: 1
>
> [] in ClassBuilder>>informUserDuring:
> Receiver: a ClassBuilder
> Arguments and temporary variables:
> aBlock: [closure] in SystemProgressMorph>>position:label:min:max:
> bar: [closure] in ClassBuilder>>recompile:from:to:mutate:
> Receiver's instance variables:
> environ: Smalltalk
> classMap: nil
> instVarMap: an IdentityDictionary()
> progress: [closure] in SystemProgressMorph>>position:label:min:max:
> maxClassIndex: 1
> currentClassIndex: 1
>
> [] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
> Receiver: a MorphicUIManager
> Arguments and temporary variables:
> <<error during printing>
> Receiver's instance variables:
> toolBuilder: nil
>
> BlockClosure>>on:do:
> Receiver: [closure] in [] in
> MorphicUIManager>>displayProgress:at:from:to:during:
> Arguments and temporary variables:
> exception: ProgressNotification
> handlerAction: [closure] in [] in
> MorphicUIManager>>displayProgress:at:from:to:...etc...
> handlerActive: true
> Receiver's instance variables:
> outerContext: [] in MorphicUIManager>>displayProgress:at:from:to:during:
> startpc: 86
> numArgs: 0
>
> [] in MorphicUIManager>>displayProgress:at:from:to:during:
> Receiver: a MorphicUIManager
> Arguments and temporary variables:
> <<error during printing>
> Receiver's instance variables:
> toolBuilder: nil
>
> BlockClosure>>ensure:
> Receiver: [closure] in MorphicUIManager>>displayProgress:at:from:to:during:
> Arguments and temporary variables:
> aBlock: [closure] in MorphicUIManager>>displayProgress:at:from:to:during:
> complete: nil
> returnValue: nil
> Receiver's instance variables:
> outerContext: MorphicUIManager>>displayProgress:at:from:to:during:
> startpc: 79
> numArgs: 0
>
> MorphicUIManager>>displayProgress:at:from:to:during:
> Receiver: a MorphicUIManager
> Arguments and temporary variables:
> titleString: ' '
> aPoint: 400@300
> minVal: 0
> maxVal: 0
> workBlock: [closure] in ClassBuilder>>informUserDuring:
> progress: [closure] in SystemProgressMorph>>position:label:min:max:
> result: #(nil)
> Receiver's instance variables:
> toolBuilder: nil
>
> ProgressInitiationException>>defaultResumeValue
> Receiver: ProgressInitiationException:
> Arguments and temporary variables:
>
> Receiver's instance variables:
> messageText: nil
> tag: nil
> signalContext: ProgressInitiationException(Exception)>>signal
> handlerContext: nil
> outerContext: nil
> workBlock: [closure] in ClassBuilder>>informUserDuring:
> maxVal: 0
> minVal: 0
> aPoint: 400@300
> progressTitle: ' '
>
>
> --- The full stack ---
> Metaclass(Object)>>error:
> Metaclass(ClassDescription)>>updateInstances:from:isMeta:
> Metaclass(ClassDescription)>>updateInstancesFrom:
> [] in ClassBuilder>>update:to:
> BlockClosure>>ensure:
> BlockClosure>>valueUnpreemptively
> ClassBuilder>>update:to:
> ClassBuilder>>mutate:to:
> [] in [] in ClassBuilder>>recompile:from:to:mutate:
> BlockClosure>>on:do:
> CurrentReadOnlySourceFiles class>>cacheDuring:
> [] in ClassBuilder>>recompile:from:to:mutate:
> [] in ClassBuilder>>informUserDuring:
> [] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
> BlockClosure>>on:do:
> [] in MorphicUIManager>>displayProgress:at:from:to:during:
> BlockClosure>>ensure:
> MorphicUIManager>>displayProgress:at:from:to:during:
> ProgressInitiationException>>defaultResumeValue
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> ProgressInitiationException(Exception)>>resume
> ProgressInitiationException>>defaultAction
> UndefinedObject>>handleSignal:
> MethodContext(ContextPart)>>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:
> SystemProgressMorph class>>informUserAt:during:
> MorphicUIManager>>informUserDuring:
> ClassBuilder>>informUserDuring:
> ClassBuilder>>recompile:from:to:mutate:
> ClassBuilder>>class:instanceVariableNames:unsafe:
> ClassBuilder>>class:instanceVariableNames:
> Metaclass>>instanceVariableNames:
> MCClassDefinition>>load
> [] in [] in [] in [] in [] in MCPackageLoader>>basicLoad
> [] in [] in OrderedCollection(Collection)>>do:displayingProgress:every:
> OrderedCollection>>do:
> [] in OrderedCollection(Collection)>>do:displayingProgress:every:
> [] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
> BlockClosure>>on:do:
> [] in MorphicUIManager>>displayProgress:at:from:to:during:
> BlockClosure>>ensure:
> MorphicUIManager>>displayProgress:at:from:to:during:
> ProgressInitiationException>>defaultResumeValue
> ProgressInitiationException(Exception)>>resume
> 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:
> ByteString(String)>>displayProgressFrom:to:during:
> OrderedCollection(Collection)>>do:displayingProgress:every:
> OrderedCollection(Collection)>>do:displayingProgress:
> [] in [] in [] in [] in MCPackageLoader>>basicLoad
> -- and more not shown --
>

Reply | Threaded
Open this post in threaded view
|

Re: something happened to trunk?

Chris Muller-4
Eliot, I sent you a link to the Spur image with instructions to
recreate the problem.

Thank you!

PS -- I've been working on an image which can reproduce the zombie
eviction too.  I'll send you another link if I can..

On Sun, Jan 25, 2015 at 4:17 PM, Eliot Miranda <[hidden email]> wrote:

> Hi Chris,
>
> On Jan 25, 2015, at 12:19 PM, Chris Muller <[hidden email]> wrote:
>
>> After updating Eliot's trunk46-spur image (2014-12-01) to latest Trunk
>> code, I can no longer load my base "Ma-Installer" package.  If I don't
>> update Eliots image with Trunk, then I have no problems whatsoever.
>>
>> What broke?
>>
>> Error: Metaclasses can only have one instance
>
> It could be a become bug with class table management.  Can you let me have the image and instructions to try and reproduce the bug?
>
>
>> 25 January 2015 2:12:26.263 pm
>>
>> VM: unix - Smalltalk
>> Image: Squeak4.5 [latest update: #14078]
>>
>> SecurityManager state:
>> Restricted: false
>> FileAccess: true
>> SocketAccess: true
>> Working Dir /home/cmm/Chris/dev/Squeak
>> Trusted Dir /home/cmm/Chris/dev/Squeak/secure
>> Untrusted Dir /home/cmm/Chris/dev/Squeak/My Squeak
>>
>> Metaclass(Object)>>error:
>> Receiver: MaInstaller class
>> Arguments and temporary variables:
>> aString: 'Metaclasses can only have one instance'
>> Receiver's instance variables:
>> superclass: Installer class
>> methodDict: a MethodDictionary()
>> format: 65548
>> instanceVariables: #('localRepository')
>> organization: ('as yet unclassified')
>>
>> thisClass: MaInstaller
>>
>> Metaclass(ClassDescription)>>updateInstances:from:isMeta:
>> Receiver: MaInstaller class
>> Arguments and temporary variables:
>> oldInstances: {MaInstaller}
>> oldClass: MaInstaller class
>> isMeta: true
>> map: nil
>> variable: nil
>> instSize: nil
>> newInstances: nil
>> i: nil
>> iLimiT: nil
>> Receiver's instance variables:
>> superclass: Installer class
>> methodDict: a MethodDictionary()
>> format: 65548
>> instanceVariables: #('localRepository')
>> organization: ('as yet unclassified')
>>
>> thisClass: MaInstaller
>>
>> Metaclass(ClassDescription)>>updateInstancesFrom:
>> Receiver: MaInstaller class
>> Arguments and temporary variables:
>> oldClass: MaInstaller class
>> Receiver's instance variables:
>> superclass: Installer class
>> methodDict: a MethodDictionary()
>> format: 65548
>> instanceVariables: #('localRepository')
>> organization: ('as yet unclassified')
>>
>> thisClass: MaInstaller
>>
>> [] in ClassBuilder>>update:to:
>> Receiver: a ClassBuilder
>> Arguments and temporary variables:
>> oldClass: MaInstaller class
>> newClass: MaInstaller class
>> meta: true
>> Receiver's instance variables:
>> environ: Smalltalk
>> classMap: nil
>> instVarMap: an IdentityDictionary()
>> progress: [closure] in SystemProgressMorph>>position:label:min:max:
>> maxClassIndex: 1
>> currentClassIndex: 1
>>
>> BlockClosure>>ensure:
>> Receiver: [closure] in ClassBuilder>>update:to:
>> Arguments and temporary variables:
>> aBlock: [closure] in BlockClosure>>valueUnpreemptively
>> complete: nil
>> returnValue: nil
>> Receiver's instance variables:
>> outerContext: ClassBuilder>>update:to:
>> startpc: 75
>> numArgs: 0
>>
>> BlockClosure>>valueUnpreemptively
>> Receiver: [closure] in ClassBuilder>>update:to:
>> Arguments and temporary variables:
>> activeProcess: a Process in nil
>> oldPriority: 40
>> result: nil
>> Receiver's instance variables:
>> outerContext: ClassBuilder>>update:to:
>> startpc: 75
>> numArgs: 0
>>
>> ClassBuilder>>update:to:
>> Receiver: a ClassBuilder
>> Arguments and temporary variables:
>> oldClass: MaInstaller class
>> newClass: MaInstaller class
>> meta: true
>> Receiver's instance variables:
>> environ: Smalltalk
>> classMap: nil
>> instVarMap: an IdentityDictionary()
>> progress: [closure] in SystemProgressMorph>>position:label:min:max:
>> maxClassIndex: 1
>> currentClassIndex: 1
>>
>> ClassBuilder>>mutate:to:
>> Receiver: a ClassBuilder
>> Arguments and temporary variables:
>> oldClass: MaInstaller class
>> newClass: MaInstaller class
>> Receiver's instance variables:
>> environ: Smalltalk
>> classMap: nil
>> instVarMap: an IdentityDictionary()
>> progress: [closure] in SystemProgressMorph>>position:label:min:max:
>> maxClassIndex: 1
>> currentClassIndex: 1
>>
>> [] in [] in ClassBuilder>>recompile:from:to:mutate:
>> Receiver: a ClassBuilder
>> Arguments and temporary variables:
>> <<error during printing>
>> Receiver's instance variables:
>> environ: Smalltalk
>> classMap: nil
>> instVarMap: an IdentityDictionary()
>> progress: [closure] in SystemProgressMorph>>position:label:min:max:
>> maxClassIndex: 1
>> currentClassIndex: 1
>>
>> BlockClosure>>on:do:
>> Receiver: [closure] in [] in ClassBuilder>>recompile:from:to:mutate:
>> Arguments and temporary variables:
>> exception: CurrentReadOnlySourceFiles
>> handlerAction: [closure] in CurrentReadOnlySourceFiles class>>cacheDuring:
>> handlerActive: true
>> Receiver's instance variables:
>> outerContext: [] in ClassBuilder>>recompile:from:to:mutate:
>> startpc: 161
>> numArgs: 0
>>
>> CurrentReadOnlySourceFiles class>>cacheDuring:
>> Receiver: CurrentReadOnlySourceFiles
>> Arguments and temporary variables:
>> aBlock: [closure] in [] in ClassBuilder>>recompile:from:to:mutate:
>> currentReadOnlySouceFiles: {an
>> ExpandedSourceFileArray(MultiByteFileStream: '/u...etc...
>> Receiver's instance variables:
>> superclass: Exception
>> methodDict: a MethodDictionary(#defaultAction->(CurrentReadOnlySourceFiles>>#de...etc...
>> format: 65541
>> instanceVariables: nil
>> organization: ('handling' defaultAction)
>>
>> subclasses: nil
>> name: #CurrentReadOnlySourceFiles
>> classPool: nil
>> sharedPools: nil
>> environment: Smalltalk
>> category: #'Files-System'
>>
>> [] in ClassBuilder>>recompile:from:to:mutate:
>> Receiver: a ClassBuilder
>> Arguments and temporary variables:
>> <<error during printing>
>> Receiver's instance variables:
>> environ: Smalltalk
>> classMap: nil
>> instVarMap: an IdentityDictionary()
>> progress: [closure] in SystemProgressMorph>>position:label:min:max:
>> maxClassIndex: 1
>> currentClassIndex: 1
>>
>> [] in ClassBuilder>>informUserDuring:
>> Receiver: a ClassBuilder
>> Arguments and temporary variables:
>> aBlock: [closure] in SystemProgressMorph>>position:label:min:max:
>> bar: [closure] in ClassBuilder>>recompile:from:to:mutate:
>> Receiver's instance variables:
>> environ: Smalltalk
>> classMap: nil
>> instVarMap: an IdentityDictionary()
>> progress: [closure] in SystemProgressMorph>>position:label:min:max:
>> maxClassIndex: 1
>> currentClassIndex: 1
>>
>> [] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
>> Receiver: a MorphicUIManager
>> Arguments and temporary variables:
>> <<error during printing>
>> Receiver's instance variables:
>> toolBuilder: nil
>>
>> BlockClosure>>on:do:
>> Receiver: [closure] in [] in
>> MorphicUIManager>>displayProgress:at:from:to:during:
>> Arguments and temporary variables:
>> exception: ProgressNotification
>> handlerAction: [closure] in [] in
>> MorphicUIManager>>displayProgress:at:from:to:...etc...
>> handlerActive: true
>> Receiver's instance variables:
>> outerContext: [] in MorphicUIManager>>displayProgress:at:from:to:during:
>> startpc: 86
>> numArgs: 0
>>
>> [] in MorphicUIManager>>displayProgress:at:from:to:during:
>> Receiver: a MorphicUIManager
>> Arguments and temporary variables:
>> <<error during printing>
>> Receiver's instance variables:
>> toolBuilder: nil
>>
>> BlockClosure>>ensure:
>> Receiver: [closure] in MorphicUIManager>>displayProgress:at:from:to:during:
>> Arguments and temporary variables:
>> aBlock: [closure] in MorphicUIManager>>displayProgress:at:from:to:during:
>> complete: nil
>> returnValue: nil
>> Receiver's instance variables:
>> outerContext: MorphicUIManager>>displayProgress:at:from:to:during:
>> startpc: 79
>> numArgs: 0
>>
>> MorphicUIManager>>displayProgress:at:from:to:during:
>> Receiver: a MorphicUIManager
>> Arguments and temporary variables:
>> titleString: ' '
>> aPoint: 400@300
>> minVal: 0
>> maxVal: 0
>> workBlock: [closure] in ClassBuilder>>informUserDuring:
>> progress: [closure] in SystemProgressMorph>>position:label:min:max:
>> result: #(nil)
>> Receiver's instance variables:
>> toolBuilder: nil
>>
>> ProgressInitiationException>>defaultResumeValue
>> Receiver: ProgressInitiationException:
>> Arguments and temporary variables:
>>
>> Receiver's instance variables:
>> messageText: nil
>> tag: nil
>> signalContext: ProgressInitiationException(Exception)>>signal
>> handlerContext: nil
>> outerContext: nil
>> workBlock: [closure] in ClassBuilder>>informUserDuring:
>> maxVal: 0
>> minVal: 0
>> aPoint: 400@300
>> progressTitle: ' '
>>
>>
>> --- The full stack ---
>> Metaclass(Object)>>error:
>> Metaclass(ClassDescription)>>updateInstances:from:isMeta:
>> Metaclass(ClassDescription)>>updateInstancesFrom:
>> [] in ClassBuilder>>update:to:
>> BlockClosure>>ensure:
>> BlockClosure>>valueUnpreemptively
>> ClassBuilder>>update:to:
>> ClassBuilder>>mutate:to:
>> [] in [] in ClassBuilder>>recompile:from:to:mutate:
>> BlockClosure>>on:do:
>> CurrentReadOnlySourceFiles class>>cacheDuring:
>> [] in ClassBuilder>>recompile:from:to:mutate:
>> [] in ClassBuilder>>informUserDuring:
>> [] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
>> BlockClosure>>on:do:
>> [] in MorphicUIManager>>displayProgress:at:from:to:during:
>> BlockClosure>>ensure:
>> MorphicUIManager>>displayProgress:at:from:to:during:
>> ProgressInitiationException>>defaultResumeValue
>> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>> ProgressInitiationException(Exception)>>resume
>> ProgressInitiationException>>defaultAction
>> UndefinedObject>>handleSignal:
>> MethodContext(ContextPart)>>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:
>> SystemProgressMorph class>>informUserAt:during:
>> MorphicUIManager>>informUserDuring:
>> ClassBuilder>>informUserDuring:
>> ClassBuilder>>recompile:from:to:mutate:
>> ClassBuilder>>class:instanceVariableNames:unsafe:
>> ClassBuilder>>class:instanceVariableNames:
>> Metaclass>>instanceVariableNames:
>> MCClassDefinition>>load
>> [] in [] in [] in [] in [] in MCPackageLoader>>basicLoad
>> [] in [] in OrderedCollection(Collection)>>do:displayingProgress:every:
>> OrderedCollection>>do:
>> [] in OrderedCollection(Collection)>>do:displayingProgress:every:
>> [] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
>> BlockClosure>>on:do:
>> [] in MorphicUIManager>>displayProgress:at:from:to:during:
>> BlockClosure>>ensure:
>> MorphicUIManager>>displayProgress:at:from:to:during:
>> ProgressInitiationException>>defaultResumeValue
>> ProgressInitiationException(Exception)>>resume
>> 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:
>> ByteString(String)>>displayProgressFrom:to:during:
>> OrderedCollection(Collection)>>do:displayingProgress:every:
>> OrderedCollection(Collection)>>do:displayingProgress:
>> [] in [] in [] in [] in MCPackageLoader>>basicLoad
>> -- and more not shown --
>>