Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
October 2013
- 93 participants
- 1807 messages
Re: [Pharo-dev] How to create lines with Athens
by Nicolas Cellier
It's normal that external resources don't survive a snapshot, whatever
format.
But it's well behaved to try to re-allocate resources on resurrection.
As a dumb user, I would expect this to happen automatically under the hood,
because I would consider that a surface/pixmap or whatever resource is
implied in displaying/handling the graphics is an implementation detail
which I should not care of at my own level.
The library could provide hook for accessing these low level details in
rare cases when user want special optimization, but should hide them
otherwise.
2013/10/31 Alexandre Bergel <alexandre.bergel(a)me.com>
> I face the same situation... Would be great to fix this
>
> Alexandre
>
>
> On Oct 31, 2013, at 12:40 PM, kilon alios <kilon.alios(a)gmail.com> wrote:
>
> > save the image while the morph is displayed, reload the image and in its
> place there is the big red box with the yellow X , reporting an error with
> Athens. I have reproduced the error on Windows too with the Athens
> examples. I assumed my explanation was clear , I hope its clear now.
> >
> > This means that its impossible to save an image with a morph using
> Athens displaying and have it reload back when the image is reloaded.
> >
> >
> > On Thu, Oct 31, 2013 at 5:05 PM, Stéphane Ducasse <
> stephane.ducasse(a)inria.fr> wrote:
> >
> > On Oct 31, 2013, at 9:55 AM, kilon alios <kilon.alios(a)gmail.com> wrote:
> >
> >> yes I am aware of the examples already, I am learning from them. Please
> note I have found a bug with Athens, which looks to me pretty major. If I
> save a morph using Athens
> >
> > what do you mean save a morph
> >
> >> and reload the image,
> >
> > what do you mean?
> >
> >
> >> I see the red box of doom. For example trying your example from
> stackoverflow. Are you aware of this bug ?
> >>
> >>
> >> On Thu, Oct 31, 2013 at 2:43 AM, Igor Stasenko <siguctua(a)gmail.com>
> wrote:
> >> ah, yes , there's also examples in
> >> Athens-Examples package.
> >>
> >>
> >> On 31 October 2013 01:30, Igor Stasenko <siguctua(a)gmail.com> wrote:
> >>
> >> On 30 October 2013 23:02, kilon alios <kilon.alios(a)gmail.com> wrote:
> >> well I just asked if there is any kind of Documentation about Athens .
> Or should I just read the code and ask questions ?
> >>
> >>
> >> the main source of documentation right now is class comments
> >> and tutorial.
> >> I've spent quite of a time commenting the central classes of athens,
> >> hope that's helpful.
> >> Of course this does not replacement for a well written docu, and that
> needs to be done.
> >>
> >>
> >> On Wed, Oct 30, 2013 at 11:51 PM, Igor Stasenko <siguctua(a)gmail.com>
> wrote:
> >> i hope you satisfied with my answer.
> >> you welcome to ask more, if you not :)
> >>
> >>
> >> On 30 October 2013 22:32, dimitris chloupis <thekilon(a)yahoo.co.uk>
> wrote:
> >>
> http://stackoverflow.com/questions/19694197/how-to-create-lines-with-athens
> >>
> >>
> >>
> >> --
> >> Best regards,
> >> Igor Stasenko.
> >>
> >>
> >>
> >>
> >> --
> >> Best regards,
> >> Igor Stasenko.
> >>
> >>
> >>
> >> --
> >> Best regards,
> >> Igor Stasenko.
> >>
> >
> >
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
Oct. 31, 2013
Re: [Pharo-dev] Losing instance variable addition
by Stéphane Ducasse
On Oct 31, 2013, at 8:25 AM, Tudor Girba <tudor(a)tudorgirba.com> wrote:
> I completely disagree with this point of view :).
>
> We should assume an open world, not a close one. From this point of view, any part of the system should be extensible by anyone. In most other languages I know, it is not even possible to extend easily a class with new functionality. In Pharo we can, and we know it is a powerful mechanism. It is not the responsibility of the base class to know what extensions are out there and protect against them. Just like with subclassing, It is in the responsibility of the extender.
+ 1
the runtime should be smart enough to recalculate objects shape.
> We should be able to do the same with state as well. Without this mechanism, we are forced to put in place clunky dictionary-based mechanism to support state extension. Essentially, any white-box framework does that. For example, Morphic does that, FAMIX and Roassal do that, too (and yes, this is not a bad thing).
>
> We need this mechanism in the environment, and if I understand Slots correctly, now we have first class support for it. This also means that overrides will be easier to deal with, too. Of course, overrides can induce headaches from time to time, but we should treat these headaches with proper tools, not by forbidding the world to extend.
This is not the same :)
>
> And if we are at it, we should also be able to extend a class with Traits, too.
>
> Cheers,
> Doru
>
>
>
>
> On Wed, Oct 30, 2013 at 10:54 PM, Camillo Bruni <camillobruni(a)gmail.com> wrote:
>
> On 2013-10-30, at 22:36, Igor Stasenko <siguctua(a)gmail.com> wrote:
>
> > I don't think there's something to fix.
> > You cannot 'extend' classes belonging to other package in any other way
> > than adding extension methods.
> > Allowing extension of ivars or any other vars by foreign package
> > is road to nowhere.
> >
> > I would not like if shape of my kernel classes depends on what packages i load
> > or in what order i loaded them.
> > To me it is clear that if one needs to add/remove/modify instance variables
> > of some class, those changes should belong to the package containing that class,
> > not some random package.
>
> Exactly, it would cause the same problem as we have with overrides in monticello
>
>
>
> --
> www.tudorgirba.com
>
> "Every thing has its own flow"
Oct. 31, 2013
Re: [Pharo-dev] Questions about Athens
by Stéphane Ducasse
Hi
> I created a new subject
>
> About the problem to recreate it all it takes is a demo := AthensDemoMorph new openInWorld . It opens the morph with the Athens grey box, I save the image , close pharo, open pharo which reloads the image automagically and BOOM Red Box of Doom :) My other tries also are based on AthensDemoMorph since I cant find documentation to do things differently.
>
> So lets get to the questions
>
> 1) You say you have morphs using Athens that don't have this problem, care to explain further ?
Did you see the tutorial?
> 2) How do I recreate automatically those surfaces ?
>
> 3) Do I need to instruct the image on load to reinitialize those objects ?
>
> 4) If yes How I do that ?
>
> You say its a major problem but yet its not an Athens bug. I know this is has to do with how image saves live objects and that NB calls are not part of the image hence creating the problem.
>
> 5) Are there ways to avoid the problem ?
>
> 6) Also why there is a Red Box of Doom in the first place ?
>
> 7) Why the debugger is not triggered as it should be ?
It is now you should bring the halos and click on debug draw something error
>
> 8) Is that critical a failure of Morphic ?
>
> 9) Why Athens even though is based largely on Cairo , and taking into consideration the intention to extend to other graphical interfaces, not following the Cairo design more closely so we can use the Cairo tutorials ?
Because Athens is not Cairo. Athens is an API so that we can have multiple graphical back-ends in the future.
> 10) Is the Cairo design so prohibiting / limiting for Athens ? Does Cairo do things so differently than other vector based libraries ?
Cairo does not have an OO design from what I know.
> 11) How important is Athens to Pharo community , meaning further bug fixes, improvements , tutorials etc ? I hear there is an intention to gradual move Morphic to it. Is this true ?
Athens is the new canvas and we will rewrite everything to use it. Now Athens will have a default version that is just the default balloon.
Now the guy that should have helped us (fernando) left in hurry and we lost the money 62 K Euros of his salary.
Igor has been working more than a year in total on Athens, textEditor and others so we will not give up now.
> I really like Athens, I am asking all these questions because I need to make a fast decision whether I will continue to use Pharo or not for my project. Learning OpenGL and using NBOpenGL produced zero results for me.
Did you check Roassal 3d because they forgot to publish the enhancements they did to NBOpenGL
> I was not even able to create a single triangle.
You should look at Roassal 3d because this is working.
> My gpu driver because of Macos gave me close to zero errors, and Red Box of Doom made it impossible to debug opengl problems. In short close to zero error reporting made it a no go for me.
>
> So I fall back at much simpler solutions because I want to create my own GUI API. I see several solutions for this
>
> 1) Pharo Athens
> 2) Amber SVG / WebGL based Vector libs like Pixi / Athens / HTML5 + CSS
> 3) Python + PyQT + QT
>
> I rather stay with Pharo. But I already wasted months of doing nothing and going nowhere with NBOpenGL , I am tried of moving in circles.
I'm sure you learned probably a lot.
Now for a GUI API may be openGL is not the best to start. What I can tell you is that with Athens we will be able to have the first
mix between 3D and 2D vector graphics.
> I am not frustrated cause I knew when I tried that OpenGL was very hard ( I was warned by several opengl people ) so failure was always an option , but I can no longer justify wasting my time getting nowhere.
>
> I dont need much from a graphic lib all I need is
>
> a) Stability . If it crashes regularly its no good
>
> b) Speed, if moving graphic elements around slows down (anything above 20%) dual cores , its no good
>
> c) Basic Feature set like , lines, curves , circles and ellipses , display of raster graphics, simple animations , import export of graphic formats, png , jpg and svg is enough.
>
> Looks like Athens satisfies b and c , I am not so sure about a.
It is stable.
> I am trying to understand Athens code from reading it, once again I am a big failure at understanding code.
The tutorial is the way to go. Why this is not enough.
> So is there any hope for someone like me , that he is not a very good coder, he is new to Pharo and he has a simple mind to use Athens to make a basic GUI API ?
Yes just focus on Athens.
For example extend the
> On Thu, Oct 31, 2013 at 6:07 PM, Igor Stasenko <siguctua(a)gmail.com> wrote:
>
> On 31 October 2013 16:40, kilon alios <kilon.alios(a)gmail.com> wrote:
> save the image while the morph is displayed, reload the image and in its place there is the big red box with the yellow X , reporting an error with Athens. I have reproduced the error on Windows too with the Athens examples. I assumed my explanation was clear , I hope its clear now.
>
>
> no. not clear. which morph? what class, how you using it etc.
> I have morphs which using Athens for drawing and i can save and load image back and i don't have red squares of death.
>
> This means that its impossible to save an image with a morph using Athens displaying and have it reload back when the image is reloaded.
>
> The athens-surface, especially cairo surface is valid only within a single session.
> if you boot new image, you must recreate (or stop using) surface you used in previous session.
> Otherwise you will have red box of doom.
>
> And while i agree that this is pretty major problem (in terms of making your morph to be session-aware
> and in terms of managing external resources) i am far from calling it a bug of Athens of any kind per se.
>
>
> On Thu, Oct 31, 2013 at 5:05 PM, Stéphane Ducasse <stephane.ducasse(a)inria.fr> wrote:
>
> On Oct 31, 2013, at 9:55 AM, kilon alios <kilon.alios(a)gmail.com> wrote:
>
>> yes I am aware of the examples already, I am learning from them. Please note I have found a bug with Athens, which looks to me pretty major. If I save a morph using Athens
>
> what do you mean save a morph
>
>> and reload the image,
>
> what do you mean?
>
>
>> I see the red box of doom. For example trying your example from stackoverflow. Are you aware of this bug ?
>>
>>
>> On Thu, Oct 31, 2013 at 2:43 AM, Igor Stasenko <siguctua(a)gmail.com> wrote:
>> ah, yes , there's also examples in
>> Athens-Examples package.
>>
>>
>> On 31 October 2013 01:30, Igor Stasenko <siguctua(a)gmail.com> wrote:
>>
>> On 30 October 2013 23:02, kilon alios <kilon.alios(a)gmail.com> wrote:
>> well I just asked if there is any kind of Documentation about Athens . Or should I just read the code and ask questions ?
>>
>>
>> the main source of documentation right now is class comments
>> and tutorial.
>> I've spent quite of a time commenting the central classes of athens,
>> hope that's helpful.
>> Of course this does not replacement for a well written docu, and that needs to be done.
>>
>>
>> On Wed, Oct 30, 2013 at 11:51 PM, Igor Stasenko <siguctua(a)gmail.com> wrote:
>> i hope you satisfied with my answer.
>> you welcome to ask more, if you not :)
>>
>>
>> On 30 October 2013 22:32, dimitris chloupis <thekilon(a)yahoo.co.uk> wrote:
>> http://stackoverflow.com/questions/19694197/how-to-create-lines-with-athens
>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko.
>>
>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko.
>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko.
>>
>
>
>
>
>
> --
> Best regards,
> Igor Stasenko.
>
Oct. 31, 2013
Re: [Pharo-dev] How to create lines with Athens
by Alexandre Bergel
I face the same situation... Would be great to fix this
Alexandre
On Oct 31, 2013, at 12:40 PM, kilon alios <kilon.alios(a)gmail.com> wrote:
> save the image while the morph is displayed, reload the image and in its place there is the big red box with the yellow X , reporting an error with Athens. I have reproduced the error on Windows too with the Athens examples. I assumed my explanation was clear , I hope its clear now.
>
> This means that its impossible to save an image with a morph using Athens displaying and have it reload back when the image is reloaded.
>
>
> On Thu, Oct 31, 2013 at 5:05 PM, Stéphane Ducasse <stephane.ducasse(a)inria.fr> wrote:
>
> On Oct 31, 2013, at 9:55 AM, kilon alios <kilon.alios(a)gmail.com> wrote:
>
>> yes I am aware of the examples already, I am learning from them. Please note I have found a bug with Athens, which looks to me pretty major. If I save a morph using Athens
>
> what do you mean save a morph
>
>> and reload the image,
>
> what do you mean?
>
>
>> I see the red box of doom. For example trying your example from stackoverflow. Are you aware of this bug ?
>>
>>
>> On Thu, Oct 31, 2013 at 2:43 AM, Igor Stasenko <siguctua(a)gmail.com> wrote:
>> ah, yes , there's also examples in
>> Athens-Examples package.
>>
>>
>> On 31 October 2013 01:30, Igor Stasenko <siguctua(a)gmail.com> wrote:
>>
>> On 30 October 2013 23:02, kilon alios <kilon.alios(a)gmail.com> wrote:
>> well I just asked if there is any kind of Documentation about Athens . Or should I just read the code and ask questions ?
>>
>>
>> the main source of documentation right now is class comments
>> and tutorial.
>> I've spent quite of a time commenting the central classes of athens,
>> hope that's helpful.
>> Of course this does not replacement for a well written docu, and that needs to be done.
>>
>>
>> On Wed, Oct 30, 2013 at 11:51 PM, Igor Stasenko <siguctua(a)gmail.com> wrote:
>> i hope you satisfied with my answer.
>> you welcome to ask more, if you not :)
>>
>>
>> On 30 October 2013 22:32, dimitris chloupis <thekilon(a)yahoo.co.uk> wrote:
>> http://stackoverflow.com/questions/19694197/how-to-create-lines-with-athens
>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko.
>>
>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko.
>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko.
>>
>
>
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Oct. 31, 2013
Re: [Pharo-dev] Questions about Athens
by Alexandre Bergel
Hi Kilon,
Roassal uses Athens (look for a dedicated package in the Roassal smalltalkhub repository). You may want to have a look at the implementation if you are looking for an application using Athens.
Cheers,
Alexandre
On Oct 31, 2013, at 2:24 PM, kilon alios <kilon.alios(a)gmail.com> wrote:
> I created a new subject
>
> About the problem to recreate it all it takes is a demo := AthensDemoMorph new openInWorld . It opens the morph with the Athens grey box, I save the image , close pharo, open pharo which reloads the image automagically and BOOM Red Box of Doom :) My other tries also are based on AthensDemoMorph since I cant find documentation to do things differently.
>
> So lets get to the questions
>
> 1) You say you have morphs using Athens that don't have this problem, care to explain further ?
>
> 2) How do I recreate automatically those surfaces ?
>
> 3) Do I need to instruct the image on load to reinitialize those objects ?
>
> 4) If yes How I do that ?
>
> You say its a major problem but yet its not an Athens bug. I know this is has to do with how image saves live objects and that NB calls are not part of the image hence creating the problem.
>
> 5) Are there ways to avoid the problem ?
>
> 6) Also why there is a Red Box of Doom in the first place ?
>
> 7) Why the debugger is not triggered as it should be ?
>
> 8) Is that critical a failure of Morphic ?
>
> 9) Why Athens even though is based largely on Cairo , and taking into consideration the intention to extend to other graphical interfaces, not following the Cairo design more closely so we can use the Cairo tutorials ?
>
> 10) Is the Cairo design so prohibiting / limiting for Athens ? Does Cairo do things so differently than other vector based libraries ?
>
> 11) How important is Athens to Pharo community , meaning further bug fixes, improvements , tutorials etc ? I hear there is an intention to gradual move Morphic to it. Is this true ?
>
> I really like Athens, I am asking all these questions because I need to make a fast decision whether I will continue to use Pharo or not for my project. Learning OpenGL and using NBOpenGL produced zero results for me. I was not even able to create a single triangle. My gpu driver because of Macos gave me close to zero errors, and Red Box of Doom made it impossible to debug opengl problems. In short close to zero error reporting made it a no go for me.
>
> So I fall back at much simpler solutions because I want to create my own GUI API. I see several solutions for this
>
> 1) Pharo Athens
> 2) Amber SVG / WebGL based Vector libs like Pixi / Athens / HTML5 + CSS
> 3) Python + PyQT + QT
>
> I rather stay with Pharo. But I already wasted months of doing nothing and going nowhere with NBOpenGL , I am tried of moving in circles. I am not frustrated cause I knew when I tried that OpenGL was very hard ( I was warned by several opengl people ) so failure was always an option , but I can no longer justify wasting my time getting nowhere.
>
> I dont need much from a graphic lib all I need is
>
> a) Stability . If it crashes regularly its no good
>
> b) Speed, if moving graphic elements around slows down (anything above 20%) dual cores , its no good
>
> c) Basic Feature set like , lines, curves , circles and ellipses , display of raster graphics, simple animations , import export of graphic formats, png , jpg and svg is enough.
>
> Looks like Athens satisfies b and c , I am not so sure about a.
>
> I am trying to understand Athens code from reading it, once again I am a big failure at understanding code.
>
> So is there any hope for someone like me , that he is not a very good coder, he is new to Pharo and he has a simple mind to use Athens to make a basic GUI API ?
>
> On Thu, Oct 31, 2013 at 6:07 PM, Igor Stasenko <siguctua(a)gmail.com> wrote:
>
> On 31 October 2013 16:40, kilon alios <kilon.alios(a)gmail.com> wrote:
> save the image while the morph is displayed, reload the image and in its place there is the big red box with the yellow X , reporting an error with Athens. I have reproduced the error on Windows too with the Athens examples. I assumed my explanation was clear , I hope its clear now.
>
>
> no. not clear. which morph? what class, how you using it etc.
> I have morphs which using Athens for drawing and i can save and load image back and i don't have red squares of death.
>
> This means that its impossible to save an image with a morph using Athens displaying and have it reload back when the image is reloaded.
>
> The athens-surface, especially cairo surface is valid only within a single session.
> if you boot new image, you must recreate (or stop using) surface you used in previous session.
> Otherwise you will have red box of doom.
>
> And while i agree that this is pretty major problem (in terms of making your morph to be session-aware
> and in terms of managing external resources) i am far from calling it a bug of Athens of any kind per se.
>
>
> On Thu, Oct 31, 2013 at 5:05 PM, Stéphane Ducasse <stephane.ducasse(a)inria.fr> wrote:
>
> On Oct 31, 2013, at 9:55 AM, kilon alios <kilon.alios(a)gmail.com> wrote:
>
>> yes I am aware of the examples already, I am learning from them. Please note I have found a bug with Athens, which looks to me pretty major. If I save a morph using Athens
>
> what do you mean save a morph
>
>> and reload the image,
>
> what do you mean?
>
>
>> I see the red box of doom. For example trying your example from stackoverflow. Are you aware of this bug ?
>>
>>
>> On Thu, Oct 31, 2013 at 2:43 AM, Igor Stasenko <siguctua(a)gmail.com> wrote:
>> ah, yes , there's also examples in
>> Athens-Examples package.
>>
>>
>> On 31 October 2013 01:30, Igor Stasenko <siguctua(a)gmail.com> wrote:
>>
>> On 30 October 2013 23:02, kilon alios <kilon.alios(a)gmail.com> wrote:
>> well I just asked if there is any kind of Documentation about Athens . Or should I just read the code and ask questions ?
>>
>>
>> the main source of documentation right now is class comments
>> and tutorial.
>> I've spent quite of a time commenting the central classes of athens,
>> hope that's helpful.
>> Of course this does not replacement for a well written docu, and that needs to be done.
>>
>>
>> On Wed, Oct 30, 2013 at 11:51 PM, Igor Stasenko <siguctua(a)gmail.com> wrote:
>> i hope you satisfied with my answer.
>> you welcome to ask more, if you not :)
>>
>>
>> On 30 October 2013 22:32, dimitris chloupis <thekilon(a)yahoo.co.uk> wrote:
>> http://stackoverflow.com/questions/19694197/how-to-create-lines-with-athens
>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko.
>>
>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko.
>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko.
>>
>
>
>
>
>
> --
> Best regards,
> Igor Stasenko.
>
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Oct. 31, 2013
Re: [Pharo-dev] Losing instance variable addition
by Stéphane Ducasse
On Oct 31, 2013, at 6:37 PM, Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com> wrote:
> Or, you infer the right order, for example from the AST of each initializer you should be able to get the dependency graph...
> My own preference goes to laziness ;)
me too.
Same for ClassVariables they should be totally self initializable without dependencies.
Stef
>
>
> 2013/10/31 Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com>
> Unless initialization is lazy (and you arrange for avoiding/detecting circular dependency)
>
>
> 2013/10/31 Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com>
> And you're going to bump into slot initialization order...
>
>
> 2013/10/31 Stéphane Ducasse <stephane.ducasse(a)inria.fr>
>
> On Oct 30, 2013, at 10:54 PM, Camillo Bruni <camillobruni(a)gmail.com> wrote:
>
> >
> > On 2013-10-30, at 22:36, Igor Stasenko <siguctua(a)gmail.com> wrote:
> >
> >> I don't think there's something to fix.
> >> You cannot 'extend' classes belonging to other package in any other way
> >> than adding extension methods.
> >> Allowing extension of ivars or any other vars by foreign package
> >> is road to nowhere.
> >>
> >> I would not like if shape of my kernel classes depends on what packages i load
> >> or in what order i loaded them.
> >> To me it is clear that if one needs to add/remove/modify instance variables
> >> of some class, those changes should belong to the package containing that class,
> >> not some random package.
> >
> > Exactly, it would cause the same problem as we have with overrides in monticello
>
> Sorry but this is not the same as having overrides in Monticello. It is the same as having class extensions!
> So class extensions are powerful and we should get the same for instance variables.
>
> Now the real question is not shape is how you garantee that it is well initialized!!!
> Because you do not want to extend initialize because it does not work modularly.
> Now with slot we can attach initializers to them and then we can get it modular.
>
> Stef
>
>
>
>
>
Oct. 31, 2013
Re: [Pharo-dev] Losing instance variable addition
by Nicolas Cellier
Or, you infer the right order, for example from the AST of each initializer
you should be able to get the dependency graph...
My own preference goes to laziness ;)
2013/10/31 Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com>
> Unless initialization is lazy (and you arrange for avoiding/detecting
> circular dependency)
>
>
> 2013/10/31 Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com>
>
>> And you're going to bump into slot initialization order...
>>
>>
>> 2013/10/31 Stéphane Ducasse <stephane.ducasse(a)inria.fr>
>>
>>>
>>> On Oct 30, 2013, at 10:54 PM, Camillo Bruni <camillobruni(a)gmail.com>
>>> wrote:
>>>
>>> >
>>> > On 2013-10-30, at 22:36, Igor Stasenko <siguctua(a)gmail.com> wrote:
>>> >
>>> >> I don't think there's something to fix.
>>> >> You cannot 'extend' classes belonging to other package in any other
>>> way
>>> >> than adding extension methods.
>>> >> Allowing extension of ivars or any other vars by foreign package
>>> >> is road to nowhere.
>>> >>
>>> >> I would not like if shape of my kernel classes depends on what
>>> packages i load
>>> >> or in what order i loaded them.
>>> >> To me it is clear that if one needs to add/remove/modify instance
>>> variables
>>> >> of some class, those changes should belong to the package containing
>>> that class,
>>> >> not some random package.
>>> >
>>> > Exactly, it would cause the same problem as we have with overrides in
>>> monticello
>>>
>>> Sorry but this is not the same as having overrides in Monticello. It is
>>> the same as having class extensions!
>>> So class extensions are powerful and we should get the same for instance
>>> variables.
>>>
>>> Now the real question is not shape is how you garantee that it is well
>>> initialized!!!
>>> Because you do not want to extend initialize because it does not work
>>> modularly.
>>> Now with slot we can attach initializers to them and then we can get it
>>> modular.
>>>
>>> Stef
>>>
>>>
>>>
>>
>
Oct. 31, 2013
Re: [Pharo-dev] Losing instance variable addition
by Nicolas Cellier
Unless initialization is lazy (and you arrange for avoiding/detecting
circular dependency)
2013/10/31 Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com>
> And you're going to bump into slot initialization order...
>
>
> 2013/10/31 Stéphane Ducasse <stephane.ducasse(a)inria.fr>
>
>>
>> On Oct 30, 2013, at 10:54 PM, Camillo Bruni <camillobruni(a)gmail.com>
>> wrote:
>>
>> >
>> > On 2013-10-30, at 22:36, Igor Stasenko <siguctua(a)gmail.com> wrote:
>> >
>> >> I don't think there's something to fix.
>> >> You cannot 'extend' classes belonging to other package in any other way
>> >> than adding extension methods.
>> >> Allowing extension of ivars or any other vars by foreign package
>> >> is road to nowhere.
>> >>
>> >> I would not like if shape of my kernel classes depends on what
>> packages i load
>> >> or in what order i loaded them.
>> >> To me it is clear that if one needs to add/remove/modify instance
>> variables
>> >> of some class, those changes should belong to the package containing
>> that class,
>> >> not some random package.
>> >
>> > Exactly, it would cause the same problem as we have with overrides in
>> monticello
>>
>> Sorry but this is not the same as having overrides in Monticello. It is
>> the same as having class extensions!
>> So class extensions are powerful and we should get the same for instance
>> variables.
>>
>> Now the real question is not shape is how you garantee that it is well
>> initialized!!!
>> Because you do not want to extend initialize because it does not work
>> modularly.
>> Now with slot we can attach initializers to them and then we can get it
>> modular.
>>
>> Stef
>>
>>
>>
>
Oct. 31, 2013
Re: [Pharo-dev] Losing instance variable addition
by Nicolas Cellier
And you're going to bump into slot initialization order...
2013/10/31 Stéphane Ducasse <stephane.ducasse(a)inria.fr>
>
> On Oct 30, 2013, at 10:54 PM, Camillo Bruni <camillobruni(a)gmail.com>
> wrote:
>
> >
> > On 2013-10-30, at 22:36, Igor Stasenko <siguctua(a)gmail.com> wrote:
> >
> >> I don't think there's something to fix.
> >> You cannot 'extend' classes belonging to other package in any other way
> >> than adding extension methods.
> >> Allowing extension of ivars or any other vars by foreign package
> >> is road to nowhere.
> >>
> >> I would not like if shape of my kernel classes depends on what packages
> i load
> >> or in what order i loaded them.
> >> To me it is clear that if one needs to add/remove/modify instance
> variables
> >> of some class, those changes should belong to the package containing
> that class,
> >> not some random package.
> >
> > Exactly, it would cause the same problem as we have with overrides in
> monticello
>
> Sorry but this is not the same as having overrides in Monticello. It is
> the same as having class extensions!
> So class extensions are powerful and we should get the same for instance
> variables.
>
> Now the real question is not shape is how you garantee that it is well
> initialized!!!
> Because you do not want to extend initialize because it does not work
> modularly.
> Now with slot we can attach initializers to them and then we can get it
> modular.
>
> Stef
>
>
>
Oct. 31, 2013
Re: [Pharo-dev] Using Gutenberg
by Stéphane Ducasse
read the latex we documented everything.
We added
[[[ with caption and ref]]]
and what is missing is a kind of tag to manage ref, comment in text and other little stuff.
After that we have everything needed to write real book.
We should improve the latex macros.
Stef
>> here is the pier syntax do you tell me that this is difficult to learn?
>>
>> ! header
>> !!
>> !!!
>>
>> list
>> -
>> #
>>
>> ref
>> * *
>>
>> [[[ code
>> ]]]
>>
>> ==code==
>
> And what was added for Gutemberg?
Oct. 31, 2013