Distributed equivalent to :Load Patches

Mike McDonald mikemac@titian.engr.sgi.com
Tue, 06 May 1997 14:34:49 -0700


>To: Mike McDonald <mikemac>
>Subject: Re: Distributed equivalent to :Load Patches 
>From: cwg@DeepEddy.Com
>Date: Tue, 06 May 1997 15:45:26 -0500

>>   See, everything comes back to Kelly and CWG getting the POS done. :-)
>
>Hey!  All I've asked for is to kludge together enough of an interface that I 
>can easily isolate my code from the Unix filesystem.  I ain't writing it.  

  Whoops. My mistake. Substitute Marcus for CWG above. :-)

>Of course, if Kelly can get it in a workable state in the next week, I'm 
>willing to wait before I try to write any code.  :-)
>
>Chris

  What are you planning on writing? It sounds like you're interested
in mail readers. Is that true? If so, here's what I'd do. I wouldn't
start off trying to support the gazillion different formats that Email
is stored in under Unix. I'd make it a gazillion and one! The only
format you have to support is the mbox format for incorperating new
mail from the spool directory. I'd start off assuming any file that
started with "From " that was in the mail spool directory was in mbox
format. I'd then write a simple function called (read-mbox pathname)
that built a list of message objects, one message object for each
message in the mbox. Just use the existing CL file I/O functions to
implement read-mbox. Almost all of the rest of the mail program would
have nothing to do with files. The exception being saving mail. I'd
write a simple function that stored the state of the mail reader in
whatever format was convient to me. (S-expressions, for instance!) If
we ever get a POS, then throw away your dump code and use the POS
interface instead. Maybe you'll have to make message-object and
message-sequence be subclasses of POS-object. Who knows. Who cares at
this point. I'd be more concerned with the UI than the file formats at
this stage. If I were you, I'd be sending Email to that CLIM guy
telling him to get his butt in gear because he's holding up the works!

  This approach is applicable to other apps too. Try to write in
layers. It'll make it easier to change things when yo need to rewrite
portions because either your assumptions and goals have changed or
some new feature is now available that you want to incorperate.

  Mike McDonald
  mikemac@engr.sgi.com