[Pharo-dev] [pharo-project/pharo-core] 6f764a: 30830

Henrik Johansen henrik.s.johansen at veloxit.no
Thu Apr 24 10:22:08 EDT 2014


On 24 Apr 2014, at 3:19 , Henrik Johansen <henrik.s.johansen at veloxit.no> wrote:

> 
> On 24 Apr 2014, at 2:24 , Marcus Denker <marcus.denker at inria.fr> wrote:
> 
>> 
>> On 24 Apr 2014, at 14:21, Sean P. DeNigris <sean at clipperadams.com> wrote:
>> 
>>> GitHub wrote
>>>> Log Message:
>>>> -----------
>>>> 30830
>>>> 
>>>> http://files.pharo.org/image/30/30830.zip
>>> 
>>> Which issues did this include?
>>> 
>> https://pharo.fogbugz.com/f/cases/13028/
>> 
>> I integrated it with a .cs as it did not work as a slice.
>> 
>> I will rever 830, 831 and 832 (which is just that + reload of dirty + the postscript for the change).
>> 
>> But then we need to fix the issue of 13028… 
>> 
>> 	Marcus
> 
> Maybe it’s just me, but isn’t it entirely wrong to fix subclasses being kept unmodified when a Shared Variable is added using change propagation?
> To me, it seems that mechanism is intended only to be used when a class change actually affects its subclass’ definition (iow, when Fields are modified...).
> 
> I mean, it *should* be possible to setup the new class being migrated to with proper subclasses instvar, though I can’t exactly see where that is through all the layers of indirection…
> 
> Cheers,
> Henry

What is the purpose of self subclasses: nil in Class >> superclass:methodDictionary:format:?

Is there any case it might be needed except when format changes, and old subclasses are invalid? (and will it ever crash even then until change is propagated and the old instances become’d into subclasses of proper format?)

If not, it might be a decent change to simply change that method to:

Class >> superclass: aClass methodDictionary: mDict format: fmt
	"Basic initialization of the receiver"
	self format = fmt ifFalse:[self subclasses: nil. ].
	super superclass: aClass methodDictionary: mDict format: fmt.

so only cases where format changes are actually responsible for re-registering properly updated subclasses. (which excludes addition of shared vars/pool variables)

Cheers,
Henry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20140424/e02ca9f1/attachment.asc>


More information about the Pharo-dev mailing list