[ANN] Open meeting regarding the Squeak Release Team

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

Re: Meeting with Edgar notes

Nicolas Cellier-3
stephane ducasse a écrit :
> Andreas
>
> You are probably right.
> May be we went too down the road.
> Now try to explain this guy that merging sophie, croquet, OLPC package
> problems
> is not due to traits.
>

I am not a maintainer of anything serious as above now, but I speak with
15 years of development on ParcPlace ST80 v2.3, Objectworks then
VisualWorks. Sorry for the long answer.


GREAT Squeak CORE IMAGES ... :
-----------------------------

Plainly agree with the idea of a core squeak Kernel.

It is good to have an up-to-date kernel for newcomers and for starting a
new project.

It is good to have prepared packages guaranteed to load into that image
and don't break each other (Universe).

It is good that an up-to-date code repository be in sync with this core
image, TRACING all the evolutions (Monticello).
Better than traditional change log IMO, because it is accessible on
request, but you do not have to download a change log with whole code
history. (Alternative being compress the changes and forget history).


...ARE IN CONFLICT WITH IMAGE-BASE DEVELOPMENT:
----------------------------------------------

But you can not force anyone to adopt your fresh kernel image at each
release.
This won't happen for big application because it is too much work to do
such a port, and this is not how Smalltalk-80 development takes place.

No you don't rebuild your application image everyday with all the tricky
initializations and bootstrap process (circular dependencies), and all
these objects that are not code, and won't reload that easily with code
management tools...
You have something more comfortable, an already initialized image.

No, you won't go through this porting process when you know that some
messages have been deprecated, renamed, some old crappy class replaced
by new shiny ones, or some behaviour improved, the uncompatible way...

No, all these enhancements are not for free, because you'll have to
review your existing code.

Switching to a new image is simply too many changes at once.

What you do is image base development. Developpers do copy an official
image, perform changes, file out changeSet, Monticello or whatever, and
all is integrated back in the official centralized image, where tested
against non regression tests.

Isn't that pretty well what was done during 3.9 and 3.10 process ?
Yes, you smoothly and carefully change THE image.
I personnally downloaded 2 or 3 copies of each.
That's how it works.
You cannot blame major fork maintainer for doing the same.

When i was a commercial VW user and had to switch image, because the old
VM would not necessarily be ported to new machines, that was a pain,
there were ALWAYS some porting necessary.
We always needed a long transition phase. And development had to
continue, so several images were maintained in parallel. What we did was
backporting some of the changes from new official versions to older in
order to smooth the process a little and reduce the difference between
the branches... with change set and change files.

SO WHAT, NO SURPRISE
--------------------

Yes, this explains forks...
That is not a reason for throwing all your efforts away.
Keep developing a core image. This is the best way for integrating all
these necessary clean up and enhancements.

Yes, the core image SHOULD harvest enhancements made in forks too... A
huge ant work! No magic here, only communication and hard work.
Yes write tests and more tests to ease the process.

And what is needed is fine grained changes, that can be examined and
harvested back in forks. If they ever want to port, this will narrow the
gap. LevelPlayingField attempts to answer this very pragmatic goal.

Don't focus on Traits:
- as long as they are not used, they are harmless and won't prevent any
backport.
- Even if used, you can still export equivalent generated code.
- Traits are not a problem unless you yourself want to change Class and
Metaclass.
- Traits could be removed at will before starting a port

Without a doubt, build 3.11 on 3.10. Or if you really want to backtrack,
build on 1.0 for licensing reasons (No, just kidding).

And please, update Mantis status, current management is a mess (issues
harvested but status not updated).

Nicolas


Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Open meeting regarding the Squeak Release Team

Nicolas Cellier-3
In reply to this post by stephane ducasse
stephane ducasse a écrit :

>
> Not at all, if people want to remove traits. I personnally do not care.
> If the community does not want that
> this is ok for me. This will be just an error but this will not be my
> failure because we would have try.
> You know PHP people implemented stateful traits and apparently some want
> to push that in the mainstream.
> The Ruby guy said that he would have preferred traits over his mixin.
> But again this is ok for me/us if traits
> get removed. Traits are not the problems because there are small and do
> not change the run-time.
>
> In 3.9 we integrated a lot of fixes and pragmas and other stuff like
> that. Now if the community
> wants to lose that then this is stupid and I will simply do something
> else. There are plenty of dynamic
> language today with cool communities. We are not the only one.
>

Don't know if the french expression has any meaning in English, but
steph are you the "hot blood" south european archetype?

Cool down, don't take things as too personnal.
Be patient as a teacher ought to be.
Repeat and repeat again.

And please, don't leave the community!
Threatening should not be the preferred mode of argumentation in this list.

Nicolas


Reply | Threaded
Open this post in threaded view
|

