Convincing a harvester (was on SqF list)

Richard A. O'Keefe ok at cs.otago.ac.nz
Wed May 7 23:06:18 UTC 2003


Julian Fitzell <julian at beta4.com> wrote:
	I keep reading words to the effect of "people can just strip out what 
	they don't want".  But, no, we can't because we don't know where one 
	thing starts and the other ends.  If stripping everything out was so 
	easy, then this process that is taking months and months would already 
	be done.  I don't want to go through this 
	many-month-long-for-many-people process by myself every time I need to 
	strip down a clean image.  People who know what they're doing need to 
	carve up the packages so Joe Average doesn't have to.
	
I'm reminded of Interlisp.  More years ago than I care to remember,
I got my hands on the Interlisp sources (before it was Interlisp-D).
There wasn't any question of porting it, I just wanted to improve an
existing Lisp system (which was, IIRC, based on a very old BBN-Lisp
version).  So I sat down with the listing and started pulling.  Turned
out there was hardly anything I could extract beyond a few basic
list processing things like APPEND and REVERSE, because everything was
connected to everything else.  Someone at Xerox (I can no longer recall
who, so if you were the person and you're reading this list, thank you
very much because it really WAS helpful) sent me a report they'd done
on the Interlisp "kernel" (because they had faced the same problem).
The "kernel" was quite large and contained some surprises...

Carving up something that wasn't designed that way in the first place is
darned hard, and I don't expect the work to be finished any time soon.
BUT it is going to pay off in two ways that are helpful to ALL Squeakers:

(1) It will make the sources easier to search.
    We talk about how great it is to have access to all the sources,
    but that's the problem with the monolithic system, you have ALL
    the sources.  When you are trying to learn some aspect of the
    system, the others get in the way.  (I have tried to learn Morphic
    from the sources and failed.  I have high hopes of doing better
    with after the MCP people have done their job.)

(2) It will make debugging easier.  Construct the minimal system that
    exhibits the bug, and you have eliminated a _huge_ amount of code
    which you know doesn't contain the bug.  Oh, most bugs aren't that
    hard to find, but for the ones that are, it can help.  (If you
    think that using the MessageTracer to focus your attention on the
    messages that might contribute to the bug would be a bigger help,
    you're right.  But those messages might use class or pool variables
    that might have been affected by code in a package that you had
    used but not during the test where the bug showed up.)



More information about the Squeak-dev mailing list