On Feb 13, 2013, at 8:49 AM, Frank Shearar <frank.shearar@gmail.com> wrote:
On 13 February 2013 07:39, Marcus Denker <marcus.denker@inria.fr> wrote:
On Feb 13, 2013, at 8:34 AM, Marcus Denker <marcus.denker@inria.fr> wrote:
Hi,
The current image has a size of 28.7MB (#20540).
Now execute this expression:
MCVersionInfo allInstances do: [ :each | each instVarNamed: 'ancestors' put: nil ].
save the image.
Result: 20MB
⦠this means that MC is wasting 8MB of memory with data that should live in the repository. And the problem is that is gets larger with every commitâ¦
The other offender is ScriptLoader. Unload that, do a #cleanUpForRelease
==> 15.6MB
Then .changes. Now it is at 32MB, plus 16MB sources.
We really need to condense the sources for 2.0⦠of course the problem is that it's broken (as it should be, because it is not tested).
Ah, and in general, we need to move to a more incremental process. Every mechanism that of the kind "We do this once before the release" is *WRONG*. Every commit needs to lead to a releasable artefact. Without *any* human intervention.
Yes. That's exactly what I did for the Squeak 4.4 release (don't hit me! :) ). Pharo's process will probably differ a bit but we now
So you make a new .sources after every commit?
* take an old image (somewhere early in 4.4's history) * update it * store that as one artifact, A * run tests on a copy to get the test results * a second job takes A and runs the necessary ReleaseBuilder to get B, a release candidate.
This is what we do, too. What I mean are things like condensing the sources and changes. Or Monticello meta data⦠something that grows with every commit is not something that is sustainable. Marcus