When I prepare a new "shrunk trunk", I run this guy: https://github.com/squeak-smalltalk/squeak-ci/blob/master/shrink-trunk.st. You'll see it just unloads packages and implicitly trusts that those packages know how to correctly unload themselves.
What do you think about having shrink-trunk.st simply be:
Smalltalk unloadAllKnownPackages
so we can then we can maintain it from the image..?
That method does a lot of stuff which is somewhat redundant. It's too long anyway so I'll factor it so we can access just what we want in your shrink-trunk.st script.
BTW, in ReleaseBuilder we call an agressive Smalltalk cleanUp: (true) vs. with #unloadAllKnownPackages and also your shrink we just call Smalltalk cleanUp: (false).
I've looked at the methods and seen the differences between aggressive and not but... I was wondering does anyone know whether there is an over-arching conceptual difference between the two? e.g., under what circumstances would a particular clean-up be considered aggressive vs. not?
On Sat, 31 Aug 2013, Chris Muller wrote:
When I prepare a new "shrunk trunk", I run this guy: https://github.com/squeak-smalltalk/squeak-ci/blob/master/shrink-trunk.st. You'll see it just unloads packages and implicitly trusts that those packages know how to correctly unload themselves.
What do you think about having shrink-trunk.st simply be:
Smalltalk unloadAllKnownPackages
so we can then we can maintain it from the image..?
That method does a lot of stuff which is somewhat redundant. It's too long anyway so I'll factor it so we can access just what we want in your shrink-trunk.st script.
BTW, in ReleaseBuilder we call an agressive Smalltalk cleanUp: (true) vs. with #unloadAllKnownPackages and also your shrink we just call Smalltalk cleanUp: (false).
I've looked at the methods and seen the differences between aggressive and not but... I was wondering does anyone know whether there is an over-arching conceptual difference between the two? e.g., under what circumstances would a particular clean-up be considered aggressive vs. not?
The idea is that a non-aggressive cleanUp will not modify non-volatile state (it will flush caches for example), but an aggressive one will modify stuff (delete changesets, empty cateogires, obsolete packageInfos, uni-classes, projects, etc).
Here's a comment from Andreas: "Clean up. When aggressive is true, this will destroy projects, change sets, etc."
Levente
squeak-dev@lists.squeakfoundation.org