[squeak-dev] Traits strangeness

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

[squeak-dev] Traits strangeness

Sophie424
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




Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Traits strangeness

Adrian Lienhard
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
>
>
>
>


Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: Traits strangeness

Sophie424
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...





Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: Traits strangeness

Adrian Lienhard
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...
>
>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: Traits strangeness

Tapple Gao
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/

Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: Re: Traits strangeness

Sophie424
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