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 -- |
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: ' ' |
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 -- > |
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 -- >> |
Free forum by Nabble | Edit this page |