Hi,

> On Aug 25, 2016, at 9:52 AM, stepharo <steph...@free.fr> wrote:
> 
> 
>> Hi,
>> 
>> There exists already a method for that:
>>      Symbol>>asClassInEnvironment:
>> 
>> But, what if we introduce:
>> 
>> Symbol>>asClassFrom: anObject
>>      ^ self asClassInEnvironment: anObject class environment
>> 
>> ?
> The problem is asClass unary.
> 
> All the tools should be parametrized by an environment.

Yes, but asClassFrom: would not be unary but would save us from typing an extra 
"class environment"  :).

>> This would allow us to still script and be dynamic.
>> 
>> Furthermore, as #asClass is meant to be mainly used for convenience, not 
>> performance, I would also propose to make it lookup in thisContext and take 
>> the environment from there. I know that his might sound like magic, but it 
>> would be the default that we are looking for (to always lookup through the 
>> current environment dynamically).
> 
> argh I will die....:)
> No use of thisContext or only in the scripting package.

:D

Yes, yes. I just talked with Guille. Moving these scripting methods outside of 
the Kernel is clearly a must.

I was just thinking that we can make it so that we do not break any code while 
still making it dynamic. Like with scripting solutions there is a performance 
penalty, but that is fine if people choose to pay it (like in the case of 
Symbol>>#value:).

Cheers,
Doru


>> 
>> What do you think?
>> 
>> Cheers,
>> Doru
>> 
>> 
>> 
>>> On Aug 25, 2016, at 8:34 AM, Yuriy Tymchuk <yuriy.tymc...@me.com> wrote:
>>> 
>>> Just my 2 cents:
>>> 
>>> 
>>> instead of
>>> 
>>> #name asClass
>>> 
>>> we have to use
>>> 
>>> self class environment at: #name.
>>> 
>>> 
>>> Maybe instead of #at: we can have #classNamed:? Or something similar? 
>>> Because 1) it’s not obvious that the method will give you a class, what if 
>>> in the future and environment can also have a mapping of something else 
>>> like packages?
>>> 
>>> Uko
>>> 
>>>> On 25 Aug 2016, at 07:21, stepharo <steph...@free.fr> wrote:
>>>> 
>>>> Hi guys
>>>> 
>>>> We got a meeting at ESUG with all the compiler guys and james from 
>>>> gemstone.
>>>> 
>>>> Our goal is to have a full tool suite that can be parametrized by 
>>>> environments (so that
>>>> 
>>>> we can compile code in other space, or compile other code inside pharo).
>>>> 
>>>> I personnally started this effort one decade ago. Now the introduction
>>>> 
>>>> of #asClass and friend is simply destroying all our efforts. There was a 
>>>> discussion
>>>> 
>>>> in the past but we are not listened.
>>>> 
>>>> We will
>>>> 
>>>>   - packaged these extensions in a separate package
>>>> 
>>>>   - add rules to ban the use of such method in Pharo
>>>> 
>>>>   - fix all the use (again) to use the correct way to do it.
>>>> 
>>>> 
>>>> I can understand that for scripting this is easier but it cannot be at 
>>>> that cost and impact.
>>>> 
>>>> I hope that we will understand but we have to do something else than
>>>> 
>>>> fixing code that breaks our effort.
>>>> 
>>>> 
>>>> Stef, Marcus, Guille and Luc
>>>> 
>>>> 
>>> 
>> --
>> www.tudorgirba.com
>> www.feenk.com
>> 
>> "It's not what we do that matters most, it's how we do it."
>> 
>> 
>> 
> 
> 

--
www.tudorgirba.com
www.feenk.com

"Quality cannot be an afterthought."


Reply via email to