On Mar 18, 2018, at 9:45 AM, Stéphane Ducasse
> I think email is not particularly good for this. Let’s talk directly next week.
Yes I suggest that we plan multiple talks because one will not be enough.
Yes. So, let’s start with one next Tuesday.
We should also present what we will do around Spec2 but first we
should have a prototype because it will
clean a lot of mess and works with Morphic and Bloc.
> In the meantime, here is some input:
> It would be great to align the development of Moose with that of Pharo. We were
waiting for this for a long time, and now that Pharo is built similar to how other
projects are built, we can finally do it. So, this is really great!
You will tell me what you mean because this is not clear.
I do not see for now the difference.
I mean that until 6.1, Pharo was managed by integrating in the image. From 7.0, Pharo is
managed by loading code, and the process is much more similar to what happens in Moose.
This means that now we can reuse the learnings and infrastructure in both of these
> And I also do not want to have 1 year releases. In fact, that is
why for our work we actually use the latest version. The only reason why we did not have
faster releases was that there was no reliable way to do it, except the manual way. Right
now, we still do not have such a way for Git either, and this is not a problem unique to
Moose. It would be great work on some solution for this problem to benefit all Pharo
With git I thought that you can reload a version and dependent components held in the
same repository based on a hash.
We do not need to handle the versions as with MC but I think that this only works for
components stored in the same repo.
This is why we should really think about what is Moose.
I will ask the experts around.
The problem is when you have multiple repositories, and a deeper nesting level. Indeed, we
do not have version methods, but we still have to change the string inside the baseline to
point to specific version of a dependency.
> For Glamour and existing GT, we can deal with bugs at most, but
we will not invest in further development. The memory leaks problem seems to have
reappeared. This shows that we do not have the right tools for understanding it, and I
would be happy to work with someone that wants to invest in this, especially when it comes
Discuss with esteban. Because we should do something.
Ok this is good to know. Because Moose++ should not rely on Glamour
then and it means that RMOD will not invest there. I suspected it
so good to know.
We think that except GTTool, Pharo should not depend on Glamour so that we can unload it.
So we will check and redo all the tools
that are not GT to not use Glamour.
Now there are two problems that I would like to see changed in the
- no comment at all in methods. This is the last time that I accept components in Pharo
in that state
Same apply for Spec and other BTW
- Subclasses when superclass could have been improved. For example GLMAnnouncer methods
should not be there
but most of them should have been put the superclass. This is not the way to grow a
- Having all the classes subclasses of Announcer looks like a bad design strategy.
We are now talking about things that happened 9 years ago :). In VW, every object is
announcer. As Glamour came in Pharo from VW, it was the simpler move strategy.
Indeed, GLMAnnouncer should not exist, but the logic of GLMAnnouncer is quite specific
(suspending announcements) to Glamour and we did not find a nice way to make it properly
reusable, and that is why it did not get into Announcer. We had a long discussion about
this with Igor, and at the time he was guarding Announcements, so nothing was integrated.
> On the UI front, our complete energy is on Bloc, and the goal is
both to produce the IDE for Pharo and to provide the browsing infrastructure for Moose.
Over the past year, the main UI we used when working with Moose was the Moose Playground
and GTInspector and it works really well. This shows that the investment in Bloc can pay
off easily for Moose as well.
I have large concerns about the engineering behind GT widgets and Glamour and overall
super complex design of GT in general.
I can understand that you want generic solution but generic solutions have a cost.
Now I sincerly hope that the new version will be less complex because Pharo needs
simplicity and often
you discarded this argument but this argument is real and it can kill us. We cannot for
example spent days looking for memory leaks.
I did not discard the argument. But that was the best solution I could find, and others
did not produce a better one.
Of course generic infrastructures have a cost. Now, before considering the cost of generic
solutions, we should also compare it with the cost of maintaining 1000s of concrete use
cases (such as inspector extensions). As you know, finding the right abstraction is
difficult. For example, Traits underwent several implementations over 15 years, and now we
have another one. You have a similar issue with Spec. For me, this is actually great. All
of these served a purpose at the time, but the important part is that they were shipped
even if they were not perfect.
Now you see something that is symptomatic to me: let us look at
Beacon / SystemLogger.
I do not care about SystemLogger. Now I worked on it (and the design could be better).
Then you came with Beacon which basically killed SystemLogger.
Then nothing. We still have this fucking Transcript everywhere and not object transcript.
There were not a single effort to build the next step. While I was planning to do it with
You killed my energy and all the effort around. And you produce Beacon and two people are
So I will check with the guys here what they think about Beacon and may be do a pass on
SystemLogger or another iteration.
Now for me the main problem (and there is a pattern with Glamour here) is that
I do not know how to maintain Beacon while I know how to maintain SystemLogger (it is
limited and simple and not
super generic and super powerful but I can maintain it). The same happens with Glamour.
Probably the same happens with Spotter.
If esteban cannot fix easily Glamour (Iceberg suffered A LOT of bugs in Glamour like the
refresh to index in list) then there is an ENGINEERING problem.
Now we can discard this argument. The point is still there.
I do not understand this part. Beacon was moved under the Pharo umbrella, but its
integration was postponed multiple times due to various other external reasons in Pharo
that were not under my control. Now, Beacon also came with documentation, and its
implementation is smaller and has less concepts than SystemLogger (the main engine has 303
lines of code). I would be very happy to push it, but I do not know what else to do right
So at the end I want to say that I may prefer that Pharo does not
have hyperfancy features that only two people master
and that we (the guy spending time on cleaning) can manage our system.
I have a different opinion.
> Also, beside the UI, the new GT also comes with visual
components, like Mondrian and Diagrammer, and with the basic support for documentation
> I am not sure I understand what not loading GTExample mean.
The point is that we should take care of modularity and I would like to avoid to be also
forced to pay attention for others.
> Bloc/Brick/GT are tested and documented like this, so we need to
have that around.
We will have to check this because even for Pharo we want to avoid to have the
Glamour/Annoucement hell around
when you will consider that another project is more important.
I am not sure I see the similarity between GTExample and Announcements. Can you explain?
> I guess that you are referring to the issue
"GT-Examples-Roassal2 should not be packaged in GT-Examples #1180”. I think there is
a confusion, so I added a comment for that:
Yes but not only.
You see when we introduced Glamour in Pharo. You remember I was against it and you said
it was only 35 classes and that I could maintain Morphic that was far more complex.
Net result. ***We*** were fighting multiple time with memory leaks. The design is overly
We invested in the memory leaks as well. But, I think it would be a pity to say that the
investment in GT had only costs and no benefits :).
What we introduce in Pharo should be maintainable by the majority.
- method comments (look at Glamour not a single method comment!!!!!!!!!)
- decent class comments and not just plain shit “this class is abstract”
- tests and not with a super funky system that only one guy understand
- less use of Pragmas
- You see if
I use Statespecs and
you use GTExample and
denis use his testing framework because it is cooler
when we improve SUnit (which we will do) then fewer components benefit from it
we have to pay attention to Statespecs, GTExample,….. instead of ONE framework.
I do agree that one framework is important. Now, SUnit is around since decades and did not
really change much so I do not think it would be such a bad thing to revisit its usage.
GTExample is not only SUnit replacement, but also a way to document and communicate. I
would be very happy to have a conversation about it. When I wanted to talk about examples
a couple of years ago, there was not much interest for it. So, we went on to do our
homework and now have significant case studies that drove significant projects, and now we
can have that conversation with more concrete facts around us.
I think that Pharo will get a lot more picky about its components. So
We are talking about Pharo 8.0
so you can be prepared. But do not come to tell me that we did not tell it.
Good. We will still continue producing components that are free and available and people
will be able to pick them if they want. The cool thing with Pharo getting more modular is
that now the cost of people trying things out is smaller so this should raise more
interesting debates, which I think is a healthy thing.
I really think that Pharo 8.0 will be about massive cleaning up.
So as a community we will have to have a real discussion about Pharo 80
because we will raise the bar and I will push all my voice for that because we cannot
I think that we should set some basic rules such as the tools we want for Pharo
development and the quality rules.
>> On Mar 17, 2018, at 6:39 PM, Stéphane Ducasse <stephane.ducasse(a)inria.fr>
>> I would like also to see what is the vision for the future of Moose.
>> Because we will put some effort on the table but not blindly and I would like to
>> throw away months of work.
>> I would like to know what is the status of Glamour development because iceberg
shows that Glamour is buggy.
>> We also have memory leaks in Pharo because of GT tools and this is super
>> I think that there are too many announcers to my personal taste
>>> On 17 Mar 2018, at 18:26, Stéphane Ducasse <stephane.ducasse(a)inria.fr>
>>>> On 17 Mar 2018, at 17:42, Tudor Girba <tudor(a)tudorgirba.com>
>>>> Andrei and I allocated next Tuesday to look into migrating the code to
GitHub. Can we sync on Discord for this?
>>> Yes it would be nice.
>>> Now tuesday we will have a meeting with Guille and others because for Pharo
we can make sure that
>>> we can get exactly the same system to reproduce bugs and not end upi with
situation like two weeks ago where we could not get Pharo
>>> opening. So may be the pattern for Pharo can be applied to Moose.
>>> For the new moose I do not want to have one year open session. I’m fed up to
have no possibility to go back in the past.
>>> So we should find a solution and a real one. I’m not in the mood to lose my
energy on something that
>>> is unmanageable and just a “fuite en avant”.
>>> So may be automatic release every two weeks is a solution. It should not be
difficult to git.
>>> I also would like that subprojects are managed nicely and modularly. For
example I do not understand why we have Roassal-VW in Moose.
>>> I want to make sure that we can get moose without GTExample also.
>>> We should have a pattern for subcomponents and projects.
>>> Here we see already that there are difference. SmaCC easy it is external.
>>> I will start to migrate (I cleaned RoelTyper).
>>>>> On Mar 17, 2018, at 9:58 AM, Stéphane Ducasse
>>>>> Hi guys
>>>>> We started to have a look at the bug entries of Moose on github.
>>>>> We will start to migrate Moose to github. We will have to think how
to manage this.
>>>>> Baseline migration
>>>>> I would like to enforce the following:
>>>>> - the feature todos should not be managed in the bug tracker. Trello
is good for this.
>>>>> - Now todo related to current situation: such as remove empty class,
split package should at least the entry should be tagged with todo.
>>>>> - close any bug entry that does not have a description how to
>>>>> Stéphane Ducasse
>>>>> 03 59 35 87 52
>>>>> Assistant: Julie Jonas
>>>>> FAX 03 59 57 78 50
>>>>> TEL 03 59 35 86 16
>>>>> S. Ducasse - Inria
>>>>> 40, avenue Halley,
>>>>> Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
>>>>> Villeneuve d'Ascq 59650
>>>>> Moose-dev mailing list
>>>> "To lead is not to demand things, it is to make them happen."
>>>> Moose-dev mailing list
>>> Stéphane Ducasse
>>> 03 59 35 87 52
>>> Assistant: Julie Jonas
>>> FAX 03 59 57 78 50
>>> TEL 03 59 35 86 16
>>> S. Ducasse - Inria
>>> 40, avenue Halley,
>>> Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
>>> Villeneuve d'Ascq 59650
>>> Moose-dev mailing list
>> Stéphane Ducasse
>> 03 59 35 87 52
>> Assistant: Julie Jonas
>> FAX 03 59 57 78 50
>> TEL 03 59 35 86 16
>> S. Ducasse - Inria
>> 40, avenue Halley,
>> Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
>> Villeneuve d'Ascq 59650
>> Moose-dev mailing list
> "Beauty is where we see it."
> Moose-dev mailing list
03 59 35 87 52
Assistant: Julie Jonas
FAX 03 59 57 78 50
TEL 03 59 35 86 16
S. Ducasse - Inria
40, avenue Halley,
Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
Villeneuve d'Ascq 59650
Moose-dev mailing list
"Obvious things are difficult to teach."