Re: Meeting with Edgar notes

Andreas.Raab
In reply to this post by stephane ducasse
stephane ducasse wrote:
> Andreas
>
> You are probably right.
> May be we went too down the road.
> Now try to explain this guy that merging sophie, croquet, OLPC package
> problems is not due to traits.

I'd say that THE major problem in trying to port Croquet to 3.9/3.10
(which I attempted multiple times) were the changes to the class kernel
- which are a direct result of applying traits. So I'm not sure that
saying "it is not due to traits" is the correct way to phrase it.

Similarly for OLPC/eToys - I think the fact that the changes in the
class kernel make projects from older versions unloadable (which IIRC
was a well-known problem by the time 3.9 was released) may have
something to do with it.

Cheers,
   - Andreas

> BTW I will do 3.9.1 and do something else for myself. Since yesterday I
> discovered that I can have fun without the noise around it.
>
>
>>> You are correct. My issue is not as much with traits (outside of my
>>> general prejudices about multiple inheritance ;-) but rather with the
>>> choices that have been made with their application in the class
>>> kernel. I've actually spent a significant amount of time trying to
>>> understand the design and implementation decisions and my main
>>> objection is basically the use of MI in such a mission-critical piece
>>> of the system. From an engineering point of view one could *easily*
>>> make a traits implementation that is a simple extension of the 3.8
>>> kernel by subclassing for example ClassDescription. The result would
>>> be a small, loadable(!) traits module that does not change the
>>> fundamentals around which that kernel was built.
>>
>> Cheers,
>>  - Andreas
>>
>>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Meeting with Edgar notes

Michael van der Gulik-2


On Feb 4, 2008 10:18 AM, Andreas Raab <[hidden email]> wrote:
stephane ducasse wrote:
> Andreas
>
> You are probably right.
> May be we went too down the road.
> Now try to explain this guy that merging sophie, croquet, OLPC package
> problems is not due to traits.

I'd say that THE major problem in trying to port Croquet to 3.9/3.10
(which I attempted multiple times) were the changes to the class kernel
- which are a direct result of applying traits. So I'm not sure that
saying "it is not due to traits" is the correct way to phrase it.


Could you be more specific about the problems encountered? I'm about to attempt something similar.

