[squeak-dev] something happened to trunk?

Chris Muller ma.chris.m at gmail.com
Sun Jan 25 23:32:28 UTC 2015


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 <eliot.miranda at gmail.com> wrote:
> Hi Chris,
>
> On Jan 25, 2015, at 12:19 PM, Chris Muller <asqueaker at gmail.com> 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 at 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 at 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 --
>>


More information about the Squeak-dev mailing list