Issue 2560 : Convenient methods from Grease for Strings

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

Re: Issue 2560 : Convenient methods from Grease for Strings

Michael Roberts-2
Ok so there are a number of separate concerns.  I was looking at  
grease core but the thread suggests the methods should be in the  
platform part so that is a non issue. If they are in the platform part  
then in this case they are intended to be adopted anyway. Fine

Regarding "improving the core" I assume you mean the core image. The  
core image from a build point of view is just a bunch of well known  
versioned packages. If another group is already maintaining a mc  
package of code that is really nice to put into the core then the only  
Point I was trying to make was to include it directly as a versioned  
unit rather than copy and branch it. Of course if the code is not  
packaged then it can go into the pharo repo naturally. The argument  
wasn't at all about not including code. And the cost was not about  
adding methods.   It was about the mechanics of the build and  
maintenance. In this case grease is special because of its philosophy  
but what I'm trying to say would apply to any package that is well  
maintained externally.

Cheers
Mike

On 21 Jun 2010, at 20:24, Stéphane Ducasse <[hidden email]>  
wrote:

> The idea of marcus is that this is important to improve the core  
> even at the expense of adding
> some methods. This is why we added the regex and in fact we could  
> rewrite a lot of part.
> Now this is not that simple.
> Stef
>
>
>>> but do we want all grease?
>>>
>>
>> Well. Not sure. Grease core is not that big. It has other useful  
>> stuff in. I was in part commenting on the philosophy markus was  
>> referring to. I have a different point of view.   If we just copy  
>> the extensions we have to maintain our own branch. And we can not  
>> use any extensions that reference grease classes. Then what happens  
>> if we really want an extension like that? We copy classes too?that  
>> would not make a lot of sense to me.
>>
>> So what do you think?
>> mike
>>
>>
>>> Stef
>>>
>>> On Jun 17, 2010, at 6:42 PM, Michael Roberts wrote:
>>>
>>>> I'm missing something. Why do we need to adopt the (copy of)  
>>>> methods and not just adopt the package as lukas said? I thought  
>>>> we wanted core to get smaller over time and better modularised  
>>>> anyway? We would just need to track a stable version rather than  
>>>> maintaining our own branch. Surely it is worse to copy the  
>>>> methods renamed or not but put them in a pharo specific package?
>>>>
>>>>
>>>> Cheers mike
>>>>
>>>> On 17 Jun 2010, at 14:14, Julian Fitzell <[hidden email]>  
>>>> wrote:
>>>>
>>>>> 2010/6/17 Marcus Denker <[hidden email]>:
>>>>>>
>>>>>> On Jun 17, 2010, at 12:27 PM, Lukas Renggli wrote:
>>>>>>
>>>>>> - If included with Pharo I suggest to rename all the methods,
>>>>>> otherwise we will run into big troubles with Seaside and other
>>>>>> projects that depend on Grease.
>>>>>>
>>>>>>
>>>>>> From a philosophical standpoint, I *hate* that. this means that  
>>>>>> as a
>>>>>> plattform, we can not
>>>>>> grow and improve our libraris anymore?
>>>>>> Shouldn't be the goal that useful extensions gets adopted by  
>>>>>> the core?
>>>>>
>>>>> We will need to find a way to allow platforms to adopt Grease  
>>>>> methods
>>>>> - I do think this is the end goal. It's a bit of a nightmare  
>>>>> from our
>>>>> point of view because we end up having to have different Grease
>>>>> versions for different versions of the platforms, but isn't that  
>>>>> sort
>>>>> of unavoidable in the long run anyway? Part of the reason that's  
>>>>> so
>>>>> awful is simply due to the lack of good branching and management  
>>>>> tools
>>>>> in our version control systems...
>>>>>
>>>>> Julian
>>>>>
>>>>> _______________________________________________
>>>>> Pharo-project mailing list
>>>>> [hidden email]
>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo- 
>>>>> project
>>>>
>>>> _______________________________________________
>>>> Pharo-project mailing list
>>>> [hidden email]
>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Issue 2560 : Convenient methods from Grease for Strings