Does Croquet involve modifications to the metaclass hierarchy, or does Croquest use ImageSegments in a way that became problematic? What parts of the system in particular were problematic? (Don't dumb down the answer please).

Gulik.


--
http://people.squeakfoundation.org/person/mikevdg
http://gulik.pbwiki.com/

Reply | Threaded
Open this post in threaded view
|

Re: Meeting with Edgar notes

Nicolas Cellier-3
In reply to this post by Andreas.Raab
Yes, i understand and identified this problem.
But if it really is the only problem, then the easiest thing is to
remove Trait as the first porting operation.

Not that trivial (bootstrap), but should be easier than replaying all
3.9/3.10 changes.

Nicolas


Andreas Raab a écrit :

> stephane ducasse wrote:
>> Andreas
>>
>> You are probably right.
>> May be we went too down the road.
>> Now try to explain this guy that merging sophie, croquet, OLPC package
>> problems is not due to traits.
>
> I'd say that THE major problem in trying to port Croquet to 3.9/3.10
> (which I attempted multiple times) were the changes to the class kernel
> - which are a direct result of applying traits. So I'm not sure that
> saying "it is not due to traits" is the correct way to phrase it.
>
> Similarly for OLPC/eToys - I think the fact that the changes in the
> class kernel make projects from older versions unloadable (which IIRC
> was a well-known problem by the time 3.9 was released) may have
> something to do with it.
>
> Cheers,
>   - Andreas
>
>> BTW I will do 3.9.1 and do something else for myself. Since yesterday
>> I discovered that I can have fun without the noise around it.
>>
>>
>>>> You are correct. My issue is not as much with traits (outside of my
>>>> general prejudices about multiple inheritance ;-) but rather with
>>>> the choices that have been made with their application in the class
>>>> kernel. I've actually spent a significant amount of time trying to
>>>> understand the design and implementation decisions and my main
>>>> objection is basically the use of MI in such a mission-critical
>>>> piece of the system. From an engineering point of view one could
>>>> *easily* make a traits implementation that is a simple extension of
>>>> the 3.8 kernel by subclassing for example ClassDescription. The
>>>> result would be a small, loadable(!) traits module that does not
>>>> change the fundamentals around which that kernel was built.
>>>
>>> Cheers,
>>>  - Andreas
>>>
>>>
>>
>>
>>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Meeting with Edgar notes

stephane ducasse
In reply to this post by Andreas.Raab
then they should be removed and we will not have any problems.


On Feb 3, 2008, at 10:18 PM, Andreas Raab wrote:

> stephane ducasse wrote:
>> Andreas
>> You are probably right.
>> May be we went too down the road.
>> Now try to explain this guy that merging sophie, croquet, OLPC  
>> package problems is not due to traits.
>
> I'd say that THE major problem in trying to port Croquet to 3.9/3.10  
> (which I attempted multiple times) were the changes to the class  
> kernel - which are a direct result of applying traits. So I'm not  
> sure that saying "it is not due to traits" is the correct way to  
> phrase it.
>
> Similarly for OLPC/eToys - I think the fact that the changes in the  
> class kernel make projects from older versions unloadable (which  
> IIRC was a well-known problem by the time 3.9 was released) may have  
> something to do with it.
>
> Cheers,
>  - Andreas
>
>> BTW I will do 3.9.1 and do something else for myself. Since  
>> yesterday I discovered that I can have fun without the noise around  
>> it.
>>>> You are correct. My issue is not as much with traits (outside of  
>>>> my general prejudices about multiple inheritance ;-) but rather  
>>>> with the choices that have been made with their application in  
>>>> the class kernel. I've actually spent a significant amount of  
>>>> time trying to understand the design and implementation decisions  
>>>> and my main objection is basically the use of MI in such a  
>>>> mission-critical piece of the system. From an engineering point  
>>>> of view one could *easily* make a traits implementation that is a  
>>>> simple extension of the 3.8 kernel by subclassing for example  
>>>> ClassDescription. The result would be a small, loadable(!) traits  
>>>> module that does not change the fundamentals around which that  
>>>> kernel was built.
>>>
>>> Cheers,
>>> - Andreas
>>>
>>>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Open meeting regarding the Squeak Release Team

Avi Bryant-2
In reply to this post by stephane ducasse
On 2/2/08, stephane ducasse <[hidden email]> wrote:
> Hi avi
>
> I was not sure that I was clear when I mentioned the window...
>
> Here are some of the changes that have been done in 3.9

Thanks Stef.

Avi

Reply | Threaded
Open this post in threaded view
|

Re: [squeakRos] [ANN] Open meeting regarding the Squeak Release Team

SergeStinckwich
In reply to this post by stephane ducasse
stephane ducasse a écrit :
> Sure I was replying to you.
> If I would have removed all the stuff that I would not be useful to me,
> this is not the 3.9 that you can work with wth all the bugs fixes on all
> kind of places that you would have in your hands. Believe me.
> Now traits are not a problem. We can remove them in may be 2 hours of work.
> If merging Sophie, Croquet, OLPC  would be solved because of that I
> would do it ***immediately*** but this is
> not the problem and if you believe so then believe it, it will make your
> life easier :)


I think that despite all the good work done by Squeakers in this
mailing-list, we have still some communications problems ...

Maybe we could organize a real meeting of Squeak developers, for example
during next ESUG in Amsterdam next august ? I think that a real meeting
could help the community to have a concrete roadmap and achieve the
great reunification of all Squeak forks (Croquet, EToys, ...).

Maybe ESUG (European Smalltalk User Group) could give some money in
order help the developers to attend this event.

Best regards,

--                                                         oooo
Serge Stinckwich                                         OOOOOOOO
Université de Caen>CNRS UMR 6072>GREYC>MAD               OOESUGOO
                                                           oooooo
Smalltalkers do: [:it | All with: Class, (And love: it)]   \  /
                                                             ##


Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Open meeting regarding the Squeak Release Team

Jason Johnson-5
In reply to this post by stephane ducasse
On Feb 2, 2008 7:00 PM, stephane ducasse <[hidden email]> wrote:
>
> You know PHP people implemented stateful traits and apparently some
> want to push that in the mainstream.

I've read all your papers (at least the ones I found) on traits and
stateful traits, but one thing I never saw was: what is the
fundamental difference between stateful traits and multiple
inheritance?

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Open meeting regarding the Squeak Release Team

stephane ducasse
>> You know PHP people implemented stateful traits and apparently some
>> want to push that in the mainstream.
>
> I've read all your papers (at least the ones I found) on traits

there are all on my web pages or on the scg ones.

> and
> stateful traits, but one thing I never saw was: what is the
> fundamental difference between stateful traits and multiple
> inheritance?

conceptually none except that traits are working in the concept of
single inheritance. The point of traits was how can we get the reuse
and expressive power of MI in the simplicity of single inheritance.

About stateful traits, consider what you read as an experiment.
I do not want to push that in squeak or another language. I would like  
to
learn what is really useful and a lot more. This is why we reimplemented
from scratch streams: to see if we really needed "stateful traits" or  
any version
of it. I think that stateless traits are quite stable now stateful  
traits are introducing
too much operators.... What is important to understand is that this is  
not
because we wrote a paper that we like the results :)

Stef

123