About overlapping packages :(

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

About overlapping packages :(

Stéphane Ducasse
Hi

I have worked on the integration of the new package implementation and its synchronisation with MC/PackageInfo.
Now I have the following problem:

Scenario 1:
        the user have created a package Foo which contains several classes, some like FooObject
        in the category Foo-Core, others in category Foo-Others.
        Now if he creates a package Foo-Core, Foo-Core should contain the classes
        having Foo-Core as category.

        I have a problem with PackageInfo semantics since here packages Foo and Foo-Core could contain
        FooObject.

Scenario 2:
        the user have created a class in the category Foo-Core, and after created a package only named Foo.
        The classes in category Foo-Core should be added to Foo. But some other packages and categories starting with Foo may exist.


Now in the new implementation, classes cannot be two packages at the same time. So I will be forced
to implement a checker making sure that there is no such situation and also that we should remove
first the Foo package and then create two package Foo-Core and Foo-Others.
What do you think?

May be such a checker should be hooked into MC right now so we detect anyway such bad situations.

For the moment I'm fighting within events and announcements to make sure that I could potentially
keep the new implementation of Package and PackageOrganizer in sync with PackageInfo but this is not that simple.

Stef
_______________________________________________
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: About overlapping packages :(

Michael Roberts-2
sounds tricky. at the very least add a checker to a menu somewhere so
we can start to use it. You wouldn't need to that deeply integrate it
in the first instance...

do you need to match the existing semantics exactly? I don't think
it's good that we can get into these situations. Perhaps we should
prevent them being able to be created in the first place, rather than
deal with them once they overlap.

cheers

Mike

On Fri, Jul 30, 2010 at 11:36 AM, Stéphane Ducasse
<[hidden email]> wrote:

> Hi
>
> I have worked on the integration of the new package implementation and its synchronisation with MC/PackageInfo.
> Now I have the following problem:
>
> Scenario 1:
>        the user have created a package Foo which contains several classes, some like FooObject
>        in the category Foo-Core, others in category Foo-Others.
>        Now if he creates a package Foo-Core, Foo-Core should contain the classes
>        having Foo-Core as category.
>
>        I have a problem with PackageInfo semantics since here packages Foo and Foo-Core could contain
>        FooObject.
>
> Scenario 2:
>        the user have created a class in the category Foo-Core, and after created a package only named Foo.
>        The classes in category Foo-Core should be added to Foo. But some other packages and categories starting with Foo may exist.
>
>
> Now in the new implementation, classes cannot be two packages at the same time. So I will be forced
> to implement a checker making sure that there is no such situation and also that we should remove
> first the Foo package and then create two package Foo-Core and Foo-Others.
> What do you think?
>
> May be such a checker should be hooked into MC right now so we detect anyway such bad situations.
>
> For the moment I'm fighting within events and announcements to make sure that I could potentially
> keep the new implementation of Package and PackageOrganizer in sync with PackageInfo but this is not that simple.
>
> Stef
> _______________________________________________
> 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: About overlapping packages :(

Stéphane Ducasse
> sounds tricky. at the very least add a checker to a menu somewhere so
> we can start to use it.

I will do that.

> You wouldn't need to that deeply integrate it
> in the first instance...
>
> do you need to match the existing semantics exactly? I don't think
> it's good that we can get into these situations. Perhaps we should
> prevent them being able to be created in the first place, rather than
> deal with them once they overlap.

It will change the flow: we will not be able to create a new subpackage Foo-Core (if Foo is already created)
, but will have to start delete the top package.

Stef
_______________________________________________
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: About overlapping packages :(

Schwab,Wilhelm K
Stef,

Coming from Dolphin, I have been surprised at how few packaging problems I (appear?) to have had in Pharo.  One of the great terrors<g> that enters the life of each Dolphin newbie is the dreaded "cyclic dependencies" error.  The truth is that it is not a big deal: save the image and figure it out after you get some coffee.   However, it sure seems awful the first few times the system refuses to save a package.

Dolphin uses concrete packages; classes, methods and other objects belong to a package.  Non-class objects (methods, view resources) by default belong to the same package as the associated class, but they can be placed elsewhere.  Packages are explicitly created by the user and then are separately populated.

I was generally shocked at how much work both Dolphin and Pharo users were willing to do in saving and loading packages.  Over time, Dolphin became fairly adept at loading prerequisite packages, so things got easier.  However, the readers here (for whom I have great respect) mystify me - or I am missing something about Monticello.  I responded by "porting" a tool called Migrate that I wrote early on for Dolphin.  Dolphin's package manager was fussy about loading things in the correct order, and I had no patience for loading 100+ packages with menu commands for each.  Like I said, it improve over time to make Migrate less important in Dolphin, but something like it was essential to me in Pharo.

Attached is a .mcz for Migrate-Core, relevant perhaps for two reasons.  First, the fact that I exploit the ability to make a package called Migrate and then dash off a Migrate-Core that (hopefully) has just what I want to make public and nothing else.  Second, it might give you some ideas about what a package system should do. My code is managed by a class called GatorAid that is derived from Migrate, and other users would presumably do the same thing: subclass, override a couple of methods, and follow the instructions (mostly in the Migrate class comment and some method comments), such as they are.  In short, it helps look for code that I wrote and have not yet claimed ownership by telling Migrate I want to save it; it makes saving all packages I have asked it to save a one-step operation; it helps with building a new image.

Perhaps the place to start is to have a quick look and to let me know if you have any questions.

Bill


________________________________________
From: [hidden email] [[hidden email]] On Behalf Of Stéphane Ducasse [[hidden email]]
Sent: Saturday, July 31, 2010 11:19 AM
To: [hidden email]
Subject: Re: [Pharo-project] About overlapping packages :(

> sounds tricky. at the very least add a checker to a menu somewhere so
> we can start to use it.

I will do that.

> You wouldn't need to that deeply integrate it
> in the first instance...
>
> do you need to match the existing semantics exactly? I don't think
> it's good that we can get into these situations. Perhaps we should
> prevent them being able to be created in the first place, rather than
> deal with them once they overlap.

It will change the flow: we will not be able to create a new subpackage Foo-Core (if Foo is already created)
, but will have to start delete the top package.

Stef
_______________________________________________
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

Migrate-Core-BillSchwab.1.mcz (19K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: About overlapping packages :(

Stéphane Ducasse
Ok I will have a look.
My new package implementation is fast and robust now I'm just bumping into fuzzy PackageInfo semantics.

Stef

On Aug 1, 2010, at 5:07 PM, Schwab,Wilhelm K wrote:

> Stef,
>
> Coming from Dolphin, I have been surprised at how few packaging problems I (appear?) to have had in Pharo.  One of the great terrors<g> that enters the life of each Dolphin newbie is the dreaded "cyclic dependencies" error.  The truth is that it is not a big deal: save the image and figure it out after you get some coffee.   However, it sure seems awful the first few times the system refuses to save a package.
>
> Dolphin uses concrete packages; classes, methods and other objects belong to a package.  Non-class objects (methods, view resources) by default belong to the same package as the associated class, but they can be placed elsewhere.  Packages are explicitly created by the user and then are separately populated.
>
> I was generally shocked at how much work both Dolphin and Pharo users were willing to do in saving and loading packages.  Over time, Dolphin became fairly adept at loading prerequisite packages, so things got easier.  However, the readers here (for whom I have great respect) mystify me - or I am missing something about Monticello.  I responded by "porting" a tool called Migrate that I wrote early on for Dolphin.  Dolphin's package manager was fussy about loading things in the correct order, and I had no patience for loading 100+ packages with menu commands for each.  Like I said, it improve over time to make Migrate less important in Dolphin, but something like it was essential to me in Pharo.
>
> Attached is a .mcz for Migrate-Core, relevant perhaps for two reasons.  First, the fact that I exploit the ability to make a package called Migrate and then dash off a Migrate-Core that (hopefully) has just what I want to make public and nothing else.  Second, it might give you some ideas about what a package system should do. My code is managed by a class called GatorAid that is derived from Migrate, and other users would presumably do the same thing: subclass, override a couple of methods, and follow the instructions (mostly in the Migrate class comment and some method comments), such as they are.  In short, it helps look for code that I wrote and have not yet claimed ownership by telling Migrate I want to save it; it makes saving all packages I have asked it to save a one-step operation; it helps with building a new image.
>
> Perhaps the place to start is to have a quick look and to let me know if you have any questions.
>
> Bill
>
>
> ________________________________________
> From: [hidden email] [[hidden email]] On Behalf Of Stéphane Ducasse [[hidden email]]
> Sent: Saturday, July 31, 2010 11:19 AM
> To: [hidden email]
> Subject: Re: [Pharo-project] About overlapping packages :(
>
>> sounds tricky. at the very least add a checker to a menu somewhere so
>> we can start to use it.
>
> I will do that.
>
>> You wouldn't need to that deeply integrate it
>> in the first instance...
>>
>> do you need to match the existing semantics exactly? I don't think
>> it's good that we can get into these situations. Perhaps we should
>> prevent them being able to be created in the first place, rather than
>> deal with them once they overlap.
>
> It will change the flow: we will not be able to create a new subpackage Foo-Core (if Foo is already created)
> , but will have to start delete the top package.
>
> Stef
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> <Migrate-Core-BillSchwab.1.mcz>_______________________________________________
> 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: About overlapping packages :(

Schwab,Wilhelm K
Stef,

Are you perhaps running into problems with mapping category names to packages?  The Dolphin approach to that is to avoid the topic: just present a list of packages and make the user pick one, after which the class/method/etc. is packaged.  The resulting package system might then suffer the indignity of cyclic prerequisites, but there are ways to help the user fix that.  I am not saying it is the correct solution (nor suggesting that it is not) - just reporting what Object Arts did.  They got so many things *really* right that I default to trusting them.

Bill

________________________________________
From: [hidden email] [[hidden email]] On Behalf Of Stéphane Ducasse [[hidden email]]
Sent: Sunday, August 01, 2010 1:39 PM
To: [hidden email]
Subject: Re: [Pharo-project] About overlapping packages :(

Ok I will have a look.
My new package implementation is fast and robust now I'm just bumping into fuzzy PackageInfo semantics.

Stef

On Aug 1, 2010, at 5:07 PM, Schwab,Wilhelm K wrote:

> Stef,
>
> Coming from Dolphin, I have been surprised at how few packaging problems I (appear?) to have had in Pharo.  One of the great terrors<g> that enters the life of each Dolphin newbie is the dreaded "cyclic dependencies" error.  The truth is that it is not a big deal: save the image and figure it out after you get some coffee.   However, it sure seems awful the first few times the system refuses to save a package.
>
> Dolphin uses concrete packages; classes, methods and other objects belong to a package.  Non-class objects (methods, view resources) by default belong to the same package as the associated class, but they can be placed elsewhere.  Packages are explicitly created by the user and then are separately populated.
>
> I was generally shocked at how much work both Dolphin and Pharo users were willing to do in saving and loading packages.  Over time, Dolphin became fairly adept at loading prerequisite packages, so things got easier.  However, the readers here (for whom I have great respect) mystify me - or I am missing something about Monticello.  I responded by "porting" a tool called Migrate that I wrote early on for Dolphin.  Dolphin's package manager was fussy about loading things in the correct order, and I had no patience for loading 100+ packages with menu commands for each.  Like I said, it improve over time to make Migrate less important in Dolphin, but something like it was essential to me in Pharo.
>
> Attached is a .mcz for Migrate-Core, relevant perhaps for two reasons.  First, the fact that I exploit the ability to make a package called Migrate and then dash off a Migrate-Core that (hopefully) has just what I want to make public and nothing else.  Second, it might give you some ideas about what a package system should do. My code is managed by a class called GatorAid that is derived from Migrate, and other users would presumably do the same thing: subclass, override a couple of methods, and follow the instructions (mostly in the Migrate class comment and some method comments), such as they are.  In short, it helps look for code that I wrote and have not yet claimed ownership by telling Migrate I want to save it; it makes saving all packages I have asked it to save a one-step operation; it helps with building a new image.
>
> Perhaps the place to start is to have a quick look and to let me know if you have any questions.
>
> Bill
>
>
> ________________________________________
> From: [hidden email] [[hidden email]] On Behalf Of Stéphane Ducasse [[hidden email]]
> Sent: Saturday, July 31, 2010 11:19 AM
> To: [hidden email]
> Subject: Re: [Pharo-project] About overlapping packages :(
>
>> sounds tricky. at the very least add a checker to a menu somewhere so
>> we can start to use it.
>
> I will do that.
>
>> You wouldn't need to that deeply integrate it
>> in the first instance...
>>
>> do you need to match the existing semantics exactly? I don't think
>> it's good that we can get into these situations. Perhaps we should
>> prevent them being able to be created in the first place, rather than
>> deal with them once they overlap.
>
> It will change the flow: we will not be able to create a new subpackage Foo-Core (if Foo is already created)
> , but will have to start delete the top package.
>
> Stef
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> <Migrate-Core-BillSchwab.1.mcz>_______________________________________________
> 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: About overlapping packages :(

Stéphane Ducasse


> Stef,
>
> Are you perhaps running into problems with mapping category names to packages?  The Dolphin approach to that is to avoid the topic: just present a list of packages and make the user pick one, after which the class/method/etc. is packaged.  The resulting package system might then suffer the indignity of cyclic prerequisites, but there are ways to help the user fix that.  I am not saying it is the correct solution (nor suggesting that it is not) - just reporting what Object Arts did.  They got so many things *really* right that I default to trusting them.

This is what my implementation does. No magic matching. Just a list of classes and methods.
Now if I do not support the * convention of packageinfo it means that we will not be able to load and save
packages in a compatible form. We could do that and it would save me a lot of work. But people have to agree and understand the
consequences. Of course we could do a MCPackageInfor specific loader that loads and convert MC packages.
But this means that the packages will not be able to be used in Squeak.

Stef


_______________________________________________
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: About overlapping packages :(

Tudor Girba
Hi Stef,

I would go for first mirroring categories. Like this, Monticello would  
still work as expected, and we can just focus on improving the image  
based tools/concepts.

Cheers,
Doru


On 1 Aug 2010, at 22:02, Stéphane Ducasse wrote:

>
>
>> Stef,
>>
>> Are you perhaps running into problems with mapping category names  
>> to packages?  The Dolphin approach to that is to avoid the topic:  
>> just present a list of packages and make the user pick one, after  
>> which the class/method/etc. is packaged.  The resulting package  
>> system might then suffer the indignity of cyclic prerequisites, but  
>> there are ways to help the user fix that.  I am not saying it is  
>> the correct solution (nor suggesting that it is not) - just  
>> reporting what Object Arts did.  They got so many things *really*  
>> right that I default to trusting them.
>
> This is what my implementation does. No magic matching. Just a list  
> of classes and methods.
> Now if I do not support the * convention of packageinfo it means  
> that we will not be able to load and save
> packages in a compatible form. We could do that and it would save me  
> a lot of work. But people have to agree and understand the
> consequences. Of course we could do a MCPackageInfor specific loader  
> that loads and convert MC packages.
> But this means that the packages will not be able to be used in  
> Squeak.
>
> Stef
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

--
www.tudorgirba.com

"Sometimes the best solution is not the best solution."


_______________________________________________
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: About overlapping packages :(

Stéphane Ducasse

On Aug 1, 2010, at 10:40 PM, Tudor Girba wrote:

> Hi Stef,
>
> I would go for first mirroring categories. Like this, Monticello would still work as expected, and we can just focus on improving the image based tools/concepts.


I know this is why I'm doing it slowly and with some pain... :)

>
> Cheers,
> Doru
>
>
> On 1 Aug 2010, at 22:02, Stéphane Ducasse wrote:
>
>>
>>
>>> Stef,
>>>
>>> Are you perhaps running into problems with mapping category names to packages?  The Dolphin approach to that is to avoid the topic: just present a list of packages and make the user pick one, after which the class/method/etc. is packaged.  The resulting package system might then suffer the indignity of cyclic prerequisites, but there are ways to help the user fix that.  I am not saying it is the correct solution (nor suggesting that it is not) - just reporting what Object Arts did.  They got so many things *really* right that I default to trusting them.
>>
>> This is what my implementation does. No magic matching. Just a list of classes and methods.
>> Now if I do not support the * convention of packageinfo it means that we will not be able to load and save
>> packages in a compatible form. We could do that and it would save me a lot of work. But people have to agree and understand the
>> consequences. Of course we could do a MCPackageInfor specific loader that loads and convert MC packages.
>> But this means that the packages will not be able to be used in Squeak.
>>
>> Stef
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> --
> www.tudorgirba.com
>
> "Sometimes the best solution is not the best solution."
>
>
> _______________________________________________
> 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: About overlapping packages :(

Igor Stasenko
Potentially, user could state explicitly to which package belongs
given class/method, ignoring all naming stuff.
An alternative approach is to disentangle the category name from
package name and matching logic.
Instead of

ProtoObject subclass: #Object
        instanceVariableNames: ''
        classVariableNames: 'DependentsFields'
        poolDictionaries: ''
        category: 'Kernel-Objects'

change it to:

ProtoObject subclass: #Object
        instanceVariableNames: ''
        classVariableNames: 'DependentsFields'
        poolDictionaries: ''
        category: 'Objects'
        package: 'Kernel'

or as separate doit:

!ProtoObject subclass: #Object
        instanceVariableNames: ''
        classVariableNames: 'DependentsFields'
        poolDictionaries: ''
        category: 'Objects'.!
!Object package: 'Kernel'.!

On 2 August 2010 10:33, Stéphane Ducasse <[hidden email]> wrote:

>
> On Aug 1, 2010, at 10:40 PM, Tudor Girba wrote:
>
>> Hi Stef,
>>
>> I would go for first mirroring categories. Like this, Monticello would still work as expected, and we can just focus on improving the image based tools/concepts.
>
>
> I know this is why I'm doing it slowly and with some pain... :)
>
>>
>> Cheers,
>> Doru
>>
>>
>> On 1 Aug 2010, at 22:02, Stéphane Ducasse wrote:
>>
>>>
>>>
>>>> Stef,
>>>>
>>>> Are you perhaps running into problems with mapping category names to packages?  The Dolphin approach to that is to avoid the topic: just present a list of packages and make the user pick one, after which the class/method/etc. is packaged.  The resulting package system might then suffer the indignity of cyclic prerequisites, but there are ways to help the user fix that.  I am not saying it is the correct solution (nor suggesting that it is not) - just reporting what Object Arts did.  They got so many things *really* right that I default to trusting them.
>>>
>>> This is what my implementation does. No magic matching. Just a list of classes and methods.
>>> Now if I do not support the * convention of packageinfo it means that we will not be able to load and save
>>> packages in a compatible form. We could do that and it would save me a lot of work. But people have to agree and understand the
>>> consequences. Of course we could do a MCPackageInfor specific loader that loads and convert MC packages.
>>> But this means that the packages will not be able to be used in Squeak.
>>>
>>> Stef
>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> --
>> www.tudorgirba.com
>>
>> "Sometimes the best solution is not the best solution."
>>
>>
>> _______________________________________________
>> 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
>



--
Best regards,
Igor Stasenko AKA sig.

_______________________________________________
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: About overlapping packages :(

Tudor Girba
Yes, that would be an option. The problem with this is that you have  
to change everything from the beginning. The route of first mirroring  
the categories is smoother because first you can focus on the tools  
and when everything works well, you can remove categories with a  
construction that goes along the lines you suggest.

Cheers,
Doru


On 3 Aug 2010, at 04:10, Igor Stasenko wrote:

> Potentially, user could state explicitly to which package belongs
> given class/method, ignoring all naming stuff.
> An alternative approach is to disentangle the category name from
> package name and matching logic.
> Instead of
>
> ProtoObject subclass: #Object
> instanceVariableNames: ''
> classVariableNames: 'DependentsFields'
> poolDictionaries: ''
> category: 'Kernel-Objects'
>
> change it to:
>
> ProtoObject subclass: #Object
> instanceVariableNames: ''
> classVariableNames: 'DependentsFields'
> poolDictionaries: ''
> category: 'Objects'
>        package: 'Kernel'
>
> or as separate doit:
>
> !ProtoObject subclass: #Object
> instanceVariableNames: ''
> classVariableNames: 'DependentsFields'
> poolDictionaries: ''
> category: 'Objects'.!
> !Object package: 'Kernel'.!
>
> On 2 August 2010 10:33, Stéphane Ducasse <[hidden email]>  
> wrote:
>>
>> On Aug 1, 2010, at 10:40 PM, Tudor Girba wrote:
>>
>>> Hi Stef,
>>>
>>> I would go for first mirroring categories. Like this, Monticello  
>>> would still work as expected, and we can just focus on improving  
>>> the image based tools/concepts.
>>
>>
>> I know this is why I'm doing it slowly and with some pain... :)
>>
>>>
>>> Cheers,
>>> Doru
>>>
>>>
>>> On 1 Aug 2010, at 22:02, Stéphane Ducasse wrote:
>>>
>>>>
>>>>
>>>>> Stef,
>>>>>
>>>>> Are you perhaps running into problems with mapping category  
>>>>> names to packages?  The Dolphin approach to that is to avoid the  
>>>>> topic: just present a list of packages and make the user pick  
>>>>> one, after which the class/method/etc. is packaged.  The  
>>>>> resulting package system might then suffer the indignity of  
>>>>> cyclic prerequisites, but there are ways to help the user fix  
>>>>> that.  I am not saying it is the correct solution (nor  
>>>>> suggesting that it is not) - just reporting what Object Arts  
>>>>> did.  They got so many things *really* right that I default to  
>>>>> trusting them.
>>>>
>>>> This is what my implementation does. No magic matching. Just a  
>>>> list of classes and methods.
>>>> Now if I do not support the * convention of packageinfo it means  
>>>> that we will not be able to load and save
>>>> packages in a compatible form. We could do that and it would save  
>>>> me a lot of work. But people have to agree and understand the
>>>> consequences. Of course we could do a MCPackageInfor specific  
>>>> loader that loads and convert MC packages.
>>>> But this means that the packages will not be able to be used in  
>>>> Squeak.
>>>>
>>>> Stef
>>>>
>>>>
>>>> _______________________________________________
>>>> Pharo-project mailing list
>>>> [hidden email]
>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>> --
>>> www.tudorgirba.com
>>>
>>> "Sometimes the best solution is not the best solution."
>>>
>>>
>>> _______________________________________________
>>> 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
>>
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

--
www.tudorgirba.com

"Be rather willing to give than demanding to get."




_______________________________________________
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: About overlapping packages :(

Igor Stasenko
On 3 August 2010 11:41, Tudor Girba <[hidden email]> wrote:
> Yes, that would be an option. The problem with this is that you have to
> change everything from the beginning. The route of first mirroring the
> categories is smoother because first you can focus on the tools and when
> everything works well, you can remove categories with a construction that
> goes along the lines you suggest.
>

Sure thing. It needs to be done cleverly.
I am just thinking that at some point, this should be separated, so it worth
to make changes in current codebase by taking this into acccount.

> Cheers,
> Doru
>
>
> On 3 Aug 2010, at 04:10, Igor Stasenko wrote:
>
>> Potentially, user could state explicitly to which package belongs
>> given class/method, ignoring all naming stuff.
>> An alternative approach is to disentangle the category name from
>> package name and matching logic.
>> Instead of
>>
>> ProtoObject subclass: #Object
>>        instanceVariableNames: ''
>>        classVariableNames: 'DependentsFields'
>>        poolDictionaries: ''
>>        category: 'Kernel-Objects'
>>
>> change it to:
>>
>> ProtoObject subclass: #Object
>>        instanceVariableNames: ''
>>        classVariableNames: 'DependentsFields'
>>        poolDictionaries: ''
>>        category: 'Objects'
>>       package: 'Kernel'
>>
>> or as separate doit:
>>
>> !ProtoObject subclass: #Object
>>        instanceVariableNames: ''
>>        classVariableNames: 'DependentsFields'
>>        poolDictionaries: ''
>>        category: 'Objects'.!
>> !Object package: 'Kernel'.!
>>
>> On 2 August 2010 10:33, Stéphane Ducasse <[hidden email]>
>> wrote:
>>>
>>> On Aug 1, 2010, at 10:40 PM, Tudor Girba wrote:
>>>
>>>> Hi Stef,
>>>>
>>>> I would go for first mirroring categories. Like this, Monticello would
>>>> still work as expected, and we can just focus on improving the image based
>>>> tools/concepts.
>>>
>>>
>>> I know this is why I'm doing it slowly and with some pain... :)
>>>
>>>>
>>>> Cheers,
>>>> Doru
>>>>
>>>>
>>>> On 1 Aug 2010, at 22:02, Stéphane Ducasse wrote:
>>>>
>>>>>
>>>>>
>>>>>> Stef,
>>>>>>
>>>>>> Are you perhaps running into problems with mapping category names to
>>>>>> packages?  The Dolphin approach to that is to avoid the topic: just present
>>>>>> a list of packages and make the user pick one, after which the
>>>>>> class/method/etc. is packaged.  The resulting package system might then
>>>>>> suffer the indignity of cyclic prerequisites, but there are ways to help the
>>>>>> user fix that.  I am not saying it is the correct solution (nor suggesting
>>>>>> that it is not) - just reporting what Object Arts did.  They got so many
>>>>>> things *really* right that I default to trusting them.
>>>>>
>>>>> This is what my implementation does. No magic matching. Just a list of
>>>>> classes and methods.
>>>>> Now if I do not support the * convention of packageinfo it means that
>>>>> we will not be able to load and save
>>>>> packages in a compatible form. We could do that and it would save me a
>>>>> lot of work. But people have to agree and understand the
>>>>> consequences. Of course we could do a MCPackageInfor specific loader
>>>>> that loads and convert MC packages.
>>>>> But this means that the packages will not be able to be used in Squeak.
>>>>>
>>>>> Stef
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Pharo-project mailing list
>>>>> [hidden email]
>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>
>>>> --
>>>> www.tudorgirba.com
>>>>
>>>> "Sometimes the best solution is not the best solution."
>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>>
>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> --
> www.tudorgirba.com
>
> "Be rather willing to give than demanding to get."
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>



--
Best regards,
Igor Stasenko AKA sig.

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