home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / mm / mm-intro.txt < prev    next >
Text File  |  2020-01-01  |  13KB  |  330 lines

  1.  
  2.  
  3.                  Columbia MM
  4.              A Mail Manager Program in C
  5.  
  6.  
  7.                   Chris Maio
  8.    Computer Research Facilities, Computer Science Department (formerly)
  9.  
  10.                   Fuat Baran
  11.                   Howie Kaye
  12.                  Melissa Metz
  13.            Center for Computing Activities
  14.  
  15.               Columbia University
  16.  
  17.  
  18.  
  19.  
  20. ABSTRACT
  21. --------
  22.  
  23. Columbia MM is a mail manager program based on the TOPS-20 MM program
  24. running on Digital Equipment Corporation DEC20 systems.  Columbia MM
  25. is written in C using the CCMD (TOPS-20 COMND Jsys in C) package
  26. developed at Columbia University.
  27.  
  28. MM currently runs under various flavors of UNIX.  Ports to various
  29. other microcomputer and mainframe operating systems are planned.
  30.  
  31.  
  32. INTRODUCTION
  33. ------------
  34.  
  35. Columbia University used to have a number of DECSYSTEM-2060's on
  36. campus.  (The Columbia University Center for Computing Activities
  37. (CUCCA) had four, the Computer Science Department had one, and
  38. Teachers College had one.)  Our user community, especially the less
  39. technically experienced, grew accustomed to the friendly user
  40. interface provided by programs written for TOPS-20.  The two most
  41. widely used programs were the Exec (equivalent of the shell in UNIX),
  42. and MM, the mail program, both written using the TOPS-20 COMND Jsys
  43. (monitor call).  The users loved the ability to see what input was
  44. expected next (the help provided when you type a '?' anywhere in a
  45. parse), and command completion (completion of unique input when an ESC
  46. was typed).  Unfortunately, the good days did not last.  DEC (Digital
  47. Equipment Corporation) discontinued the DEC20 line and, due to rising
  48. maintenance costs, it was decided that all of our DEC20's would be
  49. phased out and replaced by other systems.
  50.  
  51. Various people were consulted, surveys were conducted, and plans were
  52. made.  When asked what a minimally acceptable system should have,
  53. a large number of users said that an MM equivalent would be highest on
  54. their list of priorities.  (Some others were Emacs, Scribe, etc.)
  55. People that knew about the usual mail facility supplied with Unix
  56. stated that they did not like it at all.
  57.  
  58. CUCCA and the CS Department ultimately decided to go with various UNIX
  59. machines to replace the aging DEC20's.  By 1988, CUCCA had a DEC VAX
  60. 8700 running Ultrix 2.0, a VAX 750, numerous microvaxen, and three Sun
  61. 4s.  Over the previous two years student computing had slowly migrated
  62. from the DEC20's to Unix systems.
  63.  
  64. At about the same time as all this was happening, a package called
  65. CCMD was also being developed (at CUCCA, initially by Andrew Lowry and
  66. later on by Howie Kaye).  CCMD is a general parsing mechanism for
  67. developing line-oriented user interfaces to programs.  It is based on
  68. the functionality of TOPS-20's COMND Jsys.  CCMD allows a program to
  69. parse for various field types (file names, user names, dates and
  70. times, keywords, numbers, arbitrary text, tokens, etc.).  The original
  71. reason for writing the CCMD package was to use it in locally developed
  72. microcomputer cluster software.  For various reasons which we won't go
  73. into here, this project never saw the light of day, though the CCMD
  74. package came about as a useful product.
  75.  
  76. CCMD was announced to the public on some Internet mailing lists as
  77. well as at Usenix in the summer of 1987.  A mailing list to discuss
  78. TOPS-20 to UNIX migration issues was set up 
  79. (info-topsux@cunixc.cc.columbia.edu).  (Send requests to
  80. info-topsux-request@cunixc.cc.columbia.edu.)  We began using CCMD
  81. internally for various programs.  Our operations interface, group
  82. management program etc. were all written using CCMD as the user
  83. interface.
  84.  
  85. Chris Maio, at the Computer Science Department, began writing MM in C
  86. using CCMD.  CUCCA also decided that it needed to make an MM-like
  87. program available to its users who were migrating from the DEC20's.
  88. So three systems programmers from CUCCA (Fuat Baran, Howie Kaye and
  89. Melissa Metz) joined Chris Maio in his efforts, and Columbia-MM was
  90. born.
  91.  
  92. The first internal release of Columbia MM was unleashed on our user
  93. population in January of 1988.  Since then we have put up numerous new
  94. versions internally, and in May 1988 we began beta testing with the
  95. help of eager people at other sites.
  96.  
  97.  
  98.  
  99. DESCRIPTION
  100. -----------
  101.  
  102. MM is a powerful electronic mail system which allows you to send,
  103. read, edit and manage messages quickly and easily.  Since it is
  104. written with the CCMD package, you can hit the escape key to complete
  105. commands and "?" to find out what MM is expecting.
  106.  
  107. These are the five most popular commands:
  108.  
  109. SEND user-name    Send mail to specified user-name.  May be a USER-NAME
  110.         or a list of USER-NAMES, local or network addresses.
  111.  
  112. READ msgs    Read specified messages, MSGS, from current file.
  113.         The default is to read UNSEEN messages.
  114.  
  115. DELETE msgs    Delete specified messages, MSGS, from current file.
  116.  
  117. HEADERS msgs    Give a brief summary of the specified messages, MSGS.
  118.  
  119. HELP topic    Type a message explaining the specified TOPIC.
  120.  
  121.  
  122. MESSAGE SEQUENCES
  123. -----------------
  124.  
  125. A message sequence is a series of messages that have some trait in
  126. common.  Various specifiers, listed below, identify a message
  127. sequence; the intersection of the specifiers given determines the
  128. messages to be processed.  Some specifiers are compound and accept a
  129. string argument (e.g., 'FROM FOO', or 'SUBJECT HOMEWORK').  If
  130. the argument to any of these has a space (or certain other
  131. non-alphanumeric characters) in it, the argument should be quoted, as
  132. in 'FROM "JOHN SMITH"'. 
  133.  
  134. The message sequences available are:
  135.  
  136. AFTER        Equivalent to SINCE
  137. ALL        Every message in your file, whether deleted or not.
  138. ANSWERED    Messages you have REPLY'd to or ANSWER'd
  139. BEFORE        Messages before a given date
  140. CURRENT        MM keeps a pointer to the current message it is
  141.         set at.  This sequence (which consists of only 1
  142.         message obviously) is that message.
  143. DELETED        Messages you have marked for deletion with the
  144.         DELETE command or the MOVE command
  145. FLAGGED        Messages you have marked with the FLAG command
  146. FROM        Followed with a word or phrase denoting the
  147.         senders of the message; e.g. HEADERS FROM SMITH
  148.         would show all the headers of the messages you've
  149.         received from SMITH.
  150. INVERSE        This reverses the sequence.  Instead of
  151.         taking the sequence as lowest message number to
  152.         highest, it takes it from highest to lowest
  153. KEYWORD        Messages containing the specified keyword
  154. LAST        Followed with a number specifying the last n messages
  155.         in the file
  156. NEW        Messages that are new as of this MM session
  157. ON        Messages on a given date
  158. PREVIOUS-SEQUENCE
  159.         The last sequence used in an MM command
  160. RECENT        Messages that were new as of this MM session but which
  161.         have already been seen
  162. SEEN        Messages that you have read
  163. SINCE        Messages after a given date (entered as    DATE-MONTH-YEAR
  164.         or mm/dd/yy)
  165. SUBJECT        Followed with a word or phrase denoting the subject
  166.         of the message; e.g. HEADERS SUBJECT MEETING would show
  167.         you all the headers of the messages about a meeting
  168.         (assuming they say MEETING in the header)
  169. TEXT        Followed with a word, phrase or sentence denoting
  170.         the text of the message; e.g. HEADERS TEXT BIZARRE
  171.         would show you the headers of all the messages with
  172.         the word BIZARRE in their text or headers
  173. TO        Followed with the name of a recipient, shows messages
  174.         whose To or cc fields contain that recipient.
  175. UNANSWERED    Messages you have not REPLY'd to or ANSWER'd
  176. UNDELETED    Messages that haven't been deleted via the DELETE or
  177.         MOVE commands
  178. UNFLAGGED    Messages that haven't been flagged by the FLAG command
  179. UNKEYWORD    Messages not included in the specified keyword
  180. UNSEEN        Messages you haven't seen via the READ or TYPE command
  181.  
  182. Also, message numbers are allowed to be specified as a sequence, i.e.
  183.     1,2,3,5,8   -     Messages 1, 2, 3, 5, and 8
  184.     1:3,5:8     -     Messages 1 through 3 and 5 through 8
  185.     5        -     Message number 5
  186.     6+3        -     Messages 6, 7, and 8
  187.  
  188.  
  189.  
  190. CCMD FEATURES
  191. -------------
  192.  
  193. We have already mentioned that MM is written with the CCMD package.
  194. This provides sevaral features to make it easier for MM to parse your
  195. input.
  196.  
  197. Probably the most important feature is instant help.  At almost any
  198. point when MM is waiting for input from you, you can type a "?", and
  199. MM will tell you what it is looking for.  (One exception is when MM is
  200. parsing an outgoing message, at which time the question mark will
  201. simply get inserted into the text like any other character.)  If you
  202. have partially typed a command, MM will only show you things that
  203. match the current input.
  204.  
  205. Another feature is command completion or recognition.  This means that
  206. when MM is parsing, you can hit the ESCAPE key or TAB key and MM will
  207. complete the current field (command keyword, filename, etc.), if it is
  208. unambiguous.  Control-F works similarly to tab and escape, but only
  209. completes to a punctuation character.  If what you have typed is
  210. ambiguous, MM will beep.  You can then hit "?"  to find out the
  211. available completions.  For example, if you were typing in the file
  212. name "mail.txt" and there were no other files in your directory
  213. beginning with "m", you could simply type "m<ESC>" and MM would echo
  214. "mail.txt ".  If you typed "m<Control-F>" MM would echo "mail" and
  215. wait for you to finish it.  This is useful when specifying the name of
  216. a new file.
  217.  
  218. A third feature is command retry.  This means that after you have
  219. typed a command and hit return, then realize that was not what you
  220. meant to do, you can redo the command.  When you get the prompt back
  221. from MM, if the VERY NEXT character you type is control-H, MM will
  222. redisplay your last command.  You can then delete the offending parts
  223. and run the command you wanted.  This saves you from having to retype
  224. the entire command.
  225.  
  226. A new feature is command line editing, which include a command history
  227. mechanism.  Editing is done with standard emacs-like commands.
  228.  
  229. MM will accept comments on any line -- this is most useful inside
  230. files run by the "take" command.  The comment start string is
  231. typically "#", and the comment end string is end of line.
  232.  
  233. In case you should want to input any of these special characters, CCMD
  234. also provides a quoting character, control-V.  Control-V followed by
  235. any character simply inserts that character into the current command.
  236.  
  237.  
  238. COMPATIBILITY
  239. -------------
  240.  
  241. MM is compatible with various other mail programs, and has hooks for
  242. adding more in the future.  MM currently supports the following mail
  243. file formats:
  244.  
  245. mtxt:
  246. mtxt is the format used by MM-20 on DEC20s.  This format is not compatible
  247. with any other Unix mail utilities, but has the advantage of being easier
  248. to parse.  That is, mm will read in an mtxt format file faster than any
  249. other format.
  250.  
  251. Babyl: 
  252. Babyl is the mail file format used by gnuemacs rmail mode.  Use this
  253. format if you wish to use emacs for reading your mail as well as mm.
  254.  
  255. mbox:
  256. mbox is the mail file format the Unix mail(1) program uses.  Use this format
  257. if you wish to use mail(1) for reading your mail as well as mm.
  258.  
  259. Future plans include supporting mh(1), and pop (post office protocol)
  260. for remote systems (PC's, ...).
  261.  
  262.  
  263. MAIL DELIVERY
  264. -------------
  265.  
  266. MM currently uses sendmail(8) to deliver mail, but it should be fairly
  267. easy to make it use other delivery systems.
  268.  
  269.  
  270. SYSTEMS
  271. -------
  272.  
  273. MM comes with configuration files for 4.3 BSD; HP/UX; Mt Xinu 4.3;
  274. SunOS versions 3.4, 3.5, and 4.0 (works for 4.1); Ultrix 2.0; AIX for
  275. an IBM RT; Dynix 2.1.1; Integrated Solutions Release 4.0; System V on
  276. a 3B2, and version 5.2; and Encore's Umax.  (At Columbia we currently
  277. only run MM under SunOS 4.1 and Encore's Umax 4.3, and rely on our
  278. formerly-beta testers for the other ports.)
  279.  
  280.  
  281. AVAILABILITY
  282. ------------
  283.  
  284. MM is currently just out of Beta Test and is actively worked on.  If
  285. you wish to hear about new versions and patches, please send mail to
  286.  
  287.    info-mm-request@columbia.edu                (Internet)
  288.    info-mm-request%cunixf.cc.columbia.edu@cuvma.cc.columbia.edu  (Bitnet)
  289.    ...rutgers!columbia!info-mm-request            (Usenet)
  290.  
  291. and we'll add you to our list of people involved in MM.
  292.  
  293. MM is currently available via anonymous ftp from
  294. cunixf.cc.columbia.edu (128.59.40.130), in the mm subdirectory.  The
  295. following files are currently available:
  296.  
  297.      mm-0.90.0.tar.Z           # MM version 0.90 (new release)
  298.      mm-intro.txt           # general introductory document
  299.      release-0.87.txt        # release notes for 0.87 (changes
  300.                 # since 0.86)
  301.      release-0.88.txt        # release notes for 0.88 (changes
  302.                 # since 0.87)
  303.      release-0.90.txt        # release notes for 0.90 (changes
  304.                 # since 0.88)
  305.      patch.xx        # numbered patches for the current version
  306.  
  307. mm-{Version #}.tar.Z contains the full (compressed and tarred) sources
  308. to MM and CCMD.  Contained in the mm subdirectory (once uncompressed
  309. and untarred), is an INSTALL file with installation hints.  We
  310. occasionally send out patches to our mailing list.
  311.  
  312.  
  313. COPYRIGHT
  314. ---------
  315.  
  316. Columbia MM carries the following copyright notice:
  317.  
  318.  
  319. Copyright (c) 1986, 1990, The Trustees of Columbia University in the
  320. City of New York.  Chris Maio, Computer Research Facilities, Computer
  321. Science Department (formerly), Fuat C. Baran, Howard Kaye, Melissa
  322. Metz, Academic Systems Group, Center for Computing Activities.
  323.  
  324. Permission is granted to any individual or institution to use, copy,
  325. or redistribute this software so long as it is not sold for profit,
  326. provided that this notice and the original copyright notices are
  327. retained.  Columbia University makes no representations about the
  328. suitability of this software for any purpose.  It is provided "as is"
  329. without express or implied warranty.
  330.