Re: [Pharo-project] Browsing long methods
PluggableTextMorph and friends are a mess, i've tried to clean it up once and found it to be really hard. I will be showing the support for text in Shapes ( the UI framework used by Gaucho), which lays out text using Pango, and renderers it using Athens (with a Cairo backend). Simple and yet powerful, thanks to Pango. Fernando On Mon, May 21, 2012 at 12:42 PM, Guillermo Polito <guillermopolito@gmail.com> wrote:
Nice, the paragraph is calculated about 7~8 times in a pluggable text morph (depending on the user).
And since the composition of a paragraph for a long method takes long (some minutes), it takes 7 times to render it (I've never was able to wait for it. Â I always lose my patience before).
Guille
On Mon, May 21, 2012 at 11:41 AM, Guillermo Polito <guillermopolito@gmail.com<mailto:guillermopolito@gmail.com>> wrote: Browsing a long method (lets say, of ~270KB of sourcecode) just hangs the image.
Interrupting doesn't even give me control over my image again. Â It does no open a debugger, but info is printed in stdout, so I assume that my UIProcess died, but the event fetcher is still alive...
One of the processes that get interrupted prints:
SmallIdentityDictionary(SmallDictionary)>>at:ifAbsent: MorphExtension>>valueOfProperty:ifAbsent: MorphExtension>>valueOfProperty: ScrollBar(Morph)>>valueOfProperty: ScrollBar(Morph)>>theme ScrollBar>>normalThumbFillStyle ScrollBar>>adoptGradientColor: ScrollBar>>sliderColor: ScrollBar>>adoptPaneColor: PluggableMultiColumnListMorph(Morph)>>adoptPaneColor: in Block: [:m | m adoptPaneColor: paneColor]
So I just changed #adoptPaneColor: in ScrollBar to do nothing, and I am able to interrupt again. So it makes me think here it is where the UIProcess gets killed...
Now, for the browser stuff, it seems that TextComposer>>#composeAllLines never finishes. Â I'm still investigating, but any clue is helpful :).
Guille
Yes but if we do not improve the system and gaucho is not usable by other than you then at the end we got nothing so the solution is to improve the system and eventually be ready to switch to something better but not before :) Stef
PluggableTextMorph and friends are a mess, i've tried to clean it up once and found it to be really hard.
I will be showing the support for text in Shapes ( the UI framework used by Gaucho), which lays out text using Pango, and renderers it using Athens (with a Cairo backend). Simple and yet powerful, thanks to Pango.
Fernando
On Mon, May 21, 2012 at 12:42 PM, Guillermo Polito <guillermopolito@gmail.com> wrote:
Nice, the paragraph is calculated about 7~8 times in a pluggable text morph (depending on the user).
And since the composition of a paragraph for a long method takes long (some minutes), it takes 7 times to render it (I've never was able to wait for it. I always lose my patience before).
Guille
On Mon, May 21, 2012 at 11:41 AM, Guillermo Polito <guillermopolito@gmail.com<mailto:guillermopolito@gmail.com>> wrote: Browsing a long method (lets say, of ~270KB of sourcecode) just hangs the image.
Interrupting doesn't even give me control over my image again. It does no open a debugger, but info is printed in stdout, so I assume that my UIProcess died, but the event fetcher is still alive...
One of the processes that get interrupted prints:
SmallIdentityDictionary(SmallDictionary)>>at:ifAbsent: MorphExtension>>valueOfProperty:ifAbsent: MorphExtension>>valueOfProperty: ScrollBar(Morph)>>valueOfProperty: ScrollBar(Morph)>>theme ScrollBar>>normalThumbFillStyle ScrollBar>>adoptGradientColor: ScrollBar>>sliderColor: ScrollBar>>adoptPaneColor: PluggableMultiColumnListMorph(Morph)>>adoptPaneColor: in Block: [:m | m adoptPaneColor: paneColor]
So I just changed #adoptPaneColor: in ScrollBar to do nothing, and I am able to interrupt again. So it makes me think here it is where the UIProcess gets killed...
Now, for the browser stuff, it seems that TextComposer>>#composeAllLines never finishes. I'm still investigating, but any clue is helpful :).
Guille
participants (2)
-
Fernando Olivero -
Stéphane Ducasse