Pharo 7 and Traits ?

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

Pharo 7 and Traits ?

Sven Van Caekenberghe-2
Hi,

So what is the story with Pharo 7 and Traits ?

I may be wrong, but were they not removed but flattened ?

How are external libraries that want to support multiple Pharo versions supposed to cope when they need to add extension methods to (meta) class ?

I have a problem with STON.

Sven


Reply | Threaded
Open this post in threaded view
|

Re: Pharo 7 and Traits ?

Sven Van Caekenberghe-2
Bump.

> On 5 Nov 2017, at 23:19, Sven Van Caekenberghe <[hidden email]> wrote:
>
> Hi,
>
> So what is the story with Pharo 7 and Traits ?
>
> I may be wrong, but were they not removed but flattened ?
>
> How are external libraries that want to support multiple Pharo versions supposed to cope when they need to add extension methods to (meta) class ?
>
> I have a problem with STON.
>
> Sven

More specifically, I added extensions to TClass, TClassDescription and TApplyingOnClassSide because that is what code critics/unit tests forced me to do.

At one point, maybe with work on Pharo kernel or bootstrap, all these extension where flattened in Pharo 7.

So what should I do, going forward ?

I guess the easiest for me would be not to use them, but then why do we have them ? Or should STON be considered special as to be useable in minimal situations ?

Sven


Reply | Threaded
Open this post in threaded view
|

Re: Pharo 7 and Traits ?

Marcus Denker-4


> On 14 Jun 2018, at 12:56, Sven Van Caekenberghe <[hidden email]> wrote:
>
> Bump.
>
>> On 5 Nov 2017, at 23:19, Sven Van Caekenberghe <[hidden email]> wrote:
>>
>> Hi,
>>
>> So what is the story with Pharo 7 and Traits ?
>>
>> I may be wrong, but were they not removed but flattened ?
>>
>> How are external libraries that want to support multiple Pharo versions supposed to cope when they need to add extension methods to (meta) class ?
>>
>> I have a problem with STON.
>>
>> Sven
>
> More specifically, I added extensions to TClass, TClassDescription and TApplyingOnClassSide because that is what code critics/unit tests forced me to do.
>
> At one point, maybe with work on Pharo kernel or bootstrap, all these extension where flattened in Pharo 7.
>
> So what should I do, going forward ?
>
> I guess the easiest for me would be not to use them, but then why do we have them ? Or should STON be considered special as to be useable in minimal situations ?
>
Hello,

For Pharo7, Class/ClassDescription/Behavior is not composed of Traits anymore. The classes TClass, TClassDescription and TApplyingOnClassSide are just there
so one can easily load code… they are not used.

So for a project that wants to be loadable in Pharo6 and Pharo7, the easiest would be to make the extension methods be of Class/Behavior/Metaclass… it should work for most cases

        Marcus


Reply | Threaded
Open this post in threaded view
|

Re: Pharo 7 and Traits ?

Sven Van Caekenberghe-2


> On 14 Jun 2018, at 14:56, Marcus Denker <[hidden email]> wrote:
>
>
>
>> On 14 Jun 2018, at 12:56, Sven Van Caekenberghe <[hidden email]> wrote:
>>
>> Bump.
>>
>>> On 5 Nov 2017, at 23:19, Sven Van Caekenberghe <[hidden email]> wrote:
>>>
>>> Hi,
>>>
>>> So what is the story with Pharo 7 and Traits ?
>>>
>>> I may be wrong, but were they not removed but flattened ?
>>>
>>> How are external libraries that want to support multiple Pharo versions supposed to cope when they need to add extension methods to (meta) class ?
>>>
>>> I have a problem with STON.
>>>
>>> Sven
>>
>> More specifically, I added extensions to TClass, TClassDescription and TApplyingOnClassSide because that is what code critics/unit tests forced me to do.
>>
>> At one point, maybe with work on Pharo kernel or bootstrap, all these extension where flattened in Pharo 7.
>>
>> So what should I do, going forward ?
>>
>> I guess the easiest for me would be not to use them, but then why do we have them ? Or should STON be considered special as to be useable in minimal situations ?
>>
> Hello,
>
> For Pharo7, Class/ClassDescription/Behavior is not composed of Traits anymore. The classes TClass, TClassDescription and TApplyingOnClassSide are just there
> so one can easily load code… they are not used.
>
> So for a project that wants to be loadable in Pharo6 and Pharo7, the easiest would be to make the extension methods be of Class/Behavior/Metaclass… it should work for most cases
>
> Marcus

OK, thanks Marcus. I will do that.

Sven