Roassal2 in recent Pharo 7 causes DNU #asTraitComposition
Hi All, I'm attempting to load Roassal2 in to Pharo7 and am getting: UndefinedObject(Object)>>doesNotUnderstand: #asTraitComposition It can be reproduced in a clean Pharo7 image, e.g. Pharo7.0-32bit-d1b0e3e.image (downloaded 16 Oct 2017), and executing: Gofer it smalltalkhubUser: 'ObjectProfile' project: 'Roassal2'; configurationOf: 'Roassal2'; loadStable. OS: Ubuntu 16.04. I last rebuilt my image on 3 October without any problems. Any suggestions? I suspect the combination of Monticello and Traits will take me quite a while to figure out. Thanks, Alistair Stack Trace: UndefinedObject(Object)>>doesNotUnderstand: #asTraitComposition MCClassDefinition>>traitCompositionCompiled [ :builder | builder superclass: superClass; name: name; layoutClass: (ObjectLayout layoutForType: type); slots: self instanceVariables; sharedVariables: self classVariables; sharedPools: self sharedPoolsString; classSlots: self classInstanceVariables; traitComposition: self traitCompositionCompiled; classTraitComposition: self classTraitCompositionCompiled; comment: comment stamp: commentStamp; category: category; environment: superClass environment ] in [ PharoClassInstaller make: [ :builder | builder superclass: superClass; name: name; layoutClass: (ObjectLayout layoutForType: type); slots: self instanceVariables; sharedVariables: self classVariables; sharedPools: self sharedPoolsString; classSlots: self classInstanceVariables; traitComposition: self traitCompositionCompiled; classTraitComposition: self classTraitCompositionCompiled; comment: comment stamp: commentStamp; category: category; environment: superClass environment ] ] in MCClassDefinition>>createClass in Block: [ :builder | ... PharoClassInstaller class(AbstractClassInstaller class)>>make: [ PharoClassInstaller make: [ :builder | builder superclass: superClass; name: name; layoutClass: (ObjectLayout layoutForType: type); slots: self instanceVariables; sharedVariables: self classVariables; sharedPools: self sharedPoolsString; classSlots: self classInstanceVariables; traitComposition: self traitCompositionCompiled; classTraitComposition: self classTraitCompositionCompiled; comment: comment stamp: commentStamp; category: category; environment: superClass environment ] ] in MCClassDefinition>>createClass in Block: [ PharoClassInstaller... BlockClosure>>on:do: MCClassDefinition>>createClass MCClassDefinition>>load MCClassDefinition(MCDefinition)>>addMethodAdditionTo: [ :each | each addMethodAdditionTo: methodAdditions ] in MCPackageLoader>>basicLoadDefinitions in Block: [ :each | each addMethodAdditionTo: methodAddition...etc... [ :each | | newLabel | "Special handling for first and last element" (count = 0 or: [ count + 1 = size or: [ (Time millisecondsSince: lastUpdate) >= msecs ] ]) ifTrue: [ bar current: count. oldLabel = (newLabel := (labelBlock cull: each) ifNil: [ oldLabel ]) ifFalse: [ bar label: newLabel. oldLabel := newLabel ]. lastUpdate := Time millisecondClockValue ]. aBlock value: each. count := count + 1 ] in [ :bar | labelBlock := aStringOrBlock isString ifTrue: [ bar label: aStringOrBlock. [ :dummyItem | aStringOrBlock ] ] ifFalse: [ aStringOrBlock ]. self do: [ :each | | newLabel | "Special handling for first and last element" (count = 0 or: [ count + 1 = size or: [ (Time millisecondsSince: lastUpdate) >= msecs ] ]) ifTrue: [ bar current: count. oldLabel = (newLabel := (labelBlock cull: each) ifNil: [ oldLabel ]) ifFalse: [ bar label: newLabel. oldLabel := newLabel ]. lastUpdate := Time millisecondClockValue ]. aBlock value: each. count := count + 1 ] ] in OrderedCollection(Collection)>>do:displayingProgress:every: in Block: [ :each | ... OrderedCollection>>do: [ :bar | labelBlock := aStringOrBlock isString ifTrue: [ bar label: aStringOrBlock. [ :dummyItem | aStringOrBlock ] ] ifFalse: [ aStringOrBlock ]. self do: [ :each | | newLabel | "Special handling for first and last element" (count = 0 or: [ count + 1 = size or: [ (Time millisecondsSince: lastUpdate) >= msecs ] ]) ifTrue: [ bar current: count. oldLabel = (newLabel := (labelBlock cull: each) ifNil: [ oldLabel ]) ifFalse: [ bar label: newLabel. oldLabel := newLabel ]. lastUpdate := Time millisecondClockValue ]. aBlock value: each. count := count + 1 ] ] in OrderedCollection(Collection)>>do:displayingProgress:every: in Block: [ :bar | ... BlockClosure>>cull: [ ^ block cull: self ] in [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ ^ block cull: self ] [ activeProcess psValueAt: index put: anObject. aBlock value ] in CurrentJob(DynamicVariable)>>value:during: in Block: [ activeProcess psValueAt: index put: anObject.... BlockClosure>>ensure: CurrentJob(DynamicVariable)>>value:during: CurrentJob class(DynamicVariable class)>>value:during: [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ self prepareForRunning.... BlockClosure>>ensure: Job>>run MorphicUIManager(UIManager)>>displayProgress:from:to:during: ByteString(String)>>displayProgressFrom:to:during: OrderedCollection(Collection)>>do:displayingProgress:every: OrderedCollection(Collection)>>do:displayingProgress: MCPackageLoader>>basicLoadDefinitions [ self basicLoadDefinitions ] in MCPackageLoader>>basicLoad in Block: [ self basicLoadDefinitions ] [ aBlock value ] in SourceFileArray>>deferFlushDuring: in Block: [ aBlock value ] BlockClosure>>ensure: --
On Tue, Oct 17, 2017 at 06:28:05AM +0000, Alistair Grant wrote:
Hi All,
I'm attempting to load Roassal2 in to Pharo7 and am getting:
UndefinedObject(Object)>>doesNotUnderstand: #asTraitComposition
It can be reproduced in a clean Pharo7 image, e.g. Pharo7.0-32bit-d1b0e3e.image (downloaded 16 Oct 2017), and executing:
Gofer it smalltalkhubUser: 'ObjectProfile' project: 'Roassal2'; configurationOf: 'Roassal2'; loadStable.
OS: Ubuntu 16.04.
I last rebuilt my image on 3 October without any problems.
Any suggestions? I suspect the combination of Monticello and Traits will take me quite a while to figure out.
This could simply be an ordering issue, i.e. maybe Monticello / Metacello needs to ensure that the traits are loaded before the classes. Presumably at some point during the load there is a list of classes that are going to be loaded. If someone can point me to the correct location it will save some time tracking it down. Thanks! Alistair
Stack Trace:
UndefinedObject(Object)>>doesNotUnderstand: #asTraitComposition MCClassDefinition>>traitCompositionCompiled [ :builder | builder superclass: superClass; name: name; layoutClass: (ObjectLayout layoutForType: type); slots: self instanceVariables; sharedVariables: self classVariables; sharedPools: self sharedPoolsString; classSlots: self classInstanceVariables; traitComposition: self traitCompositionCompiled; classTraitComposition: self classTraitCompositionCompiled; comment: comment stamp: commentStamp; category: category; environment: superClass environment ] in [ PharoClassInstaller make: [ :builder | builder superclass: superClass; name: name; layoutClass: (ObjectLayout layoutForType: type); slots: self instanceVariables; sharedVariables: self classVariables; sharedPools: self sharedPoolsString; classSlots: self classInstanceVariables; traitComposition: self traitCompositionCompiled; classTraitComposition: self classTraitCompositionCompiled; comment: comment stamp: commentStamp; category: category; environment: superClass environment ] ] in MCClassDefinition>>createClass in Block: [ :builder | ... PharoClassInstaller class(AbstractClassInstaller class)>>make: [ PharoClassInstaller make: [ :builder | builder superclass: superClass; name: name; layoutClass: (ObjectLayout layoutForType: type); slots: self instanceVariables; sharedVariables: self classVariables; sharedPools: self sharedPoolsString; classSlots: self classInstanceVariables; traitComposition: self traitCompositionCompiled; classTraitComposition: self classTraitCompositionCompiled; comment: comment stamp: commentStamp; category: category; environment: superClass environment ] ] in MCClassDefinition>>createClass in Block: [ PharoClassInstaller... BlockClosure>>on:do: MCClassDefinition>>createClass MCClassDefinition>>load MCClassDefinition(MCDefinition)>>addMethodAdditionTo: [ :each | each addMethodAdditionTo: methodAdditions ] in MCPackageLoader>>basicLoadDefinitions in Block: [ :each | each addMethodAdditionTo: methodAddition...etc... [ :each | | newLabel | "Special handling for first and last element" (count = 0 or: [ count + 1 = size or: [ (Time millisecondsSince: lastUpdate) >= msecs ] ]) ifTrue: [ bar current: count. oldLabel = (newLabel := (labelBlock cull: each) ifNil: [ oldLabel ]) ifFalse: [ bar label: newLabel. oldLabel := newLabel ]. lastUpdate := Time millisecondClockValue ]. aBlock value: each. count := count + 1 ] in [ :bar | labelBlock := aStringOrBlock isString ifTrue: [ bar label: aStringOrBlock. [ :dummyItem | aStringOrBlock ] ] ifFalse: [ aStringOrBlock ]. self do: [ :each | | newLabel | "Special handling for first and last element" (count = 0 or: [ count + 1 = size or: [ (Time millisecondsSince: lastUpdate) >= msecs ] ]) ifTrue: [ bar current: count. oldLabel = (newLabel := (labelBlock cull: each) ifNil: [ oldLabel ]) ifFalse: [ bar label: newLabel. oldLabel := newLabel ]. lastUpdate := Time millisecondClockValue ]. aBlock value: each. count := count + 1 ] ] in OrderedCollection(Collection)>>do:displayingProgress:every: in Block: [ :each | ... OrderedCollection>>do: [ :bar | labelBlock := aStringOrBlock isString ifTrue: [ bar label: aStringOrBlock. [ :dummyItem | aStringOrBlock ] ] ifFalse: [ aStringOrBlock ]. self do: [ :each | | newLabel | "Special handling for first and last element" (count = 0 or: [ count + 1 = size or: [ (Time millisecondsSince: lastUpdate) >= msecs ] ]) ifTrue: [ bar current: count. oldLabel = (newLabel := (labelBlock cull: each) ifNil: [ oldLabel ]) ifFalse: [ bar label: newLabel. oldLabel := newLabel ]. lastUpdate := Time millisecondClockValue ]. aBlock value: each. count := count + 1 ] ] in OrderedCollection(Collection)>>do:displayingProgress:every: in Block: [ :bar | ... BlockClosure>>cull: [ ^ block cull: self ] in [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ ^ block cull: self ] [ activeProcess psValueAt: index put: anObject. aBlock value ] in CurrentJob(DynamicVariable)>>value:during: in Block: [ activeProcess psValueAt: index put: anObject.... BlockClosure>>ensure: CurrentJob(DynamicVariable)>>value:during: CurrentJob class(DynamicVariable class)>>value:during: [ self prepareForRunning. CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run in Block: [ self prepareForRunning.... BlockClosure>>ensure: Job>>run MorphicUIManager(UIManager)>>displayProgress:from:to:during: ByteString(String)>>displayProgressFrom:to:during: OrderedCollection(Collection)>>do:displayingProgress:every: OrderedCollection(Collection)>>do:displayingProgress: MCPackageLoader>>basicLoadDefinitions [ self basicLoadDefinitions ] in MCPackageLoader>>basicLoad in Block: [ self basicLoadDefinitions ] [ aBlock value ] in SourceFileArray>>deferFlushDuring: in Block: [ aBlock value ] BlockClosure>>ensure:
--
On Tue, Oct 17, 2017 at 09:33:39AM +0000, Alistair Grant wrote:
On Tue, Oct 17, 2017 at 06:28:05AM +0000, Alistair Grant wrote:
Hi All,
I'm attempting to load Roassal2 in to Pharo7 and am getting:
UndefinedObject(Object)>>doesNotUnderstand: #asTraitComposition
It can be reproduced in a clean Pharo7 image, e.g. Pharo7.0-32bit-d1b0e3e.image (downloaded 16 Oct 2017), and executing:
Gofer it smalltalkhubUser: 'ObjectProfile' project: 'Roassal2'; configurationOf: 'Roassal2'; loadStable.
OS: Ubuntu 16.04.
I last rebuilt my image on 3 October without any problems.
Any suggestions? I suspect the combination of Monticello and Traits will take me quite a while to figure out.
This could simply be an ordering issue, i.e. maybe Monticello / Metacello needs to ensure that the traits are loaded before the classes.
Presumably at some point during the load there is a list of classes that are going to be loaded. If someone can point me to the correct location it will save some time tracking it down.
OK, it looks like Roassal has gone through quite a bit of development in the last couple of months, and that TGTExampleIcon is simply missing from the repository (https://github.com/feenkcom/gtoolkit-examples/tree/master/src/GToolkit-Examp..., I hope) but is still referenced somewhere. Using ConfigurationOfRoassal2-AlexandreBergel.111 (the version I loaded on 3 Oct) loads successfully, while ConfigurationOfRoassal2-AlexandreBergel.114 fails as described above. Cheers, Alistair
On Tue, Oct 17, 2017 at 1:04 PM, Alistair Grant <akgrant0710@gmail.com> wrote:
On Tue, Oct 17, 2017 at 09:33:39AM +0000, Alistair Grant wrote:
On Tue, Oct 17, 2017 at 06:28:05AM +0000, Alistair Grant wrote:
Hi All,
I'm attempting to load Roassal2 in to Pharo7 and am getting:
UndefinedObject(Object)>>doesNotUnderstand: #asTraitComposition
It can be reproduced in a clean Pharo7 image, e.g. Pharo7.0-32bit-d1b0e3e.image (downloaded 16 Oct 2017), and executing:
Gofer it smalltalkhubUser: 'ObjectProfile' project: 'Roassal2'; configurationOf: 'Roassal2'; loadStable.
OS: Ubuntu 16.04.
I last rebuilt my image on 3 October without any problems.
Any suggestions? I suspect the combination of Monticello and Traits will take me quite a while to figure out.
This could simply be an ordering issue, i.e. maybe Monticello / Metacello needs to ensure that the traits are loaded before the classes.
Presumably at some point during the load there is a list of classes that are going to be loaded. If someone can point me to the correct location it will save some time tracking it down.
OK, it looks like Roassal has gone through quite a bit of development in the last couple of months, and that TGTExampleIcon is simply missing from the repository (https://github.com/feenkcom/gtoolkit-examples/tree/master/ src/GToolkit-Examples.package, I hope) but is still referenced somewhere.
Using ConfigurationOfRoassal2-AlexandreBergel.111 (the version I loaded on 3 Oct) loads successfully, while ConfigurationOfRoassal2-AlexandreBergel.114 fails as described above.
I added for now the trait back. Can you check that the loading works? But better would be to release a new stable version of roassal that links with the new version of gtexamples, or update the current version of roassal to load the gtexample version before the change. @Alexandre I can make a new stable version with the current version of roassal + gt examples Cheers, Andrei
Cheers, Alistair
Hi Andrei, On Tue, Oct 17, 2017 at 01:58:22PM +0200, Andrei Chis wrote:
On Tue, Oct 17, 2017 at 1:04 PM, Alistair Grant <akgrant0710@gmail.com> wrote:
On Tue, Oct 17, 2017 at 09:33:39AM +0000, Alistair Grant wrote: > On Tue, Oct 17, 2017 at 06:28:05AM +0000, Alistair Grant wrote: > > Hi All, > > > > I'm attempting to load Roassal2 in to Pharo7 and am getting: > > > > UndefinedObject(Object)>>doesNotUnderstand: #asTraitComposition > > > > > > It can be reproduced in a clean Pharo7 image, e.g. > > Pharo7.0-32bit-d1b0e3e.image (downloaded 16 Oct 2017), and executing: > > > > Gofer it > > smalltalkhubUser: 'ObjectProfile' project: 'Roassal2'; > > configurationOf: 'Roassal2'; > > loadStable. > > > > > > OS: Ubuntu 16.04. > > > > I last rebuilt my image on 3 October without any problems. > > > > Any suggestions? I suspect the combination of Monticello and Traits > > will take me quite a while to figure out. > > This could simply be an ordering issue, i.e. maybe Monticello / > Metacello needs to ensure that the traits are loaded before the classes. > > Presumably at some point during the load there is a list of classes that > are going to be loaded. If someone can point me to the correct location > it will save some time tracking it down.
OK, it looks like Roassal has gone through quite a bit of development in the last couple of months, and that TGTExampleIcon is simply missing from the repository (https://github.com/feenkcom/gtoolkit-examples/tree/master/src/ GToolkit-Examples.package, I hope) but is still referenced somewhere.
Using ConfigurationOfRoassal2-AlexandreBergel.111 (the version I loaded on 3 Oct) loads successfully, while ConfigurationOfRoassal2-AlexandreBergel.114 fails as described above.
I added for now the trait back. Can you check that the loading works?
But better would be to release a new stable version of roassal that links with the new version of gtexamples, or update the current version of roassal to load the gtexample version before the change.
@Alexandre I can make a new stable version with the current version of roassal + gt examples
Cheers, Andrei
Yes, that loads successfully now, thanks! Cheers, Alistair
Hi! How can I update GT Example? I have produced a new version of the configuration ConfigurationOfRoassal2-AlexandreBergel.115 It loads the latest version of Roassal2GT. Does this solve the problem? Alexandre -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
On Oct 17, 2017, at 8:58 AM, Andrei Chis <chisvasileandrei@gmail.com> wrote:
@Alexandre I can make a new stable version with the current version of roassal + gt examples
participants (3)
-
Alexandre Bergel -
Alistair Grant -
Andrei Chis