I have been beset by some trait strangeness. I am using damien's 3.9.1
images (via ramon). A trait (T) method (tmA) 'inherited' by a class C usually shows up in italics in a class browser on C. Editing tmA on T itself correctly affects C. Then, seemingly at random, a trait edit will not propagate to the class. When I look at C I now see tmA without italics. It has the old version of tmA. I did not put it there myself. In between were some round trips to monticello, and some saves or exits or re-starts of the image. Any ideas? I did a tiny experiment and predictably could not reproduce it. Thanks - Sophie |
Hi Sophie
I haven't seen this before. Maybe next time it happens, you get some more datapoints. Monticello could be the culprit (maybe from merging versions?). If you have any additional clues that may help to make the problem reproducible, I'm happy to take a look. Adrian On Aug 20, 2008, at 19:30 , itsme213 wrote: > I have been beset by some trait strangeness. I am using damien's 3.9.1 > images (via ramon). > > A trait (T) method (tmA) 'inherited' by a class C usually shows up in > italics in a class browser on C. Editing tmA on T itself correctly > affects > C. > > Then, seemingly at random, a trait edit will not propagate to the > class. > When I look at C I now see tmA without italics. It has the old > version of > tmA. I did not put it there myself. > > In between were some round trips to monticello, and some saves or > exits or > re-starts of the image. > > Any ideas? I did a tiny experiment and predictably could not > reproduce it. > > Thanks - Sophie > > > > |
In reply to this post by Sophie424
>I have been beset by some trait strangeness. ...
> In between were some round trips to monticello ... I started a fresh 3.9 dev image and tried to load my code with traits from monticello, got an error when monticello got to my trait. Ideas? Thanks - Sophie ============== VM: Win32 - a SmalltalkImage Image: Squeak3.9.1 [latest update: #7075] UndefinedObject(Object)>>doesNotUnderstand: #select:thenCollect: Receiver: nil Arguments and temporary variables: aMessage: select: [] in MCClassDefinition>>selectVariables: {[:v | v perform: a...etc... Receiver's instance variables: nil MCClassDefinition>>selectVariables: Receiver: a MCClassDefinition(TMyTrait) Arguments and temporary variables: aSelector: #isPoolImport v: nil Receiver's instance variables: name: #TMyTrait superclassName: nil variables: nil category: 'MP-Views2' type: nil comment: '' commentStamp: '' traitComposition: nil classTraitComposition: nil MCClassDefinition>>poolDictionaries Receiver: a MCClassDefinition(TMyTrait) Arguments and temporary variables: Receiver's instance variables: name: #TMyTrait superclassName: nil variables: nil category: 'MP-Views2' type: nil comment: '' commentStamp: '' traitComposition: nil classTraitComposition: nil MCClassDefinition>>requirements Receiver: a MCClassDefinition(TMyTrait) Arguments and temporary variables: Receiver's instance variables: name: #TMyTrait superclassName: nil variables: nil category: 'MP-Views2' type: nil comment: '' commentStamp: '' traitComposition: nil classTraitComposition: nil --- The full stack --- UndefinedObject(Object)>>doesNotUnderstand: #select:thenCollect: MCClassDefinition>>selectVariables: MCClassDefinition>>poolDictionaries MCClassDefinition>>requirements - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MCDependencySorter>>unresolvedRequirementsFor: MCDependencySorter>>add: [] in MCDependencySorter>>addAll: {[:ea | self add: ea]} Array(SequenceableCollection)>>do: MCDependencySorter>>addAll: MCDependencySorter class>>items: MCDependencySorter class>>sortItems: MCStWriter>>writeDefinitions: MCMczWriter>>serializeDefinitions: MCMczWriter>>writeSnapshot: MCMczWriter>>writeDefinitions: MCMczWriter>>writeVersion: MCMczWriter class>>fileOut:on: MCVersion>>fileOutOn: [] in MCCacheRepository(MCFileBasedRepository)>>basicStoreVersion: {[:s | aVersion fileOutOn: s]} MCCacheRepository(MCDirectoryRepository)>>writeStreamForFileNamed:replace:do: MCCacheRepository(MCFileBasedRepository)>>writeStreamForFileNamed:do: MCCacheRepository(MCFileBasedRepository)>>basicStoreVersion: MCCacheRepository>>basicStoreVersion: MCCacheRepository(MCRepository)>>storeVersion: MCVersion>>addToCache MCVersion>>initializeWithPackage:info:snapshot:dependencies: MCVersion class>>package:info:snapshot:dependencies: MCMczReader(MCVersionReader)>>basicVersion MCMczReader(MCVersionReader)>>version [] in MCDirectoryRepository(MCFileBasedRepository)>>loadVersionFromFileNamed: {[:r | r version]} [] in MCDirectoryRepository(MCFileBasedRepository)>>versionReaderForFileNamed:do: {[:class | aBlock value: (class on: s fileName: aString)]} MCMczReader class(Object)>>ifNotNilDo: [] in MCDirectoryRepository(MCFileBasedRepository)>>versionReaderForFileNamed:do: {[:s | (MCVersionReader readerClassForFileNamed: aString) ifNotNilDo: [:cla...]} MCDirectoryRepository>>readStreamForFileNamed:do: MCDirectoryRepository(MCFileBasedRepository)>>versionReaderForFileNamed:do: MCDirectoryRepository(MCFileBasedRepository)>>loadVersionFromFileNamed: [] in MCDirectoryRepository(MCFileBasedRepository)>>versionFromFileNamed: {[self loadVersionFromFileNamed: aString]} Dictionary>>at:ifAbsent: MCDirectoryRepository(MCFileBasedRepository)>>versionFromFileNamed: [] in MCFileRepositoryInspector>>version {[version := repository versionFromFileNamed: selectedVersion]} BlockContext>>ensure: CursorWithMask(Cursor)>>showWhile: MCFileRepositoryInspector>>version MCFileRepositoryInspector>>load PluggableButtonMorphPlus(PluggableButtonMorph)>>performAction PluggableButtonMorphPlus>>performAction [] in PluggableButtonMorphPlus(PluggableButtonMorph)>>mouseUp: {[:m | (m containsPoint: evt cursorPoint) ifTrue: [m performAction]]} Array(SequenceableCollection)>>do: ...etc... |
hm, some time ago somebody reported a problem which turned out to be
caused by a version of MC 1.5 that did not properly support traits. Which version of MC have you used to store the package you cannot load anymore? Adrian On Aug 20, 2008, at 20:06 , itsme213 wrote: >> I have been beset by some trait strangeness. ... >> In between were some round trips to monticello ... > > I started a fresh 3.9 dev image and tried to load my code with > traits from > monticello, got an error when monticello got to my trait. > > Ideas? > > Thanks - Sophie > > ============== > > VM: Win32 - a SmalltalkImage > Image: Squeak3.9.1 [latest update: #7075] > > UndefinedObject(Object)>>doesNotUnderstand: #select:thenCollect: > Receiver: nil > Arguments and temporary variables: > aMessage: select: [] in MCClassDefinition>>selectVariables: {[:v | v > perform: a...etc... > Receiver's instance variables: > nil > > MCClassDefinition>>selectVariables: > Receiver: a MCClassDefinition(TMyTrait) > Arguments and temporary variables: > aSelector: #isPoolImport > v: nil > Receiver's instance variables: > name: #TMyTrait > superclassName: nil > variables: nil > category: 'MP-Views2' > type: nil > comment: '' > commentStamp: '' > traitComposition: nil > classTraitComposition: nil > > MCClassDefinition>>poolDictionaries > Receiver: a MCClassDefinition(TMyTrait) > Arguments and temporary variables: > > Receiver's instance variables: > name: #TMyTrait > superclassName: nil > variables: nil > category: 'MP-Views2' > type: nil > comment: '' > commentStamp: '' > traitComposition: nil > classTraitComposition: nil > > MCClassDefinition>>requirements > Receiver: a MCClassDefinition(TMyTrait) > Arguments and temporary variables: > > Receiver's instance variables: > name: #TMyTrait > superclassName: nil > variables: nil > category: 'MP-Views2' > type: nil > comment: '' > commentStamp: '' > traitComposition: nil > classTraitComposition: nil > > > --- The full stack --- > UndefinedObject(Object)>>doesNotUnderstand: #select:thenCollect: > MCClassDefinition>>selectVariables: > MCClassDefinition>>poolDictionaries > MCClassDefinition>>requirements > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > MCDependencySorter>>unresolvedRequirementsFor: > MCDependencySorter>>add: > [] in MCDependencySorter>>addAll: {[:ea | self add: ea]} > Array(SequenceableCollection)>>do: > MCDependencySorter>>addAll: > MCDependencySorter class>>items: > MCDependencySorter class>>sortItems: > MCStWriter>>writeDefinitions: > MCMczWriter>>serializeDefinitions: > MCMczWriter>>writeSnapshot: > MCMczWriter>>writeDefinitions: > MCMczWriter>>writeVersion: > MCMczWriter class>>fileOut:on: > MCVersion>>fileOutOn: > [] in MCCacheRepository(MCFileBasedRepository)>>basicStoreVersion: > {[:s | > aVersion fileOutOn: s]} > MCCacheRepository > (MCDirectoryRepository)>>writeStreamForFileNamed:replace:do: > MCCacheRepository(MCFileBasedRepository)>>writeStreamForFileNamed:do: > MCCacheRepository(MCFileBasedRepository)>>basicStoreVersion: > MCCacheRepository>>basicStoreVersion: > MCCacheRepository(MCRepository)>>storeVersion: > MCVersion>>addToCache > MCVersion>>initializeWithPackage:info:snapshot:dependencies: > MCVersion class>>package:info:snapshot:dependencies: > MCMczReader(MCVersionReader)>>basicVersion > MCMczReader(MCVersionReader)>>version > [] in > MCDirectoryRepository > (MCFileBasedRepository)>>loadVersionFromFileNamed: {[:r > | r version]} > [] in > MCDirectoryRepository > (MCFileBasedRepository)>>versionReaderForFileNamed:do: > {[:class | aBlock value: (class on: s fileName: aString)]} > MCMczReader class(Object)>>ifNotNilDo: > [] in > MCDirectoryRepository > (MCFileBasedRepository)>>versionReaderForFileNamed:do: > {[:s | (MCVersionReader readerClassForFileNamed: aString) > ifNotNilDo: > [:cla...]} > MCDirectoryRepository>>readStreamForFileNamed:do: > MCDirectoryRepository > (MCFileBasedRepository)>>versionReaderForFileNamed:do: > MCDirectoryRepository > (MCFileBasedRepository)>>loadVersionFromFileNamed: > [] in > MCDirectoryRepository(MCFileBasedRepository)>>versionFromFileNamed: > {[self loadVersionFromFileNamed: aString]} > Dictionary>>at:ifAbsent: > MCDirectoryRepository(MCFileBasedRepository)>>versionFromFileNamed: > [] in MCFileRepositoryInspector>>version {[version := repository > versionFromFileNamed: selectedVersion]} > BlockContext>>ensure: > CursorWithMask(Cursor)>>showWhile: > MCFileRepositoryInspector>>version > MCFileRepositoryInspector>>load > PluggableButtonMorphPlus(PluggableButtonMorph)>>performAction > PluggableButtonMorphPlus>>performAction > [] in PluggableButtonMorphPlus(PluggableButtonMorph)>>mouseUp: {[:m > | (m > containsPoint: evt cursorPoint) ifTrue: [m performAction]]} > Array(SequenceableCollection)>>do: > ...etc... > > > > > |
In reply to this post by Sophie424
On Wed, Aug 20, 2008 at 01:06:33PM -0500, itsme213 wrote:
> >I have been beset by some trait strangeness. ... > > In between were some round trips to monticello ... > > I started a fresh 3.9 dev image and tried to load my code with traits from > monticello, got an error when monticello got to my trait. Did you do anything to Monticello in between starting the fresh image and installing your package? If not, perhaps try upgrading to MC1.5, and see if that fixes it. Here's how: http://installer.pbwiki.org/LevelPlayingField What package is this? How can I reproduce this problem? I'll try to fix it if you have a package that breaks. Traits and Monticello are not well tested at all. We have already found several bugs in MC surrounding Traits and fixed them in 1.5 -- Matthew Fulmer -- http://mtfulmer.wordpress.com/ |
In reply to this post by Adrian Lienhard
"Adrian Lienhard" <[hidden email]> wrote > Which version of MC have you used to store the package you cannot load > anymore? How do I tell? My base is Damien's 3.9 image. - Sophie |
Free forum by Nabble | Edit this page |