Options are good, but one algorithm that tries to get it all right is probably 
asking for trouble.  Dolphin has an elaborate stripper, but I found that 
slicing out unreferenced packages would typically give me a 4 MB or so 
executable.  I was able to strip further, but it took time and raised the 
possibility of runtime failures.  Which tests drive the stripping?  They could 
easily be broader than strictly necessary, causing otherwise unneeded things to 
be retained.  I agree with Stef that good packaging is the place to start.


________________________________________
From: [email protected] 
[[email protected]] On Behalf Of Markus Fritsche 
[[email protected]]
Sent: Sunday, May 29, 2011 4:57 PM
To: [email protected]
Subject: Re: [Pharo-project] A radical proposal (to cut down dead code)

2011/5/29 askoh <[email protected]>:
> Is Spoon trying to do this?

AFAIK, yes.

As far as I understand, Craig is using a modified VM to identify sent
messages and to automagically mirror them from a master to a slave
image; making testcases very crucial in the process. To make a
tailored image, you run all the testcases and the "needed" behavior
automagically gets pushed/ pulled into the slave image. Save the
slave, and you can run it indepentently.

"Spoon" way - mark each sent message (within the vm) - execute a full
test cycle - see what has been marked-
"Tinkering way" - modify all CompiledMethods to send a "self
registerAsSent: self selector object: self" by code and run a full
test

Two ways I could think off right now, not really deep into it.


Reply via email to