2015-02-26 7:58 GMT+01:00 Marcus Denker <marcus.denker@inria.fr>:
On 25 Feb 2015, at 23:28, Thierry Goubier <thierry.goubier@gmail.com> wrote:
Hi,
I made a very simple experiment, with a MCLazyVersionInfo, which holds its ancestors and stepChildren in WeakArray(s), and loads it from repositories on demand.
Installing it on Pharo 40511, and then flushing the Monticello package cache, reduces the image by around 5 MB:
Nice!
Marcus
And it behaves as the non-lazy one. There are a few things to change GUI-side to avoid an unnecessary loading of the complete ancestry of all the packages in the image, but this is workable. I see two ways of using it: as an "install, flush package cache before release and gain 5MB of RAM". If you start regularly developping (loading packages, etc...) then new packages will revert to non-lazy version info (without: 'please wait, I'm loading ancestry' moments). as a permanent change in MC. The change is a bit more intrusive (need to change how working copies are created) but, well, as long as the worked on packages are inside the in-memory MC package cache, behavior is exactly the same as a non-lazy version info. As you prefer. I added an issue: https://pharo.fogbugz.com/default.asp?14997 Thierry