Julian Fitzell-2
In reply to this post by Dale Henrichs
Sure, but the issue is not just figuring out which package to load. We
have to either branch the packages or create several different
packages which have overlapping code in them. Either way, this becomes
increasingly complex from a development point of view (testing,
merging, backporting, copying code between packages, and so on). As I
said, it may be unavoidable, but I'm not looking forward to it.

Julian

On Mon, Jun 21, 2010 at 1:16 PM, Dale Henrichs <[hidden email]> wrote:

> Julian,
>
> I am very close to adding version specific attributes for Pharo1.0 and
> Pharo1.1 to make this sort of specialization a little easier, but even now
> an individual project can add fine-grained attributes that could allow code
> to be conditional on a build by build basis ... if needed.
>
> Dale
>
> Julian Fitzell wrote:
>>
>> Hmm... Why did I only receive this email today...?
>>
>> Anyway, I agree that those methods should probably be in the
>> platform-specific package. I guess we were originally trying to
>> minimize the amount of implementation required on each platform. As
>> long as no platform implements a method and the implementation is the
>> same on all platforms, it is convenient to have it in only one place.
>> As soon as a platform chooses to implement it, though, we will simply
>> have to move it to the platform-specific package. At this point we run
>> into the issue of having different platform packages for, say, Pharo
>> 1.1 and 1.2.
>>
>> Perhaps in the end it is simpler just to keep extensions always in the
>> platform packages and insist that the generic packages contain only
>> GR* classes and grease* extension methods.
>>
>> I'm not sure about Grease providing reference implementations of all
>> methods it tests, though. I'm not convinced that a "gold standard"
>> always exists, nor that it will necessarily be implemented by Grease.
>> In many cases, we have standardized on methods that already exist in
>> Squeak/Pharo or in some other platform.
>>
>> On Thu, Jun 17, 2010 at 9:30 AM, Dale Henrichs <[hidden email]>
>> wrote:
>>>
>>> Julian,
>>>
>>> The Grease-Core package contains a mixture of things (for convenience):
>>> the
>>> GR* family of classes using a naming convention that is unlikely to
>>> collide
>>> with platform classes and a collection of extensions to well-known
>>> classes
>>> using names that could very easily collide with platform methods (or
>>> prevent
>>> a platform from implementing that method in their base system).
>>>
>>> The well-known class extension methods could easily be moved to the
>>> platform-side, then as platforms adopt the Grease extensions (an obvious
>>> goal of Grease in the first place) the platform extensions can be
>>> adjusted
>>> accordingly...the Grease-Tests for those methods should remain so that
>>> from
>>> the Grease-Users perspective the behavior for those methods will remain
>>> consistent (relative to Grease) over time...
>>>
>>> It _would be convenient_ to preserve the current well-known class
>>> extension
>>> method implementations so that when Grease is ported to a new platform
>>> the
>>> "standard implementation" can be used as a bootstrap. In fact if the
>>> well-known class extension methods were moved into a separate platform
>>> package, then you'd have the gold standard implementation and the initial
>>> pharo/squeak implementation rolled into one.
>>>
>>> In the end this doesn't sound that awful...
>>>
>>> Dale
>>>
>>> Julian Fitzell wrote:
>>>>
>>>> 2010/6/17 Marcus Denker <[hidden email]>:
>>>>>
>>>>> On Jun 17, 2010, at 12:27 PM, Lukas Renggli wrote:
>>>>>
>>>>> - If included with Pharo I suggest to rename all the methods,
>>>>> otherwise we will run into big troubles with Seaside and other
>>>>> projects that depend on Grease.
>>>>>
>>>>>
>>>>> From a philosophical standpoint, I *hate* that. this means that as a
>>>>> plattform, we can not
>>>>> grow and improve our libraris anymore?
>>>>> Shouldn't be the goal that useful extensions gets adopted by the core?
>>>>
>>>> We will need to find a way to allow platforms to adopt Grease methods
>>>> - I do think this is the end goal. It's a bit of a nightmare from our
>>>> point of view because we end up having to have different Grease
>>>> versions for different versions of the platforms, but isn't that sort
>>>> of unavoidable in the long run anyway? Part of the reason that's so
>>>> awful is simply due to the lack of good branching and management tools
>>>> in our version control systems...
>>>>
>>>> Julian
>>>>
>>>> _______________________________________________
>>>> Pharo-project mailing list
>>>> [hidden email]
>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
12