Issue 356 in glassdb: variableSubclasses incorrectly handled for Monticello

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

Issue 356 in glassdb: variableSubclasses incorrectly handled for Monticello

glassdb
Status: Accepted
Owner: [hidden email]
Labels: Type-Defect Priority-Medium GLASS-Server Version-3.0.x Version-2.4.x

New issue 356 by [hidden email]: variableSubclasses incorrectly  
handled for Monticello
http://code.google.com/p/glassdb/issues/detail?id=356

In GemStone/S classes inherit the indexable property from their  
superclasses, so if a subclass of Array is created using the following:

   Array subclass: 'MetacelloMethodSectionPath'
        instVarNames: #()
        classVars: #()
        classInstVars: #()
        poolDictionaries: #[]
        inDictionary: ''
        category: 'Metacello-Core-Constructors'

The MetacelloMethodSectionPath is still indexable. However, using the  
#subclass... style to create the same class in Pharo results in a  
NON-indexable class ... one MUST use the #variableSubclass... variant to  
create indexable subclasses.

This has an impact on how Monticello class definitions are created (the  
type must be #variable).

For years, GemStone has used the #normal type in this case.

I discovered the problem, when I save the package containing  
MetacelloMethodSectionPath from GemStone and then loaded the package into  
Pharo where certain tests started failing[1].

It is legal in GemStone to use the #indexableSubclass... variant of class  
creation (equivalent of  #variableSubclass... in Pharo):

   Array indexableSubclass: 'MetacelloMethodSectionPath'
        instVarNames: #()
        classVars: #()
        classInstVars: #()
        poolDictionaries: #[]
        inDictionary: ''
        category: 'Metacello-Core-Constructors'

But (and there is always a but) doing so exposes even more implementation  
differences between GemStone and Pharo (AbstractException and all  
subclasses are technically indexable classes) so I've introduced  
CLASS>>_portableIsIndexable to judicially filter out the classes that I am  
currently aware of that are exposed to this problem.

[1] https://travis-ci.org/dalehenrich/metacello-work/builds/5117074



--
You received this message because this project is configured to send all  
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
Reply | Threaded
Open this post in threaded view
|

Re: Issue 356 in glassdb: variableSubclasses incorrectly handled for Monticello

glassdb

Comment #1 on issue 356 by [hidden email]: variableSubclasses  
incorrectly handled for Monticello
http://code.google.com/p/glassdb/issues/detail?id=356

GemStone2.x fixes:

   - GsCore 0.247 (dkh.277)
   - GsMisc 0.242 (dkh.107)
   - GsMonticello 0.244.2 (dkh.163)



--
You received this message because this project is configured to send all  
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings