[stamp-devel] Some initial thoughts

Robert Strandh strandh at labri.fr
Sun Dec 31 06:05:38 UTC 2006


1) I have checked in stamp.lisp and a very preliminary specification
   in Spec/spec.text 

2) Using mel-base is going to create some problems.  For one thing,
   mes-base seems to use base-string and base-char a lot, but that
   seems to be incompatible with the kind of strings used by SBCL.
   The solution would be to fix the declarations in mel-base.  Perhaps
   this has already been fixed; I tripped on this problem by using an
   old version of mel-base. 

   Another problem with mel-base is that it can't handle non-ascii
   contents of message headers and message bodies.  The solution to
   this problem seems to be to make mel-base use flexi-streams, to
   scan the header in ascii mode with a default character (as
   flexi-streams allow) of (say) #\?, and to set the encoding of the
   stream for the body to whatever the content-type/charset header
   indicates (with a default of ascii as for the header).  This would
   require some digging into the mel-base code, but I think it can be
   done.  Mel-base is pretty well written.  To get around this problem
   until mel-base is fixed, I suggest using a test folder that has
   only ascii characters in all of the messages.

   We don't want to use the `messages' function on a folder, simply
   because it scans the entire directory and we might have a million
   files in there.  Instead, we must select an individual message
   based on the tags list, and let mel-base scan that individual
   message. 

3) I am working on a list of priorities.  I think I'll post it here
   and leave it open to debate.  In a week or so, we should have
   nailed the priorities so that the students know what to work on and
   in which order. 

4) I still intend to convert the existing Stamp code to use the ESA
   library, but I don't know at which speed this will happen.  It
   would be good to have something running in a week or so.

5) We need to think about file and package structures.  We should
   definitely create an ASDF file (named `stamp.asd'), and a
   `packages.lisp' file.  The main package should be called `stamp',
   and should contain only exported symbols.  Other packages used for
   implementation should :use the stamp package (I learned this trick
   from CLIM).  We need to decide what other packages are required.
   For now, let's say we only need one: stamp-internals, perhaps with
   a nick name of `stampi'.  We should probably have this working in a
   week or so as well.  

Comments?
-- 
Robert Strandh

---------------------------------------------------------------------
Greenspun's Tenth Rule of Programming: any sufficiently complicated C
or Fortran program contains an ad hoc informally-specified bug-ridden
slow implementation of half of Common Lisp.
---------------------------------------------------------------------



More information about the Stamp-devel mailing list