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?