[Pharo-project] A radical proposal (to cut down dead code)

Igor Stasenko siguctua at gmail.com
Tue May 31 20:41:02 CEST 2011

On 31 May 2011 05:27, Eliot Miranda <eliot.miranda at gmail.com> wrote:
> On Mon, May 30, 2011 at 6:50 PM, Craig Latta <craig at netjam.org> wrote:
>> > [It's] impossible to authoritatively classify anything as "dead
>> > code" unless there's a reference standard of what's core and what's
>> > not core...
>>     Yeah, in the meantime I define "dead" as "not run for some amount
>> of time".
> Surely "dead" means not used in the transitive closure of useful packages.
>  I don't see anyone in this thread proposing to trawl Monticello
> repositories looking for the latest versions of packages and then analysing
> what messages these packages send.  IMO, only by doing this will you be able
> to define what's used in the image.  One could try and relate the messages
> used to the publish date of packages to try and get some idea of the
> up-to-date-ness of messages.  One can perhaps attempt to make some
> determination of the liveness of the package by asking the community (basing
> this on e.g. last time it was downloaded creates the heisenbug of package
> trawling needing to download packages.
> Am I mad or is the set of packages out there in Monitcello repositories and
> on SqueakMap what really constitutes the working set that the base image
> needs to support?

Unless you intentionally want to replace old code with new,  and
possibly with different API.
Then scheme for automatic scanning all users of some code could show
you unwanted results.

Anyways , i think it is futile to attempt to implement an automated
analyzis tool for that.
Only developer could say what is dead (or what should be dead) anyways.
Of course, things like Ring will help us to analyze the code and track
its change history.
But still, a final decision, what to call "dead" and what "alive" will
always be up to humans.

> best,
> Eliot

Best regards,
Igor Stasenko AKA sig.

More information about the Pharo-project mailing list