Wow!

> On 26 Mar 2015, at 14:24, Andrei Chis <chisvasileand...@gmail.com> wrote:
> 
> Now, with Alain's help, also the memory leak from Rubric is solved. 
> All fixes will be in the next version, which will hopefully be ready today.
> 
> Cheers,
> Andrei
> 
> On Wed, Mar 25, 2015 at 7:05 PM, stepharo <steph...@free.fr> wrote:
> +1
> 
> 
> Le 25/3/15 11:52, Sven Van Caekenberghe a écrit :
> 
> YES!
> 
> My image went from 65Mb to 34Mb (it contains Seaside/Bootstrap and several 
> resources).
> 
> Thanks a lot, you guys (and everybody else who contributes) rock!
> 
> Let's hope this solves the issue.
> 
> On 25 Mar 2015, at 11:26, Andrei Chis <chisvasileand...@gmail.com> wrote:
> 
> To load the latest version in an image execute:
> 
> {       { 'ConfigurationOfRubric'. 'AlainPlantec'. 'Rubric' }.
>          { 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }.
>          { 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }.
>          { 'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }.
>          { 'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }.
>         { 'ConfigurationOfGToolkitCore'. 'Moose'. 'GToolkit' }.
> } do: [ :spec |
>          Gofer new
>                  smalltalkhubUser: spec second project: spec third;
>                  package: spec first;
>                  load ].
> ConfigurationOfGToolkitCore loadDevelopment.
> 
> Then run cleanUp:
> 
> Smalltalk cleanUp: true except: #() confirming: false.
> 
> Now only the latest instance of playground/spotter is not garbaged collected, 
> but that would be fixed very soon.
> 
> 
> Cheers,
> Andrei
> 
> 
> 
> 
> On Wed, Mar 25, 2015 at 11:21 AM, Sven Van Caekenberghe <s...@stfx.eu> wrote:
> Please tell us when this gets integrated so that we can test the effect.
> 
> Or to go faster, please give some instructions (an executable expression) 
> that we can execute in the latest image to load the relevant changes.
> 
> We need more eyeballs.
> 
> On 25 Mar 2015, at 09:50, Tudor Girba <tu...@tudorgirba.com> wrote:
> 
> Up to now, we identified two issues that lead to objects not being garbage 
> collected:
> 
> - GLMHintableActionButtonBrick triggers a singleton asynctask that was not 
> cleaned after the task was ready. Now, that problem should be solved in GT.
> 
> - RubFindReplaceService has a Singleton class variable. At the same time, 
> RubFindReplaceService also keeps a reference to the textArea which is part of 
> the morph tree and will prevent the whole UI that includes it to be garbage 
> collected. We are working on dealing with this issue.
> 
> There might be other issues. We need to keep looking.
> 
> Cheers,
> Doru
> 
> 
> 
> On Wed, Mar 25, 2015 at 8:52 AM, stepharo <steph...@free.fr> wrote:
> Hi henrik
> 
> your analyses are great.
> What do you think about
> 
> GTSpotterStep>>#candidates
> 
>      ^ candidates ifNil: [
>          candidates := GTSpotterCandidatesList new.
>          candidates announcer weak subscribe: GTSpotterCandidateAdded do: [ 
> self candidates hasOnlyOneItem ifTrue: [ self selectFirst ] ].
>          candidates announcer weak subscribe: GTSpotterAllCandidatesAdded do: 
> [ self selectFirst ].
>          candidates announcer weak subscribe: GTSpotterAllCandidatesRemoved 
> do: [ self selected: nil ].
>          candidates ]
> 
> Le 24/3/15 21:38, Henrik Sperre Johansen a écrit :
> 
> A tiny bit of code review while I'm at it...
> 
> GTSpotterResultsBrick >> initialize
>       super initialize
>       self band hSpaceFill.
>       self announcer weak subscribe: GLMBrickScrollPositionChanged send:
> #onScrolled to: self
> 
> This is a tempting, but sneaky anti-pattern, you should never, ever, ever
> have to subscribe to your own announcer:
> The reason for calling it an anti-pattern is; if your code actually depends
> on this, it means other sources might invoke changes in you indirectly
> through your announcer, which quickly becomes debugging hell if you allow
> it, and something screws up. (I speak from experience)
> 
> It's much easier to understand when done directly, in this case that means
> extending the super method where announcement is made:
> 
> GTSpotterResultsBrick >> privateScrollPosition:anInteger
>       super privateScrollPosition:anInteger.
>       self onScrolled
> 
> Cheers,
> Henry
> 
> P.S. Announcements are objects, they are intended to hold the data
> subscribers might be interested in.
> Whenever you find yourself writing something like:
> someAnnouncer announce: SomeAnnouncement new
> ask yourself twice if that may lead to subscribers accessing state that
> would more naturally be part of the announcement through other channels
> (such as keeping extra instvars, etc).
> 
> 
> 
> --
> View this message in context: 
> http://forum.world.st/Some-Memory-Leak-tp4814779p4814912.html
> Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
> 
> 
> 
> 
> 
> 
> 
> 
> --
> www.tudorgirba.com
> 
> "Every thing has its own flow"
> 
> 
> 
> 
> 
> 
> 


Reply via email to