Annotation of 43BSD/ucb/lisp/lispnews, revision 1.1

1.1     ! root        1: From jkf Tue Apr 13 00:12:22 1982
        !             2: To: /na/doe/jkf/lispnews
        !             3: Subject: new features
        !             4: Status: RO
        !             5: 
        !             6:  In response to requests from franz users, these enhancements have been
        !             7: made:
        !             8: 
        !             9: In Lisp 38.07,  if the lisp variable 'displace-macros' is set to non-nil,
        !            10: then when a macro expansion is done by the evaluator, the resulting
        !            11: expansion replaces the original call.  This means that macro expansion
        !            12: is only done once.  
        !            13: 
        !            14: In Liszt 8.03, the 'function' function is open coded.  If you have
        !            15:        (function (lambda ....))
        !            16: in your code then the lambda expression is compiled as a separate function
        !            17: and the result of the function call is a 'bcd' object which points
        !            18: to that compiled lambda.
        !            19: 
        !            20: 
        !            21: 
        !            22: From jkf Sun Apr 18 13:16:46 1982
        !            23: To: local-lisp
        !            24: Subject: opus 38.09
        !            25: Status: RO
        !            26: 
        !            27:  The new features of this version are:
        !            28:        If the load function ends up fasl'ing in a file, then load will
        !            29:   do what is necessary to insure that the new functions are linked in
        !            30:   correctly. Previously, if you turned on the transfer tables with
        !            31:   (sstatus translink on) or (sstatus translink t) and then fasl'ed in
        !            32:   functions which already existed, the old versions of the functions
        !            33:   would still be used, unless you did (sstatus translink on) yourself.
        !            34:   Now this is done automatically.
        !            35: 
        !            36:       tyi now accepts a second argument which is the object to return
        !            37:   upon eof.  -1 is the default.
        !            38: 
        !            39:      (pp-form 'g_obj ['p_port]) should be used instead of $prpr
        !            40:  for pretty printing a form.
        !            41: 
        !            42:      The storage allocator and collector has been modified to add
        !            43:  two new data types: vector and vector immediate.  They are not in
        !            44:  their final form so I suggest that you not try to use them. 
        !            45:  However, be on the lookout for garbage collection bugs.
        !            46: 
        !            47: 
        !            48: 
        !            49: From jkf Wed Apr 21 07:45:54 1982
        !            50: To: local-lisp
        !            51: Subject: liszt 8.04
        !            52: Status: RO
        !            53: 
        !            54:   the new features of liszt 8.04 are:
        !            55: 
        !            56: 1) init files:
        !            57:     Before liszt begins compiling, it looks for an init file to load in.
        !            58:     It first searches in the current directory, and then it searches
        !            59:     your home directory (getenv 'HOME).
        !            60:     It looks for file names:
        !            61:        .lisztrc.o  .lisztrc.l  lisztrc.o lisztrc.l
        !            62:     It loads only the first one it finds.
        !            63: 
        !            64: 2) interrupt handling
        !            65:     If you interrupt liszt  (with ^C typically), it will remove its
        !            66:     temporary file and exit.
        !            67: 
        !            68: 3) preallocation of space
        !            69:     It preallocates space in order to reduce the number of gc's done
        !            70:     during compiling.
        !            71: 
        !            72:        
        !            73:        
        !            74: 
        !            75: 
        !            76: From jkf Wed Apr 21 13:47:50 1982
        !            77: To: local-lisp
        !            78: Subject: lisp opus 38.10
        !            79: Status: RO
        !            80: 
        !            81:  lisp will now look for a lisprc in a way similar to liszt.
        !            82: 
        !            83:  It will first search in . and then in $HOME
        !            84:  It will look for the file .lisprc or lisprc ending with .o, .l and then
        !            85: just .lisprc or lisprc.
        !            86: 
        !            87:  Shortly, it will only look for files ending in .l and .o since we don't
        !            88: want to encourage files with non-standard filename extensions.
        !            89: 
        !            90: 
        !            91:  
        !            92: 
        !            93: 
        !            94: From jkf Wed Apr 21 23:40:59 1982
        !            95: To: local-lisp
        !            96: Subject: lisp opus 38.11
        !            97: Status: RO
        !            98: 
        !            99:  I finally got sick of showstack and baktrace and rewrote them in lisp,
        !           100: rincorporating some of the features people have been requesting.
        !           101: Showstack now works as follows:
        !           102:        (showstack) : show all interesting forms.  Forms resulting from
        !           103:                      the trace package are not printed as well as 
        !           104:                      extraneous calls to eval.  In the form printed,
        !           105:                      the special form <**> means 'the previous expression
        !           106:                      printed'.  prinlevel and prinlength are set to 
        !           107:                      reasonable values to prevent the expression from
        !           108:                      getting too large
        !           109:        (showstack t) : same as above but print all expressions.
        !           110:        (showstack 5) : print only the first 5 expressions. of course, 5
        !           111:                      is not the only possible numeric argument.
        !           112:        (showstack lev 3) : set prinlevel to 3 before printing
        !           113:        (showstack len 4) : set prinlength to 4 before printing
        !           114:  the above arguments can be used in combination.
        !           115: 
        !           116: The default value of prinlevel is showstack-prinlevel, that of prinlength
        !           117: is showstack-prinlength.  the default showstack printer is the
        !           118: value of showstack-printer (default is 'print').
        !           119: 
        !           120: baktrace accepts the same arguments as showstack, but it ignores the
        !           121: prinlevel and prinlength arguments.
        !           122: 
        !           123: 
        !           124: 
        !           125: 
        !           126: From jkf Sat Apr 24 08:55:18 1982
        !           127: To: local-lisp
        !           128: Subject: lisp opus 38.12, liszt 8.05
        !           129: Status: RO
        !           130: 
        !           131:   these changes and enhancements were made:
        !           132: 
        !           133: 1) the function 'function' in the interpreter acts just like 'quote'
        !           134:    In the compiler, 'function' will act like 'quote' unless the
        !           135:    argument is a lambda expression, in which case liszt will replace
        !           136:    the lambda expression with a unique symbol.  That unique symbol's
        !           137:    function cell will contain a compiled version of the lambda 
        !           138:    expression.   These changes will make Franz compatible with Maclisp
        !           139:    type lisps, as far as the treatment of 'function'
        !           140: 
        !           141: 2) Mechanisms were added to permit user written C or Fortran code to call 
        !           142:    lisp code. Everything isn't quite ready yet.
        !           143: 
        !           144: 3) Signal was fixed so that if you ask for a signal to be ignored, the
        !           145:    operating system will be notified.  The correct way to fork a lisp
        !           146:    is now:
        !           147:        (cond ((fork) (signal 2 (prog1 (signal 2) (wait)))))
        !           148: 
        !           149: 4) You can select the default function trace uses to print the arguments and
        !           150:    results.  Just lambda bind trace-printer to the name of the function
        !           151:    you want it to use.  The standard trace-printer sets prinlevel and
        !           152:    prinlength to the values of trace-prinlevel and trace-prinlength before
        !           153:    printing.  By default, trace-prinlevel is 4, and trace-prinlength is 5
        !           154: 
        !           155: 
        !           156:    
        !           157: 
        !           158: 
        !           159: From jkf Sun Apr 25 23:46:16 1982
        !           160: To: local-lisp
        !           161: Subject: lisp opus 38.13
        !           162: Status: RO
        !           163: 
        !           164:   Functions 1+ and 1- are now part of the interpreter, rather than
        !           165: being made equivalent to add1 and sub1.
        !           166: 
        !           167: 
        !           168: 
        !           169: From jkf Wed Apr 28 09:52:43 1982
        !           170: To: local-lisp
        !           171: Subject: Opus 38.14
        !           172: Status: RO
        !           173: 
        !           174:   Has these new features:
        !           175:        1) the message [load filename] will appear before load
        !           176:           reads in a lisp source file.  This can be disabled by
        !           177:           setting $ldprint to nil.
        !           178:        2) a function 'truename' as been added.  It takes a port
        !           179:           and returns the name of the file associated with that port.
        !           180:           It returns a string if there is a file associated with
        !           181:           the port, otherwise it returns nil.
        !           182: 
        !           183: 
        !           184: 
        !           185: From jkf Wed Apr 28 10:36:34 1982
        !           186: To: local-lisp
        !           187: Subject: more on opus 38.14
        !           188: Status: RO
        !           189: 
        !           190:  $ldprint is lambda bound to nil during the loading of the lisprc file.
        !           191: 
        !           192: 
        !           193: 
        !           194: 
        !           195: From jkf Wed May  5 08:30:00 1982
        !           196: To: local-lisp
        !           197: Subject: opus 38.15
        !           198: Status: RO
        !           199: 
        !           200:  a minor modification: 'makhunk' is now more efficient.
        !           201: 
        !           202: 
        !           203: From jkf Wed May  5 20:56:40 1982
        !           204: To: local-lisp
        !           205: Subject: Opus 38.16
        !           206: Status: RO
        !           207: 
        !           208:  A new function was added:
        !           209:        (hunk-to-list 'h_hunk) 
        !           210:        returns the elements of h_hunk as a list.
        !           211: 
        !           212:  Also, the error message printed when an oversized print name is encountered
        !           213: has been improved.
        !           214: 
        !           215: 
        !           216: 
        !           217: From jkf Fri May  7 20:03:40 1982
        !           218: To: local-lisp
        !           219: Subject: Liszt version 8.06
        !           220: Status: RO
        !           221: 
        !           222: 
        !           223:  Local declarations are now supported.  You can say:
        !           224: (defun foo (a b)
        !           225:    (declare (special a))
        !           226:    ... body ...)
        !           227: 
        !           228: and the special declaration for 'a' will affect the body of function
        !           229: foo only.  The 'a' which is an argument to foo will also be special
        !           230: in this case.    Declarations may be 
        !           231:  1) at the top level, not within a function body.
        !           232:  2) at the beginning of a  'lambda' body.
        !           233:  3) at the beginning of a 'prog' body
        !           234:  4) at the beginning of a 'do' body.
        !           235: 
        !           236: 'the beginning' means either the first, second or third form in the body.
        !           237: When the compiler is searching for declarations, it will not macroexpand.
        !           238: 
        !           239: 
        !           240:  Fixnum declarations now have meaning.  If you do
        !           241:        (declare (fixnum i j))
        !           242: then
        !           243:        (greaterp i  j)  will be converted to (>& i j)
        !           244: 
        !           245:  The declare function is now defined in the compiler.  Previously,
        !           246: the only way to declare something was for the compiler to 'compile'
        !           247: the declaration form.  Now, if you load or fasl in a file with
        !           248: a declare statement in it, the declare statement will have the
        !           249: proper effect in the compiler.
        !           250: 
        !           251: 
        !           252:  (function (lambda () ...)), (function (nlambda () ...)) and
        !           253:  (function (lexpr () ...))  are all supported.
        !           254: 
        !           255: 
        !           256: 
        !           257: From jkf Wed May 12 08:15:37 1982
        !           258: To: local-lisp
        !           259: Subject: Lisp Opus 38.17
        !           260: Status: RO
        !           261: 
        !           262:  ... has a minor bug fix:  The port returned by 'fileopen' will now print
        !           263: correctly.
        !           264: 
        !           265: 
        !           266: 
        !           267: From jkf  Tue May 25 06:18:04 1982
        !           268: Date: 25-May-82 06:17:51-PDT (Tue)
        !           269: From: jkf
        !           270: Subject: opus 38.18
        !           271: Via: ucbkim.EtherNet (V3.100 [3/27/82]); 25-May-82 06:18:04-PDT (Tue)
        !           272: To: local-lisp
        !           273: Status: RO
        !           274: 
        !           275:   The msg macro will now evaluate all atom arguments except the ones 
        !           276: for carriage control (N B).  Thus if you used (msg foo) you should
        !           277: now use (msg "foo").
        !           278: 
        !           279: 
        !           280: 
        !           281: From jkf Thu May 27 08:29:29 1982
        !           282: To: local-lisp
        !           283: Subject: liszt 8.08
        !           284: Status: RO
        !           285: 
        !           286:  Fixes a bug in the code which converts generic arithmetic to fixnum only
        !           287: arithmetic.   Liszt was converting from generic to fixnum operators based on
        !           288: the first argument only due to a typo in the code.
        !           289: 
        !           290:  
        !           291: 
        !           292: 
        !           293: From jkf Wed Jun  9 07:25:19 1982
        !           294: To: local-lisp
        !           295: Subject: lisp Opus 38.20
        !           296: Status: RO
        !           297: 
        !           298:   There is now a character macro for reading hexadecimal.
        !           299:   #x1f = #X1f = #X1F = 31
        !           300:   #x-1f = -31
        !           301:   
        !           302: 
        !           303: 
        !           304: From jkf Thu Jun 17 15:42:54 1982
        !           305: To: local-lisp
        !           306: Subject: Lisp Opus 38.21
        !           307: Status: RO
        !           308: 
        !           309:   Has two routines for interfacing with termcap.  These routines were
        !           310: written by morris djavaher and are meant to be called by lisp programs
        !           311: which have yet to be installed.
        !           312: 
        !           313: 
        !           314: 
        !           315: 
        !           316: From jkf  Tue Jun 22 09:09:25 1982
        !           317: Date: 22-Jun-82 09:09:13-PDT (Tue)
        !           318: From: jkf
        !           319: Subject: opus 38.22
        !           320: Via: ucbkim.EtherNet (V3.120 [6/17/82]); 22-Jun-82 09:09:25-PDT (Tue)
        !           321: To: local-lisp
        !           322: Status: RO
        !           323: 
        !           324:   setq with no arguments will now return nil.
        !           325:   
        !           326: 
        !           327: 
        !           328: From jkf  Wed Jun 30 19:05:54 1982
        !           329: Date: 30-Jun-82 19:05:32-PDT (Wed)
        !           330: From: jkf (John Foderaro)
        !           331: Subject: liszt 8.09
        !           332: Via: ucbkim.EtherNet (V3.130 [6/26/82]); 30-Jun-82 19:05:54-PDT (Wed)
        !           333: To: local-lisp
        !           334: Status: RO
        !           335: 
        !           336:   liszt will now look in 12 places for an init file when it starts up.
        !           337: It will load in the first one it comes to only.
        !           338: The files it looks for are:
        !           339: 
        !           340:   { ./ , $HOME } { .lisztrc , lisztrc } { .o , .l , }
        !           341: 
        !           342:  
        !           343: 
        !           344: 
        !           345: From jkf  Tue Sep 14 08:53:03 1982
        !           346: Date: 14-Sep-82 08:52:44-PDT (Tue)
        !           347: From: jkf (John Foderaro)
        !           348: Subject: lisp opus 38.26
        !           349: Message-Id: <[email protected]>
        !           350: Received: by UCBKIM.BERKELEY.ARPA (3.193 [9/6/82]) id a09999;
        !           351:        14-Sep-82 08:53:03-PDT (Tue)
        !           352: To: local-lisp
        !           353: Status: RO
        !           354: 
        !           355:   Franz used to read the symbols 4dxx 4Dxx and 4Exx as 4exx.  Now it reads
        !           356: them (and other similar symbols) correctly.
        !           357: 
        !           358: 
        !           359: 
        !           360: 
        !           361: From jkf  Sat Oct  2 15:15:48 1982
        !           362: Date: 2-Oct-82 15:15:32-PDT (Sat)
        !           363: From: jkf (John Foderaro)
        !           364: Subject: lisp opus 38.27
        !           365: Message-Id: <[email protected]>
        !           366: Received: by UCBKIM.BERKELEY.ARPA (3.193 [9/6/82]) id a10796;
        !           367:        2-Oct-82 15:15:48-PDT (Sat)
        !           368: To: local-lisp
        !           369: Status: RO
        !           370: 
        !           371:   If you set the variable top-level-print to a non nil value, then that
        !           372: value will be used by the top-level to print out the result of the
        !           373: evaluation.  This has effect in break loops too.
        !           374:   For example, if you want the pretty printer to print out the top level
        !           375: values, type  (setq top-level-print 'pp-form).
        !           376: 
        !           377: 
        !           378:   
        !           379: 
        !           380: 
        !           381: From jkf  Sun Oct  3 19:28:45 1982
        !           382: Date: 3-Oct-82 19:28:29-PDT (Sun)
        !           383: From: jkf (John Foderaro)
        !           384: Subject: lisp opus 38.28
        !           385: Message-Id: <[email protected]>
        !           386: Received: by UCBKIM.BERKELEY.ARPA (3.193 [9/6/82]) id a09829;
        !           387:        3-Oct-82 19:28:45-PDT (Sun)
        !           388: To: local-lisp
        !           389: Status: RO
        !           390: 
        !           391:  A modification has been made to the load function.
        !           392:    Normally if you type (load 'x), the load function will first try to fasl
        !           393: the file x.o and failing that it will try to load x.l
        !           394:    If you (setq load-most-recent t),  and if x.l and x.o both exist, then
        !           395: load will fasl or load the most recently modified file.
        !           396:    The load-most-recent flag only has an effect if you type the filename
        !           397: without a trailing .l or .o.
        !           398: 
        !           399: 
        !           400: 
        !           401: 
        !           402: From jkf  Tue Oct  5 21:01:55 1982
        !           403: Date: 5-Oct-82 21:01:33-PDT (Tue)
        !           404: From: jkf (John Foderaro)
        !           405: Subject: liszt 8.12, lisp 38.29
        !           406: Message-Id: <[email protected]>
        !           407: Received: by UCBKIM.BERKELEY.ARPA (3.193 [9/6/82]) id a06358;
        !           408:        5-Oct-82 21:01:55-PDT (Tue)
        !           409: To: local-lisp
        !           410: Status: RO
        !           411: 
        !           412:   Liszt will now check that you are passing the correct number of arguments
        !           413: to functions.   As a result, some files which have compiled without
        !           414: complaint in the past may compile now with warnings or errors.  In this
        !           415: note, I'll explain what the compiler knows, what it looks for in your
        !           416: program, and how you can help the compiler understand your program.
        !           417: 
        !           418:   For each function, liszt either knows nothing about the the number of
        !           419: arguments to a function, or it knows the minimum number of arguments, or the
        !           420: maximum number of arguments, or both the minimum and maximum number of
        !           421: arguments.   This information comes about in one of three ways:
        !           422:   1) it is known when liszt starts (by virtue of a value stored under the
        !           423:      fcn-info indicator on a function's property list)
        !           424:   2) it is declared by the user, either via (declare (*arginfo ...))
        !           425:      or (declare (*args ...)) [see below]
        !           426:   3) it is determined when a (lambda) function is compiled.
        !           427:      When a lambda is compiled, the compiler can easily figure out the
        !           428:        minimum and maximum number of arguments.
        !           429:      When an nlambda or lexpr function is compiled, the compiler doesn't
        !           430:      make a guess as to how many arguments are expected.  The user should
        !           431:      use the (declare (*args ...)) form to tell the compiler how many
        !           432:      arguments are expected.
        !           433:      For lexpr's generated via 'defun' using &optional and &rest keywords,
        !           434:      the correct declaration is generated automatically.
        !           435: Once liszt determines the number of arguments to a function, it uses that
        !           436: information to check that the function is called with the correct number of
        !           437: arguments.  It does not check calls to the function that occured before it
        !           438: determined the correct number of arguments.  [This backward checking will
        !           439: be added sometime in the future.]
        !           440: 
        !           441:   If liszt finds that a function is called with the wrong number of
        !           442: arguments, it prints an informative message.  That message is a error if the
        !           443: function being called is one which is open coded by the compiler. The
        !           444: message is a warning otherwise.  The reason for the distinction is that
        !           445: you are free to redefine functions not open coded by the compiler. If the
        !           446: number of arguments is not correct, it may just be that the compiler's
        !           447: database and your code are refering to two different functions.
        !           448: If you redefine system functions, you should use the
        !           449: (declare (*arginfo ...)) form to let the compiler know about the number
        !           450: of arguments expected by your version of the functions.
        !           451: 
        !           452:   You can declare the number of arguments to functions using this form
        !           453: 
        !           454: (declare (*arginfo (fcnname1 min1 max1) (fcnname2 min2 max2) ...))
        !           455:   where each min or max is either a fixnum or nil (meaning "I don't know")
        !           456:   
        !           457: for example, here are some `correct' declarations:
        !           458: 
        !           459: (declare (*arginfo (read 0 2) (cons 2 2) (boole 3 nil) (append nil nil)))
        !           460:   
        !           461:  explanation:
        !           462:    (read 0 2) means that the function read expects between 0 and 2
        !           463:        arguments (inclusive).
        !           464:    (cons 2 2) means that cons expects 2 arguments.
        !           465:    (boole 3 nil) means that boole expects at least 3 arguments.
        !           466:    (append nil nil) means that append expects any number of arguments,
        !           467:       this is equivalent to (append 0 nil).
        !           468:       
        !           469: 
        !           470: The *arginfo declaration is usually made at the top level of a file.
        !           471: 
        !           472: To declare the argument characteristics of the current function being
        !           473: compiled use the '*args' declaration. It looks somewhat like the
        !           474: *arginfo declaration.
        !           475: 
        !           476: It is best explained with examples
        !           477: 
        !           478: (def read
        !           479:    (lexpr (n)
        !           480:        (declare (*args 0 2))
        !           481:        ... code for read
        !           482:        ))
        !           483: 
        !           484: (def process
        !           485:   (nlambda (x)
        !           486:       (declare (*args 1 3))
        !           487:       ... code for process
        !           488:       ))
        !           489: 
        !           490: Note: the *args declaration is not needed for lambda's.
        !           491: 
        !           492: 
        !           493: 
        !           494:   If you get an error or warning which you believe is incorrect, it is
        !           495: probably due to an incorrect database entry.  Please let me know and I will
        !           496: fix it immediately.   I expect that there will be quite a few of these
        !           497: errors because much of the database was built by hand.
        !           498: 
        !           499: 
        !           500:      
        !           501: 
        !           502: 
        !           503: 
        !           504: From jkf  Fri Oct  8 12:55:45 1982
        !           505: Date: 8-Oct-82 12:55:31-PDT (Fri)
        !           506: From: jkf (John Foderaro)
        !           507: Subject: lisp 38.30, liszt 8.13
        !           508: Message-Id: <[email protected]>
        !           509: Received: by UCBKIM.BERKELEY.ARPA (3.193 [9/6/82]) id a04140;
        !           510:        8-Oct-82 12:55:45-PDT (Fri)
        !           511: To: local-lisp
        !           512: Status: RO
        !           513: 
        !           514: There are now three new functions for dealing with processes:
        !           515:   *process
        !           516:   *process-send
        !           517:   *process-receive
        !           518: 
        !           519:  These functions are designed to replace the 'process' function, which, due
        !           520: to its nlambda'ness, was difficult to use.  All of the above functions
        !           521: are lambda's or lexpr's.
        !           522: 
        !           523:   See chapter 6 of the manual (its on-line) for the details of these
        !           524: functions.  This is a quick summary:
        !           525: 
        !           526:   (*process-send 'st_command)
        !           527:   tells the shell to run the command st_command concurrently, and returns
        !           528:   a write-only port.  Characters written to this port will appear at
        !           529:   the standard input of st_command.
        !           530:   example:
        !           531:      (setq p (*process-send "mail jkf"))
        !           532:      (print 'HiThere p)
        !           533:      (close p)
        !           534: 
        !           535:      
        !           536:   (*process-receive 'st_command)
        !           537:   tells the shell to run st_command concurrently, and returns a
        !           538:   read-only port.  Characters written to the standard output by
        !           539:   st_command will be available by reading from the given port.
        !           540:   Characters written on the standard error by st_command will
        !           541:   appear on lisp's the standard error (the terminal most likely).
        !           542:   example:
        !           543:     ; to see if foo is logged in:
        !           544:     (setq p (*process-receive "u"))
        !           545:     (do ((user (read p '**eof**) (read p '**eof**)))
        !           546:         ((eq '**eof** user) (print 'Not-Logged-In))
        !           547:        (cond ((eq 'foo user) (print 'Is-Logged-In))))
        !           548:     (close p)
        !           549: 
        !           550: 
        !           551:   (*process 'st_command ['g_readp ['g_writep]])
        !           552:   this is the general function which process, *process-send and
        !           553:   *process-receive call.  If called with one argument it
        !           554:   starts the new process and waits for it to end, e.g:
        !           555:   (*process (concat "vi " filename))
        !           556:   In this case *process return the exit code of the process.
        !           557: 
        !           558:   The g_readp and g_writep arguments, if given, tell *process to
        !           559:   run the process concurrently.  If g_read is non nil then
        !           560:   *process will return a port just like *process-receive.
        !           561:   If g_writep is non-nil, then *process will set up a pipe like
        !           562:   *process-send.
        !           563:   *process will return a list of the form
        !           564:     (readport writeport process-id)
        !           565:     where readport and writeport will only be a port if g_readp
        !           566:     or g_writep are non nil.
        !           567: 
        !           568: 
        !           569:  A little know fact about processes is that  a process, once started,
        !           570: cannot die and disappear until its parent asks about its status.
        !           571: Take the mail example given above:
        !           572:      (setq p (*process-send "mail jkf"))
        !           573:      (print 'HiThere p)
        !           574:      (close p)
        !           575: after the mail process finishes it work, it will attempt to die, returning
        !           576: an integer called the 'exit status'.  However until the lisp program
        !           577: asks about its status the mail process will remain in existence
        !           578: in a Zombie state, somewhere between life and death. ps will show this:
        !           579: 
        !           580:   PID TT STAT  TIME COMMAND
        !           581:  3876 p0 Z     0:01 <exiting>
        !           582: 
        !           583: A user is only allowed a small number of processes, so if you continue
        !           584: to generate processes and leave them around as Zombies, you will eventually
        !           585: run out of processes.  The way to let the Zombie die is to call
        !           586: the wait function, e.g.
        !           587:     -> (wait)
        !           588:     (3876 . 0)
        !           589:     -> 
        !           590: this says that process 3876 died with exit status 0.
        !           591: 
        !           592: Also, when you exit lisp the shell will clean up the Zombies.
        !           593: 
        !           594: If you start a  process with (*process "vi foo") then lisp will wait
        !           595: for it to complete before continuing, so you don't have to worry about
        !           596: Zombies.  You only have to worry if you run a process concurrently,
        !           597: such as when you use *process-send or *process-receive.
        !           598: 
        !           599:       
        !           600:        
        !           601:       
        !           602: 
        !           603: 
        !           604: 
        !           605: From jkf  Tue Oct 12 10:44:22 1982
        !           606: Date: 12-Oct-82 10:43:52-PDT (Tue)
        !           607: From: jkf (John Foderaro)
        !           608: Subject: lisp opus 38.31
        !           609: Message-Id: <[email protected]>
        !           610: Received: by UCBKIM.BERKELEY.ARPA (3.220 [10/11/82])
        !           611:        id A29800; 12-Oct-82 10:44:22-PDT (Tue)
        !           612: To: local-lisp
        !           613: Status: RO
        !           614: 
        !           615:   new function:  (time-string ['x_time])
        !           616:     if given no arguments, it returns the current time as a string.
        !           617: 
        !           618:     if given an argument, x_time, then it converts that argument to
        !           619:       a time string and returns that string.
        !           620:       The argument should represent the number of seconds since
        !           621:       Jan 1, 1970 (GMT).
        !           622: 
        !           623:   note that this makes (status ctime) obsolete.
        !           624:  
        !           625: 
        !           626: 
        !           627: From jkf  Tue Oct 12 14:35:26 1982
        !           628: Date: 12-Oct-82 14:34:10-PDT (Tue)
        !           629: From: jkf (John Foderaro)
        !           630: Subject: also in opus 38.31
        !           631: Message-Id: <[email protected]>
        !           632: Received: by UCBKIM.BERKELEY.ARPA (3.220 [10/11/82])
        !           633:        id A05086; 12-Oct-82 14:35:26-PDT (Tue)
        !           634: To: local-lisp
        !           635: Status: RO
        !           636: 
        !           637:   If top-level-read is set to a non nil value, then the lisp
        !           638: top level will funcall it to read a form for evaluation.
        !           639: It will be funcalled with two arguments, a port and an eof marker.
        !           640: top-level-read will be used in break levels too.
        !           641:   Be very careful when setting top-level-read because if you set it
        !           642: to an illegal value, there is no way to correct it.
        !           643: 
        !           644: 
        !           645: 
        !           646: 
        !           647: 
        !           648: From jkf  Tue Oct 19 18:54:18 1982
        !           649: Date: 19-Oct-82 18:54:02-PDT (Tue)
        !           650: From: jkf (John Foderaro)
        !           651: Subject: lisp tags
        !           652: Message-Id: <[email protected]>
        !           653: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82])
        !           654:        id A00195; 19-Oct-82 18:54:18-PDT (Tue)
        !           655: To: franz-friends
        !           656: Status: RO
        !           657: 
        !           658:   We also use vi style tags so emacs users and vi users can share the same
        !           659: tags file.  Rather than modify ctags, we use this shell script:
        !           660: 
        !           661: #!/bin/csh 
        !           662: # make a tags file for lisp source files.
        !           663: # use:
        !           664: #      lisptags foo.l bar.l baz.l ... bof.l
        !           665: # generate the file 'tags'
        !           666: #
        !           667: awk -f /usr/local/lib/ltags $* | sort > tags
        !           668: 
        !           669: 
        !           670: where the file /usr/local/lib/ltags is
        !           671: 
        !           672: /^\(DEF/       { print $2 "    " FILENAME "    ?^" $0 "$?" }
        !           673: /^\(def/       { print $2 "    " FILENAME "    ?^" $0 "$?" }
        !           674: 
        !           675: 
        !           676: 
        !           677: From jkf  Tue Oct 19 22:50:40 1982
        !           678: Date: 19-Oct-82 22:50:29-PDT (Tue)
        !           679: From: jkf (John Foderaro)
        !           680: Subject: Lisp Opus 38.32, Liszt 8.14
        !           681: Message-Id: <[email protected]>
        !           682: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82])
        !           683:        id A03968; 19-Oct-82 22:50:40-PDT (Tue)
        !           684: To: local-lisp
        !           685: Status: RO
        !           686: 
        !           687: 
        !           688: Topic 1:
        !           689:     liszt can now autoload macros.   If liszt encounters a symbol without
        !           690:     a function definition but with a macro-autoload indicator on the
        !           691:     property list, then the value of the indicator is a file to load which
        !           692:     should define the macro.
        !           693: 
        !           694:     The interpreter's undefined function handler will also look for
        !           695:     macro-autoload properties, thus you needn't give a symbol both an
        !           696:     autoload and a macro-autoload property.
        !           697: 
        !           698:     The default lisp contains macro-autoload properties for the macros
        !           699:     defstruct, loop and defflavor.
        !           700: 
        !           701: Topic 2:
        !           702:     It is now possible to define 'compiler only macros' or cmacros.
        !           703:     A cmacro acts like a normal macro, but will only be used by the
        !           704:     compiler.   A cmacro is stored on the property list of a
        !           705:     symbol under the indicator 'cmacro'.    Thus a function can
        !           706:     have a normal definition and a cmacro definition.
        !           707:     The macro 'defcmacro' has a syntax identical to 'defmacro' and
        !           708:     creates cmacros instead of macros.
        !           709:     For an example of the use of cmacros, see the definitions
        !           710:     of nthcdr and nth in /usr/lib/lisp/common2.l
        !           711: 
        !           712:  Topic 3:
        !           713:     If the form (foo ...) is macro expanded and the result also begins
        !           714:     with the symbol foo, then liszt will stop macro expanding (previously
        !           715:     it got into an infinite loop).
        !           716:     
        !           717:  Topic 4:
        !           718:     The function nth has been added to Franz.
        !           719:     (nth 'x_index 'l_list)
        !           720:     returns the nth element of l_list, where the car of the list
        !           721:     is accessed with (nth 0 'l_list)
        !           722: 
        !           723:     The macros (push 'g_value 'g_stack), and
        !           724:               (pop 'g_stack ['g_into])
        !           725:     have been added to franz.
        !           726:     typical uses
        !           727:       (setq foo nil)
        !           728:       (push 'xxx foo)
        !           729:       (push 123 foo)
        !           730:       now foo = (123 xxx)
        !           731:       (pop foo) returns 123
        !           732:       now foo = (xxx)
        !           733:       (pop foo yyy) returns xxx and sets yyy to xxx
        !           734: 
        !           735:       
        !           736:  Topic 5:
        !           737:     The version of Flavors written at Mit for Franz have been transported
        !           738:     here.  Flavors is a system for doing object oriented programming in
        !           739:     lisp.  The documentation for flavors in the Lisp Machine manual
        !           740:     from Mit.  Since Lisp Machine manuals are rather scarce around here,
        !           741:     perhaps we can find someone to make copies of the flavor chapter for
        !           742:     those interested in it.  There is a description of the unique
        !           743:     features of the Franz Flavors in /usr/lib/lisp/flavors.usage.
        !           744:     As mentioned above, the flavors code will be autoloaded
        !           745:     when you call 'defflavor' for the first time.
        !           746:     Our local flavors expert is Eric Cooper (r.ecc).
        !           747:  
        !           748:     
        !           749:     
        !           750:     
        !           751: 
        !           752: 
        !           753: 
        !           754: From jkf  Fri Oct 22 15:46:51 1982
        !           755: Date: 22-Oct-82 15:46:32-PDT (Fri)
        !           756: From: jkf (John Foderaro)
        !           757: Subject: lisp opus 38.34
        !           758: Message-Id: <[email protected]>
        !           759: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82])
        !           760:        id A05610; 22-Oct-82 15:46:51-PDT (Fri)
        !           761: To: local-lisp
        !           762: Status: RO
        !           763: 
        !           764: 
        !           765:   Franz lisp now has a form of closure called an fclosure.  A fclosure is a
        !           766: compromise between a funarg and the type of functional object that we
        !           767: currently have in Franz. In this short note, I'll explain through examples
        !           768: what fclosures are and where you might use them, and finally describe the new
        !           769: functions.  The fclosure system was designed to be compatible with the Lisp
        !           770: Machine closures, so you may want to look at a Lisp Machine manual for more
        !           771: information.  fclosure are related to closures in this way:
        !           772:    (fclosure '(a b) 'foo) <==> (let ((a a) (b b)) (closure '(a b) 'foo))
        !           773: 
        !           774: A example of the use of fclosures:
        !           775: 
        !           776: ->(setq counter 0)
        !           777: 0
        !           778: ->(setq x (fclosure '(counter) '(lambda (val) (setq counter (+ val counter)))))
        !           779: fclosure[1]
        !           780: 
        !           781: The function 'fclosure' creates a new type of object called a fclosure.
        !           782: A fclosure object contains a functional object, and a set of symbols and
        !           783: values for the symbols.  In the above example, the fclosure functional
        !           784: object is (lambda (val) (setq counter (+ val counter)))
        !           785: and the set of symbols and values just contains the symbol 'counter' and
        !           786: zero, the value of counter when the fclosure was created.
        !           787: 
        !           788: When  a fclosure is funcall'ed:
        !           789:   1) the lisp system lambda binds the symbols in the fclosure to their
        !           790:      values in the fclosure.
        !           791:   2) it continues the funcall on the functional object of the fclosure
        !           792:   3) finally it un-lambda binds the symbols in the fclosure and at the
        !           793:      same time stores the current values of the symbols in the fclosure.
        !           794: 
        !           795: To see what that means, let us continue the example:
        !           796: -> (funcall x 32)
        !           797: 32
        !           798: -> (funcall x 21)
        !           799: 53
        !           800: 
        !           801: Notice that the fclosure is saving the value of the symbol 'counter'.
        !           802: Each time a fclosure is created, new space is allocated for saving
        !           803: the values of the symbols.
        !           804: If we executed the same fclosure function:
        !           805: ->(setq y (fclosure '(counter) '(lambda (val) (setq counter (+ val counter)))))
        !           806: fclosure[1]
        !           807: 
        !           808: We now have two independent counters:
        !           809: -> (funcall y 2)
        !           810: 2
        !           811: -> (funcall y 12)
        !           812: 14
        !           813: -> (funcall x 3)
        !           814: 56
        !           815: 
        !           816: To summarize:
        !           817: 
        !           818: (fclosure 'l_vars 'g_funcobj)
        !           819:  l_vars is a list of symbols (not containing nil)
        !           820:  g_funcobj is lambda expression or a symbol or another fclosure
        !           821: 
        !           822:   examples: (fclosure '(foo bar baz) 'plus)
        !           823:             (fclosure '(a b) #'(lambda (x) (plus x a))) notice the #'
        !           824:                        which will make the compiler compile the
        !           825:                        lambda expression.
        !           826: 
        !           827: 
        !           828: There are time when you want to share variables between fclosures.
        !           829: This can be done if the fclosures are created at the time times using
        !           830: fclosure-list:
        !           831: 
        !           832: (fclosure-list 'l_vars1 'g_funcobj1 ['l_vars2 'g_funcobj2 ... ...])
        !           833:   This creates a list of closures such that if a symbol appears in
        !           834:   l_varsN and l_varsM then its value will be shared between the
        !           835:   closures associated with g_funcobjN and g_funcobjM.
        !           836: 
        !           837:   example: -> (setq x (fclosure-list '(a) '(lambda (y) (setq a y))
        !           838:                                     '(c a) '(lambda () (setq c a))))
        !           839:            (fclosure[4] fclosure[7])
        !           840:           -> (funcall (car x) 123)   ; set the value of a in the 1st fclosure
        !           841:           123
        !           842:           -> (funcall (cadr x))     ; read the same value in the 2nd fclosure
        !           843:           123
        !           844: 
        !           845: 
        !           846: Other fclosure functions:
        !           847: 
        !           848: (fclosure-alist 'c_fclosure)
        !           849:   returns an assoc list giving the symbols and values in the fclosure
        !           850: 
        !           851: (fclosurep 'g_obj)
        !           852:   returns t iff g_obj is a fclosure
        !           853: 
        !           854: (fclosure-function 'c_fclosure)
        !           855:   returns the functional object of the fclosure
        !           856: 
        !           857: 
        !           858: 
        !           859: Note: If a throw (or error) occurs during the evaluation of a fclosure,
        !           860:  which passes control out of the fclosure, then current values of the
        !           861:  symbols will not be stored.   This may be a bug.  We could set up
        !           862:  an unwind-protect, but it would then take longer to funcall
        !           863:  a fclosure.  If you think an unwind protect is important, let me know.
        !           864: 
        !           865: Note 2: you can also 'apply' a fclosure.
        !           866: 
        !           867: 
        !           868: 
        !           869:   
        !           870: 
        !           871: 
        !           872: From jkf  Sat Oct 23 08:58:07 1982
        !           873: Date: 23-Oct-82 08:57:53-PDT (Sat)
        !           874: From: jkf (John Foderaro)
        !           875: Subject: more on closures
        !           876: Message-Id: <[email protected]>
        !           877: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82])
        !           878:        id A21572; 23-Oct-82 08:58:07-PDT (Sat)
        !           879: To: local-lisp
        !           880: Status: RO
        !           881: 
        !           882:   I sent the maryland people the flavors.usage file from mit so that they
        !           883: could compare their implementation with mit's.   What follows is their
        !           884: analysis.   Some of the differences between the two versions is due to
        !           885: different schemes for getting around the fact that franz didn't have a form
        !           886: of closure.   RZ has indicated that now that franz has fclosures, it may be
        !           887: possible to use more of the 'official' lisp machine flavor code.  fclosures
        !           888: will probably affect the maryland implementation too:
        !           889: Date:     22 Oct 82 15:39:18 EDT  (Fri)
        !           890: From:     Liz Allen <liz.umcp-cs@UDel-Relay>
        !           891: Subject:  flavors
        !           892: To:       jkf at Ucb-C70
        !           893: Via:  UMCP-CS; 23 Oct 82 9:09-EDT
        !           894: 
        !           895: Wow, implementing closure in one day is amazing.  We had thought
        !           896: about writing some kind of closure...  We've been discussing how
        !           897: having closures would affect our code.  It might make it easier to
        !           898: read and modify, but it might be less efficient.  Can you tell us
        !           899: how your implementation works and what it looks like to a user?
        !           900: 
        !           901: About the MIT implementation.  Ours is probably better in a couple
        !           902: of respects but probably loses a couple of places, too.  Pros:
        !           903: 
        !           904:        1.  With ours, there is no need to discard instances when
        !           905:        redefining a flavor.  The only time this would be necessary
        !           906:        is if the instance variables change which rarely happens
        !           907:        since methods change much more often than the instance
        !           908:        variables.  Without a structure editor, you tend to reload the
        !           909:        file containing flavors in order to change a method.
        !           910: 
        !           911:        2.  We can compile files with flavors (he didn't say if you
        !           912:        can compile MIT's Franz flavors) and when they are compiled
        !           913:        they run *fast*.  Most of the overhead occurs at combine
        !           914:        time and compiled flavors shouldn't have to be recombined.
        !           915: 
        !           916:        3.  We use hunks to store instance variables (actually, an
        !           917:        instance is a hunk whose cxr 0 is the name of the flavor and
        !           918:        whose cxr n (> 0) are the values of instance variables).  We
        !           919:        pay a price at combine time since instance variable references
        !           920:        in method code are replaced with cxr and rplacx calls (but MIT
        !           921:        pays the same price in putting hash calls in the methods), but
        !           922:        we win over MIT since the cxr calls are much faster than the
        !           923:        hash table calls.  We do have to have "ghost" methods which
        !           924:        are copies of methods containing different cxr calls when the
        !           925:        referenced variables of a method don't align in flavors
        !           926:        which inherit the method.  This, however, happens only
        !           927:        rarely.
        !           928: 
        !           929:        4.  We handle getting and setting instance variables better
        !           930:        than the MIT implementation -- we don't need to send a message
        !           931:        and the syntax is much better.  We recently added the
        !           932:        functions << and >> which get and set instance variables, eg:
        !           933: 
        !           934:                (<< foo 'instance-var)
        !           935:        and
        !           936:                (>> foo 'instance-var 'value)
        !           937: 
        !           938:        where foo is a flavor instance.
        !           939: 
        !           940:        5.  Our describe function has a hook which (if the variable
        !           941:        *debugging-flavors* is set to non-nil) allows the user to
        !           942:        follow pointers to any instances referenced in the describe.
        !           943:        This is done by assigning to a variable (made from its unique
        !           944:        id) the value of the instance.
        !           945: 
        !           946: Cons:
        !           947: 
        !           948:        1.  They implement more things from Lisp Machine flavors
        !           949:        (like wrappers/whoppers, init-keywords), but we really haven't
        !           950:        found the need for them.  We implement less closely to LM
        !           951:        flavors, but in a way that's better suited to Franz Lisp.
        !           952: 
        !           953:        2.  We didn't implement the method table as a hash table, but
        !           954:        there's no reason why we couldn't.
        !           955: 
        !           956:        3.  Things we don't have, but could easily implement include:
        !           957:        describe-method, defun-method/declare-flavor-instance-variables,
        !           958:        and storing flavor information in hunks instead of on the
        !           959:        property lists.
        !           960: 
        !           961:        4.  We don't handle method types like :and and :or.  We just
        !           962:        have primary/untyped methods and :before and :after daemons.
        !           963: 
        !           964: We have people reading our documentation.  After we get some feedback
        !           965: from them, we'll send the tape and docs to you.  That should be early
        !           966: next week.
        !           967: 
        !           968:                                -Liz Allen and Randy Trigg
        !           969: 
        !           970: 
        !           971: 
        !           972: 
        !           973: 
        !           974: 
        !           975: 
        !           976: From jkf  Mon Oct 25 12:56:59 1982
        !           977: Date: 25-Oct-82 12:55:44-PDT (Mon)
        !           978: From: jkf (John Foderaro)
        !           979: Subject: lisp Opus 38.35, liszt 8.15
        !           980: Message-Id: <[email protected]>
        !           981: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82])
        !           982:        id A17542; 25-Oct-82 12:56:59-PDT (Mon)
        !           983: To: local-lisp
        !           984: Status: RO
        !           985: 
        !           986: 
        !           987: New features:
        !           988:  1) tilde-expansion:  franz will now expand filenames which begin with ~
        !           989:        just like csh does.  It will only do the expansion if
        !           990:        the symbol tilde-expansion has a non-nil value.  The default
        !           991:        value for tilde-expansion is t.
        !           992:        These functions do tilde expansion: If I've left any out, let
        !           993:        me know:
        !           994:         load, fasl, infile, outfile, fileopen, probef, cfasl, ffasl, chdir
        !           995:         sys:access, sys:unlink [these are new functions, see below]
        !           996: 
        !           997:  2) liszt will remove its temporary file if given a SIGTERM signal
        !           998:     (SIGTERM is sent by default when you give the kill command from the shell)
        !           999: 
        !          1000:  3) load will now print a helpful message if an read error occurs when it
        !          1001:     is reading a file.
        !          1002:     
        !          1003:  4) new functions:
        !          1004: 
        !          1005:      (lexpr-funcall 'function 'arg1 ... 'argn)
        !          1006:         This is a cross between funcall and apply.
        !          1007:        The last argument, argn, must be a list (possibly empty).
        !          1008:        The element of list argn are stacked and then the function is
        !          1009:        funcalled.
        !          1010:        For example:
        !          1011:        (lexpr-funcall 'list 'a 'b 'c '(d e f))
        !          1012:        is the same as
        !          1013:        (funcall 'list 'a 'b 'c 'd 'e 'f)
        !          1014:        
        !          1015:        Also
        !          1016:        (lexpr-funcall 'list 'a 'b 'c nil)
        !          1017:        is the same as
        !          1018:        (funcall 'list 'a 'b 'c)
        !          1019:        
        !          1020:      (tilde-expand 'st_filename)
        !          1021:      returns: symbol whose pname is the filename, with a leading tilde
        !          1022:             expanded.  if st_filename doesn't begin with a tilde, it
        !          1023:             just returns st_filename
        !          1024: 
        !          1025:      (username-to-dir 'st_name)
        !          1026:      returns: the home directory of the given user, if that user exists.
        !          1027:              Saves old information so doesn't have to keep searching
        !          1028:              the passwd file.
        !          1029: 
        !          1030:      Some low level system functions.  These are listed here for completeness.
        !          1031:      The perform a function from the unix library (see the unix manual
        !          1032:       for details).
        !          1033:      (sys:getpwnam 'st_username)
        !          1034:        return passwd file info.
        !          1035:      (sys:access 'st_file 'x_mode)
        !          1036:      (sys:unlink 'st_file)
        !          1037: 
        !          1038: 
        !          1039: Bug fixes:
        !          1040:   1) patom will handle prinlevel and prinlength correctly.
        !          1041:   2) it is now safe for an interpreted function to redefine itself.
        !          1042:   3) the information return by 'evalframe' about a funcall'ed function
        !          1043:      is now correct.
        !          1044: 
        !          1045:   
        !          1046:   
        !          1047: 
        !          1048: 
        !          1049: 
        !          1050: From jkf  Mon Oct 25 14:57:00 1982
        !          1051: Date: 25-Oct-82 14:56:25-PDT (Mon)
        !          1052: From: jkf (John Foderaro)
        !          1053: Subject: 'if' macro: request for comments
        !          1054: Message-Id: <[email protected]>
        !          1055: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82])
        !          1056:        id A21567; 25-Oct-82 14:57:00-PDT (Mon)
        !          1057: To: local-lisp
        !          1058: Status: RO
        !          1059: 
        !          1060:   Would anyone object if we added a macro called 'if' to the default franz
        !          1061: system?   'if' is a common name and I want to make sure that it doesn't
        !          1062: break any existing code before I add it.
        !          1063: 
        !          1064: Some background:
        !          1065:  At mit the 'if' macro is used all over the place.
        !          1066:  Its form is
        !          1067:        (if <predicate> <then-expr> [ <else-expr>])
        !          1068:        
        !          1069:  I've always felt that macros should make the code more readable and
        !          1070:  that the 'if' macro makes code more obscure because it isn't easy
        !          1071:  to tell in complicated 'if' expressions where the <then-expr>
        !          1072:  and <else-expr>'s begin.  Also, there is no provision for
        !          1073:  an 'elseif' expression.
        !          1074: 
        !          1075:  I wrote a macro called 'If' which uses keywords to separate clauses.
        !          1076:  (If <pred> 
        !          1077:     then <then-expr> 
        !          1078:   [elseif <pred> then <then-expr>]* 
        !          1079:   [else <else-expr>])
        !          1080: 
        !          1081:  These two macros are not incompatible.  one macro could do the job
        !          1082:  of both.  There is an ambigous case:
        !          1083:        (if p then x) could be (cond (p then) (t x))
        !          1084:                        or (cond (p x))
        !          1085:  but it isn't likely that 'if' macro users would write something like
        !          1086:  that.
        !          1087: 
        !          1088: Thus I propose that we add a macro, if, which act's like 'If' if
        !          1089: its second arg is 'then' or like 'if' it the second arg is not 'then'
        !          1090: and there are two or three arguments.  Other cases would cause
        !          1091: an error.
        !          1092: 
        !          1093: 
        !          1094:        
        !          1095: 
        !          1096: 
        !          1097: From jkf  Mon Oct 25 22:37:24 1982
        !          1098: Date: 25-Oct-82 22:37:09-PDT (Mon)
        !          1099: From: jkf (John Foderaro)
        !          1100: Subject: opus 38.36
        !          1101: Message-Id: <[email protected]>
        !          1102: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82])
        !          1103:        id A01666; 25-Oct-82 22:37:24-PDT (Mon)
        !          1104: To: local-lisp
        !          1105: Status: RO
        !          1106: 
        !          1107:   I've added the 'if' macro to franz.  If you have any objections, it is still
        !          1108: not too late to voice them.
        !          1109:   I've also defined 'If' to be the same as 'if'.
        !          1110: 
        !          1111:   As I mentioned in my earlier request for comments, the 'if' macro is a
        !          1112: cross between the mit version and a locally written version using keywords.
        !          1113: The following documentation describes the various forms.
        !          1114: As you know, you can test out the 'if' macro by using apply. for example:
        !          1115: 
        !          1116: => (apply 'if '(if a then b c  elseif d thenret else e))
        !          1117: (cond (a b c) (d) (t e))
        !          1118: 
        !          1119: 
        !          1120: ;
        !          1121: ;  This macro is compatible with both the crufty mit-version and
        !          1122: ; the keyword version at ucb.
        !          1123: ;
        !          1124: ;  simple summary:
        !          1125: ;   non-keyword use:
        !          1126: ;      (if a b) ==> (cond (a b))
        !          1127: ;      (if a b c d e ...) ==> (cond (a b) (t c d e ...))
        !          1128: ;   with keywords:
        !          1129: ;      (if a then b) ==> (cond (a b))
        !          1130: ;      (if a thenret) ==> (cond (a))
        !          1131: ;      (if a then b c d e) ==> (cond (a b c d e))
        !          1132: ;      (if a then b c  else d) ==> (cond (a b c) (t d))
        !          1133: ;      (if a then b c  elseif d  thenret  else g)
        !          1134: ;              ==> (cond (a b c) (d) (t g))
        !          1135: ;
        !          1136: ;   
        !          1137: ;
        !          1138: ;
        !          1139: ; In the syntax description below,
        !          1140: ;    optional parts are surrounded by [ and ],
        !          1141: ;    + means one or more instances.
        !          1142: ;    | means 'or'
        !          1143: ;    <expr> is an lisp expression which isn't a keyword
        !          1144: ;       The keywords are:  then, thenret, else, elseif.
        !          1145: ;    <pred> is also a lisp expression which isn't a keyword.
        !          1146: ; 
        !          1147: ; <if-stmt> ::=  <simple-if-stmt>
        !          1148: ;             | <keyword-if-stmt>
        !          1149: ; 
        !          1150: ; <simple-if-stmt> ::=  (if <pred> <expr>)
        !          1151: ;                    | (if <pred> <expr> <expr>)
        !          1152: ; 
        !          1153: ; <keyword-if-stmt> ::= (if <pred> <then-clause> [ <else-clause> ] )
        !          1154: ; 
        !          1155: ; <then-clause> ::=  then <expr>+
        !          1156: ;                 | thenret
        !          1157: ; 
        !          1158: ; <else-clause> ::=  else <expr>+
        !          1159: ;                 | elseif <pred> <then-clause> [ <else-clause> ]
        !          1160: 
        !          1161: 
        !          1162: 
        !          1163:   
        !          1164: 
        !          1165: 
        !          1166: From jkf  Tue Oct 26 09:20:25 1982
        !          1167: Date: 26-Oct-82 09:20:04-PDT (Tue)
        !          1168: From: jkf (John Foderaro)
        !          1169: Subject: no more jkfmacs
        !          1170: Message-Id: <[email protected]>
        !          1171: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82])
        !          1172:        id A11552; 26-Oct-82 09:20:25-PDT (Tue)
        !          1173: To: local-lisp
        !          1174: Status: RO
        !          1175: 
        !          1176: 
        !          1177:   Since Franz now has the push, pop, if and msg macros, there is no
        !          1178: reason for jkfmacs to exist.  I've removed the code in jkfmacs and
        !          1179: replaced it with a warning message which will be printed if you load it.
        !          1180:   If you used the jkfmacs version of 'push' you will have to go through
        !          1181: your code and switch the order of arguments.  The Franz version is
        !          1182:        (push value stack)
        !          1183: Also, the unpush macro, defined in jkfmacs, no longer exists: just use
        !          1184: pop with one argument.
        !          1185: 
        !          1186: 
        !          1187: 
        !          1188: From jkf  Wed Oct 27 20:35:07 1982
        !          1189: Date: 27-Oct-82 20:34:25-PDT (Wed)
        !          1190: From: jkf (John Foderaro)
        !          1191: Subject: liszt 8.16
        !          1192: Message-Id: <[email protected]>
        !          1193: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82])
        !          1194:        id A27561; 27-Oct-82 20:35:07-PDT (Wed)
        !          1195: To: local-lisp
        !          1196: Status: RO
        !          1197: 
        !          1198:   Back on May 6, a modification to liszt was made which turned 'declare'
        !          1199: into a user callable function which provided information to the compiler.
        !          1200: The purpose of the change was to permit one to 'load' a file containing
        !          1201: declarations, instead of 'include'ing it.  It turns out that this was a bad
        !          1202: idea since if the compiler were to evaluate an interpreted function with
        !          1203: local declarations, it would assume that those local declarations were
        !          1204: describing the current file being compiled.
        !          1205:    Thus declare has it old meaning: it is a no-op unless the compiler is
        !          1206: compiling the form.  If one really wants to actively declare something,
        !          1207: we've added the function 'liszt-declare', which looks just like declare
        !          1208: but can be evaluated within the compiler.
        !          1209: 
        !          1210:   If you are confused by all this, don't worry.  There is very little chance
        !          1211: that it will affect you.
        !          1212: 
        !          1213: 
        !          1214: 
        !          1215: From jkf  Fri Oct 29 09:34:11 1982
        !          1216: Date: 29-Oct-82 09:33:59-PDT (Fri)
        !          1217: From: jkf (John Foderaro)
        !          1218: Subject: cmacros
        !          1219: Message-Id: <[email protected]>
        !          1220: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82])
        !          1221:        id A08411; 29-Oct-82 09:34:11-PDT (Fri)
        !          1222: To: local-lisp
        !          1223: Status: RO
        !          1224: 
        !          1225:   A week ago, Joe Faletti mentioned that one problem with cmacros is that if
        !          1226: you redefine a function, the cmacro property stays around and thus the
        !          1227: redefinition of the function isn't communicate to the compiler.
        !          1228:   He suggested that whenever a function is defined (via 'def' or when fasl'ed
        !          1229: in) any cmacro properties should be remprop'ed.   I've been trying to think
        !          1230: of an alternative to this, but I can't think of one.  Unless someone
        !          1231: has a better idea, I'll implement his suggestion.
        !          1232:   This means that if you want to define the function 'foo' and a cmacro for
        !          1233: 'foo', the cmacro definition must appear later in the file than 'foo's
        !          1234: definition.
        !          1235: 
        !          1236: 
        !          1237: 
        !          1238: 
        !          1239: From jkf  Fri Oct 29 10:11:36 1982
        !          1240: Date: 29-Oct-82 10:10:54-PDT (Fri)
        !          1241: From: jkf (John Foderaro)
        !          1242: Subject: LetS: An Expressional Loop Notation
        !          1243: Message-Id: <[email protected]>
        !          1244: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82])
        !          1245:        id A09176; 29-Oct-82 10:11:36-PDT (Fri)
        !          1246: To: local-lisp
        !          1247: Status: RO
        !          1248: 
        !          1249:   I've got a copy of a paper by Richard Waters (at mit) describing a system
        !          1250: for writing loops in lisp (and other languages).  Basically you describe the
        !          1251: loop in functional programming terms (similar to Backus's FP, or apl) and
        !          1252: the LetS package converts it into an iterative form for efficient execution
        !          1253: in lisp.
        !          1254:   We don't have the LetS code here to play with, and we probably won't be
        !          1255: able to get it for a while since our arpanet connection is hopelessly
        !          1256: clogged for anything but tiny messages.   However you might be interested in
        !          1257: stopping by my office and looking at the paper.
        !          1258: 
        !          1259: 
        !          1260: 
        !          1261: 
        !          1262: From jkf  Fri Oct 29 12:06:47 1982
        !          1263: Date: 29-Oct-82 12:06:08-PDT (Fri)
        !          1264: From: jkf (John Foderaro)
        !          1265: Subject: Re:  cmacros
        !          1266: Message-Id: <[email protected]>
        !          1267: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82])
        !          1268:        id A12141; 29-Oct-82 12:06:47-PDT (Fri)
        !          1269: To: baden, local-lisp
        !          1270: In-Reply-To: Your message of 29 Oct 1982 1159-PDT (Friday)
        !          1271: Status: RO
        !          1272: 
        !          1273:   I could make it a 'Note'.  I would prefer not to make it a warning because
        !          1274: such redefinition is guaranteed to occur when the compiler compiles itself
        !          1275: and the lisp code part of the lisp system.
        !          1276: 
        !          1277: 
        !          1278: 
        !          1279: From fateman Sat Oct 30 09:17:49 1982
        !          1280: To: franz-friends
        !          1281: Subject: fugue # 2
        !          1282: Status: RO
        !          1283: 
        !          1284:                         FUGUE Notes
        !          1285: 
        !          1286:                An occasional publication of the
        !          1287:     Franz Lisp User Group under Unix and Eunice (FUGUE)
        !          1288: 
        !          1289:                   Number 2 (October, 1982)
        !          1290:                 edited by Richard J. Fateman
        !          1291:                   University of California
        !          1292:                      Berkeley CA 94720
        !          1293:                             USA
        !          1294:                       fateman@berkeley
        !          1295: 
        !          1296: 1.  Welcome!
        !          1297: 
        !          1298:      It seems  about time to publish  the  second  of  these
        !          1299: newsletters,  since  we  have  accumulated  a  number of new
        !          1300: items.  We would also like to relay to others such  informa-
        !          1301: tion as has been forwarded to us. The reports of projects at
        !          1302: Berkeley (and elsewhere) may strike sympathetic chords  with
        !          1303: other research.
        !          1304: 
        !          1305: 2.  New programs
        !          1306: 
        !          1307: 2.1.  OPS-5
        !          1308: 
        !          1309:      OPS-5 is a "production system" written by Charles Forgy
        !          1310: of  CMU.   It  appears to work just fine in Franz, and is in
        !          1311: wide use.  Interested persons may obtain copies of  documen-
        !          1312: tation and the program from Charles.Forgy@CMU-10A. ( Charles
        !          1313: Forgy, Computer Science Department, Carnegie-Mellon  Univer-
        !          1314: sity, Pittsburgh, PA  15213)
        !          1315: 
        !          1316: It is their policy to send it to anyone who wants it free of
        !          1317: charge.
        !          1318: 
        !          1319: 2.2.  GLISP
        !          1320: 
        !          1321:      GLISP is a system which provides interesting linguistic
        !          1322: features for generic operations and data abstraction.  Writ-
        !          1323: ten by Gordon Novak at Stanford University,  it  was  origi-
        !          1324: nally  developed for Interlisp, but has been ported to other
        !          1325: lisps, including Franz.
        !          1326: 
        !          1327: 2.3.  Flavors
        !          1328: 
        !          1329:      There are now two distinct implementations,  apparently
        !          1330: with  identical  functionally,  of "flavors" as appearing in
        !          1331: the MIT Lisp Machine software.  One is described in TR-1174,
        !          1332: ____________________
        !          1333: 9   UNIX, Eunice, Franz Lisp, may be trademarks of Bell Labs,
        !          1334: SRI Int'l, and Univ. of Calif.
        !          1335: 
        !          1336: 
        !          1337: 
        !          1338: 9
        !          1339: 
        !          1340: 
        !          1341: 
        !          1342: 
        !          1343: 
        !          1344: 
        !          1345: 
        !          1346: 
        !          1347: 
        !          1348: 
        !          1349: "Franz Flavors" by Richard J. Wood (Dept of C.S.,  Univ.  of
        !          1350: Maryland,  College  Pk, MD 20742).  The other was written by
        !          1351: Juan R. Loaiza of MIT, Laboratory for Computer Science.   We
        !          1352: have  a  copy  of  the  latter  on-line  here, and expect to
        !          1353: receive a copy of the Maryland one,  shortly.   Eric  Cooper
        !          1354: here at Berkeley is in charge of the flavors situation.
        !          1355: 
        !          1356:      There is an implementation of closures, mostly compati-
        !          1357: ble  with  the Lisp Machine specification, announced by John
        !          1358: Foderaro for Opus 38.33. The incompatibility is a result  of
        !          1359: what  we  perceive to be a high performance penalty for eso-
        !          1360: terica.
        !          1361: 
        !          1362: 2.4.  Database Interfaces
        !          1363: 
        !          1364:      Jim Larus at UCB has cooked up interfaces to  both  the
        !          1365: INGRES  relational  database  system,  and the simpler TROLL
        !          1366: database system.  These will be described in his forthcoming
        !          1367: MS report, along with the next item.
        !          1368: 
        !          1369: 2.5.  Cursor-control and Menus
        !          1370: 
        !          1371:      Larus has provided an implementation of screen  manage-
        !          1372: ment which uses the UNIX "curses" package for primitive win-
        !          1373: dow  management.   A  menu-based  interface  has  also  been
        !          1374: developed as part of this.
        !          1375: 
        !          1376: 2.6.  Vaxima and Algebraic Manipulation
        !          1377: 
        !          1378:      A new version of vaxima, the VAX version of the MACSYMA
        !          1379: algebraic  manipulation system, was released in July by UCB,
        !          1380: incorporating some bug fixes, improved programs, and a large
        !          1381: number  of  user-contributed subroutine libraries.  This was
        !          1382: made available to test-site licensees.   Unfortunately,  MIT
        !          1383: has  suspended  new  test-site  licensing since about April,
        !          1384: 1982.  We hope that MIT will be liberalizing  its  distribu-
        !          1385: tion policy to non-commercial sites.
        !          1386: 
        !          1387:      See the note below about MACSYMA being sold.
        !          1388: 
        !          1389:      As a counterpoint to this, UC Berkeley has  received  a
        !          1390: substantial grant from the System Development Foundation for
        !          1391: work on Mathematical Representation and Manipulation,  which
        !          1392: should  result in some more advanced systems for application
        !          1393: of  computers  to  symbolic  mathematics.   Recruiting   for
        !          1394: researchers,  staff,  and  students  is  underway  now,  and
        !          1395: interested persons should contact Richard Fateman.
        !          1396: 
        !          1397: 2.7.  VLSI Design Rule Checker
        !          1398: 
        !          1399:      Lyra, written in Lisp by Michael Arnold, is a retarget-
        !          1400: able,  hierarchical,  design rule checker for VLSI circuits.
        !          1401: Lyra features a rule  compiler  (also  written  in  Lisp  of
        !          1402: 
        !          1403: 
        !          1404: 
        !          1405: 
        !          1406: 
        !          1407: 
        !          1408: 
        !          1409: 
        !          1410: 
        !          1411: 
        !          1412: 
        !          1413: 
        !          1414: 
        !          1415: course!)  which translates symbolic design rule descriptions
        !          1416: to lisp code for checking the rules.  Lyra was used for  the
        !          1417: RISC  project.  It  is  currently  being used extensively at
        !          1418: Berkeley, and will be included in the  Fall-82  distribution
        !          1419: of  of the Berkeley CAD tools.  For more information contact
        !          1420: Michael Arnold or John Ousterhout at Berkeley.
        !          1421: 
        !          1422: 2.8.  Generic Arithmetic
        !          1423: 
        !          1424:      As a proposed extension to  Franz  arithmetic,  Richard
        !          1425: Fateman,  Keith  Sklower  and Scott Morrison, have written a
        !          1426: simple-minded  generic  arithmetic  package  which  includes
        !          1427: modules which can be loaded to support exact rational arith-
        !          1428: metic, software-simulated IEEE  extended  arithmetic,  arbi-
        !          1429: trary  precision floating point, complex, interval, and mul-
        !          1430: tivariate polynomial. Combinations of some of these are sup-
        !          1431: ported,  although  the  package is as yet incomplete in some
        !          1432: areas.  The IEEE arithmetic  simulation  is  written  in  C.
        !          1433: These  packages  are  probably  not in good enough shape for
        !          1434: casual use by others.
        !          1435: 
        !          1436: 
        !          1437: 3.  New features
        !          1438: 
        !          1439:      Various performance enhancements  and  bug  fixes  have
        !          1440: been  incorporated  in  versions of Franz (now on Opus 38.33
        !          1441: and the compiler, Liszt 8.14) These are mentioned  in  brief
        !          1442: here;  more  details  accompany  updates  of  the system and
        !          1443: manual included in the forthcoming Berkeley 4.2BSD UNIX dis-
        !          1444: tribution.
        !          1445: 
        !          1446: 3.1.  Franz
        !          1447: 
        !          1448:      We added a switch to cause the evaluator to save  macro
        !          1449: expansions so they need only be expanded once.
        !          1450: 
        !          1451:      We added vector and vector-immediate data types.
        !          1452: 
        !          1453:      We rewrote showstack and backtrace so they  are  easier
        !          1454: to use.
        !          1455: 
        !          1456:      We made the lisp to  foreign  function  interface  more
        !          1457: secure.  The system now allows foreign function to call lisp
        !          1458: functions.
        !          1459: 
        !          1460:      We added closures and support  flavors,  features  from
        !          1461: the Lisp Machine.
        !          1462: 
        !          1463: 3.2.  Liszt
        !          1464: 
        !          1465:      Liszt will check the  number  of  arguments  to  system
        !          1466: functions and user defined functions.
        !          1467: 9
        !          1468: 
        !          1469: 9
        !          1470: 
        !          1471: 
        !          1472: 
        !          1473: 
        !          1474: 
        !          1475: 
        !          1476: 
        !          1477: 
        !          1478: 
        !          1479: 
        !          1480:      Liszt supports local declarations.
        !          1481: 
        !          1482:      Liszt will  automatically  compile  lambda  expressions
        !          1483: headed by the function `function'.
        !          1484: 
        !          1485:      Liszt supports compiler-only macros and  will  autoload
        !          1486: macros if necessary.
        !          1487: 
        !          1488: 4.  MC68000
        !          1489: 
        !          1490:      Keith Sklower and Kevin Layer have been working on  the
        !          1491: MC68000  version  of  Franz  under the UNIX operating system
        !          1492: (using a DUAL System 83). While the current configuration is
        !          1493: a  swapping  system, the Lisp should be able to use the full
        !          1494: address space of the CPU. We expect to have this system run-
        !          1495: ning  on the UNIX 4.2 BSD SUN software, too. The base system
        !          1496: on the DUAL, including  the  interpreter,  reader,  bignums,
        !          1497: fasl, works; the compiler is being perfected.
        !          1498: 
        !          1499: 
        !          1500: 5.  Other Lisps
        !          1501: 
        !          1502:      We now have, in-house tried 4  (other)  VAX  UNIX  lisp
        !          1503: systems:  YLISP,  Interlisp,  PSL,  and VLISP.  We know that
        !          1504: Interlisp can run also on  VMS  using  the  Eunice  package.
        !          1505: Interested parties can contact David Dyer at USC-ISI.  There
        !          1506: is also a version of lisp which runs  on  VMS  only,  namely
        !          1507: NIL,  from  MIT, which appears to be undergoing limited dis-
        !          1508: tribution.  Two other lisps under development under UNIX are
        !          1509: Yale's  answer to NIL, namely "T", and Common Lisp, from CMU
        !          1510: and friends.
        !          1511: 
        !          1512:      Counting Franz, that makes  7 lisp systems for the  VAX
        !          1513: computer line. Not counting variants on 2 operating systems.
        !          1514: A Paen to standardization.
        !          1515: 
        !          1516:      Dick Gabriel states some  useful  principles  for  com-
        !          1517: parisons  in  the conference record of the 1982 ACM Lisp and
        !          1518: Functional Programming Conference, which was held in August.
        !          1519: We  understand  he  now has a collection of some 18 programs
        !          1520: which he is continuing to time on various systems.
        !          1521: 
        !          1522: 6.  Work in Progress
        !          1523: 
        !          1524: 6.1.  BITGRAPH SUN AED-512
        !          1525: 
        !          1526:      Greg Foster at UCB is working on  raster-graphics  sup-
        !          1527: port in Franz for the 800 by 1000 b/w raster displays of the
        !          1528: BBN Bitgraph and/or the SUN Workstation,  and  possibly  the
        !          1529: color  512 by 512 AED system.  We are probably going to han-
        !          1530: dle mice and Bitpad (stylus) input for pointing.  There  are
        !          1531: lots  of  projects  we hear about with similar systems, e.g.
        !          1532: just recently from the University of  Maryland,  using  UNIX
        !          1533: 
        !          1534: 
        !          1535: 
        !          1536: 
        !          1537: 
        !          1538: 
        !          1539: 
        !          1540: 
        !          1541: 
        !          1542: 
        !          1543: 
        !          1544: 
        !          1545: 
        !          1546: and multiplexed files for window management of a 68000-based
        !          1547: home-grown workstation.
        !          1548: 
        !          1549: 6.2.  RISC-LISP
        !          1550: 
        !          1551:      Yes, Reduced Instruction Set Computer  fans,  who  else
        !          1552: but  UCB  would  be  so bold... Carl Ponder is examining the
        !          1553: issues involved in constructing a fast lisp interpreter  and
        !          1554: compiler  for  the  RISC architecture.  You see, we have all
        !          1555: these chips...
        !          1556: 
        !          1557: 
        !          1558: 7.  Work Contemplated
        !          1559: 
        !          1560: 7.1.  Fast Number Compiler
        !          1561: 
        !          1562:      Undergraduate Jeff Cohen at  Berkeley  is  starting  to
        !          1563: look  at  this.   There are several industrial concerns that
        !          1564: have expressed interest in using such a system, but expected
        !          1565: it to be subsidized by someone else.
        !          1566: 
        !          1567: 7.2.  IBM Franz
        !          1568: 
        !          1569:      Even more nibbles on this one, but not yet.
        !          1570: 
        !          1571: 8.  Business News
        !          1572: 
        !          1573: 8.1.  Eunice SOLD
        !          1574: 
        !          1575:      Some of you may have heard  that  the  Eunice  software
        !          1576: package was sold by SRI to the Wollongong Group, a UNIX sup-
        !          1577: port group in Palo Alto.   Prices  range  from  $2k  (educa-
        !          1578: tional)  to  $5k (commercial).  Naturally this package is of
        !          1579: interest beyond the availability of Franz Lisp.  We have not
        !          1580: compared  this  product  to  other similar ones, but we know
        !          1581: that TWG has been distributing a working Franz opus 38.
        !          1582: 
        !          1583:      As far as alternatives to Eunice, we  are  aware  of  a
        !          1584: system  developed  at  Rice University, and another by Human
        !          1585: Computing  Resources  (HCR)  in  Toronto.    We   have   not
        !          1586: evaluated either of these.
        !          1587: 
        !          1588: 8.2.  MACSYMA SOLD
        !          1589: 
        !          1590:      MIT has sold exclusive rights to MACSYMA, a large alge-
        !          1591: braic  manipulation  system, to Symbolics, Inc. of Cambridge
        !          1592: Mass. This package runs in Franz Lisp, (among  other  Lisps)
        !          1593: We  hope that soon it will again be available to educational
        !          1594: institutions with VAX systems either from us  or  Symbolics,
        !          1595: at a nominal charge.  We understand that commercial licenses
        !          1596: (from Symbolics) for versions of MACSYMA  on  PDP-10s,  Lisp
        !          1597: Machines,  etc.   will distributed at non-nominal prices and
        !          1598: offered with maintenance contracts.
        !          1599: 
        !          1600: 
        !          1601: 
        !          1602: 
        !          1603: 
        !          1604: 
        !          1605: 
        !          1606: From liz.umcp-cs@UDel-Relay Mon Nov  1 17:43:52 1982
        !          1607: Date:     29 Oct 82 12:04:24 EDT  (Fri)
        !          1608: From:     Liz Allen <liz.umcp-cs@UDel-Relay>
        !          1609: Subject:  Re:  Flavor system
        !          1610: To:       ECC.MIT-MC at Ucb-C70, FRANZ-FRIENDS at Mit-Mc
        !          1611: Cc:       randy.umcp-cs at UDel-Relay
        !          1612: In-Reply-To: Message of 25 October 1982 16:29-EDT from ECC@MIT-MC@Berkeley
        !          1613: Via:  UMCP-CS; 30 Oct 82 5:40-EDT
        !          1614: Status: RO
        !          1615: 
        !          1616:        Date: 25 October 1982 16:29-EDT
        !          1617:        From: ECC@MIT-MC@Berkeley
        !          1618:        Subject:  Flavor system
        !          1619:        To: FRANZ-FRIENDS at MIT-MC
        !          1620: 
        !          1621:        Can someone give me a pointer to the Franz flavor system
        !          1622:        developed by U. Maryland?  I am looking for information on how to
        !          1623:        FTP the files -- what machine, whether public, what files, etc.
        !          1624: 
        !          1625: Since the U. of Maryland is not (yet) an Arpanet host, you can't
        !          1626: FTP files directly from here.  We are right now completing some
        !          1627: documentation for all of our hacks -- including documentation for
        !          1628: some recent improvements for our flavors system.  When that
        !          1629: documentation is complete, we will be ready to distribute the
        !          1630: packages developed here.  Besides flavors, this includes a top
        !          1631: level called userexec which is based on INTERLISP's top level and
        !          1632: a production system called YAPS similar to but more flexible than
        !          1633: OPS5.
        !          1634: 
        !          1635: We are supposed to become an Arpanet host in a few months...  (Read
        !          1636: open ended period of time.)  Meanwhile, if you would like to get
        !          1637: our code, mail me a tape, and I will mail it back with the code and
        !          1638: documentation on it.  I'd appreciate it if someone would volunteer
        !          1639: to let other folks FTP the files from their machine until we do
        !          1640: become an Arpanet host.  My address is:
        !          1641: 
        !          1642:        Liz Allen
        !          1643:        Univ of Maryland
        !          1644:        Dept of Computer Science
        !          1645:        College Park MD 20783
        !          1646:        (301) 454-4247
        !          1647:        liz.umcp-cs@udel-relay
        !          1648: 
        !          1649:                                -Liz
        !          1650: 
        !          1651: 
        !          1652: 
        !          1653: From jkf  Wed Nov  3 15:49:29 1982
        !          1654: Date: 3-Nov-82 15:48:50-PST (Wed)
        !          1655: From: jkf (John Foderaro)
        !          1656: Subject: lisp opus 38.40
        !          1657: Message-Id: <[email protected]>
        !          1658: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82])
        !          1659:        id A16460; 3-Nov-82 15:49:29-PST (Wed)
        !          1660: To: local-lisp
        !          1661: Status: RO
        !          1662: 
        !          1663:   putprop will now put new properties at the head of the property list.
        !          1664:   
        !          1665:   
        !          1666: 
        !          1667: 
        !          1668: From ecc@UCBARPA  Thu Nov  4 10:28:49 1982
        !          1669: Date: 4-Nov-82 10:19:26-PST (Thu)
        !          1670: From: ecc@UCBARPA (Eric C. Cooper)
        !          1671: Subject: Lisp song
        !          1672: Message-Id: <[email protected]>
        !          1673: Received: by UCBARPA.BERKELEY.ARPA (3.224 [10/16/82])
        !          1674:        id A24537; 4-Nov-82 10:19:28-PST (Thu)
        !          1675: Received: from UCBARPA.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82])
        !          1676:        id A00305; 4-Nov-82 10:28:49-PST (Thu)
        !          1677: To: local-lisp@kim
        !          1678: Status: O
        !          1679: 
        !          1680: [This has been forwarded from uucp through Xerox through info-lispm.]
        !          1681: 
        !          1682: >From decvax!utzoo!utcsrgv!roderick Mon Nov  1 14:24:35 1982
        !          1683: 
        !          1684: Another Glitch in the Call
        !          1685: ------- ------ -- --- ----
        !          1686:    (Sung to the tune of a recent Pink Floyd song.)
        !          1687: 
        !          1688: 
        !          1689: We don't need no indirection
        !          1690: We don't need no flow control
        !          1691: No data typing or declarations
        !          1692:    Hey! Did you leave the lists alone?
        !          1693: 
        !          1694: Chorus:
        !          1695:    All in all, it's just a pure-LISP function call.
        !          1696: 
        !          1697: We don't need no side effect-ing
        !          1698: We don't need no scope control
        !          1699: No global variables for execution
        !          1700:    Hey! Did you leave those args alone?
        !          1701: 
        !          1702: (Chorus)
        !          1703: 
        !          1704: We don't need no allocation
        !          1705: We don't need no special nodes
        !          1706: No dark bit-flipping in the functions
        !          1707:    Hey! Did you leave the bits alone?
        !          1708: 
        !          1709: (Chorus)
        !          1710: 
        !          1711: We don't need no compilation
        !          1712: We don't need no load control
        !          1713: No link edit for external bindings
        !          1714:    Hey! Did you leave that source alone?
        !          1715: 
        !          1716: (Chorus, and repeat)
        !          1717: 
        !          1718: From jkf  Sat Nov 13 20:53:41 1982
        !          1719: Date: 13-Nov-82 20:53:16-PST (Sat)
        !          1720: From: jkf (John Foderaro)
        !          1721: Subject: lisp opus 38.41
        !          1722: Message-Id: <[email protected]>
        !          1723: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82])
        !          1724:        id A00490; 13-Nov-82 20:53:41-PST (Sat)
        !          1725: To: local-lisp
        !          1726: Status: O
        !          1727: 
        !          1728:   added functions:
        !          1729:        (remq 'g_val 'l_list) - just like remove but uses eq instead of equal
        !          1730:        (command-line-args) - returns a list of the command line arguments
        !          1731:                when lisp was started.  This function will return
        !          1732:                only those arguments typed by the user, even if the
        !          1733:                lisp was started with the autorun feature (liszt -r).
        !          1734:        (sys:gethostname) - returns the name of the machine.
        !          1735:        (status domain) - returns 'ucb' here.
        !          1736: 
        !          1737: 
        !          1738: 
        !          1739: From Paul.Rosenbloom@CMU-CS-G@CMU-CS-A Sun Nov 28 08:38:06 1982
        !          1740: Mail-From: CMUFTP host CMU-CS-G received by CMU-10A at 28-Nov-82 11:48:21-EST
        !          1741: Date: 28 Nov 1982 11:47:28-EST
        !          1742: From: Paul.Rosenbloom at CMU-CS-G at CMU-CS-A
        !          1743: Subject: (random) problems
        !          1744: Status: RO
        !          1745: 
        !          1746: I am having two problems using (random) in Franz lisp.  The first problem is
        !          1747: that I can't find any way to set the seed.  Every time I enter lisp, the
        !          1748: generator is in the same state.  I have had to resort to cfasling a c
        !          1749: procedure that calls srand() (as (random) seems to be defined in c by a call
        !          1750: on rand()).  Is there a way to do this within lisp?  The other problem is
        !          1751: more serious.  The generator seems to generate tight cycles for (at least)
        !          1752: arguments that are small powers of 2.  For example, repeatedly executing
        !          1753: (random 2) yields the sequence 01010101..., and (random 4) yields
        !          1754: 01230123....  These sequences apparently occur no matter to what value I set
        !          1755: the seed.  Does anyone one know what I could be doing wrong, or have a
        !          1756: working random number generator?
        !          1757: 
        !          1758: 
        !          1759: From tim.unc@UDel-Relay Sun Nov 28 20:44:24 1982
        !          1760: Status: O
        !          1761: 
        !          1762: From tim.unc@UDel-Relay Sun Nov 28 20:27:43 1982
        !          1763: Date:     28 Nov 82 22:40:14 EST  (Sun)
        !          1764: From:     Tim Maroney <tim.unc@UDel-Relay>
        !          1765: Subject:  rng
        !          1766: To:       franz-friends at Ucb-C70
        !          1767: Via:  UNC; 28 Nov 82 23:38-EST
        !          1768: Status: O
        !          1769: 
        !          1770: To the person who asked about random number generators and deficiencies
        !          1771: in (random) [I can't write mail to you for some reason]:
        !          1772: 
        !          1773: You're not doing anything wrong; that's the way the sucker works.
        !          1774: One good way to get random numbers is to do the syscall that gets
        !          1775: you the number of seconds since whenever-it-is, and use the mod
        !          1776: function. This is especially good for getting a random one or zero,
        !          1777: by using the evenp function.
        !          1778: 
        !          1779:                                        Tim Maroney
        !          1780:                                        tim@unc@udel-relay
        !          1781: 
        !          1782: 
        !          1783: From jkf  Tue Nov 30 09:21:10 1982
        !          1784: Date: 30-Nov-82 09:21:10-PST (Tue)
        !          1785: From: jkf (John Foderaro)
        !          1786: Subject: opus 38.42
        !          1787: Message-Id: <[email protected]>
        !          1788: Received: by UCBKIM.BERKELEY.ARPA (3.255 [11/28/82])
        !          1789:        id AA11699; 30-Nov-82 09:21:10-PST (Tue)
        !          1790: To: local-lisp
        !          1791: Status: O
        !          1792: 
        !          1793:   added: (sys:link 'oldname 'newname) that what the ln program does.
        !          1794: 
        !          1795:   changed: the order of arguments to the vset functions is now:
        !          1796:        (vset 'vector 'index 'value).
        !          1797:        
        !          1798:        [This shouldn't affect anyone since vectors haven't been officially
        !          1799:         released yet and won't be until I make one more major modification]
        !          1800: 
        !          1801:        setf now knows about vectors.  You can say
        !          1802:                (setf (vref 'vector 'index) 'value)
        !          1803:        and not have to worry about the order of arguments to vset.
        !          1804: 
        !          1805: 
        !          1806: 
        !          1807: From jkf  Tue Nov 30 10:42:00 1982
        !          1808: Date: 30-Nov-82 10:42:00-PST (Tue)
        !          1809: From: jkf (John Foderaro)
        !          1810: Subject: Re: opus 38.42
        !          1811: Message-Id: <[email protected]>
        !          1812: Received: by UCBKIM.BERKELEY.ARPA (3.255 [11/28/82])
        !          1813:        id AA13143; 30-Nov-82 10:42:00-PST (Tue)
        !          1814: To: jeffc, local-lisp
        !          1815: In-Reply-To: Your message of 30 Nov 1982 1036-PST (Tuesday)
        !          1816: Status: O
        !          1817: 
        !          1818:   It can't do symbolic links (I've only been adding system calls that I had
        !          1819: a use for).
        !          1820: 
        !          1821:   setf is a generalized setq.  The target can be an expression which locates
        !          1822: a value.  setf figures out how to store in the target.
        !          1823: for example:
        !          1824: 
        !          1825:   (setf x 3)        ==  (setq x 3)
        !          1826:   (setf (car x) 3)  == (rplaca x 3)
        !          1827:   (setf (get foo 'bar) 3) == (putprop foo 3 'bar)
        !          1828: 
        !          1829: the target must be something it has been 'taught' to understand, or it can
        !          1830: be a macro, in which case setf macro-expands it and takes another look.
        !          1831: 
        !          1832: The setf macro (and a list of targets it knows about is in
        !          1833: /usr/lib/lisp/common2.l)
        !          1834: 
        !          1835: 
        !          1836: 
        !          1837: 
        !          1838: From jkf@UCBKIM  Wed Dec  1 09:13:23 1982
        !          1839: Date: 1-Dec-82 09:13:03-PST (Wed)
        !          1840: From: jkf@UCBKIM (John Foderaro)
        !          1841: Subject: Random Numbers in Franz
        !          1842: Message-Id: <[email protected]>
        !          1843: Received: by UCBKIM.BERKELEY.ARPA (3.255 [11/28/82])
        !          1844:        id AA03615; 1-Dec-82 09:13:03-PST (Wed)
        !          1845: Received: from UCBKIM.BERKELEY.ARPA by UCBVAX.BERKELEY.ARPA (3.227 [10/22/82])
        !          1846:        id A18406; 1-Dec-82 09:13:23-PST (Wed)
        !          1847: To: franz-friends@berkeley
        !          1848: Status: RO
        !          1849: 
        !          1850: Date: 29-Nov-82 15:56:09-PST (Mon)
        !          1851: From: alice!sola!mitch
        !          1852: Subject: Random Numbers in Franz
        !          1853: To: alice!ucbvax!franz-friends
        !          1854: 
        !          1855: In general, it is very bad practice to compute a random number between 0
        !          1856: and n by any expression such as (mod (random) n).  In fact, Franz's
        !          1857: random function does exactly that, returning the number generated by the
        !          1858: C function rand(3) modulo n.  This technique uses only the rightmost 
        !          1859: bits of successive calls to rand, and the righmost n bits of congruential
        !          1860: sequences (like that returned by rand(3)) have a period of AT MOST 2**n
        !          1861: (See Knuth vol.2 p. 12).  So using the rightmost two bits will indeed give
        !          1862: you sequences of at most period 4.  (If your lisp doesn't have this 
        !          1863: behavior, you're not using the standard rand.)
        !          1864: 
        !          1865: A better way to do it is to use the high order bits, by dividing the entire
        !          1866: range up into n pieces and then seeing where you fall.  (This method is
        !          1867: biased if n is of the same order as the range, though.)
        !          1868: 
        !          1869: The code I use is:
        !          1870: 
        !          1871: 
        !          1872: (or (getd '$old-random) (putd '$old-random (getd 'random)))
        !          1873: 
        !          1874: (defun random n
        !          1875:   (cond ((eq n 0) ($old-random))
        !          1876:        ((fix (quotient (boole 1 ($old-random) #o 7777777777)
        !          1877:                        (quotient #o 7777777777 (arg 1)))))))
        !          1878: 
        !          1879:                Mitch Marcus
        !          1880: 
        !          1881: 
        !          1882: 
        !          1883: 
        !          1884: 
        !          1885: From jkf  Thu Dec  2 08:04:37 1982
        !          1886: Date: 2-Dec-82 08:04:37-PST (Thu)
        !          1887: From: jkf (John Foderaro)
        !          1888: Subject: Franz Lisp distribution
        !          1889: Message-Id: <[email protected]>
        !          1890: Received: by UCBKIM.BERKELEY.ARPA (3.255 [11/28/82])
        !          1891:        id AA14414; 2-Dec-82 08:04:37-PST (Thu)
        !          1892: To: franz-friends, net-lang-lisp@k
        !          1893: Status: O
        !          1894: 
        !          1895: 
        !          1896:        Franz Lisp Distribution
        !          1897:        
        !          1898:   This note describes our distribution policy for Franz Lisp.
        !          1899: 
        !          1900: What is being distributed:
        !          1901:   We distribute only source code in order to keep the distribution
        !          1902:   small and relatively Unix independent.   Makefiles are provided to
        !          1903:   build the entire lisp system from source, even if you don't have
        !          1904:   a version of lisp running already.  This process takes about 3 cpu
        !          1905:   hours on a Vax 780.  [This version for the Vax only, a 68000 version
        !          1906:   is being worked on.  Contact ucbkim.sklower@berkeley or 
        !          1907:   ucbkim.layer@berkeley]
        !          1908: 
        !          1909:   The following source is provided:
        !          1910:     lisp interpreter, 
        !          1911:     compiler (liszt),
        !          1912:     cross reference program (lxref),
        !          1913:     lisp manual,
        !          1914:     and other utility programs:
        !          1915:        trace, step, debug, cmu library functions, (and other minor ones),
        !          1916:        and these packages from the MIT lisp library:
        !          1917:            defstruct, loop, flavors. 
        !          1918:            [These programs are provided as a convenience to those who can't
        !          1919:             access the arpanet and copy them.  There is no documentation for
        !          1920:             them in the Franz Lisp manual.  The best source of documentation
        !          1921:             is the Lisp Machine manual (available from MIT, Symbolics
        !          1922:             or LMI)]
        !          1923: 
        !          1924:    Regarding Flavors:  there are two implementations of flavors for
        !          1925:        Franz Lisp, one from MIT (contact person Richard Zippel (rz@mit-mc))
        !          1926:        and one from the University of Maryland (contact person
        !          1927:        Liz Allen  (liz.umcp-cs@udel-relay)).  Neither implementation is
        !          1928:        exactly like flavors on the Lisp Machine (due to differences between
        !          1929:        Lisp Machine lisp and Franz Lisp), and the implementations differ
        !          1930:        from each other.    We incorporated the Mit version into the
        !          1931:        standard distribution because the high bandwidth between here and
        !          1932:        MIT will insure that it keeps up to date with the current Franz.
        !          1933:        This is not to imply that it is the better implementation.
        !          1934:        We haven't had enough experience with flavors to judge.
        !          1935:        Those seriously interested in Flavors should contact Liz
        !          1936:        Allen and ask for the Tech Report on the Univ Of Maryland Flavors
        !          1937:        system.
        !          1938: 
        !          1939: What is the form of the distribution:
        !          1940:   The files are packaged in a giant (2.1Mbyte) shell script.  Running this
        !          1941: shell script through 'sh' will result in a directory tree.  A ReadMe file
        !          1942: in the current directory will contain instructions on building the lisp
        !          1943: system.  The shell script is broken into a number of smaller files.
        !          1944: The current distribution looks like:
        !          1945: % ls
        !          1946: total 2092
        !          1947:  195 opus38.40.aa       195 opus38.40.ae        195 opus38.40.ai
        !          1948:  195 opus38.40.ab       195 opus38.40.af        195 opus38.40.aj
        !          1949:  195 opus38.40.ac       195 opus38.40.ag        142 opus38.40.ak
        !          1950:  195 opus38.40.ad       195 opus38.40.ah
        !          1951: 
        !          1952: The '38.40' means Opus 38, minor version 40.  These numbers may be different
        !          1953: by the time you get your distribution.  In order to extract the lisp
        !          1954: files from this shell script, you need only type:
        !          1955:        cat * | sh
        !          1956: 
        !          1957: 
        !          1958: To get a copy of the distribution:
        !          1959:   The distribution may be obtained either using FTP from an arpanet site,
        !          1960: or on a magnetic tape through the U.S Mail.
        !          1961: 
        !          1962:  Arpanet:
        !          1963:    The files are stored on the ucb-c70 (NCP) arpanet host in the
        !          1964:    directory /users/lisp/lispuser.  If you have an account on the ucb-c70,
        !          1965:    you are free to take FTP a copy of these files.
        !          1966:    If you do not have an account on the ucb-c70, send me (jkf@berkeley) a
        !          1967:    message and I will set up a temporary account for you.
        !          1968:    If you are on a TCP host, write me and we will set up an account on one
        !          1969:    of our Vax's for you to FTP the files.  Eventually we will have an
        !          1970:    anonymous login on a TCP machine.
        !          1971: 
        !          1972:  Mag Tape:
        !          1973:    In order to get a copy of the distribution mailed to you, send a check to
        !          1974:  cover our tape copying and mailing costs (fees are listed below).  We will
        !          1975:  purchase the mag tape and you are free to keep it.  Please do NOT
        !          1976:  send us a tape.
        !          1977: 
        !          1978:      Fees:
        !          1979:                $50     - distribution tape mailed 3rd class
        !          1980:            add $10     - a copy of the Lisp Manual (we will only
        !          1981:                          send one copy, you are free to photocopy it)
        !          1982:            add $7      - send tape via 1st class mail.
        !          1983: 
        !          1984:             -or-
        !          1985:                $15     - for just a copy of the Lisp Manual
        !          1986: 
        !          1987:  The address to send checks to is 
        !          1988: 
        !          1989:        Keith Sklower
        !          1990:        EECS/Computer Science Division
        !          1991:        524 Evans Hall
        !          1992:        University of California
        !          1993:        Berkeley, CA  94720
        !          1994: 
        !          1995:  All checks should be made out to "Regents, University of California."
        !          1996:  We require pre-payment.  We will not invoice or process purchase orders.
        !          1997: 
        !          1998: 
        !          1999: 
        !          2000: Disclaimers:
        !          2001:     This distribution works on the latest versions of Unix running at
        !          2002:     Berkeley (4.1a).  We can't guarantee that it will work on older
        !          2003:     versions (although, if you are running 4.1, it is almost certain
        !          2004:     that it will work, but we have not verified it).
        !          2005:     VMS users who are using a typical Unix compatibility package will 
        !          2006:     probably not be able to build a lisp from this distribution unless they
        !          2007:     know a great deal about VMS and their compatibility package.
        !          2008:     At least one package (Eunice) supports Franz at this time.
        !          2009:     
        !          2010: Redistribution:
        !          2011:     If you get a copy of the distribution, you are free to give it to
        !          2012:     other people.  We appreciate being informed of new sites so they
        !          2013:     can be put on a mailing list (electronic and conventional).  This
        !          2014:     list is used to announce new releases.  To be put on this list,
        !          2015:     send U.S. Mail to Keith Sklower (address above) or to 
        !          2016:     franz-friends-request@berkeley or ucbvax!franz-friends-request
        !          2017: 
        !          2018: 
        !          2019: 
        !          2020: From jkf  Mon Dec  6 08:50:45 1982
        !          2021: Date: 6-Dec-82 08:50:45-PST (Mon)
        !          2022: From: jkf (John Foderaro)
        !          2023: Subject: opus 38.43
        !          2024: Message-Id: <[email protected]>
        !          2025: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2026:        id AA12951; 6-Dec-82 08:50:45-PST (Mon)
        !          2027: To: local-lisp
        !          2028: Status: O
        !          2029: 
        !          2030:   The size of vectors is now recorded in bytes rather than longwords.
        !          2031:   We've imported a few more commands to deal with fclosures.
        !          2032:   (symeval-in-fclosure 'fclosure 'symbol)
        !          2033:   (set-in-fclosure 'fclosure 'symbol 'value)
        !          2034: 
        !          2035:   (let-fclosed vars function)
        !          2036:   
        !          2037: 
        !          2038: 
        !          2039: 
        !          2040: From jkf  Mon Dec 13 10:35:43 1982
        !          2041: Date: 13-Dec-82 10:35:43-PST (Mon)
        !          2042: From: jkf (John Foderaro)
        !          2043: Subject: enhancemants to trace
        !          2044: Message-Id: <[email protected]>
        !          2045: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2046:        id AA12160; 13-Dec-82 10:35:43-PST (Mon)
        !          2047: To: local-lisp
        !          2048: Status: O
        !          2049: 
        !          2050:   The function 'retrace' will insure that all functions which should be
        !          2051: traced are indeed traced.   This will solve the problem of reloading
        !          2052: a file whose functions are traced.  After you load a file, you can
        !          2053: type (retrace) and those functions which became untraced during the loading
        !          2054: process, will be traced again.
        !          2055: 
        !          2056:   The top-level-print and top-level-read variables will now take effect
        !          2057: within a trace break.
        !          2058: 
        !          2059: 
        !          2060: 
        !          2061: 
        !          2062: 
        !          2063: From jkf  Tue Dec 14 12:40:41 1982
        !          2064: Date: 14-Dec-82 12:40:41-PST (Tue)
        !          2065: From: jkf (John Foderaro)
        !          2066: Subject: Re: #!, exec and lisp
        !          2067: Message-Id: <[email protected]>
        !          2068: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2069:        id AA10379; 14-Dec-82 12:40:41-PST (Tue)
        !          2070: To: lime!burdvax!puder
        !          2071: Cc: franz-friends
        !          2072: In-Reply-To: Your message of 13-Dec-82 14:03:23-PST (Mon)
        !          2073: Status: O
        !          2074: 
        !          2075:    It is easy to make #! do a zapline.   If you have a recent version of
        !          2076: lisp, just execute:
        !          2077: 
        !          2078: (defsharp ! (x) (zapline))
        !          2079: 
        !          2080: (this could be put in your .lisprc, if you don't want to affect other 
        !          2081: people).    The problem with adding this to Franz by default is that the
        !          2082: sharpsign macro is shared by a number of lisps and few of them run under
        !          2083: Unix.   Therefore, few other lisps are going to want #! to be zapline.
        !          2084: 
        !          2085: 
        !          2086:   Regarding the -f switch:  The -f switch is used to communicate between the
        !          2087: bootstrap at the beginning of a fasl file and the lisp interpreter.  It
        !          2088: wasn't meant as a general 'fasl this file' switch for users to make use of.
        !          2089: The choice of '-f' was bad, it should have been something more unique like
        !          2090: '-- autorun' so that a user would be unlikely to type it.   We have avoided
        !          2091: assigning meanings to switches on lisp's command line because we want to give
        !          2092: each user the opportunity to assign whatever meaning he wants to whatever
        !          2093: switch he wants.   It isn't difficult to write a program to scan the command
        !          2094: line.
        !          2095: 
        !          2096: Re:
        !          2097:     The (setq searchlist (cvtsearchpathtolist (getenv 'PATH))) would not be
        !          2098:     necessary, because the exec syscall supplies the full path name, because
        !          2099:     the shell has already done the path searching on the command name.  The
        !          2100:     only place that might have to be searched is the current directory.
        !          2101: 
        !          2102: This isn't true.  (argv 0) is the command that you typed, not the full path
        !          2103: name to the command.  Only by prepending all the directories in the
        !          2104: search list can you find the location of the command.
        !          2105: 
        !          2106: 
        !          2107:                                ---john foderaro
        !          2108:                                
        !          2109: 
        !          2110: 
        !          2111: From jkf  Mon Jan 10 15:04:02 1983
        !          2112: Date: 10-Jan-83 15:04:02-PST (Mon)
        !          2113: From: jkf (John Foderaro)
        !          2114: Subject: opus 38.45
        !          2115: Message-Id: <[email protected]>
        !          2116: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2117:        id AA19240; 10-Jan-83 15:04:02-PST (Mon)
        !          2118: To: local-lisp
        !          2119: Status: O
        !          2120: 
        !          2121:   showstack will again report correctly for compiled calls if the
        !          2122: transfer tables are unlinked (status translink nil).
        !          2123: 
        !          2124: 
        !          2125: 
        !          2126: From jkf  Mon Jan 10 19:46:06 1983
        !          2127: Date: 10-Jan-83 19:46:06-PST (Mon)
        !          2128: From: jkf (John Foderaro)
        !          2129: Subject: opus 38.46
        !          2130: Message-Id: <[email protected]>
        !          2131: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2132:        id AA24831; 10-Jan-83 19:46:06-PST (Mon)
        !          2133: To: local-lisp
        !          2134: Status: O
        !          2135: 
        !          2136:  This version incorporates some fixes from mit.  You shouldn't notice
        !          2137: any differences but if you do, let me know.
        !          2138: 
        !          2139: 
        !          2140: 
        !          2141: 
        !          2142: 
        !          2143: From jkf  Wed Jan 12 09:03:32 1983
        !          2144: Date: 12-Jan-83 09:03:32-PST (Wed)
        !          2145: From: jkf (John Foderaro)
        !          2146: Subject: opus38.47
        !          2147: Message-Id: <[email protected]>
        !          2148: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2149:        id AA01981; 12-Jan-83 09:03:32-PST (Wed)
        !          2150: To: local-lisp
        !          2151: Status: O
        !          2152: 
        !          2153:   The setf macro will now handle all car and cdr forms (i.e. c{ad}+r).
        !          2154:   Thanks to peter norvig for this.
        !          2155: 
        !          2156:   There is a new macro called 'defvar'.  It is used to declare special
        !          2157: variables and optionally to give them an initial value.  It is used
        !          2158: at top level in a file (outside of defuns).
        !          2159: 
        !          2160: forms:
        !          2161: (defvar foo)   ; declares foo to be special
        !          2162: (defvar bar 3) ; declares bar to be special and when this file is read in
        !          2163:                ; bar will be given the value 3 if it is unbound.
        !          2164: An advantage of '(defvar foo)' over '(declare (special foo))' is that if
        !          2165: a file containing defvars is loaded (or fasl'ed) in during compilation,
        !          2166: the variables mentioned in the defvar's will be declared special.  The only
        !          2167: way to have that effect with '(declare (special foo))' is to 'include'
        !          2168: the file.  
        !          2169: 
        !          2170:  There is a new macro, 'environment', which can be used at the beginning of
        !          2171: a file to specify what sort of environment this file needs in order to be
        !          2172: compiled or run.  For example:
        !          2173: (environment (compile eval) (files mymacros othermacros)
        !          2174:             (compile) (syntax maclisp))
        !          2175: 
        !          2176: says that when compiling or loading into the interpreter, the files
        !          2177: mymacros and othermacros should be loaded (if they aren't loaded already).
        !          2178: When compiling, the maclisp syntax should be used.
        !          2179: The general form of 'environment' is:
        !          2180:    (environment when1 what1
        !          2181:                when2 what2
        !          2182:                ...    ...
        !          2183:                whenN whatN)
        !          2184: the when's are a subset of (eval compile load), and the symbols have the
        !          2185: same meaning as they do in 'eval-when'.
        !          2186: The what's are either
        !          2187:        (files file1 file2 ... fileN)
        !          2188:                insure that the named files are loaded.  To see if fileX
        !          2189:                is loaded, it looks for a 'version' property under
        !          2190:                fileX's property list.  Thus to prevent multiple loading,
        !          2191:                you should put
        !          2192:                (putprop 'myfile t 'version) at the end of myfile.l
        !          2193:        (syntax type)
        !          2194:                type is either maclisp, intlisp, ucilisp, franzlisp
        !          2195:                This sets the syntax correctly.
        !          2196: 
        !          2197: There are additional macros to set of standard environments:
        !          2198: (environment-maclisp)  sets up the maclisp environment.  This is what
        !          2199:        you would get by using the -m switch to liszt.
        !          2200: 
        !          2201: (environment-lmlisp)  sets up the lisp machine environment. This is like
        !          2202:        maclisp but it has additional macros.
        !          2203: 
        !          2204:        
        !          2205: It is possible to add when's and what's to the specialized environments,
        !          2206: e.g.
        !          2207:  (environment-maclisp (compile eval) (files foo bar))
        !          2208: 
        !          2209: 
        !          2210: 
        !          2211:   
        !          2212: 
        !          2213: 
        !          2214: 
        !          2215: From norvig Wed Jan 12 13:12:45 1983
        !          2216: To: jkf local-lisp
        !          2217: Subject: defvar
        !          2218: Status: O
        !          2219: 
        !          2220: Shouldn't defvar take any number of arguments, like setq?  As it is,
        !          2221: (defvar a 1 b 2) sets a to 1, but ignores the other arguments.
        !          2222: 
        !          2223: From fateman Wed Jan 12 13:23:08 1983
        !          2224: To: jkf local-lisp norvig
        !          2225: Subject: Re:  defvar
        !          2226: Status: O
        !          2227: 
        !          2228: I suspect the extra arguments to defvar are used in other systems for
        !          2229: storage of documentation strings in appropriate places.  E.g.
        !          2230: (defvar dozen 12 "initially 12 except in the baker system when it is 13")
        !          2231: causes some association with defvar and documentation should be put on
        !          2232: a file.
        !          2233: 
        !          2234: 
        !          2235: From jkf  Wed Jan 12 14:25:02 1983
        !          2236: Date: 12-Jan-83 14:25:02-PST (Wed)
        !          2237: From: jkf (John Foderaro)
        !          2238: Subject: Re: defvar
        !          2239: Message-Id: <[email protected]>
        !          2240: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2241:        id AA13079; 12-Jan-83 14:25:02-PST (Wed)
        !          2242: To: norvig, local-lisp
        !          2243: In-Reply-To: Your message of 12 Jan 1983 1311-PST (Wednesday)
        !          2244: Status: O
        !          2245: 
        !          2246:  fateman is correct that there is an optional third argument for
        !          2247: documentation.   We don't want to add multiple arguments because defvar
        !          2248: it will mean that code we write here can't be transported to
        !          2249: other lisp which only expect one defvar argument.
        !          2250: 
        !          2251: 
        !          2252: 
        !          2253: From jkf  Thu Jan 13 09:49:13 1983
        !          2254: Date: 13-Jan-83 09:49:13-PST (Thu)
        !          2255: From: jkf (John Foderaro)
        !          2256: Subject: liszt 8.17
        !          2257: Message-Id: <[email protected]>
        !          2258: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2259:        id AA00331; 13-Jan-83 09:49:13-PST (Thu)
        !          2260: To: local-lisp
        !          2261: Status: O
        !          2262: 
        !          2263:  The vector reference functions are open coded.  These are
        !          2264:        vref, vrefi-byte, vrefi-word, vrefi-long
        !          2265: 
        !          2266: 
        !          2267: 
        !          2268: From G:alpines  Thu Jan 13 20:31:34 1983
        !          2269: Date: 13 Jan 1983 20:24-PST
        !          2270: From: alpines@G   (Harry Weeks at Vax-Populi)
        !          2271: Subject: Franz on 68000's
        !          2272: Message-Id: <83/01/13 2024.733@Vax-Populi>
        !          2273: Received: by UCBVAX.BERKELEY.ARPA (3.293 [1/9/83])
        !          2274:        id AA12970; 13-Jan-83 20:28:37-PST (Thu)
        !          2275: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2276:        id AA14908; 13-Jan-83 20:31:34-PST (Thu)
        !          2277: To: franz@BERKELEY
        !          2278: Cc: franz-friends@BERKELEY
        !          2279: Status: O
        !          2280: 
        !          2281: >Date: 13 Jan 1983 20:01-PST
        !          2282: From: G.alpines at Berkeley (Harry Weeks at Vax-Populi)
        !          2283: Subject: Franz on 68000's.
        !          2284: To: franz-friends-request@Berkeley
        !          2285: Message-Id: <83/01/13 2001.733@Vax-Populi>
        !          2286: 
        !          2287: Please put me on your mailing list for information concerning
        !          2288: implementation of Franz, esp. on 68000's, but I'd like to keep
        !          2289: informed generally as well.  Thanks.
        !          2290: 
        !          2291:                                        Harry Weeks
        !          2292:                                        Bytek
        !          2293:                                        1730 Solano Avenue
        !          2294:                                        Berkeley, CA 94707
        !          2295:                                        
        !          2296:                                        (415) 527-1157
        !          2297: 
        !          2298: 
        !          2299: From jkf  Sun Jan 16 21:22:54 1983
        !          2300: Date: 16-Jan-83 21:22:54-PST (Sun)
        !          2301: From: jkf (John Foderaro)
        !          2302: Subject: change to lisptags program
        !          2303: Message-Id: <[email protected]>
        !          2304: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2305:        id AA23656; 16-Jan-83 21:22:54-PST (Sun)
        !          2306: To: local-lisp
        !          2307: Status: O
        !          2308: 
        !          2309:  lisptags will now surround the search string with /'s instead of ?'s
        !          2310: in order to be compatible with ctags.   Both types should work with vi,
        !          2311: emacs people will probably have to make a minor modification to their
        !          2312: tags.ml file.
        !          2313:   My version in ~jkf/elib/tags.ml.
        !          2314:  
        !          2315: 
        !          2316: 
        !          2317: 
        !          2318: 
        !          2319: 
        !          2320: From jkf  Tue Jan 18 16:43:23 1983
        !          2321: Date: 18-Jan-83 16:43:23-PST (Tue)
        !          2322: From: jkf (John Foderaro)
        !          2323: Subject: lisp opus 38.48, liszt 8.19
        !          2324: Message-Id: <[email protected]>
        !          2325: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2326:        id AA10935; 18-Jan-83 16:43:23-PST (Tue)
        !          2327: To: local-lisp
        !          2328: Status: O
        !          2329: 
        !          2330:   This is a long message so I'll put the most important thing first, in case
        !          2331: you choose not to read the rest of the message:
        !          2332:   *** object files generated by liszt 8.19 will not run in any lisp
        !          2333:   *** older than 38.48.    Object files which were generated by
        !          2334:   *** liszt's before 8.19 will continue to work in the new lisp.
        !          2335: 
        !          2336: 
        !          2337: There were two major changes to lisp and liszt:
        !          2338:  1) compiled functions will test at runtime to make sure that they
        !          2339:     are passed the correct number of arguments.
        !          2340: 
        !          2341:  2) the lambda list keywords &optional, &rest and &aux are open compiled
        !          2342:     in an efficient manner.
        !          2343: 
        !          2344: I'll refresh your memory on what the possible forms are for the & keywords:
        !          2345: 
        !          2346:   the formal parameter list of a def has this form
        !          2347:   ( required-args
        !          2348:     [ &optional optional-arguments ]
        !          2349:     [ &rest rest-argument ]
        !          2350:     [ &aux  aux-arguments ])
        !          2351: 
        !          2352:  as in this example which shows all possible forms:
        !          2353: 
        !          2354:  (def foo 
        !          2355:    (lambda (a b &optional c (d 23 d-p) (dd (bar)) &rest e &aux (f 12) g)
        !          2356:        (compute)))
        !          2357: 
        !          2358:    
        !          2359:  the meaning and forms of the various parts of the formal parameter list are:
        !          2360: 
        !          2361:  required-args: a sequence of n (zero or more) symbols which will be bound
        !          2362:        to the first n actual arguments.
        !          2363: 
        !          2364:  optional-args:        a sequence of m (zero or more) symbols which will be
        !          2365:        bound to the next m actual arguments if they are present, or
        !          2366:        to default values.
        !          2367:        the forms of an optional argument are:
        !          2368:        
        !          2369:        foo     - bind foo to the argument if it present, otherwise bind it
        !          2370:                  to nil
        !          2371:        (foo (expr)) - bind foo to the argument if it is present, otherwise
        !          2372:                evaluate (expr) and bind foo to the result.
        !          2373: 
        !          2374:        (foo (expr) foo-p)  - bind foo to the argument if it is present, 
        !          2375:                otherwise evaluate (expr) and bind foo to the result.
        !          2376:                Also, bind foo-p to t if the argument is present, otherwise
        !          2377:                bind foo-p to nil.  foo-p will be treated like an &aux
        !          2378:                variable (see below) but it should NOT be declared in the
        !          2379:                &aux list!
        !          2380: 
        !          2381:   rest-arg : a single symbol which will be bound to a list of the rest of the
        !          2382:        arguments.  This list is cons'ed up each time the function is called.
        !          2383: 
        !          2384:   aux-args : these args are just like arguments to let or prog within the
        !          2385:        function body so this & keyword isn't really necessary (but there
        !          2386:        are few things in lisp that really are necessary).
        !          2387: 
        !          2388:        the forms of the aux arg are:
        !          2389: 
        !          2390:        foo - bind foo to nil
        !          2391:        (foo (expr))  - evaluate (expr) and bind foo to the result.
        !          2392: 
        !          2393: 
        !          2394: 
        !          2395: The compiler understands the &keywords but the interpreter does not.  'def'
        !          2396: will convert a form with &keywords to a lexpr which is almost equivalent.
        !          2397: The differences are:
        !          2398:     The interpreted form, being a lexpr, is allowed to use the 'arg'
        !          2399:        function.  The compiled form, even with optional args,
        !          2400:        is not a lexpr and thus 'arg' is illegal.
        !          2401: 
        !          2402:     The order that &aux variables are lambda bound is slightly different
        !          2403:         between interpreted and compiled code.  As long as default
        !          2404:        expressions reference no formal parameters after them in the
        !          2405:        formal parameter list, there should be no problems.
        !          2406: 
        !          2407:     The interpreted version will not check for the correct number of
        !          2408:         arguments.
        !          2409: 
        !          2410: Local functions cannot have &keywords. 
        !          2411: 
        !          2412: If you have any questions on this, send me mail.  This change should
        !          2413: only break functions which expect a variable number of argument and
        !          2414: which don't declare the fact using &optional programs.  There may be,
        !          2415: of course, implementation errors.  If you notice anything unusual
        !          2416: please let me know right away.  The old compiler will be
        !          2417: in /usr/ucb/oliszt for a while.
        !          2418: 
        !          2419: 
        !          2420: 
        !          2421:        
        !          2422:     
        !          2423:        
        !          2424: 
        !          2425: 
        !          2426: 
        !          2427: From layer  Thu Jan 20 01:55:55 1983
        !          2428: Date: 20-Jan-83 01:55:55-PST (Thu)
        !          2429: From: layer (Kevin Layer)
        !          2430: Subject: liszt 8.20
        !          2431: Message-Id: <[email protected]>
        !          2432: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2433:        id AA17788; 20-Jan-83 01:55:55-PST (Thu)
        !          2434: To: local-lisp
        !          2435: Phone: (415) 652-2405
        !          2436: Status: O
        !          2437: 
        !          2438:     There are now three new command line features for liszt:
        !          2439: 
        !          2440:     1. -E <s-expr>, where <s-expr> will be evaluated before compilation
        !          2441:        starts.  For example, the setting of constants can be done in this way:
        !          2442: 
        !          2443:           liszt -E '(setq foobar "***foobar-string***")' foobar.l
        !          2444: 
        !          2445:        and in the file being compiled, foobar is accessed as '#.foobar.
        !          2446: 
        !          2447:     2. -I <include-file>, where <include-file> will be loaded (via load)
        !          2448:        before compilation starts.
        !          2449: 
        !          2450:     3. A combination of the -S and -o switches will set the .s file, as in:
        !          2451: 
        !          2452:         liszt -S -o foo.vax.s foo.l
        !          2453: 
        !          2454:       where previously, the -S determined the name of the .s file (foo.s in
        !          2455:       the above example).
        !          2456:       
        !          2457: 
        !          2458: 
        !          2459: From jkf  Thu Jan 20 19:42:38 1983
        !          2460: Date: 20-Jan-83 19:42:38-PST (Thu)
        !          2461: From: jkf (John Foderaro)
        !          2462: Subject: some mods to liszt 8.20
        !          2463: Message-Id: <[email protected]>
        !          2464: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2465:        id AA07334; 20-Jan-83 19:42:38-PST (Thu)
        !          2466: To: local-lisp
        !          2467: Status: O
        !          2468: 
        !          2469:  the -E and -I flags are now -e and -i
        !          2470:  there may be more than one -i flag given on the command line.
        !          2471:  
        !          2472: 
        !          2473: 
        !          2474: From fateman Thu Jan 20 20:20:31 1983
        !          2475: To: local-lisp
        !          2476: Subject: fame, if not fortune
        !          2477: Status: RO
        !          2478: 
        !          2479: In the latest Scientific American, Feb. 1983, Hofstader's column
        !          2480: is the first of several on the programming language "lisp".  He
        !          2481: mentions the particular dialect he is using .... Franz !
        !          2482: 
        !          2483: From wilensky  Thu Jan 20 20:57:27 1983
        !          2484: Date: 20-Jan-83 20:57:27-PST (Thu)
        !          2485: From: wilensky (Robert Wilensky)
        !          2486: Subject: Re: fame, if not fortune
        !          2487: Message-Id: <[email protected]>
        !          2488: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2489:        id AA08824; 20-Jan-83 20:57:27-PST (Thu)
        !          2490: To: fateman, local-lisp
        !          2491: In-Reply-To: Your message of 20 Jan 1983 2019-PST (Thursday)
        !          2492: Status: RO
        !          2493: 
        !          2494: 
        !          2495: On the other hand, being referenced by Hofstader is a dubious honor.
        !          2496: 
        !          2497: 
        !          2498: From UCBKIM:jkf  Fri Jan 21 08:15:04 1983
        !          2499: Date: 21-Jan-83 08:11:01-PST (Fri)
        !          2500: From: UCBKIM:jkf (John Foderaro)
        !          2501: Subject: test message, ignore
        !          2502: Message-Id: <[email protected]>
        !          2503: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2504:        id AA18650; 21-Jan-83 08:11:01-PST (Fri)
        !          2505: Received: from UCBKIM.BERKELEY.ARPA by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          2506:        id AA24887; 21 Jan 83 08:09:27 PST (Fri)
        !          2507: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2508:        id AA18766; 21-Jan-83 08:15:04-PST (Fri)
        !          2509: To: franz-friends@BERKELEY
        !          2510: Status: O
        !          2511: 
        !          2512:  This will give our mailer a chance to tell me how many of our franz friends
        !          2513: are no longer reachable.
        !          2514: 
        !          2515: 
        !          2516: 
        !          2517: From JTSCHUDY@USC-ISIE  Sat Jan 22 16:42:19 1983
        !          2518: Date: 22 Jan 1983 1634-PST
        !          2519: From: JTSCHUDY@USC-ISIE
        !          2520: Subject: MAILINGLIST ADDITION
        !          2521: Message-Id: <[email protected]>
        !          2522: Received: from USC-ISIE by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          2523:        id AA01747; 22 Jan 83 16:37:17 PST (Sat)
        !          2524: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2525:        id AA18903; 22-Jan-83 16:42:19-PST (Sat)
        !          2526: To: franz-friends@BERKELEY
        !          2527: Status: O
        !          2528: 
        !          2529: Hi!  My name is Jim.  I am presently attending the Naval Post Graduate
        !          2530: School in Monterey California.  I am in the Air Force  enrolled  in  a
        !          2531: DOD  sponsored  graduate  degree in Command Control and Communications
        !          2532: Systems Technology.
        !          2533: 
        !          2534: i  would  like  to  be  added to your mailing list.  My net address is
        !          2535: JTSCHUDY at ISIE.
        !          2536: 
        !          2537: Thanks - Jim.
        !          2538: -------
        !          2539: 
        !          2540: 
        !          2541: From jkf  Sat Jan 22 17:38:41 1983
        !          2542: Date: 22-Jan-83 17:38:41-PST (Sat)
        !          2543: From: jkf (John Foderaro)
        !          2544: Subject: opus 38.49
        !          2545: Message-Id: <[email protected]>
        !          2546: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2547:        id AA20020; 22-Jan-83 17:38:41-PST (Sat)
        !          2548: To: local-lisp
        !          2549: Status: O
        !          2550: 
        !          2551:   A longstanding bug in the determination of the number of free dtpr objects
        !          2552: has been found and fixed.  The effect of this bug was that the function
        !          2553: which is responsible for allocating more memory pages didn't allocate
        !          2554: enough dtpr pages because it thought that there were a large number of
        !          2555: cells free.
        !          2556: 
        !          2557: 
        !          2558: 
        !          2559: From MCLINDEN@RUTGERS  Mon Jan 24 10:33:14 1983
        !          2560: Date: 24 Jan 1983 1324-EST
        !          2561: From: Sean McLinden  <MCLINDEN@RUTGERS>
        !          2562: Subject: Franz Lisp and floating point accelerator
        !          2563: Message-Id: <[email protected]>
        !          2564: Received: from RUTGERS by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          2565:        id AA19602; 24 Jan 83 10:25:06 PST (Mon)
        !          2566: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2567:        id AA27143; 24-Jan-83 10:33:14-PST (Mon)
        !          2568: To: franz-friends@UCBVAX
        !          2569: Status: O
        !          2570: 
        !          2571: 
        !          2572:   Has anyone determined if a floating point accelerator speeds up
        !          2573:  Vax Franz Lisp jobs in any significant fashion?
        !          2574: 
        !          2575:   Pointers would be appreciated.
        !          2576: 
        !          2577:   Sean McLinden
        !          2578:   Decision Systems Lab
        !          2579: -------
        !          2580: 
        !          2581: From mike@rand-unix  Mon Jan 24 18:47:03 1983
        !          2582: Date: Monday, 24 Jan 1983 15:34-PST
        !          2583: From: mike@RAND-UNIX
        !          2584: Subject: emacs interface to franz?
        !          2585: Message-Id: <[email protected]>
        !          2586: Received: from rand-unix by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          2587:        id AA00058; 24 Jan 83 16:08:36 PST (Mon)
        !          2588: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2589:        id AA00921; 24-Jan-83 18:47:03-PST (Mon)
        !          2590: To: franz-friends@BERKELEY
        !          2591: Status: O
        !          2592: 
        !          2593: 
        !          2594: Does anyone have a snazzy interface to emacs for franz?  
        !          2595: 
        !          2596: Thanks,
        !          2597:   Michael
        !          2598: 
        !          2599: 
        !          2600: From @udel-relay.ARPA,@UDel-Relay:[email protected]  Tue Jan 25 16:29:19 1983
        !          2601: Date: 25 Jan 1983  9:58-EST
        !          2602: From: Tim Finin <Tim.UPenn@UDel-Relay>
        !          2603: Subject: emacs interface to franz?
        !          2604: Message-Id: <[email protected]>
        !          2605: Received: from udel-relay.ARPA by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          2606:        id AA29320; 25 Jan 83 16:22:57 PST (Tue)
        !          2607: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2608:        id AA01561; 25-Jan-83 16:29:19-PST (Tue)
        !          2609: Return-Path: <[email protected]@UDel-Relay>
        !          2610: To: mike@Rand-Unix
        !          2611: Cc: franz-friends@BERKELEY
        !          2612: Via:  UPenn; 25 Jan 83 19:21-EST
        !          2613: Status: O
        !          2614: 
        !          2615: 
        !          2616: We have a simple interface from Franz to Emacs, but I much prefer to go the
        !          2617: other way, i.e. run Franz as a inferior job under Emacs.  I believe there
        !          2618: are several Emacs packages which allow one to run inferior jobs in an Emacs
        !          2619: window (I have my own which is, unfortunately totally undocumented). Some of
        !          2620: the benefits of this set up include:
        !          2621: 
        !          2622:     - one has all of the text editing functions available in Emacs
        !          2623:     - one has many lisp-based editing functions available in Emacs
        !          2624:       (thru mock-lisp packages like electriclisp)
        !          2625:     - one has a history of the session in the editing buffer
        !          2626:     - one has an environment which supports multiple concurrent
        !          2627:       processes running in seperate windows.
        !          2628:     - it is very easy to experiment with new interface features such as
        !          2629:       symbol completion and re-evaluation of previously issued commands
        !          2630:     
        !          2631: Tim
        !          2632:     
        !          2633: 
        !          2634: From CARR@UTAH-20  Fri Jan 28 08:19:08 1983
        !          2635: Date: 28 Jan 1983 0912-MST
        !          2636: From: Harold Carr <CARR@UTAH-20>
        !          2637: Subject: franz distribution
        !          2638: Message-Id: <[email protected]>
        !          2639: Received: from UTAH-20 by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          2640:        id AA20646; 28 Jan 83 08:15:18 PST (Fri)
        !          2641: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2642:        id AA16991; 28-Jan-83 08:19:08-PST (Fri)
        !          2643: To: franz-friends@UCBVAX
        !          2644: Status: O
        !          2645: 
        !          2646: What is the distribution policy?
        !          2647: 
        !          2648: I work for a company that has opus 36 and is now currently running opus 37.
        !          2649: Here at the University of Utah we are running opus 38.04. Is it OK to
        !          2650: make a tape of the University's 38.04 to bring my company more up to
        !          2651: date? Do I have to make it more formal by signing a transfer agreement
        !          2652: or by obtaining the release directly from Berkeley?
        !          2653: 
        !          2654:                               Thanks in advance,
        !          2655:                                  Harold Carr
        !          2656:                                 CARR@UTAH-20
        !          2657: -------
        !          2658: 
        !          2659: From UCBKIM:jkf  Fri Jan 28 15:09:32 1983
        !          2660: Date: 28-Jan-83 08:34:33-PST (Fri)
        !          2661: From: UCBKIM:jkf
        !          2662: Subject: Re: franz distribution
        !          2663: Message-Id: <[email protected]>
        !          2664: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2665:        id AA17319; 28-Jan-83 08:34:33-PST (Fri)
        !          2666: Received: from UCBKIM.BERKELEY.ARPA by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          2667:        id AA02275; 28 Jan 83 14:58:37 PST (Fri)
        !          2668: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2669:        id AA00402; 28-Jan-83 15:09:32-PST (Fri)
        !          2670: To: CARR@UTAH-20
        !          2671: Cc: franz-friends@UCBVAX
        !          2672: In-Reply-To: Your message of 28 Jan 1983 0912-MST
        !          2673: Status: O
        !          2674: 
        !          2675:   Here is our current distribution policy.  This differs a bit from
        !          2676: the one sent out a month ago [in particular, we now have anonymous ftp]
        !          2677: 
        !          2678:                                    -[Fri Jan 28 08:31:45 1983 by jkf]-
        !          2679:        Franz Lisp Distribution
        !          2680:        
        !          2681:   This note describes our distribution policy for Franz Lisp.
        !          2682: 
        !          2683: What is being distributed:
        !          2684:   We distribute only source code in order to keep the distribution
        !          2685:   small and relatively Unix independent.   Makefiles are provided to
        !          2686:   build the entire lisp system from source, even if you don't have
        !          2687:   a version of lisp running already.  This process takes about 3 cpu
        !          2688:   hours on a Vax 780.  [This version for the Vax only, a 68000 version
        !          2689:   is being worked on.  Contact ucbkim.sklower@berkeley or 
        !          2690:   ucbkim.layer@berkeley]
        !          2691: 
        !          2692:   The following source is provided:
        !          2693:     lisp interpreter, 
        !          2694:     compiler (liszt),
        !          2695:     cross reference program (lxref),
        !          2696:     lisp manual,
        !          2697:     and other utility programs:
        !          2698:        trace, step, debug, cmu library functions, (and other minor ones),
        !          2699:        and these packages from the MIT lisp library:
        !          2700:            defstruct, loop. 
        !          2701:            [These programs are provided as a convenience to those who can't
        !          2702:             access the arpanet and copy them.  There is no documentation for
        !          2703:             them in the Franz Lisp manual.  The best source of documentation
        !          2704:             is the Lisp Machine manual (available from MIT, Symbolics
        !          2705:             or LMI)]
        !          2706: 
        !          2707:    Regarding Flavors:  there are two implementations of flavors for
        !          2708:        Franz Lisp, one from MIT (contact person Richard Zippel (rz@mit-mc))
        !          2709:        and one from the University of Maryland (contact person
        !          2710:        Liz Allen  (liz.umcp-cs@udel-relay)).  Neither implementation is
        !          2711:        exactly like flavors on the Lisp Machine (due to differences between
        !          2712:        Lisp Machine lisp and Franz Lisp), and the implementations differ
        !          2713:        from each other.    The MIT version cannot be distributed by 
        !          2714:        us (yet) due to licensing problems.   If you have a Lisp Machine
        !          2715:        Source license from Symbolics, you should be able to get a copy
        !          2716:        from MIT.
        !          2717:        For a Tech Report on Maryland flavors, write to Liz Allen.
        !          2718: 
        !          2719: What is the form of the distribution:
        !          2720:   The files are packaged in a giant (2.1Mbyte) shell script.  Running this
        !          2721: shell script through 'sh' will result in a directory tree.  A ReadMe file
        !          2722: in the current directory will contain instructions on building the lisp
        !          2723: system.  The shell script is broken into a number of smaller files.
        !          2724: The current distribution looks like:
        !          2725: 
        !          2726: total 2089
        !          2727:  489 -rw-r--r--  1 jkf        500003 Jan 26 11:33 opus38.50.aa
        !          2728:  489 -rw-r--r--  1 jkf        500002 Jan 26 11:35 opus38.50.ab
        !          2729:  489 -rw-r--r--  1 jkf        500047 Jan 26 11:37 opus38.50.ac
        !          2730:  489 -rw-r--r--  1 jkf        500007 Jan 26 11:38 opus38.50.ad
        !          2731:  133 -rw-r--r--  1 jkf        136038 Jan 26 11:39 opus38.50.ae
        !          2732: 
        !          2733: The '38.50' means Opus 38, minor version 50.  These numbers may be different
        !          2734: by the time you get your distribution.  In order to extract the lisp
        !          2735: files from this shell script, you need only type:
        !          2736:        cat * | sh
        !          2737: 
        !          2738: 
        !          2739: To get a copy of the distribution:
        !          2740:   The distribution may be obtained either using FTP from an arpanet site,
        !          2741: or on a magnetic tape through the U.S Mail.
        !          2742: 
        !          2743:  Arpanet:
        !          2744:    The files are stored on the arpanet host 'ucb-vax' [ if you have an out
        !          2745:    of date host table, it may be called 'ucb-monet' or 'ucb-ingres'. Its
        !          2746:    internet number is 10.2.0.78].
        !          2747:    You can login as 'anonymous'.   Use your name as the password.
        !          2748:    The files are in the subdirectory pub/lisp.
        !          2749:    
        !          2750:    For those who have accounts on ucb-vax, the full path is ~ftp/pub/lisp.
        !          2751: 
        !          2752:  Mag Tape:
        !          2753:    In order to get a copy of the distribution mailed to you, send a check to
        !          2754:  cover our tape copying and mailing costs (fees are listed below).  We will
        !          2755:  purchase the mag tape and you are free to keep it.  Please do NOT
        !          2756:  send us a tape.
        !          2757: 
        !          2758:      Fees:
        !          2759:                $50     - distribution tape mailed 3rd class
        !          2760:            add $10     - a copy of the Lisp Manual (we will only
        !          2761:                          send one copy, you are free to photocopy it)
        !          2762:            add $7      - send tape via 1st class mail.
        !          2763: 
        !          2764:             -or-
        !          2765:                $15     - for just a copy of the Lisp Manual
        !          2766: 
        !          2767:  The address to send checks to is 
        !          2768: 
        !          2769:        Keith Sklower
        !          2770:        EECS/Computer Science Division
        !          2771:        524 Evans Hall
        !          2772:        University of California
        !          2773:        Berkeley, CA  94720
        !          2774: 
        !          2775:  All checks should be made out to "Regents, University of California."
        !          2776:  We require pre-payment.  We will not invoice or process purchase orders.
        !          2777: 
        !          2778: 
        !          2779: 
        !          2780: Disclaimers:
        !          2781:     This distribution works on the latest versions of Unix running at
        !          2782:     Berkeley (4.1a).  We can't guarantee that it will work on older
        !          2783:     versions (although, if you are running 4.1, it is almost certain
        !          2784:     that it will work, but we have not verified it).
        !          2785:     VMS users who are using a typical Unix compatibility package will 
        !          2786:     probably not be able to build a lisp from this distribution unless they
        !          2787:     know a great deal about VMS and their compatibility package.
        !          2788:     At least one package (Eunice) supports Franz at this time.
        !          2789:     
        !          2790: Redistribution:
        !          2791:     If you get a copy of the distribution, you are free to give it to
        !          2792:     other people.  We appreciate being informed of new sites so they
        !          2793:     can be put on a mailing list (electronic and conventional).  This
        !          2794:     list is used to announce new releases.  To be put on this list,
        !          2795:     send U.S. Mail to Keith Sklower (address above) or to 
        !          2796:     franz-friends-request@berkeley or ucbvax!franz-friends-request
        !          2797: 
        !          2798: 
        !          2799: 
        !          2800: From Kim:fateman  Sun Jan 30 02:12:28 1983
        !          2801: Date: 28 Jan 83 08:32:08 PST (Fri)
        !          2802: From: Kim:fateman (Richard Fateman)
        !          2803: Subject: Re:  franz distribution
        !          2804: Message-Id: <[email protected]>
        !          2805: Received: by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          2806:        id AA21039; 28 Jan 83 08:31:58 PST (Fri)
        !          2807: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2808:        id AA10132; 30-Jan-83 02:12:28-PST (Sun)
        !          2809: To: CARR@UTAH-20
        !          2810: Cc: franz-friends@ucbvax
        !          2811: Status: O
        !          2812: 
        !          2813: Our policy is that you may move copies of Franz elsewhere
        !          2814: without notifying us.  We continue to be interested in sharing anything
        !          2815: you or your company wish to provide us, in suggestions, programs, etc.
        !          2816: 
        !          2817: 
        !          2818: From UCBCAD:pettengi  Sun Jan 30 02:33:52 1983
        !          2819: Date: 28-Jan-83 10:54:51-PST (Fri)
        !          2820: From: UCBCAD:pettengi (Rob Pettengill)
        !          2821: Subject: emacs interface to franz?
        !          2822: Message-Id: <[email protected]>
        !          2823: Received: by UCBCAD.BERKELEY.ARPA (3.256 [12/5/82])
        !          2824:        id AA26156; 28-Jan-83 10:54:51-PST (Fri)
        !          2825: Received: from UCBCAD.BERKELEY.ARPA by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          2826:        id AA00374; 28 Jan 83 12:53:44 PST (Fri)
        !          2827: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2828:        id AA10578; 30-Jan-83 02:33:52-PST (Sun)
        !          2829: To: mike@rand-unix, franz-friends@ucbvax
        !          2830: Cc: pettengi@UCBCAD
        !          2831: Status: O
        !          2832: 
        !          2833:        While I was at TI I used a very nice interface that let one start up
        !          2834: a Franz lisp inside an Emacs window.  It came from SRI when we got Eunice to run
        !          2835: under our VMS.  Try Kashtan@SRI-AI.
        !          2836: 
        !          2837: Rob Pettengill
        !          2838: E-Systems, Dallas, Tx.
        !          2839: 
        !          2840: From UCBKIM:jkf  Sun Jan 30 02:44:27 1983
        !          2841: Date: 28-Jan-83 08:34:33-PST (Fri)
        !          2842: From: UCBKIM:jkf (John Foderaro)
        !          2843: Subject: Re: franz distribution
        !          2844: Message-Id: <[email protected]>
        !          2845: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2846:        id AA17319; 28-Jan-83 08:34:33-PST (Fri)
        !          2847: Received: from UCBKIM.BERKELEY.ARPA by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          2848:        id AA02275; 28 Jan 83 14:58:37 PST (Fri)
        !          2849: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2850:        id AA10772; 30-Jan-83 02:44:27-PST (Sun)
        !          2851: To: CARR@UTAH-20
        !          2852: Cc: franz-friends@UCBVAX
        !          2853: In-Reply-To: Your message of 28 Jan 1983 0912-MST
        !          2854: Status: RO
        !          2855: 
        !          2856:   Here is our current distribution policy.  This differs a bit from
        !          2857: the one sent out a month ago [in particular, we now have anonymous ftp]
        !          2858: 
        !          2859:                                    -[Fri Jan 28 08:31:45 1983 by jkf]-
        !          2860:        Franz Lisp Distribution
        !          2861:        
        !          2862:   This note describes our distribution policy for Franz Lisp.
        !          2863: 
        !          2864: What is being distributed:
        !          2865:   We distribute only source code in order to keep the distribution
        !          2866:   small and relatively Unix independent.   Makefiles are provided to
        !          2867:   build the entire lisp system from source, even if you don't have
        !          2868:   a version of lisp running already.  This process takes about 3 cpu
        !          2869:   hours on a Vax 780.  [This version for the Vax only, a 68000 version
        !          2870:   is being worked on.  Contact ucbkim.sklower@berkeley or 
        !          2871:   ucbkim.layer@berkeley]
        !          2872: 
        !          2873:   The following source is provided:
        !          2874:     lisp interpreter, 
        !          2875:     compiler (liszt),
        !          2876:     cross reference program (lxref),
        !          2877:     lisp manual,
        !          2878:     and other utility programs:
        !          2879:        trace, step, debug, cmu library functions, (and other minor ones),
        !          2880:        and these packages from the MIT lisp library:
        !          2881:            defstruct, loop. 
        !          2882:            [These programs are provided as a convenience to those who can't
        !          2883:             access the arpanet and copy them.  There is no documentation for
        !          2884:             them in the Franz Lisp manual.  The best source of documentation
        !          2885:             is the Lisp Machine manual (available from MIT, Symbolics
        !          2886:             or LMI)]
        !          2887: 
        !          2888:    Regarding Flavors:  there are two implementations of flavors for
        !          2889:        Franz Lisp, one from MIT (contact person Richard Zippel (rz@mit-mc))
        !          2890:        and one from the University of Maryland (contact person
        !          2891:        Liz Allen  (liz.umcp-cs@udel-relay)).  Neither implementation is
        !          2892:        exactly like flavors on the Lisp Machine (due to differences between
        !          2893:        Lisp Machine lisp and Franz Lisp), and the implementations differ
        !          2894:        from each other.    The MIT version cannot be distributed by 
        !          2895:        us (yet) due to licensing problems.   If you have a Lisp Machine
        !          2896:        Source license from Symbolics, you should be able to get a copy
        !          2897:        from MIT.
        !          2898:        For a Tech Report on Maryland flavors, write to Liz Allen.
        !          2899: 
        !          2900: What is the form of the distribution:
        !          2901:   The files are packaged in a giant (2.1Mbyte) shell script.  Running this
        !          2902: shell script through 'sh' will result in a directory tree.  A ReadMe file
        !          2903: in the current directory will contain instructions on building the lisp
        !          2904: system.  The shell script is broken into a number of smaller files.
        !          2905: The current distribution looks like:
        !          2906: 
        !          2907: total 2089
        !          2908:  489 -rw-r--r--  1 jkf        500003 Jan 26 11:33 opus38.50.aa
        !          2909:  489 -rw-r--r--  1 jkf        500002 Jan 26 11:35 opus38.50.ab
        !          2910:  489 -rw-r--r--  1 jkf        500047 Jan 26 11:37 opus38.50.ac
        !          2911:  489 -rw-r--r--  1 jkf        500007 Jan 26 11:38 opus38.50.ad
        !          2912:  133 -rw-r--r--  1 jkf        136038 Jan 26 11:39 opus38.50.ae
        !          2913: 
        !          2914: The '38.50' means Opus 38, minor version 50.  These numbers may be different
        !          2915: by the time you get your distribution.  In order to extract the lisp
        !          2916: files from this shell script, you need only type:
        !          2917:        cat * | sh
        !          2918: 
        !          2919: 
        !          2920: To get a copy of the distribution:
        !          2921:   The distribution may be obtained either using FTP from an arpanet site,
        !          2922: or on a magnetic tape through the U.S Mail.
        !          2923: 
        !          2924:  Arpanet:
        !          2925:    The files are stored on the arpanet host 'ucb-vax' [ if you have an out
        !          2926:    of date host table, it may be called 'ucb-monet' or 'ucb-ingres'. Its
        !          2927:    internet number is 10.2.0.78].
        !          2928:    You can login as 'anonymous'.   Use your name as the password.
        !          2929:    The files are in the subdirectory pub/lisp.
        !          2930:    
        !          2931:    For those who have accounts on ucb-vax, the full path is ~ftp/pub/lisp.
        !          2932: 
        !          2933:  Mag Tape:
        !          2934:    In order to get a copy of the distribution mailed to you, send a check to
        !          2935:  cover our tape copying and mailing costs (fees are listed below).  We will
        !          2936:  purchase the mag tape and you are free to keep it.  Please do NOT
        !          2937:  send us a tape.
        !          2938: 
        !          2939:      Fees:
        !          2940:                $50     - distribution tape mailed 3rd class
        !          2941:            add $10     - a copy of the Lisp Manual (we will only
        !          2942:                          send one copy, you are free to photocopy it)
        !          2943:            add $7      - send tape via 1st class mail.
        !          2944: 
        !          2945:             -or-
        !          2946:                $15     - for just a copy of the Lisp Manual
        !          2947: 
        !          2948:  The address to send checks to is 
        !          2949: 
        !          2950:        Keith Sklower
        !          2951:        EECS/Computer Science Division
        !          2952:        524 Evans Hall
        !          2953:        University of California
        !          2954:        Berkeley, CA  94720
        !          2955: 
        !          2956:  All checks should be made out to "Regents, University of California."
        !          2957:  We require pre-payment.  We will not invoice or process purchase orders.
        !          2958: 
        !          2959: 
        !          2960: 
        !          2961: Disclaimers:
        !          2962:     This distribution works on the latest versions of Unix running at
        !          2963:     Berkeley (4.1a).  We can't guarantee that it will work on older
        !          2964:     versions (although, if you are running 4.1, it is almost certain
        !          2965:     that it will work, but we have not verified it).
        !          2966:     VMS users who are using a typical Unix compatibility package will 
        !          2967:     probably not be able to build a lisp from this distribution unless they
        !          2968:     know a great deal about VMS and their compatibility package.
        !          2969:     At least one package (Eunice) supports Franz at this time.
        !          2970:     
        !          2971: Redistribution:
        !          2972:     If you get a copy of the distribution, you are free to give it to
        !          2973:     other people.  We appreciate being informed of new sites so they
        !          2974:     can be put on a mailing list (electronic and conventional).  This
        !          2975:     list is used to announce new releases.  To be put on this list,
        !          2976:     send U.S. Mail to Keith Sklower (address above) or to 
        !          2977:     franz-friends-request@berkeley or ucbvax!franz-friends-request
        !          2978: 
        !          2979: 
        !          2980: 
        !          2981: From Kim:fateman  Mon Jan 31 19:30:20 1983
        !          2982: Date: 28 Jan 83 08:32:08 PST (Fri)
        !          2983: From: Kim:fateman (Richard Fateman)
        !          2984: Subject: Re:  franz distribution
        !          2985: Message-Id: <[email protected]>
        !          2986: Received: by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          2987:        id AA21039; 28 Jan 83 08:31:58 PST (Fri)
        !          2988: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          2989:        id AA03502; 31-Jan-83 19:30:20-PST (Mon)
        !          2990: To: CARR@UTAH-20
        !          2991: Cc: franz-friends@ucbvax
        !          2992: Status: O
        !          2993: 
        !          2994: Our policy is that you may move copies of Franz elsewhere
        !          2995: without notifying us.  We continue to be interested in sharing anything
        !          2996: you or your company wish to provide us, in suggestions, programs, etc.
        !          2997: 
        !          2998: 
        !          2999: From UCBCAD:pettengi  Mon Jan 31 19:55:02 1983
        !          3000: Date: 28-Jan-83 10:54:51-PST (Fri)
        !          3001: From: UCBCAD:pettengi (Rob Pettengill)
        !          3002: Subject: emacs interface to franz?
        !          3003: Message-Id: <[email protected]>
        !          3004: Received: by UCBCAD.BERKELEY.ARPA (3.256 [12/5/82])
        !          3005:        id AA26156; 28-Jan-83 10:54:51-PST (Fri)
        !          3006: Received: from UCBCAD.BERKELEY.ARPA by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          3007:        id AA00374; 28 Jan 83 12:53:44 PST (Fri)
        !          3008: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          3009:        id AA03987; 31-Jan-83 19:55:02-PST (Mon)
        !          3010: To: mike@rand-unix, franz-friends@ucbvax
        !          3011: Cc: pettengi@UCBCAD
        !          3012: Status: O
        !          3013: 
        !          3014:        While I was at TI I used a very nice interface that let one start up
        !          3015: a Franz lisp inside an Emacs window.  It came from SRI when we got Eunice to run
        !          3016: under our VMS.  Try Kashtan@SRI-AI.
        !          3017: 
        !          3018: Rob Pettengill
        !          3019: E-Systems, Dallas, Tx.
        !          3020: 
        !          3021: From Kim:fateman  Mon Jan 31 21:34:44 1983
        !          3022: Date: 28 Jan 83 08:32:08 PST (Fri)
        !          3023: From: Kim:fateman (Richard Fateman)
        !          3024: Subject: Re:  franz distribution
        !          3025: Message-Id: <[email protected]>
        !          3026: Received: by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          3027:        id AA21039; 28 Jan 83 08:31:58 PST (Fri)
        !          3028: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          3029:        id AA00642; 31-Jan-83 21:34:44-PST (Mon)
        !          3030: To: CARR@UTAH-20
        !          3031: Cc: franz-friends@ucbvax
        !          3032: Status: RO
        !          3033: 
        !          3034: Our policy is that you may move copies of Franz elsewhere
        !          3035: without notifying us.  We continue to be interested in sharing anything
        !          3036: you or your company wish to provide us, in suggestions, programs, etc.
        !          3037: 
        !          3038: 
        !          3039: From UCBCAD:pettengi  Mon Jan 31 22:12:30 1983
        !          3040: Date: 28-Jan-83 10:54:51-PST (Fri)
        !          3041: From: UCBCAD:pettengi (Rob Pettengill)
        !          3042: Subject: emacs interface to franz?
        !          3043: Message-Id: <[email protected]>
        !          3044: Received: by UCBCAD.BERKELEY.ARPA (3.256 [12/5/82])
        !          3045:        id AA26156; 28-Jan-83 10:54:51-PST (Fri)
        !          3046: Received: from UCBCAD.BERKELEY.ARPA by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          3047:        id AA00374; 28 Jan 83 12:53:44 PST (Fri)
        !          3048: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          3049:        id AA01266; 31-Jan-83 22:12:30-PST (Mon)
        !          3050: To: mike@rand-unix, franz-friends@ucbvax
        !          3051: Cc: pettengi@UCBCAD
        !          3052: Status: O
        !          3053: 
        !          3054:        While I was at TI I used a very nice interface that let one start up
        !          3055: a Franz lisp inside an Emacs window.  It came from SRI when we got Eunice to run
        !          3056: under our VMS.  Try Kashtan@SRI-AI.
        !          3057: 
        !          3058: Rob Pettengill
        !          3059: E-Systems, Dallas, Tx.
        !          3060: 
        !          3061: From UCBKIM:jkf  Tue Feb  1 10:35:21 1983
        !          3062: Date: 1-Feb-83 10:32:24-PST (Tue)
        !          3063: From: UCBKIM:jkf (John Foderaro)
        !          3064: Subject: multiple messages
        !          3065: Message-Id: <[email protected]>
        !          3066: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          3067:        id AA00599; 1-Feb-83 10:32:24-PST (Tue)
        !          3068: Received: from UCBKIM.BERKELEY.ARPA by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          3069:        id AA00473; 1 Feb 83 10:32:35 PST (Tue)
        !          3070: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          3071:        id AA00644; 1-Feb-83 10:35:21-PST (Tue)
        !          3072: To: franz-friends@ucbvax
        !          3073: Status: RO
        !          3074: 
        !          3075:   I'm sorry for the multiple messages.  The franz-friends mailing list is
        !          3076: huge and the machine which does the mailing is crashing often.  Our local
        !          3077: mail wizard informs me that if it crashes while in the middle of sending
        !          3078: mail it will not have a record of who it sent to before the crash.
        !          3079:   I hope you don't get too many copies of this message.
        !          3080:   
        !          3081:   
        !          3082: 
        !          3083: 
        !          3084: 
        !          3085: From mike@rand-unix  Wed Feb  2 05:33:01 1983
        !          3086: Date: Tuesday,  1 Feb 1983 15:06-PST
        !          3087: From: mike@RAND-UNIX
        !          3088: Subject: response to "emacs interface to franz?"
        !          3089: Message-Id: <[email protected]>
        !          3090: Received: from rand-unix by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          3091:        id AA00221; 2 Feb 83 05:25:50 PST (Wed)
        !          3092: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          3093:        id AA24463; 2-Feb-83 05:33:01-PST (Wed)
        !          3094: To: franz-friends@BERKELEY
        !          3095: Cc: mike@RAND-UNIX
        !          3096: Status: RO
        !          3097: 
        !          3098: 
        !          3099: Here are the responses that I received to my question "What's out
        !          3100: there for emacs?"  
        !          3101: 
        !          3102: 
        !          3103: ------- Forwarded Messages
        !          3104: 
        !          3105: Received: From SU-SCORE by RAND-UNIX at Mon Jan 24 23:41:37 1983
        !          3106: Date: Mon 24 Jan 83 22:43:01-PST
        !          3107: From: Jay Lark <[email protected]>
        !          3108: Subject: Re: emacs interface to franz?
        !          3109: To: [email protected]
        !          3110: In-Reply-To: Your message of Mon 24 Jan 83 18:49:21-PST
        !          3111: 
        !          3112: I'm sure you've probably received several messages similar to this one,
        !          3113: but just in case...
        !          3114: 
        !          3115: There exists the capability in Unix Emacs to run a process in its own
        !          3116: buffer.  Typein can be directed to the process, and output is just sent
        !          3117: right to the buffer.  This is an excellent way of running Lisp, because 
        !          3118: you get all of the nice Emacs features (paren balancing, local sexpr
        !          3119: editing) at essentially no cost.  I have been largely unsuccessful with
        !          3120: trying to run Emacs under Lisp.
        !          3121: 
        !          3122: The process package is part of the standard Unix Emacs distribution.
        !          3123: 
        !          3124: Jay Lark
        !          3125: -------
        !          3126: 
        !          3127: 
        !          3128: ------- Message 2
        !          3129: 
        !          3130: Received: From UTAH-CS by RAND-UNIX at Tue Jan 25 07:01:36 1983
        !          3131: Date: 25 Jan 1983 7:20-MST
        !          3132: From: Russ Fish <utah-gr!fish@UTAH-CS> (host 10.0.0.4)
        !          3133: Subject: Re: emacs interface to franz?
        !          3134: To: mike@RAND-UNIX
        !          3135: Cc: utah-gr!galway@UTAH-CS
        !          3136: In-Reply-To: mike's message of Monday, 24 Jan 1983 15:34-PST
        !          3137: 
        !          3138: We have been running our PSL (Portable Standard Lisp) in gemacs
        !          3139: (Gosling's emacs) windows for some time.  I suspect it would be a minor
        !          3140: hack to convert it to Franz, but haven't done it and am not a Franz
        !          3141: user.  I could mail you our .ml code if you wanted to undertake
        !          3142: converting it to Franz (or just using it for inspiration and hacking
        !          3143: your own) and distributing it to Franz folks.
        !          3144: 
        !          3145: It works like this:  The lisp process is associated with a gemacs
        !          3146: buffer/window.  In that window you can carry on a normal line-by-line
        !          3147: conversation, if you wish.  <CR> sends the current line, (back to mark,
        !          3148: which is left after the prompt) into the lisp.  We mostly use the PSL
        !          3149: in Rlisp syntax, which is algol-like, but this part of the code is just
        !          3150: a wrapping for the new-shell function in process.ml with appropriate
        !          3151: editting syntax set, so you could do the same with no work for any
        !          3152: Lisp.
        !          3153: 
        !          3154: You can send an expression, fn def, etc. from any other lisp-mode
        !          3155: window with a single keypress.  Echoing as input in the dialog window
        !          3156: is inhibited if a prefix arg is provided, so you don't have to look at
        !          3157: long exprs or fn defs again, just the lisp response.  
        !          3158: 
        !          3159: Sending multiple line exprs in response to a single prompt depends on
        !          3160: the fact that PSL numbers the prompts for history, like the c-shell.  A
        !          3161: gemacs mlisp output filter process monitors the output for toploop
        !          3162: prompts and feeds another line of input if the same prompt number comes
        !          3163: back, instead of printing the prompt.
        !          3164: 
        !          3165: The result is pretty classy.  You get the full many-window gemacs
        !          3166: editing environment with tags, etc. for random-access navigation and
        !          3167: just send chunks of code as you change them.  The extreme of usage is
        !          3168: "menu" like windows which contain debugging code in clusters rather
        !          3169: than sequences.  You select exprs with the cursor and send them in any
        !          3170: order.
        !          3171: 
        !          3172: We also provide key fns for the common case of sending single lines to
        !          3173: the toploop or single-character commands to the break-loop without
        !          3174: editting them into a buffer.
        !          3175: 
        !          3176: Best respond directly to me, since I am not on Franz-Friends.
        !          3177: 
        !          3178: -Russ Fish  (Fish@Utah-20, utah-cs!fish)
        !          3179: 
        !          3180: 
        !          3181: 
        !          3182: ------- Message 3
        !          3183: 
        !          3184: Received: From UDEL-RELAY by RAND-UNIX at Tue Jan 25 18:18:55 1983
        !          3185: Return-Path: <israel.umcp-cs@UDel-Relay>
        !          3186: Date:     25 Jan 83 15:13:51 EST  (Tue)
        !          3187: From: Bruce Israel <israel.umcp-cs@UDel-Relay>
        !          3188: Subject:  Re:  emacs interface to franz?
        !          3189: To: mike@RAND-UNIX
        !          3190: In-Reply-To: Message of Monday, 24 Jan 1983 15:34-PST from mike@RAND-UNIX
        !          3191:                <[email protected]>
        !          3192: Via:  UMCP-CS; 25 Jan 83 20:45-EST
        !          3193: 
        !          3194: We have a few franz<->emacs interfaces, but I'm not sure what you mean.
        !          3195: One is the process.ml package that comes with gosling's emacs (the emacs
        !          3196: that I assume you are talking about).  With this package, you can run
        !          3197: franz inside a window from within emacs and have the facilities of an
        !          3198: editor along with lisp.  The other thing we have is a local Franz
        !          3199: package called the load1 package.  This package was written for
        !          3200: compiling flavors (like in the lisp machine; another local package)
        !          3201: and has a function called vi.  (vi 'lisp-function) will call the
        !          3202: editor (from the environment variable VISUAL, /usr/ucb/vi is default) on the
        !          3203: file which contains the definition of the lisp function, positioning
        !          3204: the editor at the point in the file where the function is defined.  Upon
        !          3205: exiting the editor, it asks you if you want to reload the modified file.
        !          3206: To edit a function from a file this way, the file must have been load1'ed
        !          3207: previously so that the info on where the function is stored and what type
        !          3208: it is will have been saved.  Load1 will distinguish between different
        !          3209: types of functions, ie. defflavors, defmethods, defmacros, defuns etc.
        !          3210: and will search for the correct definition in the file.  Is this what
        !          3211: you mean?  If you like I can send you the four or five files necessary.
        !          3212: - Bruce
        !          3213: 
        !          3214: 
        !          3215: ------- Message 4
        !          3216: 
        !          3217: Received: From CMU-CS-VLSI by RAND-UNIX at Thu Jan 27 06:53:41 1983
        !          3218: Date: 27 Jan 1983 09:44-EST
        !          3219: From: Carl.Ebeling@CMU-CS-VLSI
        !          3220: Subject: Re: emacs interface to franz?
        !          3221: To: mike@RAND-UNIX
        !          3222: Message-Id: <412526661/ce@CMU-CS-VLSI>
        !          3223: In-Reply-To: mike@RAND-UNIX's bboard message of 27-Jan-83 04:14    
        !          3224: 
        !          3225: I have an electric lisp package and process package for emacs.  It
        !          3226: includes 'zap-function-to-lisp' among other things.  It is for
        !          3227: Gosling's emacs and uses the subprocess facility.  I can mail them to
        !          3228: you if you like.
        !          3229:        Carl
        !          3230: 
        !          3231: 
        !          3232: ------- End of Forwarded Messages
        !          3233: 
        !          3234: From UCBKIM:jkf  Wed Feb  2 08:19:19 1983
        !          3235: Date: 2-Feb-83 08:14:21-PST (Wed)
        !          3236: From: UCBKIM:jkf (John Foderaro)
        !          3237: Subject: multiple messages fixed?
        !          3238: Message-Id: <[email protected]>
        !          3239: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          3240:        id AA25937; 2-Feb-83 08:14:21-PST (Wed)
        !          3241: Received: from UCBKIM.BERKELEY.ARPA by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          3242:        id AA00384; 2 Feb 83 08:10:26 PST (Wed)
        !          3243: Received: by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          3244:        id AA00477; 2 Feb 83 08:14:35 PST (Wed)
        !          3245: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          3246:        id AA26020; 2-Feb-83 08:19:19-PST (Wed)
        !          3247: To: franz-friends@ucbvax
        !          3248: Status: RO
        !          3249: 
        !          3250:  I've broken the franz-friends mailing list over two machines.  I hope that
        !          3251: this will fix the problem of mail to franz-friends crashing ucbvax every
        !          3252: thirty minutes.   If you get multiple copies of this message, please do not
        !          3253: tell me about it, I will already know.
        !          3254: 
        !          3255: 
        !          3256: 
        !          3257: 
        !          3258: From jkf  Thu Feb 10 21:45:17 1983
        !          3259: Date: 10-Feb-83 21:45:17-PST (Thu)
        !          3260: From: jkf (John Foderaro)
        !          3261: Subject: liszt 8.21
        !          3262: Message-Id: <[email protected]>
        !          3263: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          3264:        id AA16021; 10-Feb-83 21:45:17-PST (Thu)
        !          3265: To: local-lisp
        !          3266: Status: O
        !          3267: 
        !          3268:   more functions open coded: vsize, vsize-byte, vsize-word,
        !          3269:        vectorp, vectorip
        !          3270:        
        !          3271: 
        !          3272: 
        !          3273: From PSI.KROHNFELDT@UTAH-20  Fri Feb 11 15:09:11 1983
        !          3274: Date: 11 Feb 1983 1601-MST
        !          3275: From: Jed Krohnfeldt <PSI.KROHNFELDT@UTAH-20>
        !          3276: Subject: cfasl
        !          3277: Message-Id: <[email protected]>
        !          3278: Received: from UTAH-20 by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          3279:        id AA07475; 11 Feb 83 15:02:05 PST (Fri)
        !          3280: Received: by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          3281:        id AA07565; 11 Feb 83 15:06:37 PST (Fri)
        !          3282: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82])
        !          3283:        id AA14422; 11-Feb-83 15:09:11-PST (Fri)
        !          3284: To: Franz-friends@UCBVAX
        !          3285: Status: O
        !          3286: 
        !          3287: I am having trouble using cfasl in franz 38.04.  I keep getting the
        !          3288: message "ld: /usr/ucb/lisp : no namelist".  Can anyone decipher this
        !          3289: for me?  Thanks...
        !          3290: -------
        !          3291: 
        !          3292: From apm@cmu-ri-isl  Mon Feb 14 07:31:54 1983
        !          3293: Date: 14 Feb 1983 10:24:21-EST
        !          3294: From: Andrew.Mendler@CMU-RI-ISL
        !          3295: Subject: franz lisp under5 vms 3.0
        !          3296: Message-Id: <[email protected]>
        !          3297: Received: from CMU-RI-ISL by UCBVAX.ARPA (3.310/3.3)
        !          3298:        id AA27879; 14 Feb 83 07:31:54 PST (Mon)
        !          3299: Received: by UCBKIM.ARPA (3.310/3.3)
        !          3300:        id AA01172; 14 Feb 83 15:50:41 PST (Mon)
        !          3301: To: [email protected]
        !          3302: Status: O
        !          3303: 
        !          3304: Does anyone have a copy of Franz Lisp and the compiler that works under
        !          3305: VMS version 3.0?  
        !          3306: 
        !          3307: From @udel-relay:tim.unc@UDel-Relay  Mon Feb 14 02:52:18 1983
        !          3308: Date:     13 Feb 83 14:34:48 EST  (Sun)
        !          3309: From: Tim Maroney <tim.unc@UDel-Relay>
        !          3310: Subject:  cfasl: no namelist
        !          3311: Return-Path: <tim.unc@UDel-Relay>
        !          3312: Message-Id: <[email protected]>
        !          3313: Received: from udel-relay.ARPA by UCBVAX.ARPA (3.310/3.3)
        !          3314:        id AA25792; 14 Feb 83 02:52:18 PST (Mon)
        !          3315: Received: by UCBKIM.ARPA (3.310/3.3)
        !          3316:        id AA02234; 14 Feb 83 16:18:42 PST (Mon)
        !          3317: To: [email protected]
        !          3318: Via:  UNC; 14 Feb 83 5:43-EST
        !          3319: Status: O
        !          3320: 
        !          3321: I don't seem to be able to write Jed Krohnfeldt, and this
        !          3322: answer is probably of general interest anyway. The message
        !          3323: "ld: no namelist" means that some well-meaning system admin
        !          3324: has stripped the lisp executable file to save space;
        !          3325: unfortunately, this makes the dynamic loading used by cfasl
        !          3326: impossible. Lisp will have to be recompiled (groan). No Franz
        !          3327: Lisp executable file should EVER be stripped.
        !          3328: 
        !          3329: Tim Maroney
        !          3330: tim.unc@udel-relay
        !          3331: decvax!duke!unc!tim
        !          3332: 
        !          3333: From Mark.Sherman@CMU-CS-A  Sat Feb 12 21:38:46 1983
        !          3334: Date: 13 February 1983 0034-EST (Sunday)
        !          3335: From: Mark.Sherman@CMU-CS-A
        !          3336: Subject: Space and Leakage
        !          3337: Message-Id: <13Feb83 003422 MS40@CMU-CS-A>
        !          3338: Received: from CMU-CS-A by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83])
        !          3339:        id AA07842; 12 Feb 83 21:38:46 PST (Sat)
        !          3340: Received: by UCBKIM.ARPA (3.310/3.3)
        !          3341:        id AA02341; 14 Feb 83 16:21:29 PST (Mon)
        !          3342: To: franz-friends@UCB-VAX
        !          3343: Status: O
        !          3344: 
        !          3345: Can someone tell me how the maximum amount of storage that franz
        !          3346: lisp uses is decided? I can force the size up to (about) 3050
        !          3347: pages (according to "ps") and then get the message "storage exhausted".
        !          3348: I have been told (and have seen) other jobs get substantially more
        !          3349: space; can franz get more pages as well? (I am using the cshell
        !          3350: and have already used the limit command to raise my process
        !          3351: size up to 32 megabytes, or so I think.)
        !          3352:  
        !          3353: I have also been told that the garbage collector leaks, that is,
        !          3354: not all of the garbage is really collected. Does anyone have good
        !          3355: ideas about how much (or fast) this happens, or if there is some way
        !          3356: to minimize the lost space?
        !          3357:  
        !          3358: (Please send responses directly to me as I am not on this list.)
        !          3359:                         -Mark Sherman (Sherman@CMU-CS-A)
        !          3360: 
        !          3361: From @udel-relay:Mac.uvacs.Virginia@UDel-Relay  Fri Feb 18 21:04:31 1983
        !          3362: Date:     18 Feb 83 12:42:40-EST (Fri)
        !          3363: From: Mac.uvacs@UDel-Relay
        !          3364: Subject:  global nonspecial variables
        !          3365: Return-Path: <Mac.uvacs.Virginia@UDel-Relay>
        !          3366: Message-Id: <[email protected]>
        !          3367: Received: from udel-relay.ARPA by UCBVAX.ARPA (3.312/3.5)
        !          3368:        id AA26020; 18 Feb 83 21:04:31 PST (Fri)
        !          3369: Received: by UCBKIM.ARPA (3.310/3.5)
        !          3370:        id AA00656; 21 Feb 83 01:59:26 PST (Mon)
        !          3371: To: [email protected]
        !          3372: Via:  Virginia; 18 Feb 83 23:58-EST
        !          3373: Status: O
        !          3374: 
        !          3375: Does the Liszt compiler have any notion of global variables --
        !          3376: free variables with fast access, without any rebinding?
        !          3377: 
        !          3378: I think the MACLISP compiler has something like this for variables
        !          3379: beginning "**".
        !          3380: 
        !          3381:                                Alex Colvin
        !          3382: 
        !          3383:                                uucp: ...decvax!duke!mcnc!ncsu!uvacs!mac
        !          3384:                                csnet:mac@virginia
        !          3385:                                arpa: mac.uvacs@udel-relay
        !          3386: 
        !          3387: From jkf@UCBKIM  Mon Feb 21 09:19:56 1983
        !          3388: Date: 21 Feb 83 09:19:43 PST (Mon)
        !          3389: From: jkf@UCBKIM (John Foderaro)
        !          3390: Subject: Re:  global nonspecial variables
        !          3391: Message-Id: <[email protected]>
        !          3392: Received: by UCBKIM.ARPA (3.310/3.5)
        !          3393:        id AA02798; 21 Feb 83 09:19:43 PST (Mon)
        !          3394: Received: from UCBKIM.ARPA by UCBVAX.ARPA (3.314/3.5)
        !          3395:        id AA13982; 21 Feb 83 09:11:52 PST (Mon)
        !          3396: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.310/3.5)
        !          3397:        id AA02805; 21 Feb 83 09:19:56 PST (Mon)
        !          3398: To: Mac.uvacs@UDel-Relay, [email protected]
        !          3399: In-Reply-To: Your message of     18 Feb 83 12:42:40-EST (Fri)
        !          3400: Status: O
        !          3401: 
        !          3402:   I don't understand the distinction between what you call a global variable
        !          3403: and a special variable.   A special variable in Franz Lisp (and any other
        !          3404: shallow bound lisp) can be accessed rapidly and is only rebound if you
        !          3405: put it in a lambda, prog or do variable list.
        !          3406: 
        !          3407: 
        !          3408: 
        !          3409: From jkf@UCBKIM  Fri Feb 25 08:29:01 1983
        !          3410: Date: 25 Feb 83 08:28:45 PST (Fri)
        !          3411: From: jkf@UCBKIM (John Foderaro)
        !          3412: Subject: research position at edinburgh
        !          3413: Message-Id: <[email protected]>
        !          3414: Received: by UCBKIM.ARPA (3.310/3.5)
        !          3415:        id AA00528; 25 Feb 83 08:28:45 PST (Fri)
        !          3416: Received: from UCBKIM.ARPA by UCBVAX.ARPA (3.314/3.5)
        !          3417:        id AA00867; 25 Feb 83 08:18:48 PST (Fri)
        !          3418: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.310/3.5)
        !          3419:        id AA00537; 25 Feb 83 08:29:01 PST (Fri)
        !          3420: To: [email protected]
        !          3421: Status: O
        !          3422: 
        !          3423: 
        !          3424:                     DEPARTMENT OF ARTIFICIAL INTELLIGENCE
        !          3425:                            UNIVERSITY OF EDINBURGH
        !          3426: 
        !          3427:                               RESEARCH FELLOW
        !          3428: 
        !          3429: A Research Fellowship is available within the Programming Systems Development
        !          3430: Group.  The post has been created specifically to provide a modern LISP system
        !          3431: for the Perq computer running under ICL MicroCode UNIX, and is funded by the
        !          3432: Science and Engineering Research Council.
        !          3433: 
        !          3434: Experience in implementing systems would be advantageous, as would be a
        !          3435: knowledge of LISP and C.  Access will be available to an SERC DECsystem-10
        !          3436: running TOPS-10 and to a University VAX 750 running Berkeley UNIX, as well as
        !          3437: to Perqs.
        !          3438: 
        !          3439: The appointment will be made on the salary range 1B/1A, 5550 - 10670 pounds
        !          3440: sterling, according to age and experience.  The post is funded for a period of
        !          3441: two years from the date of appointment.
        !          3442: 
        !          3443: Further particulars of the post can be obtained from:
        !          3444: 
        !          3445:        Administrative Assistant
        !          3446:        Department of Artificial Intelligence
        !          3447:        University of Edinburgh
        !          3448:        Forrest Hill
        !          3449:        Edinburgh  EH1 2QL
        !          3450:        SCOTLAND
        !          3451: phone
        !          3452:        031-667-1011 x2554
        !          3453: 
        !          3454: or by contacting
        !          3455: 
        !          3456:        RAE%EDXA%UCL-CS@ISID            (Networks permitting)
        !          3457: 
        !          3458: Applications should be made by March 17th, 1983.
        !          3459: 
        !          3460: 
        !          3461: 
        !          3462: 
        !          3463: From layer  Sat Mar  5 20:12:57 1983
        !          3464: Date: 5 Mar 83 20:12:57 PST (Sat)
        !          3465: From: layer (Kevin Layer)
        !          3466: Subject: process function
        !          3467: Message-Id: <[email protected]>
        !          3468: Received: by UCBKIM.ARPA (3.310/3.5)
        !          3469:        id AA18927; 5 Mar 83 20:12:57 PST (Sat)
        !          3470: Phone: (415) 652-2405
        !          3471: To: local-lisp
        !          3472: Status: O
        !          3473: 
        !          3474: The process function now looks in the environment at the SHELL variable.
        !          3475: If present, it will use this as the default shell to execute your command.
        !          3476: If not present, csh and then sh are tried (in that order).
        !          3477: 
        !          3478: 
        !          3479: From @udel-relay.ARPA:Pintzuk.UPenn.UPenn@UDel-Relay  Tue Mar  8 06:04:10 1983
        !          3480: Date:  8 Mar 1983  2:32-EST
        !          3481: From: Susan Pintzuk <Pintzuk.UPenn@UDel-Relay>
        !          3482: Subject: lisp statistical packages
        !          3483: Return-Path: <Pintzuk.UPenn.UPenn@UDel-Relay>
        !          3484: Message-Id: <[email protected]>
        !          3485: Received: from udel-relay.ARPA by UCBVAX.ARPA (3.322/3.14)
        !          3486:        id AA13004; 8 Mar 83 06:01:54 PST (Tue)
        !          3487: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.310/3.5)
        !          3488:        id AA08297; 8 Mar 83 06:04:10 PST (Tue)
        !          3489: To: [email protected]
        !          3490: Via:  UPenn; 8 Mar 83 3:49-EST
        !          3491: Status: O
        !          3492: 
        !          3493: do any franz-lisp packages exist which calculate mean, standard deviation,
        !          3494: %n within mean +/- 1 (or 2 or 3) standard deviation(s), etc.?  if so, how
        !          3495: do i obtain a copy?
        !          3496: 
        !          3497: From jkf  Tue Mar  8 09:10:46 1983
        !          3498: Date: 8 Mar 83 09:10:46 PST (Tue)
        !          3499: From: jkf (John Foderaro)
        !          3500: Subject: opus38.56
        !          3501: Message-Id: <[email protected]>
        !          3502: Received: by UCBKIM.ARPA (3.310/3.5)
        !          3503:        id AA09423; 8 Mar 83 09:10:46 PST (Tue)
        !          3504: To: local-lisp
        !          3505: Status: O
        !          3506: 
        !          3507:   If $gcprint is set to a non nil value, then just before a garbage
        !          3508: collection is begun, the message 'gc:' will be printed on the tty.
        !          3509: As before, after the garbage collection is finished, the statistics
        !          3510: message in square brackets will be printed.
        !          3511: 
        !          3512: 
        !          3513: 
        !          3514: From fateman  Wed Mar  9 09:54:31 1983
        !          3515: Date: 9 Mar 83 09:54:31 PST (Wed)
        !          3516: From: fateman (Richard Fateman)
        !          3517: Subject: need a job 
        !          3518: Message-Id: <[email protected]>
        !          3519: Received: by UCBKIM.ARPA (3.310/3.5)
        !          3520:        id AA14754; 9 Mar 83 09:54:31 PST (Wed)
        !          3521: To: local-lisp
        !          3522: Status: O
        !          3523: 
        !          3524: porting Lisp, C, Pascal, Fortran ... etc to a Denelcorp HEP
        !          3525: computer?  Wanna live in Denver?  There is a recruiter in
        !          3526: town from Denelcor at Marriot Inn, Jim Holly.  There is an
        !          3527: ad posted on 5th floor bulletin board.
        !          3528: 
        !          3529: From jkf  Sat Mar 19 17:44:33 1983
        !          3530: Date: 19 Mar 83 17:44:33 PST (Sat)
        !          3531: From: jkf (John Foderaro)
        !          3532: Subject: liszt 8.24
        !          3533: Message-Id: <[email protected]>
        !          3534: Received: by UCBKIM.ARPA (3.310/3.5)
        !          3535:        id AA25091; 19 Mar 83 17:44:33 PST (Sat)
        !          3536: To: local-lisp
        !          3537: Status: O
        !          3538: 
        !          3539:   The vax and 68k versions of liszt have been combined into one set of
        !          3540: source files.  This is mainly a textual change, but some functions
        !          3541: in the compiler have been modified in reduce the machine dependent code.
        !          3542: Be on the lookout for strange errors.
        !          3543: 
        !          3544: 
        !          3545: 
        !          3546: From fateman  Tue Mar 22 20:52:11 1983
        !          3547: Date: 22 Mar 83 20:52:11 PST (Tue)
        !          3548: From: fateman (Richard Fateman)
        !          3549: Subject: T Lisp
        !          3550: Message-Id: <[email protected]>
        !          3551: Received: by UCBKIM.ARPA (3.310/3.5)
        !          3552:        id AA05935; 22 Mar 83 20:52:11 PST (Tue)
        !          3553: To: local-lisp
        !          3554: Status: RO
        !          3555: 
        !          3556: I have a preliminary manual for the T dialect of Lisp, created
        !          3557: at Yale.  It is being offered for sale by Cognitive Systems, Inc.
        !          3558: for $1000/CPU (educational price).  It offers features from Lisp
        !          3559: and Scheme.  It runs on VAX and Apollo 68000 systems.  
        !          3560: 
        !          3561: From jkf  Thu Mar 24 08:29:31 1983
        !          3562: Date: 24 Mar 83 08:29:31 PST (Thu)
        !          3563: From: jkf (John Foderaro)
        !          3564: Subject: liszt 8.25
        !          3565: Message-Id: <[email protected]>
        !          3566: Received: by UCBKIM.ARPA (3.310/3.5)
        !          3567:        id AA06735; 24 Mar 83 08:29:31 PST (Thu)
        !          3568: To: local-lisp
        !          3569: Status: O
        !          3570: 
        !          3571: 
        !          3572:   If you do this:
        !          3573: 
        !          3574:   liszt -x a/b/c.l -o x/y/z.o
        !          3575: 
        !          3576:   then the cross reference file will be put in x/y/z.x 
        !          3577:   Before this version, it would have gone into a/b/c.x
        !          3578:   
        !          3579: 
        !          3580: 
        !          3581: From jkf  Thu Mar 24 15:00:37 1983
        !          3582: Date: 24 Mar 83 15:00:37 PST (Thu)
        !          3583: From: jkf (John Foderaro)
        !          3584: Subject: liszt 8.26
        !          3585: Message-Id: <[email protected]>
        !          3586: Received: by UCBKIM.ARPA (3.310/3.5)
        !          3587:        id AA11144; 24 Mar 83 15:00:37 PST (Thu)
        !          3588: To: local-lisp
        !          3589: Status: O
        !          3590: 
        !          3591:   liszt will now pass the assembler the -V switch.  This tells the assembler
        !          3592: to keep its intermediate file in core rather than putting it in /tmp.
        !          3593: This should make assembly slightly faster and also permit large lisp files to
        !          3594: be compiled on systems with small /tmp's.
        !          3595: 
        !          3596: 
        !          3597: 
        !          3598: From @udel-relay.ARPA:tim.unc@UDel-Relay  Sat Mar 26 03:41:05 1983
        !          3599: Date:     25 Mar 83 15:03:29 EST  (Fri)
        !          3600: From: Tim Maroney <tim.unc@UDel-Relay>
        !          3601: Subject:  open coding of (function (lambda ...))
        !          3602: Return-Path: <tim.unc@UDel-Relay>
        !          3603: Message-Id: <[email protected]>
        !          3604: Received: from udel-relay.ARPA by UCBVAX.ARPA (3.331/3.17)
        !          3605:        id AB02371; 26 Mar 83 03:37:13 PST (Sat)
        !          3606: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.310/3.5)
        !          3607:        id AA00854; 26 Mar 83 03:41:05 PST (Sat)
        !          3608: To: [email protected]
        !          3609: Via:  UNC; 25 Mar 83 19:43-EST
        !          3610: Status: O
        !          3611: 
        !          3612: This doesn't seem to work. I'm using Liszt version 8.10, University
        !          3613: of Maryland distribution. The documentation in the file "lispnews"
        !          3614: is sketchy, but it seems that compiling and loading the file:
        !          3615: 
        !          3616: (setq appsum (function (lambda (x) (apply 'sum x))))
        !          3617: 
        !          3618: should leave a bcd object in appsum's value, but it doesn't. It
        !          3619: leaves the uncompiled lambda. Am I doing something wrong? 
        !          3620: 
        !          3621: Tim Maroney
        !          3622: decvax!duke!unc!tim
        !          3623: tim.unc@udel-relay
        !          3624: 
        !          3625: From jkf@UCBKIM  Sat Mar 26 08:46:44 1983
        !          3626: Date: 26 Mar 83 08:46:28 PST (Sat)
        !          3627: From: jkf@UCBKIM (John Foderaro)
        !          3628: Subject: Re:  open coding of (function (lambda ...))
        !          3629: Message-Id: <[email protected]>
        !          3630: Received: by UCBKIM.ARPA (3.310/3.5)
        !          3631:        id AA02453; 26 Mar 83 08:46:28 PST (Sat)
        !          3632: Received: from UCBKIM.ARPA by UCBVAX.ARPA (3.331/3.17)
        !          3633:        id AA05012; 26 Mar 83 08:42:50 PST (Sat)
        !          3634: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.310/3.5)
        !          3635:        id AA02462; 26 Mar 83 08:46:44 PST (Sat)
        !          3636: To: tim.unc@UDel-Relay
        !          3637: Cc: [email protected]
        !          3638: In-Reply-To: Your message of     25 Mar 83 15:03:29 EST  (Fri)
        !          3639: Status: O
        !          3640: 
        !          3641: 
        !          3642:    Liszt only compiles functions, not literals it finds in files.
        !          3643: To make this statement be compiled:
        !          3644: (setq appsum (function (lambda (x) (apply 'sum x))))
        !          3645: 
        !          3646: you should surround it with a function defintion:
        !          3647: (defun junk ()
        !          3648:        (setq appsum (function (lambda (x) (apply 'sum x)))))
        !          3649: 
        !          3650: 
        !          3651: 
        !          3652: From CARR@UTAH-20  Mon Apr  4 14:53:09 1983
        !          3653: Date:  4 Apr 1983 0922-MST
        !          3654: From: Harold Carr <CARR@UTAH-20>
        !          3655: Subject: Franz/Common lisp
        !          3656: Message-Id: <[email protected]>
        !          3657: Received: from UTAH-20 (utah-20.ARPA) by UCBVAX.ARPA (3.332/3.20)
        !          3658:        id AA07020; 4 Apr 83 09:11:40 PST (Mon)
        !          3659: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.310/3.5)
        !          3660:        id AA01683; 4 Apr 83 14:53:09 PST (Mon)
        !          3661: To: [email protected]
        !          3662: Cc: KROHNFELDT@UTAH-20
        !          3663: Status: O
        !          3664: 
        !          3665: Does anyone have any sort of Common Lisp compatibility package for Franz?
        !          3666: If so, how can I obtain it? Thanks in advance. Harold Carr (CARR@UTAH-20).
        !          3667: -------
        !          3668: 
        !          3669: From jeff@aids-unix  Tue Apr  5 12:42:46 1983
        !          3670: Date:  4 Apr 1983 11:06:49 PST (Monday)
        !          3671: From: Jeff Dean <jeff@aids-unix>
        !          3672: Subject: knowledge representation language
        !          3673: Message-Id: <[email protected]>
        !          3674: Received: from aids-unix (aids-unix.ARPA) by UCBVAX.ARPA (3.332/3.20)
        !          3675:        id AA26557; 5 Apr 83 12:42:11 PST (Tue)
        !          3676: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.310/3.5)
        !          3677:        id AA16443; 5 Apr 83 12:42:46 PST (Tue)
        !          3678: To: [email protected]
        !          3679: Status: O
        !          3680: 
        !          3681: Does anyone have a knowledge representation language (such as FRL or
        !          3682: KL-ONE) available under Franz Lisp?
        !          3683: 
        !          3684:        Jeff Dean
        !          3685:        arpa: jeff@aids-unix
        !          3686:        uucp: ...ucbvax!jeff@aids-unix
        !          3687: 
        !          3688: 
        !          3689: From jkf  Tue Apr  5 13:08:06 1983
        !          3690: Date: 5 Apr 83 13:08:06 PST (Tue)
        !          3691: From: jkf (John Foderaro)
        !          3692: Subject: lisp opus 38.57
        !          3693: Message-Id: <[email protected]>
        !          3694: Received: by UCBKIM.ARPA (3.310/3.5)
        !          3695:        id AA16969; 5 Apr 83 13:08:06 PST (Tue)
        !          3696: To: local-lisp
        !          3697: Status: RO
        !          3698: 
        !          3699:   This version has a number of internal changes to make it compilable
        !          3700: on 68k.  If you notice it acting abnormally, let me know.
        !          3701: 
        !          3702: 
        !          3703: 
        !          3704: From FAHLMAN@CMU-CS-C  Thu Apr  7 07:50:06 1983
        !          3705: Date: Thu, 7 Apr 1983  10:46 EST
        !          3706: From: Scott E. Fahlman <Fahlman@CMU-CS-C>
        !          3707: Subject: Franz/Common lisp
        !          3708: Message-Id: <[email protected]>
        !          3709: Received: ID <FAHLMAN@CMU-CS-C>; 7 Apr 83 10:46:59 EST
        !          3710: Received: from CMU-CS-C (cmu-cs-c.ARPA) by UCBVAX.ARPA (3.332/3.20)
        !          3711:        id AA13873; 7 Apr 83 07:49:42 PST (Thu)
        !          3712: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.310/3.5)
        !          3713:        id AA18082; 7 Apr 83 07:50:06 PST (Thu)
        !          3714: To: Harold Carr <CARR@UTAH-20>
        !          3715: Cc: [email protected]
        !          3716: In-Reply-To: Msg of 4 Apr 1983  11:22-EST from Harold Carr <CARR at UTAH-20>
        !          3717: Status: RO
        !          3718: 
        !          3719: 
        !          3720: Harold,
        !          3721: 
        !          3722: A couple of things make it seem unlikely that anyone would have such a
        !          3723: package right now.  First, we don't even have a final Common Lisp manual
        !          3724: yet -- Guy's next draft is due very soon, but there will be some tuning
        !          3725: and hassling after that.  Second, there are things in Common Lisp that
        !          3726: would be very tough to fake on Franz: lexical binding, generic
        !          3727: sequences, some of the hairy number types, character objects, etc.
        !          3728: Common Lisp is pretty close to being a superset of Franz, so I would
        !          3729: expect to see Franz compatibility packages in Common Lisp, but not vice
        !          3730: versa.  Third, if anyone were writing such a package, they would be
        !          3731: crazy not to have arranged for access to our code that implements all of
        !          3732: the hairy functions, and nobody has done this to my knowledge.
        !          3733: 
        !          3734: My standard advice is for people to continue to code in Franz with the
        !          3735: knowledge that they can easily convert their code to Common Lisp
        !          3736: whenever the DEC Common Lisp is available to them.  This should be a
        !          3737: one-time conversion, since moving the other way after "going native" in
        !          3738: Common Lisp would be very tough.
        !          3739: 
        !          3740: If someone does pop up with a compatibility package -- even a partial
        !          3741: one -- I would be interested in hearing about it.
        !          3742: 
        !          3743: -- Scott
        !          3744: 
        !          3745: From fateman@UCBKIM  Sun Apr 10 19:52:14 1983
        !          3746: Date: 10 Apr 83 19:50:59 PST (Sun)
        !          3747: From: fateman@UCBKIM (Richard Fateman)
        !          3748: Subject: Re:  Franz/Common lisp
        !          3749: Message-Id: <[email protected]>
        !          3750: Received: by UCBKIM.ARPA (3.310/3.5)
        !          3751:        id AA06176; 10 Apr 83 19:50:59 PST (Sun)
        !          3752: Received: from UCBKIM.ARPA by UCBVAX.ARPA (3.332/3.21)
        !          3753:        id AA10019; 10 Apr 83 19:49:55 PST (Sun)
        !          3754: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.310/3.5)
        !          3755:        id AA06192; 10 Apr 83 19:52:14 PST (Sun)
        !          3756: To: carr@utah-20, fahlman@cmu-cs-c
        !          3757: Cc: [email protected]
        !          3758: Status: RO
        !          3759: 
        !          3760: I think that a common-lisp-compatibility package written
        !          3761: in Franz would not be as difficult as all that. 
        !          3762: 
        !          3763: If Common Lisp (TM of DEC?) were available on all the same
        !          3764: machines at the same price, (appx. $0.) and CL were
        !          3765: in fact a superset of Franz for all practical purposes, and
        !          3766: with similar or better efficiency, etc. Why would anyone bother?
        !          3767: 
        !          3768: Of course if CL does not meet all of the objectives (e.g. price, machines),
        !          3769: then a CL-to-Franz "translator" might make sense.
        !          3770: 
        !          3771: With that in mind,
        !          3772: I would like to officially request a copy of the Common Lisp
        !          3773: language (as implemented in CL, presumably), as soon as it
        !          3774: becomes available (i.e. no later than when it is a "product"
        !          3775: of DEC, and probably at "beta" test time).
        !          3776: I agree fully with Scott that trying to do this with an incomplete
        !          3777: language specification is unwise.
        !          3778: 
        !          3779: I am also not making any commitment to do anything with CL at
        !          3780: Berkeley, but since we are building tools for our own applications,
        !          3781: and CL might be useful, we might consider an efficient merge of
        !          3782: ideas.
        !          3783: 
        !          3784: From jkf@UCBKIM  Mon Apr 11 08:07:39 1983
        !          3785: Date: 11 Apr 83 06:42:43 PST (Mon)
        !          3786: From: jkf@UCBKIM (John Foderaro)
        !          3787: Subject: mail to this mailing list
        !          3788: Message-Id: <[email protected]>
        !          3789: Received: by UCBKIM.ARPA (3.310/3.5)
        !          3790:        id AA11378; 11 Apr 83 06:42:43 PST (Mon)
        !          3791: Received: from UCBKIM.ARPA by UCBVAX.ARPA (3.332/3.21)
        !          3792:        id AA07288; 11 Apr 83 08:05:32 PST (Mon)
        !          3793: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.310/3.5)
        !          3794:        id AA11949; 11 Apr 83 08:07:39 PST (Mon)
        !          3795: To: [email protected]
        !          3796: Status: RO
        !          3797: 
        !          3798:   I'm sorry that people who mail to this mailing list must put up with lots
        !          3799:  of mail errors from our local mailer.   The problem is not that we have a
        !          3800:  lot of illegal addresses, but that over the three day period that the
        !          3801:  mailer tries to deliver the mail, some of the destination sites never
        !          3802:  respond.  I think that this is due primarily to the fact that many sites
        !          3803:  are running new mail and networking software.   Hopefully this will
        !          3804:  improve over time.
        !          3805:                                        john foderaro
        !          3806:                                        
        !          3807: 
        !          3808: 
        !          3809: 
        !          3810: From jkf  Fri Apr 22 09:59:09 1983
        !          3811: Date: 22 Apr 83 09:59:09 PST (Fri)
        !          3812: From: jkf (John Foderaro)
        !          3813: Subject: lisp opus 38.59
        !          3814: Message-Id: <[email protected]>
        !          3815: Received: by UCBKIM.ARPA (3.310/3.5)
        !          3816:        id AA20996; 22 Apr 83 09:59:09 PST (Fri)
        !          3817: To: local-lisp
        !          3818: Status: RO
        !          3819: 
        !          3820:   Input like 1.2.3 and 1..2  will now be read as single symbols rather
        !          3821: than two consecutive numbers.
        !          3822: 
        !          3823: 
        !          3824: 
        !          3825: From jkf  Sun May  8 00:02:54 1983
        !          3826: Date: 8 May 83 00:02:54 PDT (Sun)
        !          3827: From: jkf (John Foderaro)
        !          3828: Subject: opus 38.60
        !          3829: Message-Id: <[email protected]>
        !          3830: Received: by UCBKIM.ARPA (3.310/3.5)
        !          3831:        id AA22344; 8 May 83 00:02:54 PDT (Sun)
        !          3832: To: local-lisp
        !          3833: Cc: rms
        !          3834: Status: RO
        !          3835: 
        !          3836:  Thanks to some suggestions from rms we are now one step closer to
        !          3837: full closures.   fclosures will now work if called recursively.
        !          3838: It is still true that the only way to make fclosures share variables
        !          3839: is to use fclosure-list.
        !          3840: 
        !          3841:  symeval-in-fclosure may return the wrong value if the closure is 
        !          3842: 'active'.  This will be fixed eventually.
        !          3843: 
        !          3844: 
        !          3845: 
        !          3846: From mbr@nprdc  Sat May 21 07:37:23 1983
        !          3847: Date: 20 May 1983 14:57:55-PDT
        !          3848: From: mbr@NPRDC
        !          3849: Subject: lam9.c and curses
        !          3850: Message-Id: <[email protected]>
        !          3851: Received: from nprdc (nprdc.ARPA) by UCBVAX.ARPA (3.341/3.29)
        !          3852:        id AA16172; 21 May 83 07:34:43 PDT (Sat)
        !          3853: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5)
        !          3854:        id AA08856; 21 May 83 07:37:23 PDT (Sat)
        !          3855: Reply-To: mbr <mbr@NPRDC>
        !          3856: To: [email protected]
        !          3857: Cc: mbr@NPRDC
        !          3858: Status: O
        !          3859: 
        !          3860: When we attempted to cfasl a file that used the curses package
        !          3861: of screen control routines into Franz 38.40, we got the message
        !          3862: _ospeed: /usr/libcurses.a (cr_tty.o) multiply defined.
        !          3863: The apparent cause of this cryptic remark is that in lam9.c
        !          3864: there is an extern variable ospeed. There are a number of
        !          3865: tantalizing routines in this source file dealing with termcaps that
        !          3866: are apparently not called by anyone. Are there plans for these
        !          3867: routines? Does anyone use them (heaven forbid they should be
        !          3868: documented!). Our current fix is to just change ospeed to ospiid
        !          3869: which so far has had no dire effects, but I am interested in others
        !          3870: experience. The curses stuff seems to work fine after this
        !          3871: modification.
        !          3872:                        Mark Rosenstein
        !          3873: 
        !          3874: 
        !          3875: From jkf  Wed May 25 12:15:54 1983
        !          3876: Date: 25 May 83 12:15:54 PDT (Wed)
        !          3877: From: jkf (John Foderaro)
        !          3878: Subject: opus 38.61
        !          3879: Message-Id: <[email protected]>
        !          3880: Received: by UCBKIM.ARPA (3.340/3.5)
        !          3881:        id AA01144; 25 May 83 12:15:54 PDT (Wed)
        !          3882: To: local-lisp
        !          3883: Status: O
        !          3884: 
        !          3885:   symeval-in-fclosure and set-in-fclosure now work (thanks to keith).
        !          3886: 
        !          3887:   selectq is now a part of standard franz.  selectq is just like
        !          3888:  caseq except it allows 'otherwise' as well as 't' for the
        !          3889:  key which means 'if nothing else matches, use this clause'.
        !          3890:  
        !          3891:  
        !          3892: 
        !          3893: 
        !          3894: From cornwell@nrl-css  Wed May 25 12:51:17 1983
        !          3895: Date: Wed, 25 May 83 15:14:19 EDT
        !          3896: From: Mark Cornwell <cornwell@NRL-CSS>
        !          3897: Subject: Franz on the Sun
        !          3898: Message-Id: <[email protected]>
        !          3899: Received: from nrl-css (nrl-css.ARPA) by UCBVAX.ARPA (3.341/3.29)
        !          3900:        id AA02600; 25 May 83 12:50:26 PDT (Wed)
        !          3901: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5)
        !          3902:        id AA01878; 25 May 83 12:51:17 PDT (Wed)
        !          3903: To: [email protected]
        !          3904: Cc: cornwell@NRL-CSS
        !          3905: Status: O
        !          3906: 
        !          3907: 
        !          3908:   Our group at NRL is planning to purchase Sun workstations. I
        !          3909: currently have a substantial amount of code written in Franz Lisp that
        !          3910: I want to run on the Sun. 
        !          3911:  
        !          3912:   What is the status of the Berkeley group porting Franz to the Sun?   
        !          3913: How do I get a copy?
        !          3914: 
        !          3915:   Also, I have a few concerns about configuring a Sun to run Franz well.  
        !          3916: The basic desktop Sun workstation provides 1 Mbyte of physical memory.   
        !          3917: This can be extended to 2 Mbyte or one can add an Ethernet interface
        !          3918: *but not both*.  Since I am unwilling to give up my Ethernet
        !          3919: interface I may be forced to run Franz in 1 Mbyte and contend with
        !          3920: the added paging overhead (using a 68010 running 4.2bsd and a local disk).
        !          3921: 
        !          3922:   Has anyone out there had experience running Franz Lisp on a Sun in
        !          3923: such a configuration?  Can I get away without the 2 Mbyte extension?
        !          3924: I think your answers would be of general interest. 
        !          3925: 
        !          3926: -- Mark (caught between a rock and a hard place?) Cornwell
        !          3927: 
        !          3928:  
        !          3929: 
        !          3930: From baden@UCBKIM  Wed May 25 13:51:39 1983
        !          3931: Date: 25 May 83 13:32:01 PDT (Wed)
        !          3932: From: baden@UCBKIM (Scott B. Baden)
        !          3933: Subject: Re:  Franz on the Sun
        !          3934: Message-Id: <[email protected]>
        !          3935: Received: by UCBKIM.ARPA (3.340/3.5)
        !          3936:        id AA02716; 25 May 83 13:32:01 PDT (Wed)
        !          3937: Received: from UCBKIM.ARPA by UCBVAX.ARPA (3.341/3.29)
        !          3938:        id AA03753; 25 May 83 13:50:52 PDT (Wed)
        !          3939: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5)
        !          3940:        id AA03002; 25 May 83 13:51:39 PDT (Wed)
        !          3941: To: [email protected]
        !          3942: Cc: cornwell@NRL-CSS
        !          3943: Status: O
        !          3944: 
        !          3945: Which sun are you using?  My office mate says that
        !          3946: he has seen a sun configured with 2MB of memory AND
        !          3947: an Ethernet board.
        !          3948: 
        !          3949: From mike%Rice.Rice@Rand-Relay  Fri May 27 19:51:33 1983
        !          3950: Date:     Fri, 27 May 83 18:18:47 CDT
        !          3951: From: Mike.Caplinger <mike.rice@Rand-Relay>
        !          3952: Subject:  Re:  Franz on the Sun
        !          3953: Return-Path: <mike%Rice.Rice@Rand-Relay>
        !          3954: Message-Id:  <[email protected]>
        !          3955: Received: from rand-relay.ARPA by UCBVAX.ARPA (3.341/3.29)
        !          3956:        id AA19088; 27 May 83 19:50:15 PDT (Fri)
        !          3957: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5)
        !          3958:        id AA02221; 27 May 83 19:51:33 PDT (Fri)
        !          3959: To: [email protected]
        !          3960: In-Reply-To: baden%UCBKIM's message of 25 May 83 13:32:01 PDT (Wed)
        !          3961: Via:  Rice; 27 May 83 19:14-PDT
        !          3962: Status: RO
        !          3963: 
        !          3964: As I type I'm bringing up the 68K version of Opus 38 (now FTPable from
        !          3965: UCB-VAX) on a SUN running 4.1c.  There don't seem to be any major
        !          3966: problems so far, but the compiler doesn't run on a system with all the
        !          3967: net servers on it because it runs out of memory.  I've been told this
        !          3968: is because there's a bug in 4.1c that forces it to only use 1/2 of the
        !          3969: swap partition.  I'm having to run standalone to compile the compiler;
        !          3970: I don't yet know whether I'll be able to compile other stuff without
        !          3971: this rather extreme fix.
        !          3972: 
        !          3973: As I use the system more I will post more info to this group.
        !          3974: 
        !          3975: From narain@rand-unix  Tue May 31 10:49:00 1983
        !          3976: Date: Tuesday, 31 May 1983 10:45-PDT
        !          3977: From: narain@rand-unix
        !          3978: Subject: Interrupt question
        !          3979: Message-Id: <[email protected]>
        !          3980: Received: from rand-unix (rand-unix.ARPA) by UCBVAX.ARPA (3.341/3.29)
        !          3981:        id AA10893; 31 May 83 10:47:26 PDT (Tue)
        !          3982: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5)
        !          3983:        id AA13428; 31 May 83 10:49:00 PDT (Tue)
        !          3984: To: [email protected]
        !          3985: Cc: narain@rand-unix
        !          3986: Status: O
        !          3987: 
        !          3988: 
        !          3989: Hi, I would be grateful if you could tell me  what  is  the  equivalent  of
        !          3990: Interlisp's  control-h  (followed  by  OK) in Franzlisp.  In other words, I
        !          3991: wish to interrupt a Franzlisp program, from time to time, examine its state
        !          3992: and allow it to continue from the interrupted point.
        !          3993: 
        !          3994: -- Sanjai
        !          3995: 
        !          3996: From [email protected]  Tue May 31 19:31:04 1983
        !          3997: Date: 31 May 83 17:28:35 PDT (Tue)
        !          3998: From: [email protected]
        !          3999: Subject: packages
        !          4000: Message-Id: <[email protected]>
        !          4001: Received: by LBL-CSAM.ARPA (3.320/3.21)
        !          4002:        id AA16451; 31 May 83 17:28:35 PDT (Tue)
        !          4003: Received: by UCBVAX.ARPA (3.341/3.31)
        !          4004:        id AA02877; 31 May 83 19:30:00 PDT (Tue)
        !          4005: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5)
        !          4006:        id AA22745; 31 May 83 19:31:04 PDT (Tue)
        !          4007: To: [email protected]
        !          4008: Status: O
        !          4009: 
        !          4010: 
        !          4011: Does a version of LispMachine ``packages'' or some similar oblist partitioning
        !          4012: scheme exist for franz?  Having just integrated several independently coded
        !          4013: modules, I think something like that would be very useful.
        !          4014:                                        -thanks
        !          4015:        Steve White, BAC, {uw-beaver,lbl-csam}!ssc-vax!steve
        !          4016: 
        !          4017: 
        !          4018: From fateman  Tue Jun 14 11:48:32 1983
        !          4019: Date: 14 Jun 83 11:48:32 PDT (Tue)
        !          4020: From: fateman (Richard Fateman)
        !          4021: Subject: "macsyma on a chip?"
        !          4022: Message-Id: <[email protected]>
        !          4023: Received: by UCBKIM.ARPA (3.340/3.5)
        !          4024:        id AA06756; 14 Jun 83 11:48:32 PDT (Tue)
        !          4025: To: macsyma-i@mit-mc
        !          4026: Cc: franz-friends
        !          4027: Status: O
        !          4028: 
        !          4029: Well, sort of. We now have Macsyma running on a Motorola 68000 - based
        !          4030: system with 6 megabytes of real memory. The operating system is a 
        !          4031: Unisoft UNIX system, which has been ported to some large number (>65) boxes.  
        !          4032: The Pixel people were kind enough to lend us a machine with enough 
        !          4033: real memory to make virtual memory unnecessary.
        !          4034: 
        !          4035: It takes a long time to load up, but once running, it is quite responsive,
        !          4036: and appears to be about 60% of a VAX 11/780 in terms of CPU time. 
        !          4037: 
        !          4038: We have not shaken down everything, but since the source code is unchanged
        !          4039: from the VAX, we expect the bugs to be limited to lisp compilation
        !          4040: glitches, or differences between versions of the UNIX system.
        !          4041: 
        !          4042: 
        !          4043: From jkf  Wed Jun 15 10:42:05 1983
        !          4044: Date: 15 Jun 83 10:42:05 PDT (Wed)
        !          4045: From: jkf (John Foderaro)
        !          4046: Subject: Opus 38.62
        !          4047: Message-Id: <[email protected]>
        !          4048: Received: by UCBKIM.ARPA (3.340/3.5)
        !          4049:        id AA20591; 15 Jun 83 10:42:05 PDT (Wed)
        !          4050: To: local-lisp
        !          4051: Status: O
        !          4052: 
        !          4053:   There is no longer a limit on the size of bignums, strings or
        !          4054: symbol names which can be read by the reader [other than the size of
        !          4055: virtual memory].
        !          4056: 
        !          4057:   The value of lisp-library-directory will determine where cfasl finds
        !          4058: its private version of the loader.
        !          4059: 
        !          4060:  (changes by sklower)
        !          4061: 
        !          4062: 
        !          4063: From @CMU-CS-C:UI.TYJ@CU20D  Wed Jun 15 18:22:55 1983
        !          4064: Date: 14 Jun 1983 1812-EDT
        !          4065: From: Tai Jin <UI.TYJ@CU20D>
        !          4066: Subject: franz mailing liszt
        !          4067: Message-Id: <[email protected]>
        !          4068: Received: from CMU-CS-C (cmu-cs-c.ARPA) by UCBVAX.ARPA (3.346/3.33)
        !          4069:        id AA16599; 14 Jun 83 15:14:36 PDT (Tue)
        !          4070: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5)
        !          4071:        id AA28806; 15 Jun 83 18:22:55 PDT (Wed)
        !          4072: To: franz-friends%berkeley@CMCSC
        !          4073: Cc: ui.travis%cu20d@CMCSC, ui.tyj%cu20d@CMCSC
        !          4074: Status: O
        !          4075: 
        !          4076: 
        !          4077: Hi, we would like to be added to your mailing list.
        !          4078: 
        !          4079: We are currently attempting to install FRANZ Lisp on Amdahl's Unix (UTS)
        !          4080: running under VM/CMS on an IBM 4341 here at CUCCA (Columbia University Center
        !          4081: for Computing Activities).
        !          4082: 
        !          4083: Is anyone out there working on an UTS/IBM implementation?  Any information will
        !          4084: be greatly appreciated.
        !          4085: 
        !          4086: 
        !          4087: Thanks,
        !          4088: 
        !          4089: Tai Jin <UI.TYJ%CU20D@CMCSC>
        !          4090: Travis Winfrey <UI.TRAVIS%CU20D@CMCSC>
        !          4091: -------
        !          4092: 
        !          4093: From @CMU-CS-C:Ui.Travis@CU20D  Thu Jun 16 09:47:39 1983
        !          4094: Date: 16 Jun 1983 1243-EDT
        !          4095: From: Travis Lee Winfrey <Ui.Travis@CU20D>
        !          4096: Subject: Porting Franz lisp to Amdahl Unix
        !          4097: Message-Id: <[email protected]>
        !          4098: Received: from CMU-CS-C (cmu-cs-c.ARPA) by UCBVAX.ARPA (3.346/3.33)
        !          4099:        id AA25470; 16 Jun 83 09:46:15 PDT (Thu)
        !          4100: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5)
        !          4101:        id AA06352; 16 Jun 83 09:47:39 PDT (Thu)
        !          4102: To: sklower%berkeley@CMCSC, kim.layer%berkeley@CMCSC
        !          4103: Cc: franz-friends%berkeley@CMCSC, ui.tyj@CU20D, Ui.Travis@CU20D,
        !          4104:         kim.fateman%berkeley@CMCSC
        !          4105: Status: O
        !          4106: 
        !          4107: Hi, Tai Jin and I are currently attemping to bring up Franz lisp on Amdahl's
        !          4108: Unix running on a IBM 4341.  We are working from a copy that runs on the VAX.
        !          4109: 
        !          4110: We would be very interested in seeing any versions that runs both on the VAX
        !          4111: and some other machine, such as the 68000.  We are also interested in seeing
        !          4112: any documentation on other porting efforts, regardless of what machine.
        !          4113: 
        !          4114: Thanks,
        !          4115: 
        !          4116: Tai Jin  <ui.tyj%cu20d@cmu-cs-c>
        !          4117: Travis Winfrey <ui.travis%cu20d@cmu-cs-c>
        !          4118: -------
        !          4119: 
        !          4120: From jkf  Sun Jun 19 15:43:34 1983
        !          4121: Date: 19 Jun 83 15:43:34 PDT (Sun)
        !          4122: From: jkf (John Foderaro)
        !          4123: Subject: opus 38.63
        !          4124: Message-Id: <[email protected]>
        !          4125: Received: by UCBKIM.ARPA (3.340/3.5)
        !          4126:        id AA19626; 19 Jun 83 15:43:34 PDT (Sun)
        !          4127: To: local-lisp
        !          4128: Status: O
        !          4129: 
        !          4130:  Added functions:
        !          4131:    (vputprop 'Vv_vector 'g_value 'g_indicator)
        !          4132:    (vget  'Vv_vector 'g_indicator)
        !          4133: 
        !          4134:   work just like putprop and get, but modify the vector property list.
        !          4135: 
        !          4136:  Also:
        !          4137:    you can determine which function is called by lisp to print a vector
        !          4138:  by placing the function to call on the vector's property list under
        !          4139:  indicator 'print'.  The  print function is called with two arguments:
        !          4140:  the vector and the port.
        !          4141:  
        !          4142:  For example:
        !          4143: => (defun printv (v port)
        !          4144:       (patom "A vector of size " port)
        !          4145:       (print (vsize v) port))
        !          4146: printv
        !          4147: => (setq xx (new-vector 10))
        !          4148: vector[40]
        !          4149: => (vputprop xx 'printv 'print)
        !          4150: printv
        !          4151: => xx
        !          4152: A vector of size 10
        !          4153: =>
        !          4154: 
        !          4155: 
        !          4156: 
        !          4157: From jkf  Sun Jun 19 22:47:42 1983
        !          4158: Date: 19 Jun 83 22:47:42 PDT (Sun)
        !          4159: From: jkf (John Foderaro)
        !          4160: Subject: opus 38.64
        !          4161: Message-Id: <[email protected]>
        !          4162: Received: by UCBKIM.ARPA (3.340/3.5)
        !          4163:        id AA23164; 19 Jun 83 22:47:42 PDT (Sun)
        !          4164: To: local-lisp
        !          4165: Cc: jpg@Mit-mc
        !          4166: Status: O
        !          4167: 
        !          4168: 
        !          4169:   added the function (^ 'x_a 'x_b)  which computes  x_a to the x_b
        !          4170: power and always returns a fixnum result (it currently wraps around
        !          4171: on overflow).
        !          4172: 
        !          4173: 
        !          4174: 
        !          4175: From JPG@MIT-MC  Sun Jun 19 22:54:00 1983
        !          4176: Date: 20 June 1983 01:53 EDT
        !          4177: From: Jeffrey P. Golden <JPG@MIT-MC>
        !          4178: Subject: ^
        !          4179: Message-Id: <[email protected]>
        !          4180: Received: from MIT-MC (mit-mc.ARPA) by UCBVAX.ARPA (3.346/3.33)
        !          4181:        id AA15160; 19 Jun 83 22:53:57 PDT (Sun)
        !          4182: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5)
        !          4183:        id AA23228; 19 Jun 83 22:54:00 PDT (Sun)
        !          4184: To: jkf@UCBKIM
        !          4185: Cc: JPG@MIT-MC, local-lisp@UCBKIM
        !          4186: Status: O
        !          4187: 
        !          4188:    Date: 19 Jun 83 22:47:42 PDT 
        !          4189:    From: jkf%UCBKIM@Berkeley 
        !          4190:    Subject: opus 38.64
        !          4191:    To: local-lisp%UCBKIM@Berkeley
        !          4192:    Cc: jpg@Mit-mc
        !          4193:    added the function (^ 'x_a 'x_b)  which computes  x_a to the x_b
        !          4194:    power and always returns a fixnum result (it currently wraps around
        !          4195:    on overflow).
        !          4196: The Maclisp ^ errors out in this case with the message:
        !          4197: ;RESULT LARGER THAN FIXNUM - ^
        !          4198: 
        !          4199: 
        !          4200: From narain@rand-unix  Mon Jun 20 22:09:31 1983
        !          4201: Date: Monday, 20 Jun 1983 22:00-PDT
        !          4202: From: narain@rand-unix
        !          4203: Subject: Re: Interrrupt question
        !          4204: Message-Id: <[email protected]>
        !          4205: Received: from rand-unix (rand-unix.ARPA) by UCBVAX.ARPA (3.346/3.33)
        !          4206:        id AA00276; 20 Jun 83 22:09:20 PDT (Mon)
        !          4207: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5)
        !          4208:        id AA09633; 20 Jun 83 22:09:31 PDT (Mon)
        !          4209: To: [email protected]
        !          4210: Cc: narain@rand-unix
        !          4211: Status: O
        !          4212: 
        !          4213: 
        !          4214:                                   TWIMC
        !          4215:                                   -----
        !          4216: 
        !          4217: Here is the equivalent of Interlisp's control-H followed by OK in Franzlisp:
        !          4218: i.e. if you wish to interrupt a Franzlisp computation, browse around the state
        !          4219: and resume computation:
        !          4220: 
        !          4221: Hit DEL;
        !          4222: Browse;
        !          4223: (return t)
        !          4224: 
        !          4225: This answer was given by Liz Allen at Maryland (liz.umcp-cs@udel-relay).
        !          4226: 
        !          4227: -- Sanjai
        !          4228: 
        !          4229: From Tim%UPenn.UPenn@UDel-Relay  Tue Jun 21 14:52:53 1983
        !          4230: Date: Tue, 21 Jun 83 10:33 EDT
        !          4231: From: Tim Finin <Tim.UPenn@UDel-Relay>
        !          4232: Subject: interrupting Franz
        !          4233: Return-Path: <Tim%UPenn.UPenn@UDel-Relay>
        !          4234: Message-Id: <[email protected]>
        !          4235: Received: from udel-relay.ARPA by UCBVAX.ARPA (3.346/3.33)
        !          4236:        id AA12930; 21 Jun 83 14:52:36 PDT (Tue)
        !          4237: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5)
        !          4238:        id AA21097; 21 Jun 83 14:52:53 PDT (Tue)
        !          4239: To: [email protected]
        !          4240: Via:  UPenn; 21 Jun 83 17:40-EDT
        !          4241: Status: O
        !          4242: 
        !          4243: 
        !          4244: Under VMS, one should type a ^C (control-C) rather than DEL to interrupt Franz.
        !          4245: 
        !          4246: From jkf  Sat Jun 25 13:49:37 1983
        !          4247: Date: 25 Jun 83 13:49:37 PDT (Sat)
        !          4248: From: jkf (John Foderaro)
        !          4249: Subject: opus 38.65
        !          4250: Message-Id: <[email protected]>
        !          4251: Received: by UCBKIM.ARPA (3.340/3.5)
        !          4252:        id AA25527; 25 Jun 83 13:49:37 PDT (Sat)
        !          4253: To: local-lisp
        !          4254: Status: O
        !          4255: 
        !          4256:   If you have automatic case conversion set (i.e. (sstatus uctolc t)),
        !          4257: then symbols with lower case letters will be escaped by print.
        !          4258: 
        !          4259: 
        !          4260: 
        !          4261: From layer  Tue Jul  5 00:26:29 1983
        !          4262: Date:  5 Jul 1983 0026-PDT (Tuesday)
        !          4263: From: layer (Kevin Layer)
        !          4264: Subject: lisp opus 38.67
        !          4265: Message-Id: <5390.30.426237985@ucbkim>
        !          4266: Received: by UCBKIM.ARPA (3.340/3.5)
        !          4267:        id AA05911; 5 Jul 83 00:26:29 PDT (Tue)
        !          4268: Phone: (415) 652-2405
        !          4269: To: local-lisp
        !          4270: Cc: layer
        !          4271: Status: O
        !          4272: 
        !          4273:   The function 'sortcar' has been slightly changed: if the second
        !          4274: arg is nil, then the ordering function 'alphalessp' is assumed
        !          4275: ('sort' does it this way).
        !          4276: 
        !          4277:        Kevin
        !          4278: 
        !          4279: From layer  Wed Jul  6 00:02:33 1983
        !          4280: Date: 6 Jul 83 00:02:33 PDT (Wed)
        !          4281: From: layer (Kevin Layer)
        !          4282: Subject: liszt opus 8.30
        !          4283: Message-Id: <[email protected]>
        !          4284: Received: by UCBKIM.ARPA (3.340/3.5)
        !          4285:        id AA24776; 6 Jul 83 00:02:33 PDT (Wed)
        !          4286: Phone: (415) 652-2405
        !          4287: To: local-lisp
        !          4288: Cc: sklower, jkf
        !          4289: Status: O
        !          4290: 
        !          4291:   All modifications should be transparent, but if there are problems
        !          4292: relating to the autorun feature (-r flag), please let me know.
        !          4293: 
        !          4294:        Kevin
        !          4295: 
        !          4296: 
        !          4297: 
        !          4298: From sklower  Thu Jul  7 00:27:52 1983
        !          4299: Date: 7 Jul 83 00:27:52 PDT (Thu)
        !          4300: From: sklower (Keith Sklower)
        !          4301: Subject: Franz, opus38.68
        !          4302: Message-Id: <[email protected]>
        !          4303: Received: by UCBKIM.ARPA (3.340/3.5)
        !          4304:        id AA10697; 7 Jul 83 00:27:52 PDT (Thu)
        !          4305: To: local-lisp
        !          4306: Status: O
        !          4307: 
        !          4308: Franz now escapes UPPER case letters instead of lower case letters when
        !          4309: (status uctolc) is enabled, so that (read (print x)) is an identity operation
        !          4310: on atom printnames.  Also, we made (explode) conform to what maclisp does
        !          4311: with opposite-than-normal character-cases.
        !          4312: 
        !          4313: From Ira%UPenn.UPenn@UDel-Relay  Fri Jul  8 01:46:25 1983
        !          4314: Date: Thu, 7 Jul 83 22:13 EDT
        !          4315: From: Ira Winston <Ira.UPenn@UDel-Relay>
        !          4316: Subject: Eliza
        !          4317: Return-Path: <Ira%UPenn.UPenn@UDel-Relay>
        !          4318: Message-Id: <[email protected]>
        !          4319: Received: from udel-relay.ARPA by UCBVAX.ARPA (3.346/3.33)
        !          4320:        id AA16294; 8 Jul 83 01:45:43 PDT (Fri)
        !          4321: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5)
        !          4322:        id AA01687; 8 Jul 83 01:46:25 PDT (Fri)
        !          4323: To: [email protected]
        !          4324: Via:  UPenn; 8 Jul 83 3:07-EDT
        !          4325: Status: O
        !          4326: 
        !          4327: Does anyone have a version of Eliza that runs under Franz Lisp?
        !          4328: 
        !          4329: From layer  Fri Jul  8 18:04:10 1983
        !          4330: Date:  8 Jul 1983 1804-PDT (Friday)
        !          4331: From: layer (Kevin Layer)
        !          4332: Subject: lisp opus 38.69
        !          4333: Message-Id: <7031.30.426560643@ucbkim>
        !          4334: Received: by UCBKIM.ARPA (3.340/3.5)
        !          4335:        id AA07142; 8 Jul 83 18:04:10 PDT (Fri)
        !          4336: Phone: (415) 652-2405
        !          4337: To: local-lisp
        !          4338: Cc: layer
        !          4339: Status: O
        !          4340: 
        !          4341:   'setf' now knows about 'nthelem', and there are two new functions:
        !          4342: 
        !          4343:        (readdir 's_direct)
        !          4344:                returns a list of the contents of the directory s_direct.
        !          4345: 
        !          4346:        (dirp 's_name)
        !          4347:                returns s_name if s_name is a directory.  This doesn't
        !          4348:                insure that you can read the directory, though (only
        !          4349:                uses stat(2)).
        !          4350: 
        !          4351:                                        Kevin
        !          4352: 
        !          4353: From layer  Fri Jul  8 20:57:13 1983
        !          4354: Date:  8 Jul 1983 2057-PDT (Friday)
        !          4355: From: layer (Kevin Layer)
        !          4356: Subject: new function readdir
        !          4357: Message-Id: <465.30.426571029@ucbkim>
        !          4358: Received: by UCBKIM.ARPA (3.340/3.5)
        !          4359:        id AA00480; 8 Jul 83 20:57:13 PDT (Fri)
        !          4360: Phone: (415) 652-2405
        !          4361: To: local-lisp
        !          4362: Fcc: record
        !          4363: Status: O
        !          4364: 
        !          4365:   The function 'readdir' and 'dirp' should not be relied on yet, since
        !          4366: they are provisional, because they are implemented with C library
        !          4367: functions only available on 4.1+ systems.
        !          4368: 
        !          4369:        Kevin
        !          4370: 
        !          4371: From Pwh%GaTech.GATech@UDel-Relay  Tue Jul 12 18:08:46 1983
        !          4372: Date:     11 Jul 83 20:36:32-EDT (Mon)
        !          4373: From: <pwh.gatech@UDel-Relay>
        !          4374: Subject:  Franz flavors?
        !          4375: Return-Path: <Pwh%GaTech.GATech@UDel-Relay>
        !          4376: Message-Id: <[email protected]>
        !          4377: Received: from udel-relay.ARPA by UCBVAX.ARPA (3.346/3.33)
        !          4378:        id AA03336; 12 Jul 83 18:07:40 PDT (Tue)
        !          4379: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5)
        !          4380:        id AA20140; 12 Jul 83 18:08:46 PDT (Tue)
        !          4381: To: [email protected]
        !          4382: Cc: jlk.Gatech@UDel-Relay
        !          4383: Via:  GATech; 12 Jul 83 2:43-EDT
        !          4384: Status: O
        !          4385: 
        !          4386: We at Ga Tech (ai group working under prof Janet Kolodner) have just gotten our
        !          4387: long awaited Symbolics Lisp Machine up and running and are trying to establish
        !          4388: some measure of compatability between Franz and Zeta Lisp (as appropriate).
        !          4389: Janet seems to recall some mention of a flavor package for Franz. Is this
        !          4390: Berkley based or can anyone provide some clues as to where to check next?
        !          4391: 
        !          4392: Also, when is the next release of Franz scheduled and what features will it
        !          4393: incorporate?
        !          4394: 
        !          4395: If the flavor package is non-existent, we will probably be forced to develop
        !          4396: one here and will, of course, be glad to pass anything useful along.
        !          4397: 
        !          4398: phil hutto
        !          4399: 
        !          4400: From narain@rand-unix  Tue Jul 12 20:10:42 1983
        !          4401: Date: Tuesday, 12 Jul 1983 19:49-PDT
        !          4402: From: narain@rand-unix
        !          4403: Subject: Re:  Franz flavors?
        !          4404: Message-Id: <[email protected]>
        !          4405: Received: from rand-unix (rand-unix.ARPA) by UCBVAX.ARPA (3.346/3.33)
        !          4406:        id AA05908; 12 Jul 83 20:09:41 PDT (Tue)
        !          4407: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5)
        !          4408:        id AA21387; 12 Jul 83 20:10:42 PDT (Tue)
        !          4409: To: <pwh.gatech@UDEL-RELAY>
        !          4410: Cc: [email protected], jlk.Gatech@UDEL-RELAY
        !          4411: In-Reply-To: Your message of     11 Jul 83 20:36:32-EDT (Mon).
        !          4412:              <[email protected]>
        !          4413: Status: O
        !          4414: 
        !          4415: 
        !          4416: We at Rand are interested in developing a set of guidelines for writing
        !          4417: code that will be compatible with each of Zeta- Franz- and PSL Lisps. I
        !          4418: would be grateful if you could tell us of what your experiences have been with
        !          4419: making Franzlisp code work on the Symbolics machine. We would gladly share
        !          4420: our own with you if you wish; incidentally we also have an IJCAI paper on a
        !          4421: related issue.
        !          4422: 
        !          4423: -- Sanjai Narain
        !          4424: 
        !          4425: From liz.umcp-cs@UDel-Relay  Wed Jul 13 00:55:26 1983
        !          4426: Date:     13 Jul 83 03:09:39 EDT  (Wed)
        !          4427: From: Liz Allen <liz.umcp-cs@UDel-Relay>
        !          4428: Subject:  Re:  Franz flavors?
        !          4429: Return-Path: <liz.umcp-cs@UDel-Relay>
        !          4430: Message-Id: <[email protected]>
        !          4431: Received: from udel-relay.ARPA by UCBVAX.ARPA (3.346/3.33)
        !          4432:        id AA10367; 13 Jul 83 00:54:32 PDT (Wed)
        !          4433: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5)
        !          4434:        id AA24477; 13 Jul 83 00:55:26 PDT (Wed)
        !          4435: To: pwh.gatech@UDel-Relay, [email protected]
        !          4436: Cc: jlk.Gatech@UDel-Relay
        !          4437: Via:  UMCP-CS; 13 Jul 83 3:23-EDT
        !          4438: Status: O
        !          4439: 
        !          4440: Here at the Univ of Maryland, we do have an implementation of
        !          4441: flavors in Franz Lisp and have used it successfully in several
        !          4442: large systems.  It doesn't contain all the features of the Lisp
        !          4443: Machine Flavors, but it does implement all the major ones.  It is
        !          4444: also different in a few ways that are necessitated by the limitations
        !          4445: of Franz Lisp (shallow binding without invisible pointers or true
        !          4446: closures -- though closures may be in the very newest versions of
        !          4447: Franz -- we have opus 38.26).  The package uses a hashing scheme
        !          4448: for looking up methods, and the function <- which is used to send
        !          4449: a message to an object is written in C.  Together, this makes it
        !          4450: an efficient implementation.
        !          4451: 
        !          4452: We are currently working on a new policy for distributing flavors,
        !          4453: our other lisp packages and our window package.  When we have worked
        !          4454: it out, I will announce the details here.
        !          4455: 
        !          4456:                                -Liz
        !          4457: 
        !          4458: From @MIT-MC:mdm@cmu-ri-isl  Thu Jul 14 11:07:57 1983
        !          4459: Date: 14 Jul 1983 14:03:01-EDT
        !          4460: From: Malcolm.McRoberts@CMU-RI-ISL
        !          4461: Subject: random numbers
        !          4462: Message-Id: <[email protected]>
        !          4463: Received: from MIT-MC (mit-mc.ARPA) by UCBVAX.ARPA (3.347/3.35)
        !          4464:        id AA05735; Thu, 14 Jul 83 11:06:45 PDT
        !          4465: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5)
        !          4466:        id AA13687; 14 Jul 83 11:07:57 PDT (Thu)
        !          4467: Apparently-To: <franz-friends@UCB-VAX>
        !          4468: Status: O
        !          4469: 
        !          4470: I am interested in obtaining a GOOD random number generator that is callable
        !          4471: from Franz.  My only real requirements are that it accept a seed (so that I
        !          4472: can duplicate the same series), is fairly good (try doing several (random
        !          4473: 4)'s in Franz and see what you get), and is of intermediate speed.  If you
        !          4474: know of such an animal please send me mail telling me how to get it.
        !          4475:                                                        thanks
        !          4476: 
        !          4477: 
        !          4478: From kanderso@bbn-vax  Thu Jul 14 12:49:58 1983
        !          4479: Date: 14 Jul 1983 15:47:19 EDT (Thursday)
        !          4480: From: Ken Anderson <kanderso@bbn-vax>
        !          4481: Subject: Random numbers
        !          4482: Message-Id: <[email protected]>
        !          4483: Received: from bbn-vax (bbn-vax.ARPA) by UCBVAX.ARPA (3.347/3.35)
        !          4484:        id AA06936; Thu, 14 Jul 83 12:48:49 PDT
        !          4485: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5)
        !          4486:        id AA15607; 14 Jul 83 12:49:58 PDT (Thu)
        !          4487: To: [email protected]
        !          4488: Cc: Malcolm.McRoberts@CMU-RI-ISL
        !          4489: Status: O
        !          4490: 
        !          4491: Here is a random number generator i use.  It seems to work fairly well, but i have
        !          4492: not looked to closely at the statistics.  Since it will occasionally require
        !          4493: bignums, it is probably not the fastest either.  I was just looking for something
        !          4494: that was likely to be portable between LISP's.
        !          4495: I would be very interested in hearing your evaluation of it.
        !          4496: 
        !          4497: k
        !          4498: 
        !          4499: ;;; RANDOM NUMBERS
        !          4500: (declare (macros t))
        !          4501: (include math.h)
        !          4502: 
        !          4503: (defvar $uniform-a 16807) ; = 7^5
        !          4504: (defvar $mersenne-prime 2147483647) ; = 2^31 - 1
        !          4505: (defvar $mersenne-prime-1 (- $mersenne-prime 1))
        !          4506: 
        !          4507: (defmacro with-seed (s-newseed . body)
        !          4508:   ; evaluates body with the seed of the random numbers set to s-newseed.
        !          4509:   ; the value of s-newseed is updated.  Thus this is a way of
        !          4510:   ; Keepining several sequences of random numbers with their own seeds
        !          4511:   `(let (($uniform-seed ,s-newseed))
        !          4512:        (prog1 (progn ,@body) 
        !          4513:               (setq ,s-newseed $uniform-seed))))
        !          4514: 
        !          4515: (defun uniform-basic (previous-fixnum)
        !          4516:   ; -> a fixnum 0 < fixnum < 2^31 - 1
        !          4517:   ; Repeated calls will generate fixnums in the range
        !          4518:   ; 1 -> 2^31 - 2.
        !          4519: 
        !          4520:   ; The basic idea is new = A^k * old (mod p)
        !          4521:   ; where A is a primitive root of p, k is not a factor of  p-1
        !          4522:   ; and p is a large prime.
        !          4523: 
        !          4524:   ; This is a good random number generator but is not be the fastest!
        !          4525:   ; On FRANZ LISP, and LISP MACHINE it will require bignums since
        !          4526:   ; (* $uniform-a previous-fixnum) can have 46 bits in it. Also the remainder
        !          4527:   ; can be done more efficiently.
        !          4528:   ; See: Linus Schrage, A More Portable Fortran Random Number Generator,
        !          4529:   ;      ACM Trans. Math. Soft., V5, No. 2, p 132-138, 1979.
        !          4530:   (remainder (*$ $uniform-a previous-fixnum) $mersenne-prime))
        !          4531: 
        !          4532: (defvar $uniform-seed 53) ; 0 < fixnum < $mersenne-prime-1
        !          4533: 
        !          4534: (defun uniform ()
        !          4535:   ; -> the next uniform random number in the sequence
        !          4536:   ; To have your own sequence, rebind $uniform-seed.
        !          4537:   (setq $uniform-seed (uniform-basic $uniform-seed)))
        !          4538: 
        !          4539: (defun uniform-between (low-num high-num)
        !          4540:   ; -> a uniform random  number, x, low-num <= x <= high-num
        !          4541:   ; If low-num and high-num are fixnums, a fixnum is returned.
        !          4542:   (cond ((not (and (fixp low-num) (fixp high-num)))
        !          4543:         (+$ low-num (*$ (//$ (uniform) (float $mersenne-prime-1))
        !          4544:                       (-$ high-num low-num))))
        !          4545:        (t (+ low-num (// (uniform)
        !          4546:                          (// $mersenne-prime-1 (max 1 (- high-num low-num -1))))))))
        !          4547: 
        !          4548: (defun gaussian-random-1 ()
        !          4549:   ; -> a gaussian random variable with mean 0.0 and
        !          4550:   ; standard deviation 1.0.
        !          4551:   ; Good tails.
        !          4552:   (*$ (sqrt (*$ -2.0 (log (uniform-between 0.0 1.0))))
        !          4553:      (sin (*$ $2pi (uniform-between 0.0 1.0)))))
        !          4554: 
        !          4555: (defun gaussian-random (mean standard-deviation)
        !          4556:   (+$ mean (*$ (gaussian-random-1) standard-deviation)))
        !          4557: 
        !          4558: ;;(defun gaussian (x)
        !          4559: ;;  (* (sqrt $2pi) 
        !          4560: ;;     (exp (minus (// (square x) 2.0)))))
        !          4561: 
        !          4562: (defun random-yes-no (fraction-yes)
        !          4563:     (<= (uniform-between 0.0 1.0) fraction-yes))
        !          4564: 
        !          4565: 
        !          4566: From layer  Sat Jul 30 15:46:42 1983
        !          4567: Date: 30 Jul 1983 1546-PDT (Saturday)
        !          4568: From: layer (Kevin Layer)
        !          4569: Subject: liszt opus 8.33
        !          4570: Message-Id: <19472.30.428453197@ucbkim>
        !          4571: Received: by UCBKIM.ARPA (3.340/3.5)
        !          4572:        id AA19498; 30 Jul 83 15:46:42 PDT (Sat)
        !          4573: Phone: (415) 652-2405
        !          4574: To: local-lisp
        !          4575: Status: O
        !          4576: 
        !          4577:   Vset is now open coded.  There should be no visible change in the
        !          4578: behaviour of vectors, except in speed (greater, that is), and 
        !          4579: vsize-{byte,word} work properly now.
        !          4580: 
        !          4581:   Bugs to me.
        !          4582: 
        !          4583:        Kevin
        !          4584: 
        !          4585: From jkf  Mon Aug  1 14:41:28 1983
        !          4586: Received: by ucbkim.ARPA (4.2/4.2)
        !          4587:        id AA03743; Mon, 1 Aug 83 14:41:28 PDT
        !          4588: Date: Mon, 1 Aug 83 14:41:28 PDT
        !          4589: From: jkf (John Foderaro)
        !          4590: Message-Id: <[email protected]>
        !          4591: To: local-lisp
        !          4592: Subject: defstruct
        !          4593: Status: O
        !          4594: 
        !          4595:   defstruct now understands two more types of structures:
        !          4596:        :vector
        !          4597:        :named-vector
        !          4598: 
        !          4599:   A named vector has the defstruct structure name on the vector property
        !          4600: list, thus an instance of the foo structure would print as 'foo[8]'.
        !          4601: 
        !          4602: 
        !          4603:   :named-vector is now the default structure type (instead of :hunk).
        !          4604: 
        !          4605: 
        !          4606: 
        !          4607: 
        !          4608: From jkf  Tue Aug  2 15:20:04 1983
        !          4609: Received: by ucbkim.ARPA (4.2/4.2)
        !          4610:        id AA26686; Tue, 2 Aug 83 15:20:04 PDT
        !          4611: Date: Tue, 2 Aug 83 15:20:04 PDT
        !          4612: From: jkf (John Foderaro)
        !          4613: Message-Id: <[email protected]>
        !          4614: To: local-lisp
        !          4615: Subject: lisp opus 38.70
        !          4616: Status: RO
        !          4617: 
        !          4618:   When a vector is printed, the size in square brackets will be the number
        !          4619: of entries (not the number of bytes).  The size printed for vectori
        !          4620: objects will continue to be the number of bytes.
        !          4621: 
        !          4622:   Also, if the property of a vector is a list with the car being a non nil
        !          4623: symbol, and if that list doesn't have a print property, then that
        !          4624: symbol will be printed rather than 'vector' or 'vectori'.
        !          4625: 
        !          4626: 
        !          4627: 
        !          4628: From layer  Thu Aug  4 02:10:12 1983
        !          4629: Received: by ucbkim.ARPA (4.2/4.2)
        !          4630:        id AA11660; Thu, 4 Aug 83 02:10:12 PDT
        !          4631: From: layer (Kevin Layer)
        !          4632: Phone: (415) 652-2405
        !          4633: Date:  4 Aug 1983 0210-PDT (Thursday)
        !          4634: Message-Id: <11649.30.428836207@ucbkim>
        !          4635: To: local-lisp
        !          4636: Subject: liszt opus 8.34
        !          4637: Status: RO
        !          4638: 
        !          4639:   I just installed a new compiler.  For the vax, there shouldn't be
        !          4640: any visible changes, though a couple of vector bugs were fixed.  For
        !          4641: the 68000, the vector access functions are now open coded, and the
        !          4642: new one was installed on mike, rob, and chip in /usr/ucb.
        !          4643: 
        !          4644:        Kevin
        !          4645: 
        !          4646: From FRD@SU-AI  Fri Aug  5 15:57:17 1983
        !          4647: Received: from UCBVAX.ARPA by ucbkim.ARPA (4.2/4.2)
        !          4648:        id AA10610; Fri, 5 Aug 83 15:57:17 PDT
        !          4649: Received: from SU-AI.ARPA by UCBVAX.ARPA (3.347/3.35)
        !          4650:        id AA10357; Fri, 5 Aug 83 15:54:22 PDT
        !          4651: Message-Id: <[email protected]>
        !          4652: Date: 05 Aug 83  1353 PDT
        !          4653: From: Fred Lakin <FRD@SU-AI>
        !          4654: Subject: Franz & SUNs  
        !          4655: To: franz-friends@BERKELEY
        !          4656: Status: RO
        !          4657: 
        !          4658: I am interested in connectons between Franz and SUN workstations.
        !          4659: Like how far along is Franz on the SUN?  Is there some package
        !          4660: which allows Franz on a VAX to use a SUN as a display device?
        !          4661: 
        !          4662: Any info on this matter would be appreciated.
        !          4663: Thnaks, Fred Lakin
        !          4664: 
        !          4665: 
        !          4666: From tektronix!ogcvax!metheus!tombl  Sat Aug  6 09:49:57 1983
        !          4667: Received: from UCBVAX.ARPA by ucbkim.ARPA (4.2/4.2)
        !          4668:        id AA21229; Sat, 6 Aug 83 09:49:57 PDT
        !          4669: Received: by UCBVAX.ARPA (3.347/3.35)
        !          4670:        id AA13549; Sat, 6 Aug 83 09:40:11 PDT
        !          4671: Message-Id: <[email protected]>
        !          4672: From: ogcvax!metheus!tombl
        !          4673: To: ogcvax!tektronix!ucbvax!franz-friends
        !          4674: Cc: ogcvax!tektronix!ucbvax!sklower
        !          4675: Received: from ogcvax.uucp by tektronix ; 5 Aug 83 20:51:03 PDT
        !          4676: Subject: bug in Opus 38.66
        !          4677: Date: Fri Aug  5 20:46:56 1983
        !          4678: Status: O
        !          4679: 
        !          4680: 
        !          4681: A bug present in previous versions is also present in 38.66 of Franz.
        !          4682: cfasl fails (in most cases) to close the file it reads from.
        !          4683: Consequently, mysterious events occur when the maximum number of open
        !          4684: file descriptors is reached.
        !          4685: 
        !          4686: The fix is made in the file ffasl.c. "close(fildes)" should be
        !          4687: prepended to the two return sequences from (the Unix code for)
        !          4688: Lcfasl:
        !          4689: 
        !          4690: ------------------------------------------------------------------
        !          4691: Old:   146c146
        !          4692:        <               {Restorestack(); return(nil);}
        !          4693:        ---
        !          4694: Fixed: >               {close(fildes); Restorestack(); return(nil);}
        !          4695:        149a150
        !          4696:        >       close(fildes);
        !          4697: ------------------------------------------------------------------
        !          4698: 
        !          4699: 
        !          4700:        Tom Blenko
        !          4701:        Metheus Corp.
        !          4702:        ucbvax!tektronix!ogcvax!metheus!tombl
        !          4703:        allegra!ogcvax!metheus!tombl
        !          4704: 
        !          4705: 
        !          4706: 
        !          4707: From FRD@SU-AI  Sun Aug  7 12:34:43 1983
        !          4708: Received: from UCBVAX.ARPA by ucbkim.ARPA (4.2/4.2)
        !          4709:        id AA10610; Fri, 5 Aug 83 15:57:17 PDT
        !          4710: Received: from SU-AI.ARPA by UCBVAX.ARPA (3.347/3.35)
        !          4711:        id AA10357; Fri, 5 Aug 83 15:54:22 PDT
        !          4712: Message-Id: <[email protected]>
        !          4713: Date: 05 Aug 83  1353 PDT
        !          4714: From: Fred Lakin <FRD@SU-AI>
        !          4715: Subject: Franz & SUNs  
        !          4716: To: franz-friends@BERKELEY
        !          4717: Status: O
        !          4718: 
        !          4719: I am interested in connectons between Franz and SUN workstations.
        !          4720: Like how far along is Franz on the SUN?  Is there some package
        !          4721: which allows Franz on a VAX to use a SUN as a display device?
        !          4722: 
        !          4723: Any info on this matter would be appreciated.
        !          4724: Thnaks, Fred Lakin
        !          4725: 
        !          4726: 
        !          4727: From jkf  Mon Aug  8 09:06:49 1983
        !          4728: Received: by ucbkim.ARPA (4.2/4.2)
        !          4729:        id AA06584; Mon, 8 Aug 83 09:06:49 PDT
        !          4730: Date: Mon, 8 Aug 83 09:06:49 PDT
        !          4731: From: jkf (John Foderaro)
        !          4732: Message-Id: <[email protected]>
        !          4733: To: local-lisp
        !          4734: Subject: opus 38.72
        !          4735: Status: O
        !          4736: 
        !          4737:   A bug was fixed in defmacro which caused the &protect option and
        !          4738: displace-macros to interact poorly.
        !          4739: 
        !          4740: 
        !          4741: 
        !          4742: From jkf  Fri Aug 12 22:11:13 1983
        !          4743: Received: by ucbkim.ARPA (4.2/4.2)
        !          4744:        id AA25610; Fri, 12 Aug 83 22:11:13 PDT
        !          4745: Date: Fri, 12 Aug 83 22:11:13 PDT
        !          4746: From: jkf (John Foderaro)
        !          4747: Message-Id: <[email protected]>
        !          4748: To: local-lisp
        !          4749: Subject: opus 38.73
        !          4750: Status: O
        !          4751: 
        !          4752:  'equal' will now compare all types of vectors for equality.
        !          4753: 
        !          4754:  'copy' will now copy all types of vectors.
        !          4755: 
        !          4756:  
        !          4757: 
        !          4758: 
        !          4759: From layer  Mon Aug 15 20:03:53 1983
        !          4760: Received: by ucbkim.ARPA (4.2/4.2)
        !          4761:        id AA03597; Mon, 15 Aug 83 20:03:53 PDT
        !          4762: From: layer (Kevin Layer)
        !          4763: Phone: (415) 652-2405
        !          4764: Date: 15 Aug 1983 2003-PDT (Monday)
        !          4765: Message-Id: <3556.30.429851029@ucbkim>
        !          4766: To: local-lisp
        !          4767: Subject: liszt opus 8.35
        !          4768: Fcc: record
        !          4769: Status: RO
        !          4770: 
        !          4771:   Several things have changed:
        !          4772: 
        !          4773: 1) Bugs in the open coding of vectors have been fixed.
        !          4774: 
        !          4775: 2) Minor re-organization of the compiler source code.
        !          4776: 
        !          4777: 3) The routine to determine whether or not tail merging is
        !          4778:    possible underwent major modification.
        !          4779: 
        !          4780: 4) Lexpr's are compiled differently, or rather the way lexpr args
        !          4781:    are accessed has changed.  For those that want to know, here is
        !          4782:    the nitty gritty:
        !          4783: 
        !          4784:      Consider a the following lexpr: (defun test nargs ...).
        !          4785:      The arguments to the lexpr are stacked on the name stack
        !          4786:      (low to high number), and then nargs is stacked.  The user
        !          4787:      is allowed to change the binding of 'nargs' to anything
        !          4788:      he likes, so we have to have another way to access the arguments
        !          4789:      on the name stack (i.e., other than an offset from nargs).
        !          4790:      Before, a pointer to the argument base was pushed on the 
        !          4791:      C stack, so that indexing could be done from there.
        !          4792:      The addressing modes used to do this are not available
        !          4793:      on the MC68000 (something like *n(fp)[Rx]), so now
        !          4794:      nargs is pushed on the name stack twice, and the location
        !          4795:      of an argument can be easily calculated as an offset from nargs.
        !          4796: 
        !          4797: In short, lots of thing changed.  The SUN's should be updated
        !          4798: in the next couple of days (after I test it out).  Bugs to me...
        !          4799: 
        !          4800:        Kevin
        !          4801: 
        !          4802: From jkf  Mon Aug 15 23:11:08 1983
        !          4803: Received: by ucbkim.ARPA (4.2/4.2)
        !          4804:        id AA05928; Mon, 15 Aug 83 23:11:08 PDT
        !          4805: Date: Mon, 15 Aug 83 23:11:08 PDT
        !          4806: From: jkf (John Foderaro)
        !          4807: Message-Id: <[email protected]>
        !          4808: To: local-lisp
        !          4809: Subject:  opus 38.74
        !          4810: Status: O
        !          4811: 
        !          4812: 
        !          4813:   If a vector has a 'unique' property on it's property list, then it will
        !          4814: not be copied by 'copy'.
        !          4815: 
        !          4816:   'untrace' will now autoload /usr/lib/lisp/trace.
        !          4817: 
        !          4818:   A number of functions and macros were contributed by the bair group:
        !          4819: 
        !          4820:  
        !          4821: 
        !          4822: 
        !          4823: 
        !          4824: 
        !          4825: 
        !          4826: 
        !          4827: (<= 'fx_arg1 'fx_arg2 ...)
        !          4828: (<=& 'x_arg1 'x_arg2)
        !          4829: 
        !          4830:      RETURNS: t iff (> 'fx_arg1 'fx_arg2)  [or  (>&  'x_arg1
        !          4831:               'x_arg2)]  is nil, otherwise nil.  The general
        !          4832:               function, <=, can take  more  than  two  argu-
        !          4833:               ments.
        !          4834: 
        !          4835: (>= 'fx_arg1 'fx_arg2)
        !          4836: (>=& 'x_arg1 'x_arg2)
        !          4837: 
        !          4838:      RETURNS: t  iff  (<  'fx_arg1  'fx_arg2  ...)  [or  (<&
        !          4839:               'x_arg1 'x_arg2)] is nil, otherwise nil.
        !          4840: 
        !          4841:      NOTE: The general function, >=, can take more than  two
        !          4842:            arguments.
        !          4843: 
        !          4844: (litatom 'g_arg)
        !          4845: 
        !          4846:      RETURNS: t iff g_arg is an atom, but not a number.
        !          4847: 
        !          4848: (nequal 'g_x 'g_y)
        !          4849: 
        !          4850:      RETURNS: t iff g_x is not equal to g_y, otherwise nil.
        !          4851: 
        !          4852: (lineread [['p_port] ['s_flag]])
        !          4853: 
        !          4854:      RETURNS: a list consisting of s-expressions on  a  line
        !          4855:               from  the  port p_port (or piport if p_port is
        !          4856:               not given).  If an s-expression (e.g., a list)
        !          4857:               takes more than one line, or a line terminates
        !          4858:               in a space or  tab,  then  lineread  continues
        !          4859:               reading until an expression ends at the end of
        !          4860:               a line.
        !          4861: 
        !          4862:      NOTE: If s_flag is t, then if the first character on  a
        !          4863:            line  is  a  newline, lineread performs a tyi and
        !          4864:            returns nil.  If s_flag is nil  or  not  present,
        !          4865:            lineread  does  a  read  skipping  over any blank
        !          4866:            lines to make sure that an s-expression is  actu-
        !          4867:            ally read.
        !          4868: 
        !          4869:      SIDE EFFECT: lineread uses  read,  advancing  the  port
        !          4870:                   character pointer.
        !          4871: 
        !          4872: 
        !          4873: 
        !          4874: 
        !          4875: 
        !          4876: 
        !          4877: 
        !          4878: 
        !          4879: 9
        !          4880: 
        !          4881: 9
        !          4882: 
        !          4883: 
        !          4884: 
        !          4885: 
        !          4886: 
        !          4887: 
        !          4888: 
        !          4889: 
        !          4890: 
        !          4891: 
        !          4892: (defv g_arg1 g_arg2)
        !          4893: 
        !          4894:      EQUIVALENT TO: (set g_arg1 g_arg2)
        !          4895: 
        !          4896: (pp-form 'g_form ['p_port] ['n_lmar])
        !          4897: 
        !          4898:      RETURNS: nil
        !          4899: 
        !          4900:      SIDE EFFECT: g_form  is  pretty-printed  to  the   port
        !          4901:                   p_port (or poport if p_port is not given).
        !          4902:                   If  pp-form  is  also  supplied  with   an
        !          4903:                   integer  (n_lmar),  that  integer  will be
        !          4904:                   used as a left margin setting  (0  is  the
        !          4905:                   default).   This is the  function which pp
        !          4906:                   uses (n_lmar = 0). pp-form does  not  look
        !          4907:                   for  function  definitions  or  values  of
        !          4908:                   variables, it just prints out the form  it
        !          4909:                   is given.
        !          4910: 
        !          4911:      NOTE: This is useful as a top-level-printer, c.f.  top-
        !          4912:            level in Chapter 6.
        !          4913: 
        !          4914: (sload 's_file1 ...)
        !          4915: 
        !          4916:      SIDE EFFECT: The files named are opened for reading and
        !          4917:                   each form is read, optionally printed, and
        !          4918:                   evaluated.
        !          4919: 
        !          4920:      NOTE: What sload prints is controlled  by  the  special
        !          4921:            atom  $sldprint.   If  $sldprint  is t (default),
        !          4922:            then if a form  is  recognizable  as  a  function
        !          4923:            definition,  only  the  function name is printed,
        !          4924:            otherwise  the  whole  form   is   printed.    If
        !          4925:            $sldprint is eq to value, then the result of each
        !          4926:            form's evaluation will also be printed.  Printing
        !          4927:            the  forms'  values  can be controlled by setting
        !          4928:            sload-print equal to the name of the function  to
        !          4929:            be  called.   sload recognizes named functions by
        !          4930:            looking at  the  sloadprintarg  property  of  the
        !          4931:            function  name.   The  value of the sloadprintarg
        !          4932:            property should be the  argument  number  of  the
        !          4933:            function name.  For the standard Franz Lisp func-
        !          4934:            tions, the properties are already set.
        !          4935: 
        !          4936:      EXAMPLE: (defprop def 1 sloadprintarg)   ; This is  the
        !          4937:               default--declaring that
        !          4938:                                               ; the name  of
        !          4939:               the function definition is the
        !          4940:                                               ; first  argu-
        !          4941:               ment.
        !          4942: 
        !          4943: 
        !          4944: 9
        !          4945: 
        !          4946: 9
        !          4947: 
        !          4948: 
        !          4949: 
        !          4950: 
        !          4951: 
        !          4952: 
        !          4953: 
        !          4954: 
        !          4955: 
        !          4956: 
        !          4957:           The functions described below are  an  alternative
        !          4958:      to  the  gensym facility.  They generate new symbols by
        !          4959:      attaching counter numbers to the ends of  the  symbols'
        !          4960:      names.   An  example  follows  of how the functions are
        !          4961:      used.
        !          4962: 
        !          4963: 
        !          4964:     ____________________________________________________
        !          4965: 
        !          4966:     -> (initsym joe (john 5))       ; initializing new symbol counters
        !          4967:     (joe0 john5)
        !          4968:     -> (newsym john)                ; create a new symbol
        !          4969:     john6
        !          4970:     -> (newsym chuck)               ; symbol need not be initsym'ed
        !          4971:     chuck0
        !          4972:     -> (oldsym john)                ; get current symbol
        !          4973:     john6
        !          4974:     -> (allsym john)                ; get all symbols between 0 and counter
        !          4975:     (john0 john1 john2 john3 john4 john5 john6)
        !          4976:     -> (allsym (john 5))            ; get all symbols between 5 and counter
        !          4977:     (john5 john6)
        !          4978:     -> (remsym joe (john 4))        ; remob all interned symbols
        !          4979:                                     ; associated with joe and from
        !          4980:                                     ; john4 to the current john
        !          4981:                                     ; symbol--returns symbols with symbol counters
        !          4982:                                     ; before doing remsym
        !          4983:     (joe0 john6)
        !          4984:     -> (symstat joe john)
        !          4985:     ((joe nil) (john 3))
        !          4986:     ____________________________________________________
        !          4987: 
        !          4988: 
        !          4989: 
        !          4990: 
        !          4991: (initsym g_arg1 ...)
        !          4992: 
        !          4993:      WHERE:   g_argi is a  list  (n_counteri  s_argi)  or  a
        !          4994:               string  s_argi  (which  is  equivalent  to  (0
        !          4995:               s_argi)).
        !          4996: 
        !          4997:      RETURNS: a list of interned identifiers using the  sym-
        !          4998:               bol  counters  n_counteri, i.e., the result of
        !          4999:               concatenating s_argi to n_counteri.
        !          5000: 
        !          5001:      EXAMPLE: (initsym joe (john 5)) ==> (joe0 john5)
        !          5002: 
        !          5003:      NOTE: See also newsym, oldsym, allsym, remsym, and sym-
        !          5004:            stat functions.
        !          5005: 
        !          5006: 
        !          5007: 
        !          5008: 
        !          5009: 9
        !          5010: 
        !          5011: 9
        !          5012: 
        !          5013: 
        !          5014: 
        !          5015: 
        !          5016: 
        !          5017: 
        !          5018: 
        !          5019: 
        !          5020: 
        !          5021: 
        !          5022: (newsym s_arg)
        !          5023: 
        !          5024:      RETURNS: an interned identifier formed by concatenating
        !          5025:               the  name  s_arg  to  the  symbol  counter for
        !          5026:               s_arg.  The symbol counter is  stored  on  the
        !          5027:               property list of s_arg under symctr.  If there
        !          5028:               is no counter, a counter  of  0  is  used  and
        !          5029:               added  to  the  property list.  Thus, a symbol
        !          5030:               need not be initsymed.
        !          5031: 
        !          5032:      EXAMPLE: (initsym joe (john5)) ==> (joe0 john5)
        !          5033:               (newsym john) ==> john6
        !          5034:               (newsym joe) ==> joe1
        !          5035: 
        !          5036:      NOTE: See also initsym,  oldsym,  allsym,  remsym,  and
        !          5037:            symstat functions.
        !          5038: 
        !          5039: (oldsym s_arg)
        !          5040: 
        !          5041:      RETURNS: the  identifier  using  the   current   symbol
        !          5042:               counter  for s_arg, rather than creating a new
        !          5043:               identifier.  If no symbol counter  exists  for
        !          5044:               s_arg, then s_arg is returned.
        !          5045: 
        !          5046:      NOTE: See also initsym,  newsym,  allsym,  remsym,  and
        !          5047:            symstat functions.
        !          5048: 
        !          5049: (allsym g_arg)
        !          5050: 
        !          5051:      WHERE:   g_arg is a list (s_arg n_counter) or a  string
        !          5052:               s_arg (equivalent to (s_arg 0)).
        !          5053: 
        !          5054:      RETURNS: a list of all the created identifiers  between
        !          5055:               n_counter  and  the current symbol counter for
        !          5056:               s_arg.
        !          5057: 
        !          5058:      EXAMPLE: (allsym john) ==> (john0 john1 john2)
        !          5059: 
        !          5060:      NOTE: See also initsym,  newsym,  oldsym,  remsym,  and
        !          5061:            symstat functions.
        !          5062: 
        !          5063: (remsym g_arg1 ...)
        !          5064: 
        !          5065:      WHERE:   g_argi is a  list  (s_argi  n_counteri)  or  a
        !          5066:               string  s_argi (which is equivalent to (s_argi
        !          5067:               0)).
        !          5068: 
        !          5069:      RETURNS: a list of symbols s_argi with the current sym-
        !          5070:               bol counters.
        !          5071: 
        !          5072:      SIDE EFFECT: remsym remob's all the created identifiers
        !          5073:                   between   zero   and  the  current  symbol
        !          5074:                   counter for s_argi.
        !          5075: 
        !          5076: 
        !          5077: 
        !          5078: 
        !          5079: 
        !          5080: 
        !          5081: 
        !          5082: 
        !          5083: 
        !          5084: 
        !          5085: 
        !          5086: 
        !          5087: 
        !          5088:      NOTE: See also initsym, newsym oldsym, allsym, and sym-
        !          5089:            stat functions.
        !          5090: 
        !          5091: (symstat s_arg1 ...)
        !          5092: 
        !          5093:      RETURNS: a list of pairs consisting of (s_argi symctri)
        !          5094:               where   symctri  is  s_argi's  current  symbol
        !          5095:               counter.
        !          5096: 
        !          5097:      NOTE: See also initsym,  newsym,  oldsym,  allsym,  and
        !          5098:            remsym functions.
        !          5099: 
        !          5100: 
        !          5101: 
        !          5102: 
        !          5103: 
        !          5104: 
        !          5105: 
        !          5106: 
        !          5107: 
        !          5108: 
        !          5109: 
        !          5110: 
        !          5111: 
        !          5112: 
        !          5113: 
        !          5114: 
        !          5115: 
        !          5116: 
        !          5117: 
        !          5118: 
        !          5119: 
        !          5120: 
        !          5121: 
        !          5122: 
        !          5123: 
        !          5124: 
        !          5125: 
        !          5126: 
        !          5127: 
        !          5128: 
        !          5129: 
        !          5130: 
        !          5131: 
        !          5132: 
        !          5133: 
        !          5134: 
        !          5135: 
        !          5136: 
        !          5137: 
        !          5138: 
        !          5139: 
        !          5140: 9
        !          5141: 
        !          5142: 9
        !          5143: 
        !          5144: 
        !          5145: 
        !          5146: 
        !          5147: 
        !          5148: 
        !          5149: From jkf  Thu Aug 18 19:25:45 1983
        !          5150: Received: by ucbkim.ARPA (4.2/4.2)
        !          5151:        id AA09885; Thu, 18 Aug 83 19:25:45 PDT
        !          5152: Date: Thu, 18 Aug 83 19:25:45 PDT
        !          5153: From: jkf (John Foderaro)
        !          5154: Message-Id: <[email protected]>
        !          5155: To: local-lisp
        !          5156: Subject: opus 38.75
        !          5157: Status: O
        !          5158: 
        !          5159:   evalhook and funcallhook can now be executed without setting (*rset t)
        !          5160: and (sstatus evalhook t).   Although they can be executed, they won't
        !          5161: have any effect unless and until (*rset t) and (sstatus evalhook t) are
        !          5162: done.
        !          5163:   The reason for this change is that now one can turn off stepping
        !          5164: by (sstatus evalhook nil) and then continue the evaluation with
        !          5165: evalhook and funcallhook.
        !          5166: 
        !          5167:   Those who use the new top-level 'tpl' will notice a few new commands
        !          5168: dealing with stepping when you type '?help'.   These new commands
        !          5169: are ?step, ?soff, and ?sc. Details of the commands are available
        !          5170: using the help mechanism (e.g. '?help step').
        !          5171: 
        !          5172: 
        !          5173: 
        !          5174: 
        !          5175: From jkf  Fri Aug 19 13:54:26 1983
        !          5176: Received: by ucbkim.ARPA (4.2/4.2)
        !          5177:        id AA20017; Fri, 19 Aug 83 13:54:26 PDT
        !          5178: Date: Fri, 19 Aug 83 13:54:26 PDT
        !          5179: From: jkf (John Foderaro)
        !          5180: Message-Id: <[email protected]>
        !          5181: To: local-lisp
        !          5182: Subject: liszt 8.36
        !          5183: Status: O
        !          5184: 
        !          5185:  The compiler will now compile the form
        !          5186:        (*no-macroexpand* <form>)
        !          5187:  in a special way: if <form> is a function call, e.g. (name arg1 ...),
        !          5188:  then any macro properties of 'name' will be ignored for this
        !          5189:  invocation.  This permits one to write macros which attempt
        !          5190:  an optimization, and if that fails, then call the standard
        !          5191:  function.  *no-macroexpand* is not a function that can be called,
        !          5192:  thus forms with *no-macroexpand* are likely to be 'cmacros'.
        !          5193:  Here is an example:
        !          5194: 
        !          5195:    (defcmacro length (x &protect (x))
        !          5196:        `(if (null ,x)
        !          5197:           then 0
        !          5198:         elseif (null (cdr ,x))
        !          5199:          then 1
        !          5200:         else (*no-macroexpand* (length ,x))))
        !          5201: 
        !          5202: 
        !          5203:  [in case you are wondering, the `&protect (x)' means that
        !          5204:   should the actual argument to 'length' be a non atom, defcmacro
        !          5205:   will lambda bind the value, insuring that it is only evaluated
        !          5206:   once]
        !          5207:  
        !          5208:  
        !          5209: 
        !          5210: 
        !          5211: From layer  Wed Aug 24 22:18:34 1983
        !          5212: Received: by ucbkim.ARPA (4.6/4.2)
        !          5213:        id AA12256; Wed, 24 Aug 83 22:18:34 PDT
        !          5214: From: layer (Kevin Layer)
        !          5215: Phone: (415) 652-2405
        !          5216: Date: 24 Aug 1983 2218-PDT (Wednesday)
        !          5217: Message-Id: <12219.30.430636709@ucbkim>
        !          5218: To: local-lisp
        !          5219: Subject: liszt on kim
        !          5220: Status: O
        !          5221: 
        !          5222:   The liszt that I installed on kim yesterday, compiled eq's wrong
        !          5223: in some rare cases.  I installed a new one this evening that fixes
        !          5224: this, but if you compiled any programs with the bad one, you might
        !          5225: consider re-compiling them...
        !          5226: 
        !          5227:        Kevin
        !          5228: 
        !          5229: From fateman  Thu Aug 25 13:58:59 1983
        !          5230: Received: by ucbkim.ARPA (4.6/4.2)
        !          5231:        id AA21033; Thu, 25 Aug 83 13:58:59 PDT
        !          5232: Date: Thu, 25 Aug 83 13:58:59 PDT
        !          5233: From: fateman (Richard Fateman)
        !          5234: Message-Id: <[email protected]>
        !          5235: To: local-lisp
        !          5236: Status: O
        !          5237: 
        !          5238: I have a copy of the latest Common Lisp manual... the Excelsior Edition.
        !          5239: 
        !          5240: From patel@UCLA-LOCUS  Tue Aug 30 21:58:38 1983
        !          5241: Received: from ucbvax.ARPA by ucbkim.ARPA (4.6/4.2)
        !          5242:        id AA29417; Tue, 30 Aug 83 21:58:38 PDT
        !          5243: Received: from ucla-locus (ucla-locus.ARPA) by ucbvax.ARPA (4.8/4.4)
        !          5244:        id AA06203; Tue, 30 Aug 83 21:50:26 PDT
        !          5245: Message-Id: <[email protected]>
        !          5246: Date:           Tue, 30 Aug 83 21:44:13 PDT
        !          5247: From: Dorab Patel <patel@UCLA-LOCUS>
        !          5248: To: franz-friends@BERKELEY
        !          5249: Subject:        bug fix for 'insert' in opus 38.50
        !          5250: Status: O
        !          5251: 
        !          5252: The function 'insert' in Opus 38.50 does not perform as advertised in 
        !          5253: the manual if the last argument is non-nil (i.e. if no duplicates are allowed.
        !          5254: It still insists on putting the duplicate element into the list. The
        !          5255: fix is in /usr/lib/lisp/common2.l. Just change the default setting
        !          5256: of the 'comparefn' to that given below instead of 
        !          5257: (function alphalessp). Here is an excerpt from the modified file.
        !          5258: 
        !          5259: 
        !          5260:   [.....]
        !          5261: (def insert
        !          5262:      (lambda (x l comparefn nodups)
        !          5263:       (cond ((null l) (list x))
        !          5264:             ((atom l)
        !          5265:              (error "an atom, can't be inserted into" l))
        !          5266:             (t (cond
        !          5267:                 ((null comparefn) (setq comparefn 
        !          5268:                                        (function
        !          5269:                                         (lambda (x y) 
        !          5270:                                                 (or (alphalessp x y) 
        !          5271:                                                     (equal x y)))))))
        !          5272:                (prog (l1 n n1 y)
        !          5273:                      (setq l1 l)
        !          5274:                      (setq n (length l))
        !          5275:                 a    (setq n1 (/ (add1 n) 2))
        !          5276:                      (setq y (Cnth l1 n1))
        !          5277:                     [..........]
        !          5278: 
        !          5279: From jkf  Sun Sep  4 09:59:01 1983
        !          5280: Received: by ucbkim.ARPA (4.6/4.2)
        !          5281:        id AA03721; Sun, 4 Sep 83 09:59:01 PDT
        !          5282: Date: Sun, 4 Sep 83 09:59:01 PDT
        !          5283: From: jkf (John Foderaro)
        !          5284: Message-Id: <[email protected]>
        !          5285: To: local-lisp
        !          5286: Subject: opus 38.77
        !          5287: Status: O
        !          5288: 
        !          5289:   The 'error' function used to print its arguments and then call 'err' to
        !          5290: cause the familar 'call to err' error.  The problem with this is that
        !          5291: even if you wrap your compuatation with (errset ... nil), the error message
        !          5292: will still be printed.   In opus 38.77, this problem has been fixed.
        !          5293: 
        !          5294: A new function was added:
        !          5295:        (err-with-message 'st_message ['g_value])
        !          5296:  This causes an error to be signaled with the given message.   The message
        !          5297: will only be printed if an '(errset ... nil)' isn't being executed.
        !          5298: Normally nil is returned from an errset if an error occured.  If you provide
        !          5299: g_value, then it will be returned from the errset.
        !          5300: [Not surprisingly, 'error' now uses 'err-with-message']
        !          5301: 
        !          5302: 
        !          5303: Also, 'error' now takes any number of arguments.  In concatenates them,
        !          5304: separated by spaces, and this is the error message passed to
        !          5305: err-with-message.
        !          5306: 
        !          5307: 
        !          5308: 
        !          5309: 
        !          5310: From narain@rand-unix  Fri Sep  9 13:32:24 1983
        !          5311: Received: from ucbvax.ARPA by ucbkim.ARPA (4.6/4.2)
        !          5312:        id AA16481; Fri, 9 Sep 83 13:32:24 PDT
        !          5313: Received: from rand-unix (rand-unix.ARPA) by ucbvax.ARPA (4.12/4.7)
        !          5314:        id AA11010; Fri, 9 Sep 83 13:31:58 PDT
        !          5315: Message-Id: <[email protected]>
        !          5316: Date: Friday,  9 Sep 1983 10:55-PDT
        !          5317: To: franz-friends@BERKELEY
        !          5318: Cc: narain@rand-unix
        !          5319: Subject: Franzlisp Question
        !          5320: From: narain@rand-unix
        !          5321: Status: O
        !          5322: 
        !          5323: 
        !          5324: Hello all:
        !          5325: 
        !          5326: I would be grateful if you could answer another question regarding Franzlisp.
        !          5327: How does one make Franzlisp continue from an error? For example when Lisp
        !          5328: gives an error message like "x unbound variable", is it possible to
        !          5329: bind x to a value and make Lisp continue from that point? Right now we have
        !          5330: to start over again and it is very time consuming.
        !          5331: 
        !          5332: -- Sanjai
        !          5333: 
        !          5334: From [email protected]  Fri Sep  9 13:46:45 1983
        !          5335: Received: from ucbvax.ARPA by ucbkim.ARPA (4.6/4.2)
        !          5336:        id AA16843; Fri, 9 Sep 83 13:46:45 PDT
        !          5337: Received: from DEC-MARLBORO.ARPA by ucbvax.ARPA (4.12/4.7)
        !          5338:        id AA11248; Fri, 9 Sep 83 13:46:26 PDT
        !          5339: Date: 9 Sep 1983 1427-EDT
        !          5340: From: AUSTIN@DEC-MARLBORO
        !          5341: To: FRANZ-FRIENDS@BERKELEY
        !          5342: Subject: LIST MEMBERSHIP
        !          5343: Message-Id: <"MS10(2124)+GLXLIB1(1136)" 11950297972.20.647.3882 at DEC-MARLBORO>
        !          5344: Status: O
        !          5345: 
        !          5346: PLEASE ADD ME TO FRANZ-FRIENDS@BERKELEY DISTRIBUTION.
        !          5347: 
        !          5348: MY NAME IS TOM AUSTIN AND MY NETWORK ADDRESS IS AUSTIN@DEC-MARLBORO.
        !          5349: 
        !          5350: THANKS!
        !          5351:    --------
        !          5352: 
        !          5353: From jkf  Sat Sep 10 12:34:14 1983
        !          5354: Received: by ucbkim.ARPA (4.6/4.2)
        !          5355:        id AA28421; Sat, 10 Sep 83 12:34:14 PDT
        !          5356: Date: Sat, 10 Sep 83 12:34:14 PDT
        !          5357: From: jkf (John Foderaro)
        !          5358: Message-Id: <[email protected]>
        !          5359: To: local-lisp
        !          5360: Subject: opus 38.78
        !          5361: Status: O
        !          5362: 
        !          5363:  The new functions contributed by the bair group dealing with symbol
        !          5364: creation have been changed from fexprs to exprs (lambdas) and lexprs.
        !          5365: 
        !          5366: The new documentation follows:
        !          5367: 
        !          5368: 
        !          5369: 
        !          5370: 
        !          5371: 
        !          5372: 
        !          5373: 
        !          5374:      The functions described below are an alternative to the
        !          5375: gensym  facility.   They  generate  new symbols by attaching
        !          5376: counter numbers to the ends of the symbols' names.  An exam-
        !          5377: ple follows of how the functions are used.
        !          5378: 
        !          5379: 
        !          5380:     ____________________________________________________
        !          5381: 
        !          5382:     -> (initsym 'joe '(john 5))     ; initializing new symbol counters
        !          5383:     (joe0 john5)
        !          5384:     -> (newsym 'john)               ; create a new symbol
        !          5385:     john6
        !          5386:     -> (newsym 'chuck)              ; symbol need not be initsym'ed
        !          5387:     chuck0
        !          5388:     -> (oldsym 'john)               ; get current symbol
        !          5389:     john6
        !          5390:     -> (allsym 'john)               ; get all symbols between 0 and counter
        !          5391:     (john0 john1 john2 john3 john4 john5 john6)
        !          5392:     -> (allsym '(john 5))           ; get all symbols between 5 and counter
        !          5393:     (john5 john6)
        !          5394:     -> (remsym 'joe '(john 4))      ; remob all interned symbols
        !          5395:                                     ; associated with joe and from
        !          5396:                                     ; john4 to the current john
        !          5397:                                     ; symbol--returns symbols with symbol counters
        !          5398:                                     ; before doing remsym
        !          5399:     (joe0 john6)
        !          5400:     -> (symstat 'joe 'john)
        !          5401:     ((joe nil) (john 3))
        !          5402:     ____________________________________________________
        !          5403: 
        !          5404: 
        !          5405: 
        !          5406: 
        !          5407: (initsym 'g_arg1 ...)
        !          5408: 
        !          5409:      WHERE:   g_argi is a  list  (n_counteri  s_argi)  or  a
        !          5410:               string  s_argi  (which  is  equivalent  to  (0
        !          5411:               s_argi)).
        !          5412: 
        !          5413:      RETURNS: a list of interned identifiers using the  sym-
        !          5414:               bol  counters  n_counteri, i.e., the result of
        !          5415:               concatenating s_argi to n_counteri.
        !          5416: 
        !          5417:      EXAMPLE: (initsym 'joe '(john 5)) ==> (joe0 john5)
        !          5418: 
        !          5419:      NOTE: See also newsym, oldsym, allsym, remsym, and sym-
        !          5420:            stat functions.
        !          5421: 
        !          5422: 
        !          5423: 
        !          5424: 
        !          5425: 
        !          5426: 
        !          5427: 
        !          5428: 
        !          5429: 
        !          5430: 
        !          5431: 
        !          5432: 
        !          5433: 
        !          5434: 
        !          5435: 
        !          5436: 
        !          5437: 
        !          5438: 
        !          5439: 
        !          5440: (newsym 's_arg)
        !          5441: 
        !          5442:      RETURNS: an interned identifier formed by concatenating
        !          5443:               the  name  s_arg  to  the  symbol  counter for
        !          5444:               s_arg.  The symbol counter is  stored  on  the
        !          5445:               property list of s_arg under symctr.  If there
        !          5446:               is no counter, a counter  of  0  is  used  and
        !          5447:               added  to  the  property list.  Thus, a symbol
        !          5448:               need not be initsymed.
        !          5449: 
        !          5450:      EXAMPLE: (initsym 'joe '(john5)) ==> (joe0 john5)
        !          5451:               (newsym 'john) ==> john6
        !          5452:               (newsym 'joe) ==> joe1
        !          5453: 
        !          5454:      NOTE: See also initsym,  oldsym,  allsym,  remsym,  and
        !          5455:            symstat functions.
        !          5456: 
        !          5457: (oldsym 's_arg)
        !          5458: 
        !          5459:      RETURNS: the  identifier  using  the   current   symbol
        !          5460:               counter  for s_arg, rather than creating a new
        !          5461:               identifier.  If no symbol counter  exists  for
        !          5462:               s_arg, then s_arg is returned.
        !          5463: 
        !          5464:      NOTE: See also initsym,  newsym,  allsym,  remsym,  and
        !          5465:            symstat functions.
        !          5466: 
        !          5467: (allsym 'g_arg)
        !          5468: 
        !          5469:      WHERE:   g_arg is a list (s_arg n_counter) or a  string
        !          5470:               s_arg (equivalent to (s_arg 0)).
        !          5471: 
        !          5472:      RETURNS: a list of all the created identifiers  between
        !          5473:               n_counter  and  the current symbol counter for
        !          5474:               s_arg.
        !          5475: 
        !          5476:      EXAMPLE: (allsym 'john) ==> (john0 john1 john2)
        !          5477: 
        !          5478:      NOTE: See also initsym,  newsym,  oldsym,  remsym,  and
        !          5479:            symstat functions.
        !          5480: 
        !          5481: (remsym 'g_arg1 ...)
        !          5482: 
        !          5483:      WHERE:   g_argi is a  list  (s_argi  n_counteri)  or  a
        !          5484:               string  s_argi (which is equivalent to (s_argi
        !          5485:               0)).
        !          5486: 
        !          5487:      RETURNS: a list of symbols s_argi with the current sym-
        !          5488:               bol counters.
        !          5489: 
        !          5490:      SIDE EFFECT: remsym remob's all the created identifiers
        !          5491:                   between   zero   and  the  current  symbol
        !          5492:                   counter for s_argi.
        !          5493: 
        !          5494: 
        !          5495: 
        !          5496: 
        !          5497: 
        !          5498: 
        !          5499: 
        !          5500: 
        !          5501: 
        !          5502: 
        !          5503: 
        !          5504: 
        !          5505: 
        !          5506:      NOTE: See also initsym, newsym oldsym, allsym, and sym-
        !          5507:            stat functions.
        !          5508: 
        !          5509: (symstat 's_arg1 ...)
        !          5510: 
        !          5511:      RETURNS: a list of pairs consisting of (s_argi symctri)
        !          5512:               where   symctri  is  s_argi's  current  symbol
        !          5513:               counter.
        !          5514: 
        !          5515:      NOTE: See also initsym,  newsym,  oldsym,  allsym,  and
        !          5516:            remsym functions.
        !          5517: 
        !          5518: 
        !          5519: 
        !          5520: 
        !          5521: 
        !          5522: 
        !          5523: 
        !          5524: 
        !          5525: 
        !          5526: 
        !          5527: 
        !          5528: 
        !          5529: 
        !          5530: 
        !          5531: 
        !          5532: 
        !          5533: 
        !          5534: 
        !          5535: 
        !          5536: 
        !          5537: 
        !          5538: 
        !          5539: 
        !          5540: 
        !          5541: 
        !          5542: 
        !          5543: 
        !          5544: 
        !          5545: 
        !          5546: 
        !          5547: 
        !          5548: 
        !          5549: 
        !          5550: 
        !          5551: 
        !          5552: 
        !          5553: 
        !          5554: 
        !          5555: 
        !          5556: 
        !          5557: 
        !          5558: 
        !          5559: 
        !          5560: 
        !          5561: 
        !          5562: 
        !          5563: 
        !          5564: 
        !          5565: 
        !          5566: 
        !          5567: 
        !          5568: From jkf@ucbkim  Wed Sep 14 08:04:14 1983
        !          5569: Received: from ucbvax.ARPA by ucbkim.ARPA (4.6/4.2)
        !          5570:        id AA14801; Wed, 14 Sep 83 08:04:14 PDT
        !          5571: Received: from ucbkim.ARPA by ucbvax.ARPA (4.12/4.7)
        !          5572:        id AA04212; Wed, 14 Sep 83 08:03:58 PDT
        !          5573: Received: by ucbkim.ARPA (4.6/4.2)
        !          5574:        id AA14786; Wed, 14 Sep 83 08:03:43 PDT
        !          5575: Date: Wed, 14 Sep 83 08:03:43 PDT
        !          5576: From: jkf@ucbkim (John Foderaro)
        !          5577: Message-Id: <[email protected]>
        !          5578: To: franz-friends@BERKELEY
        !          5579: Subject: lisp distribution
        !          5580: Status: O
        !          5581: 
        !          5582:   A number of you have noticed that ftp'ing the lisp distribution from
        !          5583: ucb-vax can be slow at times.    As a result, we've made 'ucb-arpa' the
        !          5584: primary distribution machine.  You can ftp from ucb-arpa using an anonymous
        !          5585: login (with your name as password).   The files are in the pub/lisp
        !          5586: subdirectory.
        !          5587:                                        john foderaro
        !          5588:                                        
        !          5589: 
        !          5590: 
        !          5591: 
        !          5592: From liz%umcp-cs@UDel-Relay  Mon Sep 26 19:41:37 1983
        !          5593: Received: from ucbvax.ARPA by ucbkim.ARPA (4.6/4.2)
        !          5594:        id AA24055; Mon, 26 Sep 83 19:41:37 PDT
        !          5595: Received: from udel-relay.ARPA by ucbvax.ARPA (4.12/4.7)
        !          5596:        id AA07367; Mon, 26 Sep 83 16:28:58 PDT
        !          5597: Message-Id: <[email protected]>
        !          5598: Date:     26 Sep 83 15:22:00 EDT  (Mon)
        !          5599: From: Liz Allen <liz%umcp-cs@UDel-Relay>
        !          5600: Return-Path: <liz%umcp-cs@UDel-Relay>
        !          5601: Subject:  Maryland software distribution
        !          5602: To: franz-friends@BERKELEY
        !          5603: Via:  UMCP-CS; 26 Sep 83 17:46-EDT
        !          5604: Status: O
        !          5605: 
        !          5606: This is to announce the availability of the Univ of Maryland software
        !          5607: distribution.  This includes source code for the following:
        !          5608: 
        !          5609: 1.  The flavors package written in Franz Lisp.  This package has
        !          5610:     been used successfully in a number of large systems at Maryland,
        !          5611:     and while it does not implement all the features of Lisp Machine
        !          5612:     Flavors, the features present are as close to the Lisp Machine
        !          5613:     version as possible within the constraints of Franz Lisp.
        !          5614:     (Note that Maryland flavors code *can* be compiled.)
        !          5615: 2.  Other Maryland Franz hacks including the INTERLISP-like top
        !          5616:     level, the lispbreak error handling package, the for macro and
        !          5617:     the new loader package.
        !          5618: 3.  The YAPS production system written in Franz Lisp.  This is
        !          5619:     similar to OPS5 but more flexible in the kinds of lisp expressions
        !          5620:     that may appear as facts and patterns (sublists are allowed
        !          5621:     and flavor objects are treated atomically), the variety of
        !          5622:     tests that may appear in the left hand sides of rules and the
        !          5623:     kinds of actions may appear in the right hand sides of rules.
        !          5624:     In addition, YAPS allows multiple data bases which are flavor
        !          5625:     objects and may be sent messages such as "fact" and "goal".
        !          5626: 4.  The windows package in the form of a C loadable library.  This
        !          5627:     flexible package allows convenient management of multiple
        !          5628:     contexts on the screen and runs on ordinary character display
        !          5629:     terminals as well as bit-mapped displays.  Included is a Franz
        !          5630:     lisp interface to the window library, a window shell for
        !          5631:     executing shell processes in windows, and a menu package (also
        !          5632:     a C loadable library).
        !          5633: 
        !          5634: You should be aware of the fact that the lisp software is based on
        !          5635: Franz Opus 38.26 and that we will be switching to the newer version
        !          5636: of lisp that comes with Berkeley 4.2 whenever that comes out.
        !          5637: 
        !          5638: ---------------------------------------------------------------------
        !          5639: 
        !          5640: To obtain the Univ of Maryland distribution tape:
        !          5641: 
        !          5642: 1.  Fill in the form below, make a hard copy of it and sign it.
        !          5643: 2.  Make out a check to University of Maryland Foundation for $100,
        !          5644:     mail it and the form to:
        !          5645: 
        !          5646:                Liz Allen
        !          5647:                Univ of Maryland
        !          5648:                Dept of Computer Science
        !          5649:                College Park MD 20742
        !          5650: 
        !          5651: 3.  If you need an invoice, send me mail, and I will get one to you.
        !          5652:     Don't forget to include your US Mail address.
        !          5653: 
        !          5654: Upon receipt of the money, we will mail you a tape containing our
        !          5655: software and the technical reports describing the software.  We
        !          5656: will also keep you informed of bug fixes via electronic mail.
        !          5657: 
        !          5658: ---------------------------------------------------------------------
        !          5659: 
        !          5660: The form to mail to us is:
        !          5661: 
        !          5662: 
        !          5663: In exchange for the Maryland software tape, I certify to the
        !          5664: following:
        !          5665: 
        !          5666: a.  I will not use any of the Maryland software distribution in a
        !          5667:     commercial product without obtaining permission from Maryland
        !          5668:     first.
        !          5669: b.  I will keep the Maryland copyright notices in the source code,
        !          5670:     and acknowledge the source of the software in any use I make of
        !          5671:     it.
        !          5672: c.  I will not redistribute this software to anyone without permission
        !          5673:     from Maryland first.
        !          5674: d.  I will keep Maryland informed of any bug fixes.
        !          5675: e.  I am the appropriate person at my site who can make guarantees a-d.
        !          5676: 
        !          5677:                                Your signature, name, position,
        !          5678:                                phone number, U.S. and electronic
        !          5679:                                mail addresses.
        !          5680: 
        !          5681: ---------------------------------------------------------------------
        !          5682: 
        !          5683: If you have any questions, etc, send mail to me:
        !          5684: 
        !          5685:                                -Liz Allen, U of Maryland, College Park MD
        !          5686:                                 Usenet:   ...!seismo!umcp-cs!liz
        !          5687:                                 Arpanet:  liz%umcp-cs@Udel-Relay
        !          5688: 
        !          5689: 
        !          5690: From fateman  Thu Sep 29 14:50:17 1983
        !          5691: Received: by ucbkim.ARPA (4.6/4.2)
        !          5692:        id AA10806; Thu, 29 Sep 83 14:50:17 PDT
        !          5693: Date: Thu, 29 Sep 83 14:50:17 PDT
        !          5694: From: fateman (Richard Fateman)
        !          5695: Message-Id: <[email protected]>
        !          5696: To: franz-friends
        !          5697: Subject: survey
        !          5698: Cc: fateman
        !          5699: Status: O
        !          5700: 
        !          5701: I am trying to collect some statistics on usage of Franz.
        !          5702: I would like to get answers to these questions:
        !          5703: (1) Your location:
        !          5704: (2) The number of computers at your location (actively) running Franz:
        !          5705: (3) Have you produced a locally modified manual? (y/n)
        !          5706: (4) Are other Lisps in use there? (names?)
        !          5707: (5) Do you use Franz for instruction? research?
        !          5708: (6) Are you distributing or selling packages "on top of" Franz?
        !          5709: 
        !          5710: (You may also send comments you wish; I will compile results and
        !          5711: redistribute, so please do not respond to "franz-friends", but to me.)
        !          5712: Thanks.
        !          5713: 
        !          5714: From jkf  Thu Sep 29 23:04:29 1983
        !          5715: Received: by ucbkim.ARPA (4.6/4.2)
        !          5716:        id AA04355; Thu, 29 Sep 83 23:04:29 PDT
        !          5717: Date: Thu, 29 Sep 83 23:04:29 PDT
        !          5718: From: jkf (John Foderaro)
        !          5719: Message-Id: <[email protected]>
        !          5720: To: local-lisp
        !          5721: Subject: opus 38.80
        !          5722: Status: O
        !          5723: 
        !          5724:   Two new functions:
        !          5725: 
        !          5726:     (character-index 'st_string 'xst_char)
        !          5727: 
        !          5728:     returns the position of the character xst_char in the string
        !          5729:     st_string.  The position of the first character is '1'
        !          5730:     (1-based indexing was chosen because substring also uses
        !          5731:      1-based indexing).
        !          5732:     If the character is not in the string, nil is returned.
        !          5733: 
        !          5734:      xst_char, as its prefix implies, can either be the fixnum
        !          5735:      value of a character (commonly written #/x), or a symbol
        !          5736:      or string, in which case the first character is used.
        !          5737: 
        !          5738: 
        !          5739:   (sleep 'x_seconds)
        !          5740:     sleep for x_seconds.
        !          5741: 
        !          5742:   
        !          5743: 
        !          5744: 
        !          5745: From jkf  Sat Oct  1 21:42:29 1983
        !          5746: Received: by ucbkim.ARPA (4.6/4.2)
        !          5747:        id AA16280; Sat, 1 Oct 83 21:42:29 PDT
        !          5748: Date: Sat, 1 Oct 83 21:42:29 PDT
        !          5749: From: jkf (John Foderaro)
        !          5750: Message-Id: <[email protected]>
        !          5751: To: local-lisp
        !          5752: Subject: opus 38.81
        !          5753: Status: O
        !          5754: 
        !          5755:  new function  (sys:nice 'x_delta-priority)
        !          5756: this increments your nice value (decrements your process priority)
        !          5757: by x_delta-priority.    x_delta-priority can only be negative
        !          5758: if you are root, of course.
        !          5759: 
        !          5760: 
        !          5761: 
        !          5762: 
        !          5763: From unmvax!gatech!pwh  Tue Oct  4 08:35:04 1983
        !          5764: Received: from ucbvax.ARPA by ucbkim.ARPA (4.6/4.2)
        !          5765:        id AA23488; Tue, 4 Oct 83 08:35:04 PDT
        !          5766: Received: by ucbvax.ARPA (4.12/4.7)
        !          5767:        id AA07616; Tue, 4 Oct 83 08:05:43 PDT
        !          5768: From: unmvax!gatech!pwh
        !          5769: Message-Id: <[email protected]>
        !          5770: Date:     1 Oct 83 19:44:56-EDT (Sat)
        !          5771: Original-From:      <pwh@gatech>
        !          5772: To: franz-friends@BERKELEY
        !          5773: Subject:  why a HOLE (duck) ?
        !          5774: Status: RO
        !          5775: 
        !          5776: 
        !          5777: Could someone explain to me what HOLE is all about in the vax dependent 
        !          5778: Franz code? I've scrutinized the code and read the preliminary Franz 
        !          5779: implementation manual too many times and still can't figure it...
        !          5780: 
        !          5781: phil hutto
        !          5782: 
        !          5783: 
        !          5784: 
        !          5785: 
        !          5786: From mbr@nprdc  Sat Oct  8 15:59:38 1983
        !          5787: Received: from ucbvax.ARPA by ucbkim.ARPA (4.6/4.2)
        !          5788:        id AA08262; Sat, 8 Oct 83 15:59:38 PDT
        !          5789: Received: from nprdc (nprdc.ARPA) by ucbvax.ARPA (4.12/4.7)
        !          5790:        id AA23633; Sat, 8 Oct 83 15:58:02 PDT
        !          5791: Message-Id: <[email protected]>
        !          5792: Date: 8 Oct 1983 15:52:17-PDT
        !          5793: From: Mark Rosenstein <mbr@NPRDC>
        !          5794: Reply-To: mbr@NPRDC
        !          5795: To: franz-friends@BERKELEY
        !          5796: Subject: bugs in liszt 8.36
        !          5797: Status: RO
        !          5798: 
        !          5799: Problem:
        !          5800:    -I flag doesn't work
        !          5801: Solution??
        !          5802:    in file tlev.l change 'i to 'I in line 127
        !          5803:    (notice that -i flag includes files and it is imposible to get
        !          5804:     into uci mode)
        !          5805: 
        !          5806: Problem:
        !          5807:    while compiling get message:
        !          5808:      Undefined function called from compiled code   e-sub2
        !          5809: Solution??
        !          5810:    in file tlev.l change e-sub2 to e-sub in line 298
        !          5811:    (I don't swear by this solution--my stuff seems to compile ok
        !          5812:     but no promises)
        !          5813: 
        !          5814: From jkf  Wed Oct 12 06:11:15 1983
        !          5815: Received: by ucbkim.ARPA (4.6/4.2)
        !          5816:        id AA29652; Wed, 12 Oct 83 06:11:15 PDT
        !          5817: Date: Wed, 12 Oct 83 06:11:15 PDT
        !          5818: From: John Foderaro (on an h19-u) <jkf>
        !          5819: Message-Id: <[email protected]>
        !          5820: To: local-lisp
        !          5821: Subject: New AI language in the works
        !          5822: Cc: 
        !          5823: Status: RO
        !          5824: 
        !          5825: 
        !          5826: From: Skef Wholey <[email protected]>
        !          5827: 
        !          5828: >From an article "Computing Women" in a shoddy little pseudo-magazine
        !          5829: called "Ampersand" that was stuck inside CMU's student newspaper this
        !          5830: week:
        !          5831: 
        !          5832:        Our final tip involves a different kind of research.  Is a
        !          5833:        breakthough in computing happening right on your own
        !          5834:        campus?  MIT and Carnegie-Mellon University, for example,
        !          5835:        are busy developing a brainchild called Lisp.  If
        !          5836:        successful, Lisp may become the standard language of
        !          5837:        ``artificially intelligent'' computers that ``think''
        !          5838:        within a limited sphere on their own.  Imagine your
        !          5839:        marketability if you've worked with a poineer in this
        !          5840:        field.  Skip a football game some Saturday afternoon and
        !          5841:        see what the Prof is doing with HIS spare time.  It could
        !          5842:        be profitable to you.
        !          5843: 
        !          5844: 
        !          5845: 
        !          5846: 
        !          5847: 
        !          5848: From @MIT-MC:apm@cmu-ri-isl1  Fri Oct 14 09:27:56 1983
        !          5849: Received: from ucbvax.ARPA by ucbkim.ARPA (4.6/4.2)
        !          5850:        id AA14501; Fri, 14 Oct 83 09:27:56 PDT
        !          5851: Received: from MIT-MC (mit-mc.ARPA) by ucbvax.ARPA (4.12/4.7)
        !          5852:        id AA00195; Fri, 14 Oct 83 09:26:15 PDT
        !          5853: Message-Id: <[email protected]>
        !          5854: Date: 14 Oct 1983 12:22:28-EDT
        !          5855: From: Andrew.Mendler@CMU-RI-ISL1
        !          5856: Subject: eunice version of franz
        !          5857: Apparently-To: <franz-friends@UCB-VAX>
        !          5858: Status: RO
        !          5859: 
        !          5860: What is the most recent version of franz lisp that is available under eunice?
        !          5861: In particular is opus38.55 available?
        !          5862: 
        !          5863: Thanks in advance.
        !          5864: 
        !          5865: 
        !          5866: From sklower  Fri Oct 14 09:45:15 1983
        !          5867: Received: by ucbkim.ARPA (4.6/4.2)
        !          5868:        id AA14694; Fri, 14 Oct 83 09:45:15 PDT
        !          5869: Date: Fri, 14 Oct 83 09:45:15 PDT
        !          5870: From: sklower (Keith Sklower)
        !          5871: Message-Id: <[email protected]>
        !          5872: To: franz-friends
        !          5873: Subject: eunice version of franz
        !          5874: Status: RO
        !          5875: 
        !          5876: We have opus38.79 working on David Kashtan's machine.  The source
        !          5877: is integrated with the vax-unix and 68000 versions, all available
        !          5878: by anonymous ftp, or as the regular tape distribution.  I have had
        !          5879: one report from a eunice user that the installation didn't get past
        !          5880: construction the kernel, but it could be due to insufficient quota.
        !          5881: 
        !          5882: From jkf  Sun Oct 16 16:39:35 1983
        !          5883: Received: by ucbkim.ARPA (4.6/4.2)
        !          5884:        id AA03935; Sun, 16 Oct 83 16:39:35 PDT
        !          5885: Date: Sun, 16 Oct 83 16:39:35 PDT
        !          5886: From: John Foderaro (on an aaa-60-s) <jkf>
        !          5887: Message-Id: <[email protected]>
        !          5888: To: local-lisp
        !          5889: Subject: opus 38.82
        !          5890: Cc: 
        !          5891: Status: RO
        !          5892: 
        !          5893:   I'm working on a simple record (destruct-like) package. Consequently,
        !          5894: I've made 'defrecord' autoload my record package.  This will cause
        !          5895: problems if there are people who use the name 'defrecord' as a
        !          5896: non-macro function.   If this will cause you problems, please speak up.
        !          5897: 
        !          5898: 
        !          5899: 
        !          5900: From procter@UCBMIRO  Mon Oct 17 08:59:02 1983
        !          5901: Received: from UCBMIRO.ARPA by ucbkim.ARPA (4.6/4.2)
        !          5902:        id AA01206; Mon, 17 Oct 83 08:59:02 PDT
        !          5903: Date: 16 Oct 83 22:56:00 PDT (Sun)
        !          5904: From: procter@UCBMIRO (Steve Procter)
        !          5905: Subject: cfasl
        !          5906: Message-Id: <[email protected]>
        !          5907: Received: by UCBMIRO.ARPA (3.340/3.29)
        !          5908:        id AA01323; 16 Oct 83 22:56:00 PDT (Sun)
        !          5909: To: local-lisp@ucbkim
        !          5910: Status: O
        !          5911: 
        !          5912:        How are arguements passed from lisp to the C routines?
        !          5913: I wrote a program which just printed the arguements passed to it, 
        !          5914: and when I cfasl'd it and used it, I got argc > 500000...
        !          5915: 
        !          5916:                                                steve procter
        !          5917:                                                procter@ucbmiro
        !          5918: 
        !          5919: From jkf  Mon Oct 17 10:08:37 1983
        !          5920: Received: by ucbkim.ARPA (4.6/4.2)
        !          5921:        id AA02418; Mon, 17 Oct 83 10:08:37 PDT
        !          5922: Date: Mon, 17 Oct 83 10:08:37 PDT
        !          5923: From: John Foderaro (on an h19-u) <jkf>
        !          5924: Message-Id: <[email protected]>
        !          5925: To: procter@UCBMIRO
        !          5926: Subject: Re: cfasl
        !          5927: Cc: local-lisp
        !          5928: In-Reply-To: Your message of 16 Oct 83 22:56:00 PDT (Sun)
        !          5929: Status: O
        !          5930: 
        !          5931:   Arguments are passed to C functions in the normal C way (on the stack
        !          5932: not as strings on the command line).   There are examples in the
        !          5933: lisp manual (in the section on foreign functions).
        !          5934: 
        !          5935: 
        !          5936: 
        !          5937: From whm.Arizona@Rand-Relay  Fri Oct 28 05:44:39 1983
        !          5938: Received: from ucbvax.ARPA by ucbkim.ARPA (4.16/4.2)
        !          5939:        id AA20395; Fri, 28 Oct 83 05:44:39 pdt
        !          5940: Received: from rand-relay.ARPA by ucbvax.ARPA (4.16/4.13)
        !          5941:        id AA14289; Fri, 28 Oct 83 05:43:48 pdt
        !          5942: Message-Id: <[email protected]>
        !          5943: Date: 28 Oct 1983 01:12:45-PST
        !          5944: From: whm.arizona@Rand-Relay
        !          5945: Return-Path: <whm.Arizona@Rand-Relay>
        !          5946: Subject:  Memory management in Franz
        !          5947: Date-Sent: 28 Oct 83 01:12:42 MST  (Fri)
        !          5948: To: franz-friends@BERKELEY
        !          5949: Via:  Arizona; 28 Oct 83 2:37-PDT
        !          5950: Status: O
        !          5951: 
        !          5952: I've got a couple of questions about Franz Lisp storage management that
        !          5953: I wondering if somebody "in the know" might be able to answer.  I tried
        !          5954: this on net.lang.lisp, but didn't get any answers.
        !          5955: 
        !          5956: First, Franz seems to support non-relocatable data objects such as
        !          5957: external functions.  Are such objects managed by having two logical
        !          5958: regions in managed memory, one for relocatable objects and one for
        !          5959: non-relocatable objects?  Such a scheme has been used in other systems
        !          5960: that require garbage collection and I was wondering if Franz uses
        !          5961: this or some other scheme.
        !          5962: 
        !          5963: Second, I've heard (but not tried) that Franz allows non-relocatable
        !          5964: data to be allocated via brk/sbrk.  Is this true?
        !          5965: 
        !          5966: (Actually, I suppose I'd like information on any storage management
        !          5967: implementations for any languages (w/ automatic storage management)
        !          5968: that allow non-relocatable data to be dynamically allocated that don't
        !          5969: use the aforementioned scheme.)
        !          5970: 
        !          5971:                                        Thanks,
        !          5972:                                        Bill Mitchell
        !          5973:                                        whm.arizona@rand-relay
        !          5974: p.s.
        !          5975: I'm not on the Franz-Friends list, so if you would, please mail me
        !          5976: any replies.
        !          5977: 
        !          5978: From whm.Arizona@Rand-Relay  Mon Oct 31 04:55:33 1983
        !          5979: Received: from ucbvax.ARPA by ucbkim.ARPA (4.16/4.2)
        !          5980:        id AA29912; Mon, 31 Oct 83 04:55:33 pst
        !          5981: Received: from rand-relay.ARPA by ucbvax.ARPA (4.16/4.13)
        !          5982:        id AA08771; Mon, 31 Oct 83 04:54:49 pst
        !          5983: Message-Id: <[email protected]>
        !          5984: Date: 31 Oct 1983 00:41:38-PST
        !          5985: From: whm.arizona@Rand-Relay
        !          5986: Return-Path: <whm.Arizona@Rand-Relay>
        !          5987: Subject:  Memory management in Franz
        !          5988: Date-Sent: 31 Oct 83 00:41:36 MST  (Mon)
        !          5989: To: franz-friends@BERKELEY
        !          5990: Via:  Arizona; 31 Oct 83 1:36-PST
        !          5991: Status: O
        !          5992: 
        !          5993: [My apologies if this is a repeat; I got some very wierd messages back
        !          5994: from the Berkeley mailer on my first attempt to send this.]
        !          5995: 
        !          5996: I've got a couple of questions about Franz Lisp storage management that
        !          5997: I wondering if somebody "in the know" might be able to answer.  I tried
        !          5998: this on net.lang.lisp, but didn't get any answers.
        !          5999: 
        !          6000: First, Franz seems to support non-relocatable data objects such as
        !          6001: external functions.  Are such objects managed by having two logical
        !          6002: regions in managed memory, one for relocatable objects and one for
        !          6003: non-relocatable objects?  Such a scheme has been used in other systems
        !          6004: that require garbage collection and I was wondering if Franz uses
        !          6005: this or some other scheme.
        !          6006: 
        !          6007: Second, I've heard (but not tried) that Franz allows non-relocatable
        !          6008: data to be allocated via brk/sbrk.  Is this true?
        !          6009: 
        !          6010: (Actually, I suppose I'd like information on any storage management
        !          6011: implementations for any languages (w/ automatic storage management)
        !          6012: that allow non-relocatable data to be dynamically allocated that don't
        !          6013: use the aforementioned scheme.)
        !          6014: 
        !          6015:                                        Thanks,
        !          6016:                                        Bill Mitchell
        !          6017:                                        whm.arizona@rand-relay
        !          6018: p.s.
        !          6019: I'm not on the Franz-Friends list, so if you would, please mail me
        !          6020: any replies.
        !          6021: 
        !          6022: From pjt@brl-voc  Tue Nov  1 06:52:11 1983
        !          6023: Received: from ucbvax.ARPA by ucbkim.ARPA (4.16/4.13)
        !          6024:        id AA03145; Tue, 1 Nov 83 06:52:11 pst
        !          6025: Received: from BRL-VOC (brl-voc.ARPA) by ucbvax.ARPA (4.16/4.13)
        !          6026:        id AA01150; Tue, 1 Nov 83 06:51:14 pst
        !          6027: Message-Id: <[email protected]>
        !          6028: Date:     Tue, 1 Nov 83 9:44:54 EST
        !          6029: From: Paul Tanenbaum <pjt@brl-voc>
        !          6030: To: Ailist-requests@sri-ai, Franz-Friends@BERKELEY
        !          6031: Cc: pjt@brl-voc
        !          6032: Subject:  mailing list
        !          6033: Status: O
        !          6034: 
        !          6035: Please cons me onto your mailing list
        !          6036:      Thanks,
        !          6037:      paul   <pjt@brl-voc>
        !          6038: 
        !          6039: 
        !          6040: From norvig  Fri Nov  4 14:14:16 1983
        !          6041: Received: by ucbkim.ARPA (4.16/4.13)
        !          6042:        id AA20986; Fri, 4 Nov 83 14:14:16 pst
        !          6043: Date: Fri, 4 Nov 83 14:14:16 pst
        !          6044: From: norvig (Peter Norvig)
        !          6045: Message-Id: <[email protected]>
        !          6046: To: mills@ernie
        !          6047: Subject: Graphics on Suns
        !          6048: Cc: local-lisp
        !          6049: Status: O
        !          6050: 
        !          6051: I want a lisp-callable package to display trees and graphs on the suns.
        !          6052: This is for showing semantic nets, and it would also be useful for showing
        !          6053: how procedures call each other, like Interlisp's masterscope. Does anyone
        !          6054: know of such a package?
        !          6055: 
        !          6056: From kanderso@bbn-vax  Fri Nov  4 19:55:59 1983
        !          6057: Received: from ucbvax.ARPA by ucbkim.ARPA (4.16/4.13)
        !          6058:        id AA26540; Fri, 4 Nov 83 19:55:59 pst
        !          6059: Received: from bbn-vax (bbn-vax.ARPA) by ucbvax.ARPA (4.16/4.13)
        !          6060:        id AA03738; Fri, 4 Nov 83 19:55:52 pst
        !          6061: Message-Id: <[email protected]>
        !          6062: Date: Fri, 4 Nov 83 22:55 EST
        !          6063: From: Ken Anderson <kanderso@BBN-Vax>
        !          6064: Subject: Why no &keywords in local functions?
        !          6065: To: franz-friends@BERKELEY
        !          6066: Status: O
        !          6067: 
        !          6068: With liszt version 8.29 (Opus 38.66 of Franz) I get the following message:
        !          6069: 
        !          6070: ?Error: save.l: save-install: local functions can't use &keyword's save-install
        !          6071: 
        !          6072: When compiling the function (declared as a localf):
        !          6073: 
        !          6074: (defun save-install (thing table &aux type handler)
        !          6075:     ; Install thing in hash table, and recursively install its parts.
        !          6076:     (cond ((memq (setq type (save-type thing))
        !          6077:                 '(symbol number)))     ; Needn't install
        !          6078:          (t (cond ((zerop (save-count++ thing))
        !          6079:                    ; Increment access count, and install parts of thing if it
        !          6080:                    ; is being installe
        !          6081:                    (cond ((setq handler (get type 'save-install-parts))
        !          6082:                           (funcall handler thing table))
        !          6083:                          (t (ferror "Don't Know how to save ~S~%" thing))))))))
        !          6084: 
        !          6085: This used to work in earlier Opuses (like 38.44).  Can you explain the
        !          6086: change.
        !          6087: 
        !          6088: From norvig  Tue Nov  8 01:51:03 1983
        !          6089: Received: by ucbkim.ARPA (4.16/4.13)
        !          6090:        id AA20986; Fri, 4 Nov 83 14:14:16 pst
        !          6091: Date: Fri, 4 Nov 83 14:14:16 pst
        !          6092: From: norvig (Peter Norvig)
        !          6093: Message-Id: <[email protected]>
        !          6094: To: mills@ernie
        !          6095: Subject: Graphics on Suns
        !          6096: Cc: local-lisp
        !          6097: Status: O
        !          6098: 
        !          6099: I want a lisp-callable package to display trees and graphs on the suns.
        !          6100: This is for showing semantic nets, and it would also be useful for showing
        !          6101: how procedures call each other, like Interlisp's masterscope. Does anyone
        !          6102: know of such a package?
        !          6103: 
        !          6104: From norvig  Tue Nov  8 02:03:27 1983
        !          6105: Received: by ucbkim.ARPA (4.16/4.13)
        !          6106:        id AA20986; Fri, 4 Nov 83 14:14:16 pst
        !          6107: Date: Fri, 4 Nov 83 14:14:16 pst
        !          6108: From: norvig (Peter Norvig)
        !          6109: Message-Id: <[email protected]>
        !          6110: To: mills@ernie
        !          6111: Subject: Graphics on Suns
        !          6112: Cc: local-lisp
        !          6113: Status: O
        !          6114: 
        !          6115: I want a lisp-callable package to display trees and graphs on the suns.
        !          6116: This is for showing semantic nets, and it would also be useful for showing
        !          6117: how procedures call each other, like Interlisp's masterscope. Does anyone
        !          6118: know of such a package?
        !          6119: 
        !          6120: From sklower  Thu Nov 17 17:03:27 1983
        !          6121: Received: by ucbkim.ARPA (4.16/4.13)
        !          6122:        id AA01897; Thu, 17 Nov 83 17:03:27 pst
        !          6123: Date: Thu, 17 Nov 83 17:03:27 pst
        !          6124: From: sklower (Keith Sklower)
        !          6125: Message-Id: <[email protected]>
        !          6126: To: local-lisp
        !          6127: Subject: lisp sources
        !          6128: Status: O
        !          6129: 
        !          6130: Franz now resides in /usr/franz.
        !          6131: 
        !          6132: From jkf  Tue Nov 22 09:33:32 1983
        !          6133: Received: by ucbkim.ARPA (4.16/4.13)
        !          6134:        id AA15675; Tue, 22 Nov 83 09:33:32 pst
        !          6135: Date: Tue, 22 Nov 83 09:33:32 pst
        !          6136: From: John Foderaro (on an h19-u) <jkf>
        !          6137: Message-Id: <[email protected]>
        !          6138: To: local-lisp
        !          6139: Subject: liszt 8.39
        !          6140: Cc: 
        !          6141: Status: O
        !          6142: 
        !          6143:   The -W switch has been added to liszt.  When specified, if a compilation
        !          6144: causes any warning messages to given (such as a symbol declared special),
        !          6145: then the compiler will not perform the assembly and will return a non-zero
        !          6146: exit status (for 'make's benefit).   Liszt will continue to compile after it
        !          6147: has seen a warning, even if -W is given, to permit as many warnings as
        !          6148: possible to be made in each compile.
        !          6149: 
        !          6150: 
        !          6151: 
        !          6152: 
        !          6153: From barry%umcp-cs@CSNet-Relay  Tue Nov 22 17:14:09 1983
        !          6154: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.16/4.13)
        !          6155:        id AA23508; Tue, 22 Nov 83 17:14:09 pst
        !          6156: Received: from csnet-cic.ARPA by UCB-VAX.ARPA (4.21/4.15)
        !          6157:        id AA06655; Tue, 22 Nov 83 17:13:29 pst
        !          6158: Message-Id: <[email protected]>
        !          6159: Date:     22 Nov 83 12:48:01 EST  (Tue)
        !          6160: From: Barry Perricone <barry%umcp-cs@CSNet-Relay>
        !          6161: Return-Path: <barry%umcp-cs@CSNet-Relay>
        !          6162: Subject:  Franz for VMS
        !          6163: To: franz-friends@BERKELEY
        !          6164: Via:  UMCP-CS; 22 Nov 83 19:25-EST
        !          6165: Status: O
        !          6166: 
        !          6167: 
        !          6168:   I need to know if anybody has a version of Franz for the Vax series
        !          6169: under VMS which includes 'liszt'.  Also one which when a 'dumplisp'
        !          6170: is performed will output a file which can execute as a stand-alone
        !          6171: (i.e., does not need to be "restored").  I would appreciate
        !          6172: any information on this matter, and if one exists information
        !          6173: on how I could obtain a copy of it.
        !          6174: 
        !          6175: Thanks in advance,
        !          6176: Barry P.
        !          6177: 
        !          6178: From alfred.ct@Rand-Relay  Sat Dec  3 22:40:07 1983
        !          6179: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.16/4.13)
        !          6180:        id AA12594; Sat, 3 Dec 83 22:40:07 pst
        !          6181: Received: from rand-relay.ARPA by UCB-VAX.ARPA (4.22/4.16)
        !          6182:        id AA06631; Sat, 3 Dec 83 21:43:27 pst
        !          6183: Message-Id: <[email protected]>
        !          6184: Date: 3 Dec 1983 11:58:11-PST
        !          6185: From: alfred.ct@Rand-Relay
        !          6186: Return-Path: <alfred.ct@Rand-Relay>
        !          6187: Subject: Deficiency in Franz GC
        !          6188: To: franz-friends@BERKELEY
        !          6189: Via:  ct; 3 Dec 83 12:46-PST
        !          6190: Status: RO
        !          6191: 
        !          6192: This really isn't a bug so much as a deficiency
        !          6193: in the code.  We are running Opus 38.26 and recently
        !          6194: had need to increase the constant TTSIZE (in config.h)
        !          6195: above the default 10216.  It turns out that this
        !          6196: breaks the garbage collector which will fail
        !          6197: to completely clear the array bitmapi
        !          6198: if given a TTSIZE greater 10216 (during the
        !          6199: clearing out of bit maps).  The offending code
        !          6200: is in Talloc.c (or alloc.c, depending on your Opus).
        !          6201: The old code is:
        !          6202: 
        !          6203:        /* try the movc5 to clear the bit maps */
        !          6204:        /* the maximum number of bytes we can clear in one sweep is
        !          6205:         * 2^16 (or 1<<16 in the C lingo)
        !          6206:         */
        !          6207:        bytestoclear = ((((int)datalim)-((int)beginsweep)) >> 9) * 16; 
        !          6208:        if(bytestoclear > MAXCLEAR)
        !          6209:        { 
        !          6210:           blzero(((int) &bitmapi[((int)beginsweep>>7)]) + MAXCLEAR, 
        !          6211:                            bytestoclear - MAXCLEAR);
        !          6212:           bytestoclear = MAXCLEAR;
        !          6213:        }
        !          6214:        blzero((int)&bitmapi[((int)beginsweep)>>7],bytestoclear);
        !          6215: 
        !          6216: and the fixed version that we have been running for several weeks
        !          6217: now is:
        !          6218: 
        !          6219:        /* try the movc5 to clear the bit maps */
        !          6220:        /* the maximum number of bytes we can clear in one sweep is
        !          6221:         * 2^16 (or 1<<16 in the C lingo)
        !          6222:         */
        !          6223:        bytestoclear = ((((int)datalim)-((int)beginsweep)) >> 9) * 16;
        !          6224:        {int count = 0; 
        !          6225:        while (bytestoclear > 0) {
        !          6226:            if(bytestoclear > MAXCLEAR)
        !          6227:            { 
        !          6228:                blzero(((int) &bitmapi[((int)beginsweep>>7)])+count*MAXCLEAR, 
        !          6229:                            MAXCLEAR);
        !          6230:                ++count;
        !          6231:            }
        !          6232:            else
        !          6233:                blzero(((int)&bitmapi[((int)beginsweep)>>7]+count*MAXCLEAR),
        !          6234:                        bytestoclear);
        !          6235:            bytestoclear -= MAXCLEAR;
        !          6236:            }
        !          6237:        }
        !          6238: 
        !          6239: The old code is still present in Opus 38.56.
        !          6240: 
        !          6241: Alfred Correira
        !          6242: Paul Robertson
        !          6243: ...ucbvax!nbires!ctvax!alfred (UUCP)
        !          6244: alfred.ct@Rand-Relay (CSNET)
        !          6245: 
        !          6246: From fateman  Tue Dec 13 09:11:00 1983
        !          6247: Received: by ucbkim.ARPA (4.16/4.13)
        !          6248:        id AA03666; Tue, 13 Dec 83 08:31:30 pst
        !          6249: Date: Tue, 13 Dec 83 08:31:30 pst
        !          6250: From: fateman (Richard Fateman)
        !          6251: Message-Id: <[email protected]>
        !          6252: To: local-lisp
        !          6253: Cc: pattrsn
        !          6254: Status: O
        !          6255: 
        !          6256: I have just received a copy of the new Common Lisp Reference Manual
        !          6257: (The Mary Poppins Edition ... Practically Perfect in Every Way)
        !          6258: ... it is 385 pages long.
        !          6259: 
        !          6260: From hoey@nrl-aic  Wed Jan 11 12:58:53 1984
        !          6261: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.16/4.13)
        !          6262:        id AA06395; Wed, 11 Jan 84 12:58:53 pst
        !          6263: Received: from nrl-aic (nrl-aic.ARPA) by UCB-VAX.ARPA (4.22/4.19)
        !          6264:        id AA03955; Wed, 11 Jan 84 12:58:55 pst
        !          6265: Message-Id: <[email protected]>
        !          6266: Date: 11 Jan 1984 14:43-EST
        !          6267: From: Dan Hoey <hoey@NRL-AIC>
        !          6268: Subject: Problems with arrays in Franz
        !          6269: Apparently-To: <FRANZ-FRIENDS@berkeley>
        !          6270: Status: O
        !          6271: 
        !          6272: 
        !          6273: 
        !          6274: From hoey@nrl-aic  Wed Jan 11 13:10:01 1984
        !          6275: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.16/4.13)
        !          6276:        id AA06529; Wed, 11 Jan 84 13:10:01 pst
        !          6277: Received: from nrl-aic (nrl-aic.ARPA) by UCB-VAX.ARPA (4.22/4.19)
        !          6278:        id AA04150; Wed, 11 Jan 84 13:09:46 pst
        !          6279: Message-Id: <[email protected]>
        !          6280: Date: 11 Jan 1984 14:43-EST
        !          6281: From: Dan Hoey <hoey@NRL-AIC>
        !          6282: Subject: Problems with arrays in Franz
        !          6283: To: FRANZ-FRIENDS@BERKELEY
        !          6284: Status: O
        !          6285: 
        !          6286: Hard to believe but it was less than two and a half years ago that
        !          6287: someone was having trouble using Franz arrays...
        !          6288: 
        !          6289:     Date: 17 Jul 1981 17:06:22-PDT
        !          6290:     From: CSVAX.jkf at Berkeley
        !          6291:     To: FININ@WHARTON-10
        !          6292:     cc: franz-friends at MIT-MC
        !          6293:     Subject: Re: ... the maclisp-style array package.
        !          6294:     In-reply-to: Your message of 17 Jul 1981 1347-PDT (Friday).
        !          6295: 
        !          6296:         From: FININ@WHARTON-10
        !          6297:         Subject: ... the maclisp-style array package.
        !          6298: 
        !          6299:         ...
        !          6300:         [3] We've been having problems with the MacLisp compatable array
        !          6301:             package - it doesn't work!  Does anyone have a debugged version?
        !          6302: 
        !          6303:     Can you be more specific? We use it in Vax Macsyma without any problems.
        !          6304:     Personally I feel that Maclisp arrays were invented by a madman and no new
        !          6305:     code should be written using them.  
        !          6306: 
        !          6307:     -- john foderaro
        !          6308: 
        !          6309: Well, I used the Maclisp array package because I didn't want to waste
        !          6310: time writing my own.  Instead I spent hours looking for the bug in this
        !          6311: code:
        !          6312: 
        !          6313:     -> (let ((factorial (*array () () 100.)))
        !          6314:             (store (factorial 0) 1)
        !          6315:            (do ((i 1 (1+ i)))
        !          6316:                ((= i 100.))
        !          6317:                 (store (factorial i) (times i (factorial (1- i)))))
        !          6318:             (factorial 10.))
        !          6319:     285656
        !          6320: 
        !          6321: To make a long story short, this lossage is because the second argument
        !          6322: to *array being nil tells the garbage collector not to scan the
        !          6323: array.  The factorial of ten gets tossed in the bit bucket, where it
        !          6324: unfortunately looks like a fixnum.  To fix the example, change the
        !          6325: first line of the example to
        !          6326: 
        !          6327:     -> (let ((factorial (*array () t 100.)))
        !          6328: 
        !          6329: To save someone else from excruciatingly wrong answers, change the
        !          6330: documentation in Section 2.
        !          6331: 
        !          6332:     (*array 's_name 's_type 'x_dim1 ... 'x_dimn)
        !          6333:     (array s_name s_type x_dim1 ... x_dimn)
        !          6334: 
        !          6335:          WHERE:   s_type may be one of t, nil,  fixnum,  flonum,
        !          6336:                   fixnum-block and flonum-block.
        !          6337:            ...
        !          6338: <                  In FRANZ LISP arrays of type t, nil, fix-
        !          6339: <          num and flonum are equivalent and the elements of
        !          6340: <          these  arrays  can  be  any  type of lisp object.
        !          6341: ---
        !          6342: >                  In  FRANZ  LISP arrays of type t, fixnum,
        !          6343: >          and  flonum  are  equivalent  and the elements of
        !          6344: >          these arrays can  be  any  type  of  lisp object.
        !          6345: >          Type nil arrays may also contain any type of lisp
        !          6346: >          object,  but  they are not marked  by the garbage
        !          6347: >          collector  (see 9.2.2)  and can lose data if used
        !          6348: >          incorrectly.
        !          6349:            Fixnum-block and  flonum-block  arrays  are  res-
        !          6350:            tricted  to  fixnums and flonums respectively and
        !          6351:            are used mainly to communicate with foreign func-
        !          6352:            tions (see 8.4).
        !          6353: 
        !          6354: Dan
        !          6355: 
        !          6356: From hoey@nrl-aic  Wed Jan 11 16:23:56 1984
        !          6357: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.16/4.13)
        !          6358:        id AA06395; Wed, 11 Jan 84 12:58:53 pst
        !          6359: Received: from nrl-aic (nrl-aic.ARPA) by UCB-VAX.ARPA (4.22/4.19)
        !          6360:        id AA03955; Wed, 11 Jan 84 12:58:55 pst
        !          6361: Message-Id: <[email protected]>
        !          6362: Date: 11 Jan 1984 14:43-EST
        !          6363: From: Dan Hoey <hoey@NRL-AIC>
        !          6364: Subject: Problems with arrays in Franz
        !          6365: Apparently-To: <FRANZ-FRIENDS@berkeley>
        !          6366: Status: O
        !          6367: 
        !          6368: 
        !          6369: 
        !          6370: From fateman@ucbdali  Sun Jan 15 14:58:17 1984
        !          6371: Received: from ucbdali.ARPA by ucbkim.ARPA (4.16/4.13)
        !          6372:        id AA00458; Sun, 15 Jan 84 14:58:17 pst
        !          6373: Received: by ucbdali.ARPA (4.22/4.18)
        !          6374:        id AA02865; Sun, 15 Jan 84 14:58:51 pst
        !          6375: Date: Sun, 15 Jan 84 14:58:51 pst
        !          6376: From: fateman@ucbdali (Richard Fateman)
        !          6377: Message-Id: <[email protected]>
        !          6378: To: franz-friends@ucbdali
        !          6379: Subject: FUGUE.3
        !          6380: Status: O
        !          6381: 
        !          6382: 
        !          6383: 
        !          6384: 
        !          6385: 
        !          6386: 
        !          6387: 
        !          6388: 
        !          6389:                         FUGUE Notes
        !          6390: 
        !          6391:                An occasional publication of the
        !          6392:     Franz Lisp User Group under Unix and Eunice (FUGUE)
        !          6393: 
        !          6394:                   Number 3 (January, 1984)
        !          6395:                 edited by Richard J. Fateman
        !          6396:                   University of California
        !          6397:                      Berkeley CA 94720
        !          6398:                             USA
        !          6399:                       fateman@berkeley
        !          6400: 
        !          6401: _1.  _W_e_l_c_o_m_e!
        !          6402: 
        !          6403:      It seems about time  to  publish  the  third  of  these
        !          6404: newsletters,  since  we  have  accumulated  a  number of new
        !          6405: items.  We would also like to relay to others such  informa-
        !          6406: tion as has been forwarded to us. The reports of projects at
        !          6407: Berkeley (and elsewhere) may strike sympathetic chords  with
        !          6408: other research.
        !          6409: 
        !          6410: _2.  _N_e_w _i_m_p_l_e_m_e_n_t_a_t_i_o_n_s
        !          6411: 
        !          6412:      Franz now runs on a number of Motorola 68000 and  68010
        !          6413: systems,  including  DUAL,  PIXEL,  Apple-LISA  (UNIX),  and
        !          6414: undoubtedly a large number of other UNISOFT Inc. UNIX ports.
        !          6415: (The  LISA  has  only  a 1 megabyte address space, and hence
        !          6416: cannot run the compiler.  It can  load  cross-compiled  pro-
        !          6417: grams.)  Non-UNISOFT  UNIX  systems we have Franz running on
        !          6418: include the 4.2BSD" Sun Microsystems operating system.
        !          6419: 
        !          6420:      Some work is beginning on  high-speed  VLSI  chips  for
        !          6421: Lisp, using the reduced instruction set technology which has
        !          6422: been successfully used at UCB in the past.  More information
        !          6423: on this will be available in the near future.
        !          6424: 
        !          6425: _3.  _N_e_w _p_r_o_g_r_a_m_s
        !          6426: 
        !          6427: _3._1.  _V_a_x_i_m_a _a_n_d _A_l_g_e_b_r_a_i_c _M_a_n_i_p_u_l_a_t_i_o_n
        !          6428: 
        !          6429:      Macsyma runs on the 68000 workstations with  sufficient
        !          6430: memory  both virtual and real.  At least 4 megabytes of vir-
        !          6431: tual is needed, but benchmarks suggest  that  anything  less
        !          6432: than  2 megabytes of real memory is painful.  We recommend 4
        !          6433: or more real megabytes.  The PIXEL machine with 6  megabytes
        !          6434: (unpaged) is our fastest real-time Macsyma system, (CPU-time
        !          6435: is about 25% longer than reported VAX-780 CPU time, but more
        !          6436: to the point, CPU-time is equal to real-time).  Distribution
        !          6437: ____________________
        !          6438: 9   UNIX, Eunice, Franz Lisp, may be trademarks of Bell Labs,
        !          6439: SRI Int'l, and Univ. of Calif.
        !          6440: 
        !          6441: 
        !          6442: 
        !          6443: 9
        !          6444: 
        !          6445: 
        !          6446: 
        !          6447: 
        !          6448: 
        !          6449: 
        !          6450: 
        !          6451: 
        !          6452: 
        !          6453: 
        !          6454: of 68000 Macsyma will presumably be done by Symbolics, (con-
        !          6455: tact  RP@mit-mc,  with  a  cc to fateman@berkeley if you are
        !          6456: interested).
        !          6457: 
        !          6458:      Development of a new algebra system and  user  applica-
        !          6459: tion  modules  is  proceeding,  and  a  programming language
        !          6460: called Newspeak, initially implemented on top of  Franz,  is
        !          6461: the  principal vehicle. This is described in John Foderaro's
        !          6462: PhD dissertation, available from the  CS  Division  at  UCB.
        !          6463: (Newspeak  is  hierarchical,  object-oriented,  and strongly
        !          6464: typed;  is  compiler-based,  and  should  provide  efficient
        !          6465: access  to  machine  resources).   While the algebra code is
        !          6466: progressing well, we are not yet ready to set a release date
        !          6467: for the user-end of the system, tentatively named Xi.
        !          6468: 
        !          6469: _4.  _N_e_w _f_e_a_t_u_r_e_s
        !          6470: 
        !          6471:      As usual,  various  performance  enhancements  and  bug
        !          6472: fixes  have  been  incorporated in versions of Franz (now on
        !          6473: Opus 38.87 and the compiler, Liszt 8.39) Most  changes  made
        !          6474: it  into  the  recent Berkeley 4.2BSD UNIX distribution, and
        !          6475: reported alterations will not be repeated here.
        !          6476: 
        !          6477: _5.  _O_t_h_e_r _L_i_s_p_s
        !          6478: 
        !          6479:      We understand that a version of PSL will  be  supported
        !          6480: by  Hewlett  Packard,  on  its workstations, and that Common
        !          6481: Lisp, from DEC will  have  initial  field-test  in  January,
        !          6482: 1984.   We  believe  PSL  should be available from Utah in a
        !          6483: form for running on 4.2BSD VAX UNIX; similarly for "T"  from
        !          6484: Cognitive  Systems.   We  believe that a Common-Lisp support
        !          6485: package for Franz may be constructed, but probably not at UC
        !          6486: under current funding. (see Business news below, though).
        !          6487: 
        !          6488: _6.  _W_o_r_k _i_n _P_r_o_g_r_e_s_s
        !          6489: 
        !          6490: _6._1.  _G_r_a_p_h_i_c_s
        !          6491: 
        !          6492:      Gregg Foster has  constructed  a  graphics  Franz  Lisp
        !          6493: which  includes  the  full Sun Microsystems Graphics package
        !          6494: for Sun-2 systems, and Keith Sklower has  constructed  a  C-
        !          6495: structure  package  in  Franz  to enable programmers to more
        !          6496: easily construct arbitrary C-structures in Lisp, to pass  to
        !          6497: C.  Various  demonstration  programs  have  been  written to
        !          6498: access the smooth-curve plotting capabilities, variable-size
        !          6499: fonts, etc.
        !          6500: 
        !          6501: _6._2.  _I_B_M _F_r_a_n_z
        !          6502: 
        !          6503:      Still more nibbles on this one, but not yet. We heard a
        !          6504: rumor  of  work  at  Columbia University. (also see the next
        !          6505: item.)
        !          6506: 9
        !          6507: 
        !          6508: 9
        !          6509: 
        !          6510: 
        !          6511: 
        !          6512: 
        !          6513: 
        !          6514: 
        !          6515: 
        !          6516: 
        !          6517: 
        !          6518: 
        !          6519: _7.  _B_u_s_i_n_e_s_s _N_e_w_s
        !          6520: 
        !          6521: _7._1.  _F_r_a_n_z _I_n_c
        !          6522: 
        !          6523:      A new software company has been formed to support Franz
        !          6524: and  application  programs,  and  is  seeking customers in 3
        !          6525: categories: (a) manufacturers of hardware wishing to  obtain
        !          6526: a  Lisp  system  and/or Lisp support; (b) software producers
        !          6527: who wish to have reliable access to experts  in  Franz,  for
        !          6528: enhancement,  support, training or porting of existing code.
        !          6529: (c) end-users who are using Franz or applications written in
        !          6530: Franz and need help in customizing, debugging, conversion to
        !          6531: or from other dialects, etc.
        !          6532: 
        !          6533:      The University of California will continue  to  distri-
        !          6534: bute  Franz  Lisp  on  its current basis, but your questions
        !          6535: about support in any of these categories,  or  about  future
        !          6536: plans,  can be directed to Franz Inc. Most of the principals
        !          6537: at UC will be participating in this venture.  Contact  Franz
        !          6538: Inc. via fkunze@berkeley, or (to avoid abuse of various net-
        !          6539: work privileges), Fritz Kunze, President, Franz  Inc.,  6321
        !          6540: Thornhill Drive, Oakland, Ca 94611 (415) 339-1481.
        !          6541: 
        !          6542: 
        !          6543: 
        !          6544: 
        !          6545: 
        !          6546: 
        !          6547: 
        !          6548: 
        !          6549: 
        !          6550: 
        !          6551: 
        !          6552: 
        !          6553: 
        !          6554: 
        !          6555: 
        !          6556: 
        !          6557: 
        !          6558: 
        !          6559: 
        !          6560: 
        !          6561: 
        !          6562: 
        !          6563: 
        !          6564: 
        !          6565: 
        !          6566: 
        !          6567: 
        !          6568: 
        !          6569: 
        !          6570: 
        !          6571: 9
        !          6572: 
        !          6573: 9
        !          6574: 
        !          6575: 
        !          6576: 
        !          6577: 
        !          6578: From cowan@AEROSPACE  Thu Jan 19 09:56:25 1984
        !          6579: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.16/4.13)
        !          6580:        id AA14836; Thu, 19 Jan 84 09:56:25 pst
        !          6581: Received: from aerospace.ARPA by UCB-VAX.ARPA (4.22/4.19)
        !          6582:        id AA02684; Thu, 19 Jan 84 09:55:33 pst
        !          6583: Message-Id: <[email protected]>
        !          6584: Date:           Thu, 19 Jan 84 09:55:01 PST
        !          6585: From: Ric Cowan <cowan@AEROSPACE>
        !          6586: To: franz-friends@BERKELEY
        !          6587: Subject:        Help
        !          6588: Status: O
        !          6589: 
        !          6590: Hi, 
        !          6591: 
        !          6592: I'm starting a new project and would like to use Franz lisp. It is a large
        !          6593: application that needs to:
        !          6594: 
        !          6595:        (1) Run on a VAX 11/780 under VMS.
        !          6596:        (2) Interface with INGRESS.
        !          6597:        (3) Support a menu driven interface with VT100 type terminals.
        !          6598: 
        !          6599: Is Franz lisp a viable language to use? 
        !          6600: 
        !          6601: Thanks in advance,
        !          6602: 
        !          6603: Ric Cowan
        !          6604: 
        !          6605: From levitt@aids-unix  Thu Jan 26 17:44:03 1984
        !          6606: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.16/4.13)
        !          6607:        id AA10074; Thu, 26 Jan 84 17:44:03 pst
        !          6608: Received: from aids-unix (aids-unix.ARPA) by UCB-VAX.ARPA (4.22/4.19)
        !          6609:        id AA02121; Thu, 26 Jan 84 17:01:25 pst
        !          6610: Message-Id: <[email protected]>
        !          6611: Date: 26 Jan 1984 16:25:55-PST
        !          6612: From: Tod Levitt <levitt@aids-unix>
        !          6613: To: franz-friends@BERKELEY
        !          6614: Subject: report PAM 124, "Parlez vous Franz..." by James Larus
        !          6615: Cc: levitt@aids-unix
        !          6616: Status: O
        !          6617: 
        !          6618: I am trying to obtain a copy of PAM report 124 which discusses
        !          6619: interfacing foreign functions to Franzlisp. Can someone please
        !          6620: point me at a source for this document? Thanks...
        !          6621:                             Tod Levitt (levitt@aids-unix)
        !          6622: 
        !          6623: From jkf@ucbmike  Fri Jan 27 08:44:54 1984
        !          6624: Received: from ucbmike.ARPA by ucbkim.ARPA (4.16/4.13)
        !          6625:        id AA15308; Fri, 27 Jan 84 08:44:54 pst
        !          6626: Date: Fri, 27 Jan 84 08:44:40 pst
        !          6627: From: John Foderaro (on an h19-u) <jkf@ucbmike>
        !          6628: Message-Id: <[email protected]>
        !          6629: Received: by ucbmike.ARPA (4.17/3.5)
        !          6630:        id AA02469; Fri, 27 Jan 84 08:44:40 pst
        !          6631: To: local-lisp@kim
        !          6632: Subject: lisp 38.88
        !          6633: Cc: 
        !          6634: Status: O
        !          6635: 
        !          6636:  The 'msg' macro now accepts the special form (T 'x_column), and it
        !          6637: spaces over to that column (plus 1).
        !          6638: 
        !          6639: -> (msg "foo" (T 10) "bar" N "baz" (T 11) "bof" N)
        !          6640: foo       bar
        !          6641: baz        bof
        !          6642: nil
        !          6643: ->
        !          6644: 
        !          6645: Note that the method used to locate the column only works if nothing
        !          6646: has yet been actually written on the line.  Problems will occur if you drain
        !          6647: the port in the middle of the line.
        !          6648: 
        !          6649: For example:
        !          6650: -> (msg "foo" D (T 10) "bar" N         << here we drain after "foo"
        !          6651:         "foo"   (T 10) "bar" N)
        !          6652: foo          bar               << thus column 11 turns out to be column 14
        !          6653: foo       bar
        !          6654: nil
        !          6655: ->
        !          6656: 
        !          6657: 
        !          6658: From jkf@ucbmike  Tue Jan 31 10:55:51 1984
        !          6659: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.16/4.13)
        !          6660:        id AA20759; Tue, 31 Jan 84 10:55:51 pst
        !          6661: Received: from ucbmike.ARPA by UCB-VAX.ARPA (4.22/4.21)
        !          6662:        id AA12296; Tue, 31 Jan 84 10:51:34 pst
        !          6663: Date: Tue, 31 Jan 84 10:51:33 pst
        !          6664: From: John Foderaro (on an sun-e) <jkf@ucbmike>
        !          6665: Message-Id: <[email protected]>
        !          6666: Received: by ucbmike.ARPA (4.17/3.5)
        !          6667:        id AA01218; Tue, 31 Jan 84 10:51:33 pst
        !          6668: To: franz-friends@BERKELEY
        !          6669: Subject: LISPcraft, a book on Lisp and Franz.
        !          6670: Cc: 
        !          6671: Status: O
        !          6672: 
        !          6673:   A new Lisp book is due out March 23rd which may be especially interesting 
        !          6674: to Franz Lisp users or potential Franz Lisp users.   The title
        !          6675: is `LISPcraft' and it was written by Robert Wilensky, a Computer Science
        !          6676: professor at Berkeley who teaches AI programming courses.
        !          6677:   The book starts at first principles and teaches Lisp programming, and then 
        !          6678: goes on to Franz-specific topics such as debugging, read macros, error 
        !          6679: handling, and compilation.   Then there are chapters on Lisp 
        !          6680: applications: pattern matching and databases.  Finally it contains 
        !          6681: a complete description of all Franz functions.
        !          6682: 
        !          6683: details:
        !          6684: LISPcraft, by Robert Wilensky    385 pages, $19.95
        !          6685: publisher: W. W. Norton, 500 5th Avenue, N.Y. N.Y.  10110
        !          6686:            800-223-2584
        !          6687: 
        !          6688: 
        !          6689: 
        !          6690: 
        !          6691: From jkf@ucbmike  Fri Feb  3 08:03:58 1984
        !          6692: Received: from ucbmike.ARPA by ucbkim.ARPA (4.16/4.13)
        !          6693:        id AA19272; Fri, 3 Feb 84 08:03:58 pst
        !          6694: Date: Fri, 3 Feb 84 08:04:17 pst
        !          6695: From: John Foderaro (on an h19-u) <jkf@ucbmike>
        !          6696: Message-Id: <[email protected]>
        !          6697: Received: by ucbmike.ARPA (4.17/3.5)
        !          6698:        id AA02117; Fri, 3 Feb 84 08:04:17 pst
        !          6699: To: local-lisp@kim
        !          6700: Subject: opus 38.89
        !          6701: Cc: 
        !          6702: Status: O
        !          6703: 
        !          6704:  In opus 38.88 the msg macro was extended to make (T n) put the cursor
        !          6705: on column n+1.   Others had extended the msg macro in a conflicting way,
        !          6706: so we decided to convert over to their extensions.  So forget what
        !          6707: you read in the opus38.88 message, and remember this:
        !          6708:        (C n)   go to column n.  The first column on the line is column 1.
        !          6709:                If the cursor is beyond column n, then go to the next line
        !          6710:                and go to column n.
        !          6711:        (T m)   print m tab characters
        !          6712:        
        !          6713:        
        !          6714:        
        !          6715: 
        !          6716: 
        !          6717: From jkf  Thu Feb 16 10:32:03 1984
        !          6718: Received: by ucbkim.ARPA (4.16/4.22)
        !          6719:        id AA16308; Thu, 16 Feb 84 10:32:03 pst
        !          6720: Date: Thu, 16 Feb 84 10:32:03 pst
        !          6721: From: John Foderaro (on an sun-e) <jkf>
        !          6722: Message-Id: <[email protected]>
        !          6723: To: local-lisp
        !          6724: Subject: opus 38.90
        !          6725: Cc: 
        !          6726: Status: O
        !          6727: 
        !          6728:  For those of you using the 'tpl' toplevel, the new command ?fast
        !          6729: will set all switches for maximum speed:
        !          6730:        (*rset nil)
        !          6731:        (sstatus translink on)
        !          6732:        (setq displace-macros t)
        !          6733:        
        !          6734: 
        !          6735: 
        !          6736: From wilensky@ucbdali  Wed Feb 22 09:58:43 1984
        !          6737: Received: from ucbdali.ARPA by ucbkim.ARPA (4.16/4.22)
        !          6738:        id AA16486; Wed, 22 Feb 84 09:58:43 pst
        !          6739: Received: by ucbdali.ARPA (4.22/4.22)
        !          6740:        id AA06784; Wed, 22 Feb 84 09:57:21 pst
        !          6741: Date: Wed, 22 Feb 84 09:57:21 pst
        !          6742: From: wilensky@ucbdali (Robert Wilensky)
        !          6743: Message-Id: <[email protected]>
        !          6744: To: andy@aids-unix, franz-friends@ucbdali
        !          6745: Subject: Re: Franz Flavors & software copyright
        !          6746: In-Reply-To: Your message of 21 Feb 1984 16:29-PST
        !          6747: Status: O
        !          6748: 
        !          6749: 
        !          6750: Thanks for your clarification.  Everything you said is consistent with my
        !          6751: understanding of the situation.  And you are correct in emphasizing the
        !          6752: complexity of the issue.  But I want to stress my main point.  This is
        !          6753: that the ``author'' holds the copyright.  It may be unclear who the author
        !          6754: is, but it is clearly NOT the university. 
        !          6755: 
        !          6756: In addition, many pieces of ``university-developed'' software have
        !          6757: contributions by unfunded students, and by faculty, whose salary is not paid
        !          6758: by the gov't (except maybe during the summer).  Furthermore, it would seem
        !          6759: to be unclear who the author is if it is, say, a student working as a gov't
        !          6760: sponsored r. a.  For example, the student's thesis is presumably his to
        !          6761: copyright, even if the student were paid by the gov't because it was not
        !          6762: part of what he was paid to do.  One could argue that a concommitant program
        !          6763: has the same status unless it were specifically contracted for.
        !          6764: 
        !          6765: Let me state that my main purpose was not to promote people selling their
        !          6766: code, but rather, to stop the universities from impeding its distribution.
        !          6767: As far as I know, the gov't hasn't tried to prevent us from giving each
        !          6768: other our software, but many universities have.  Therefore, we are better
        !          6769: off leaving them out of the picture entirely - legally this seems to be a
        !          6770: sound position.
        !          6771: 
        !          6772: 
        !          6773: From jkf@ucbmike  Wed Mar 14 09:04:55 1984
        !          6774: Received: from ucbmike.ARPA by ucbkim.ARPA (4.16/4.22)
        !          6775:        id AA00884; Wed, 14 Mar 84 09:04:55 pst
        !          6776: Date: Wed, 14 Mar 84 08:58:51 pst
        !          6777: From: John Foderaro (on an h19-u) <jkf@ucbmike>
        !          6778: Message-Id: <[email protected]>
        !          6779: Received: by ucbmike.ARPA (4.17/3.5)
        !          6780:        id AA03782; Wed, 14 Mar 84 08:58:51 pst
        !          6781: To: fateman@ucbdali, sklower@ucbdali, layer@ucbdali, chris@cory
        !          6782: Subject: lisps running wild 
        !          6783: Cc: local-lisp@kim
        !          6784: In-Reply-To: Your message of Tue, 13 Mar 84 21:45:25 pst
        !          6785: Status: O
        !          6786: 
        !          6787: re:    
        !          6788:        From: chris@ucbcory (Chris Guthrie)
        !          6789:        We are having a good deal
        !          6790:        of trouble with them being left running instead of dying and killing
        !          6791:        the load here.
        !          6792: 
        !          6793: The problem is that people are setting a flag in their lisp init files
        !          6794: which instruct lisp to ignore 'end of file' (much like the c shell).
        !          6795: If a connection is broken (ipc connection breaks or modem hangs up), then
        !          6796: lisp is sent a hangup signal (which it ignores) and then a continuous
        !          6797: sequence of 'end of files' which it ignores after a bit of processing.
        !          6798: The solution is this:
        !          6799:   If you have something in your init file which instructs lisp to ignore
        !          6800: end of files  (such as (sstatus ignoreeof t)), then you should also
        !          6801: have   (signal 1 'exit)   in the init file so lisp will exit upon a hangup.
        !          6802: 
        !          6803: 
        !          6804: 
        !          6805: 
        !          6806: From mcgeer  Wed Mar 14 09:37:45 1984
        !          6807: Received: by ucbkim.ARPA (4.16/4.22)
        !          6808:        id AA01437; Wed, 14 Mar 84 09:37:45 pst
        !          6809: Date: Wed, 14 Mar 84 09:37:45 pst
        !          6810: From: Rick McGeer (on an aaa-60-s) <mcgeer>
        !          6811: Message-Id: <[email protected]>
        !          6812: To: jkf@ucbmike, chris@cory, layer@ucbdali, sklower@ucbdali, fateman@ucbdali
        !          6813: Subject: Re: lisps running wild 
        !          6814: Cc: local-lisp
        !          6815: In-Reply-To: Your message of Wed, 14 Mar 84 08:58:51 pst
        !          6816: Status: O
        !          6817: 
        !          6818:        John, your top level sets the ignoreeof flag.  Does it also set the
        !          6819: appropriate signal, or should your users do that themselves?
        !          6820: 
        !          6821: 
        !          6822: From jkf@ucbmike  Wed Mar 14 09:48:04 1984
        !          6823: Received: from ucbmike.ARPA by ucbkim.ARPA (4.16/4.22)
        !          6824:        id AA01603; Wed, 14 Mar 84 09:48:04 pst
        !          6825: Date: Wed, 14 Mar 84 09:42:15 pst
        !          6826: From: John Foderaro (on an h19-u) <jkf@ucbmike>
        !          6827: Message-Id: <[email protected]>
        !          6828: Received: by ucbmike.ARPA (4.17/3.5)
        !          6829:        id AA03833; Wed, 14 Mar 84 09:42:15 pst
        !          6830: To: mcgeer@ucbkim, fateman@ucbdali, sklower@ucbdali, layer@ucbdali, chris@cory
        !          6831: Subject: Re: lisps running wild 
        !          6832: Cc: local-lisp@ucbkim
        !          6833: In-Reply-To: Your message of Wed, 14 Mar 84 09:37:45 pst
        !          6834: Status: O
        !          6835: 
        !          6836:  Since ignoreeof is always set in the new top level, I'll make 'exit on
        !          6837: hangup' the default if you use the new top level.
        !          6838: 
        !          6839:   
        !          6840: 
        !          6841: 
        !          6842: From [email protected]  Sat Mar 17 13:45:58 1984
        !          6843: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.22)
        !          6844:        id AA05623; Sat, 17 Mar 84 13:45:58 pst
        !          6845: Received: from SU-AI.ARPA by UCB-VAX.ARPA (4.24/4.25)
        !          6846:        id AA12441; Sat, 17 Mar 84 13:47:35 pst
        !          6847: Message-Id: <[email protected]>
        !          6848: Date: 17 Mar 84  1347 PST
        !          6849: From: Rod Brooks <[email protected]>
        !          6850: Subject: Don't use Franz sortcar!
        !          6851: To: franz-friends@BERKELEY
        !          6852: Status: O
        !          6853: 
        !          6854: 
        !          6855: Somewhat bizzarely it seems that Franz Lisp sort and sortcar have
        !          6856: different time complexities. sort is good and sortcar is bad so
        !          6857: I suggest you convert your sortcar's to sort's until someone sorts
        !          6858: this out. The code and transcript below use both sort and sortcar
        !          6859: to sort a list of length n (the list happens to start in precisely
        !          6860: reverse order). A count of the number of calls to the comparison
        !          6861: function is kept. The results show that sort takes n*log(n)
        !          6862: comparisons while sortcar takes n*n. The problem should
        !          6863: be fixable by throwing out code as there must be two sorters lurking
        !          6864: in there!
        !          6865: 
        !          6866: ;;;;;;;;;;;;;;;
        !          6867: 
        !          6868: (defun gen (n)
        !          6869:     (do ((i 0 (1+ i))
        !          6870:         (l () (cons (cons i ()) l)))
        !          6871:        ((= i n)
        !          6872:         l)))
        !          6873: 
        !          6874: (defun compare (x y)
        !          6875:     (setq *count* (1+ *count*))
        !          6876:     (< x y))
        !          6877: 
        !          6878: (defun compare-cars (x y) (compare (car x) (car y)))
        !          6879: 
        !          6880: (defun count-sort (n)
        !          6881:     (let ((*count* 0))
        !          6882:         (sort (gen n) #'compare-cars)
        !          6883:         *count*))
        !          6884: 
        !          6885: (defun count-sortcar (n)
        !          6886:     (let ((*count* 0))
        !          6887:         (sortcar (gen n) #'compare)
        !          6888:         *count*))
        !          6889: 
        !          6890: (defun test (n)
        !          6891:     (let ((csort (count-sort n))
        !          6892:          (csortcar (count-sortcar n)))
        !          6893:         (list n
        !          6894:               csort
        !          6895:               csortcar
        !          6896:               (/$ (float csort) (*$ (float n) (log n)))
        !          6897:               (/$ (float csortcar) (float (* n n))))))
        !          6898: 
        !          6899: ;;;;;;;;;;;;;;;
        !          6900: 
        !          6901: Here's the transcript. The lists of 5 elements are:
        !          6902:        n
        !          6903:        compares for sort
        !          6904:        compares for sortcar
        !          6905:        compares for sort / n*log(n)
        !          6906:        compares for sortcar / n*n
        !          6907: 
        !          6908: 
        !          6909: Franz Lisp, Opus 38
        !          6910: -> (load 'test)
        !          6911: t
        !          6912: -> (test 3)
        !          6913: (3 3 6 0.910239226626837 0.6666666666666667)
        !          6914: -> (test 100)
        !          6915: (100 460 9900 0.9988773083774791 0.99)
        !          6916: -> (test 200)
        !          6917: (200 1020 39800 0.9625697456705496 0.995)
        !          6918: -> (test 300)
        !          6919: (300 1440 89700 0.8415468193831012 0.9966666666666667)
        !          6920: -> (test 400)
        !          6921: (400 2240 159600 0.9346629619469353 0.9975)
        !          6922: -> 
        !          6923: 
        !          6924: 
        !          6925: From @MIT-MC:smh@MIT-EMS  Wed Mar 28 06:11:15 1984
        !          6926: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.3)
        !          6927:        id AA06408; Wed, 28 Mar 84 06:11:15 pst
        !          6928: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.25)
        !          6929:        id AA23759; Wed, 28 Mar 84 06:10:43 pst
        !          6930: Message-Id: <[email protected]>
        !          6931: Date: 28 Mar 1984 09:09:38-EST
        !          6932: From: <smh@mit-ems@mit-mc>
        !          6933: To: franz-friends@BERKELEY
        !          6934: Subject: Fixes for setf return value problem
        !          6935: Status: O
        !          6936: 
        !          6937: As FranzFriends readers will know, my message several days ago
        !          6938: generated a number of comments.  The clear consensus was that setf
        !          6939: should be fixed, not the documentation.  This was obvious.  The reason
        !          6940: I didn't suggest the fix myself was that I felt it was far more
        !          6941: important to preserve compatibility between Franz and the various other
        !          6942: more-or-less-source-compatible Lisps (aka Common Lisps).  It was my
        !          6943: impression that code relying on the value returned by setf would not
        !          6944: be portable.
        !          6945: 
        !          6946: I have since learned that Common Lisp does indeed define setf to return
        !          6947: the new value (its second argument), and that other implementations
        !          6948: (i.e. MIT and Symbolics Lisp Machines) indeed work this way.  (Mind
        !          6949: you, I haven't checked this myself -- the information is second hand.)
        !          6950: The fixes to setf are quite straightforward and are brief enough that I
        !          6951: am including them below.  For each case that the setf macro evaluates
        !          6952: to a {rplaca, rplacd, rplacx} the corresponding {car, cdr, cxr} is now
        !          6953: wrapped around it.  The Liszt compiler seems smart enough to remove the
        !          6954: extra reference if the value is ignored.
        !          6955: 
        !          6956: The new setf functions follow.  The starting version is the Opus 38.69
        !          6957: common2 identified by:
        !          6958: ;; common2.l                           -[Fri Jul  8 17:46:13 1983 by layer]-
        !          6959: (Although only two lines of setf-check-car+d were changed, the entire
        !          6960: function is included because the change is difficult to locate by
        !          6961: context.)  I suggest these changes be made in the official sources.
        !          6962: Whoever wants to install them should edit common2.l and remake the
        !          6963: Franz interpreter.  The Liszt compiler does not need to be changed.
        !          6964: ====================
        !          6965: 
        !          6966: ; modified 27Mar84 SMH@MIT-EMS@MT-MC (see comment below)
        !          6967: ;
        !          6968: (defun setf-check-cad+r (name)
        !          6969:  (if (eq (getcharn name 1) #/c)
        !          6970:      then (let
        !          6971:           ((letters (nreverse (cdr (exploden name)))))
        !          6972:           (if (eq (car letters) #/r)
        !          6973:               then (do ((xx (cdr letters) (cdr xx)))
        !          6974:                        ((null xx)
        !          6975:                         ;; form is c{ad}+r, setf form is
        !          6976:                         ;; (rplac<first a or d> (c<rest of a's + d's>r x))
        !          6977:                         (setq letters (nreverse letters))
        !          6978:                         (eval
        !          6979:                          `(defsetf ,name (e v)
        !          6980:                                        ; SMH@MIT-EMS@MIT-MC    
        !          6981:                                        ; added next line and matching rparen.
        !          6982:                                    (list ',(implode `(#/c ,(car letters) #/r))
        !          6983:                                     (list
        !          6984:                                      ',(concat "rplac" (ascii (car letters)))
        !          6985:                                      (list
        !          6986:                                       ',(implode `(#/c ,@(cdr letters)))
        !          6987:                                       (cadr e))
        !          6988:                                      v))))     ; SMH@MIT-EMS@MIT-MC
        !          6989:                         t)
        !          6990:                        (if (not (memq (car xx) '(#/a #/d)))
        !          6991:                            then (return nil)))))))
        !          6992: 
        !          6993: . . .
        !          6994: 
        !          6995: ;--- other setf's for car's and cdr's are generated automatically
        !          6996: ;
        !          6997: ; modified 27Mar84 SMH@MIT-EMS@MIT-MC
        !          6998: ; Now whenever setf macro expands to a rplac[adx], the corresponding c[adx]r
        !          6999: ; is now wrapped around it so that setf consistently returns its second arg.
        !          7000: ; The compiler is smart enough to remove the extra operation if the value
        !          7001: ; is not used.
        !          7002: ;
        !          7003: (defsetf car (e v) `(car (rplaca ,(cadr e) ,v)))
        !          7004: (defsetf caar (e v) `(car (rplaca (car ,(cadr e)) ,v)))
        !          7005: (defsetf cadr (e v) `(car (rplaca (cdr ,(cadr e)) ,v)))
        !          7006: (defsetf cdr (e v) `(cdr (rplacd ,(cadr e) ,v)))
        !          7007: (defsetf cdar (e v) `(cdr (rplacd (car ,(cadr e)) ,v)))
        !          7008: (defsetf cddr (e v) `(cdr (rplacd (cdr ,(cadr e)) ,v)))
        !          7009: (defsetf cxr (e v) `(cxr ,(cadr e) (rplacx ,(cadr e) ,(caddr e) ,v)))
        !          7010: 
        !          7011: . . .
        !          7012: 
        !          7013: (defsetf nth (e v) `(car (rplaca (nthcdr ,(cadr e) ,(caddr e)) ,v)))
        !          7014: (defsetf nthelem (e v) `(car (rplaca (nthcdr (1- ,(cadr e)) ,(caddr e)) ,v)))
        !          7015: (defsetf nthcdr (e v) `(cdr (rplacd (nthcdr (1- ,(cadr e)) ,(caddr e)) ,v)))
        !          7016: 
        !          7017: . . .
        !          7018: 
        !          7019: ; (defsetf args (e v) `(args ,(cadr e) ,v))    ; no longer implemented?
        !          7020: 
        !          7021: ====================
        !          7022: 
        !          7023: Steven Haflich
        !          7024: MIT Experimental Music Studio
        !          7025: (617)253-7441
        !          7026: smh@mit-ems@mit-mc
        !          7027: decvax!genrad!mit-ems!smh
        !          7028: 
        !          7029: 
        !          7030: From fateman@ucbdali  Thu Mar 29 12:07:33 1984
        !          7031: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.3)
        !          7032:        id AA20323; Thu, 29 Mar 84 12:07:33 pst
        !          7033: Received: from ucbdali.ARPA by UCB-VAX.ARPA (4.24/4.25)
        !          7034:        id AA22790; Thu, 29 Mar 84 12:07:08 pst
        !          7035: Received: by ucbdali.ARPA (4.24/4.22)
        !          7036:        id AA04139; Thu, 29 Mar 84 12:07:10 pst
        !          7037: Date: Thu, 29 Mar 84 12:07:10 pst
        !          7038: From: fateman@ucbdali (Richard Fateman)
        !          7039: Message-Id: <[email protected]>
        !          7040: To: franz-friends@BERKELEY
        !          7041: Subject: commercialization of Franz
        !          7042: Status: O
        !          7043: 
        !          7044: 
        !          7045: Some people may have gotten the incorrect impression that 
        !          7046: the University of California will cease sending out 
        !          7047: tapes of Franz Lisp.  We intend to continue distribution
        !          7048: of the latest version which is the property of UCB.  This is
        !          7049: currently opus 38.91.  This distribution works, so far as we know,
        !          7050: on SUN releases (0.4, 1.0, 1.1) and Masscomp, and VAX 4.2BSD.
        !          7051: Such distributions will continue, and will continue to be unsupported.
        !          7052: Although we have made reasonable efforts to provide a useful,
        !          7053: portable, efficient, and complete system, we have spent too much of
        !          7054: our time and our sponsors' money in answering
        !          7055: questions about installation-dependent difficulties or 
        !          7056: (what USUALLY turns out to be non-existent) bugs.
        !          7057: I might point out that many of the questions come from commercial users.
        !          7058: 
        !          7059: Franz Inc. was formed to provide a mechanism for support, transportation
        !          7060: of Franz Lisp to new architectures, enhancements, documentation, etc.
        !          7061: It has the (non-exclusive) right to use, distribute, (etc) Franz Lisp,
        !          7062: and intends to produce enhancements that the University does not
        !          7063: have funding for. I expect that if enhancements of Franz Lisp at UCB 
        !          7064: are produced, these will next be made available on 4.3 BSD tapes. Earlier
        !          7065: distributions of contributed software or locally produced software
        !          7066: MAY occur, but cannot be promised.
        !          7067: 
        !          7068: I expect that there will continue to be a large number of Franz Lisp
        !          7069: users who are satisfied with the university distribution (on 4.2BSD)
        !          7070: or on the separate tapes (e.g. after opus 38.79) that UCB is sending out.
        !          7071: Others will want the enhanced, supported, version from Franz Inc.
        !          7072: 
        !          7073: The divergence of versions,
        !          7074: some of which has already occurred with local variants of older
        !          7075: systems being redistributed, seems inevitable regardless of Franz Inc.
        !          7076: 
        !          7077: I hope this clarifies UCB's position.
        !          7078: 
        !          7079: 
        !          7080: 
        !          7081: From @MIT-MC:smh@MIT-EMS  Wed Apr  4 15:44:42 1984
        !          7082: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.3)
        !          7083:        id AA07196; Wed, 4 Apr 84 15:44:42 pst
        !          7084: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.25)
        !          7085:        id AA01892; Wed, 4 Apr 84 15:14:05 pst
        !          7086: Message-Id: <[email protected]>
        !          7087: Date: 4 Apr 1984 16:44:49-EST
        !          7088: From: <smh@mit-ems@mit-mc>
        !          7089: To: franz-friends@BERKELEY
        !          7090: Subject: Re: recent suggested fix to setf
        !          7091: Status: O
        !          7092: 
        !          7093: There was one mistake in my recent posting with fixes for the Franz
        !          7094: setf function.  I said that it was not necessary to remake liszt (the
        !          7095: compiler).  This was wrong:  code compiled with an old copy of liszt
        !          7096: will not use the modified setf definitions.
        !          7097: 
        !          7098: The fix is simply to remake liszt after the new Franz interpreter has
        !          7099: been generated.
        !          7100: 
        !          7101: Sorry about any confusion.
        !          7102: 
        !          7103: Steve Haflich
        !          7104: MIT Experimental Music Studio
        !          7105: decvax!genrad!mit-ems!smh
        !          7106: smh@mit-ems@mit-mc
        !          7107: 
        !          7108: 
        !          7109: From [email protected]  Wed Apr 18 20:37:26 1984
        !          7110: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.3)
        !          7111:        id AA16547; Wed, 18 Apr 84 20:37:26 pst
        !          7112: Received: from RUTGERS.ARPA (rutgers.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.27)
        !          7113:        id AA29663; Wed, 18 Apr 84 20:36:21 pst
        !          7114: Message-Id: <[email protected]>
        !          7115: Date: 18 Apr 84 23:37:14 EST
        !          7116: From: Sean McLinden  <[email protected]>
        !          7117: Subject: [Sean McLinden  <[email protected]>: Re: Franz on Suns under 4.2?]
        !          7118: To: franz-friends@BERKELEY
        !          7119: Status: O
        !          7120: 
        !          7121: Mail-From: MCLINDEN created at 18-Apr-84 23:33:56
        !          7122: Date: 18 Apr 84 23:33:56 EST
        !          7123: From: Sean McLinden  <[email protected]>
        !          7124: Subject: Re: Franz on Suns under 4.2?
        !          7125: To: [email protected]
        !          7126: cc: [email protected]
        !          7127: In-Reply-To: Message from "allegra!jdd@Berkeley (John DeTreville)" of 18 Apr 84 13:10:10 EST
        !          7128: 
        !          7129: 
        !          7130: 
        !          7131:  I must be missing something with all of this discussion of Franz
        !          7132:  Lisp on Suns. We have had no trouble at all running the current
        !          7133:  (opus 38.91?) Berkeley release on Suns and have been running Sun
        !          7134:  Franz Lisp for nearly a year now.
        !          7135: 
        !          7136:  The only serious problem that I can recall happened a few sub versions
        !          7137:  ago and was due to a logical error in the C-coded algorithm which
        !          7138:  determined when to garbage collect (as things would have it, it
        !          7139:  never did). The result was that liszt was unable to compile some
        !          7140:  of the lisp coded sources due to the 2 Meg/process limit imposed
        !          7141:  by the Sun operating system (the bug existed in the Vax version as
        !          7142:  well but one would only see it if the lisp image exceeded 6 megs
        !          7143:  which is rare for a compiler run).
        !          7144: 
        !          7145:  Perhaps you could be more explicit in describing what, exactly,
        !          7146:  the problem is. The people at Berkeley most probably have Suns
        !          7147:  and I am sure that they don't release Sun versions without testing
        !          7148:  them.
        !          7149: 
        !          7150:  Sean McLinden
        !          7151:  Decision Systems Lab
        !          7152:  University of Pittsburgh
        !          7153:  School of Medicine
        !          7154: -------
        !          7155: -------
        !          7156: 
        !          7157: From varghese%[email protected]  Fri May 25 18:47:11 1984
        !          7158: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          7159:        id AA20472; Fri, 25 May 84 18:47:11 pdt
        !          7160: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.27)
        !          7161:        id AA23631; Fri, 25 May 84 18:45:35 pdt
        !          7162: Message-Id: <[email protected]>
        !          7163: Received: From colostate.csnet by csnet-relay;  25 May 84 21:17 EDT
        !          7164: Date: Fri, 25 May 84 13:47:24 mdt
        !          7165: From: varghese%[email protected]
        !          7166: Received: by csu-cs.UUCP (4.12/3.14)
        !          7167:        id AA11606; Fri, 25 May 84 13:47:24 mdt
        !          7168: To: [email protected]
        !          7169: Subject: Addition to mailing list
        !          7170: 
        !          7171: 
        !          7172: 
        !          7173: 
        !          7174: Please add us to the mailing list. Since there will be more than one 
        !          7175: person at this site who wants to be on the mailing list we decided to 
        !          7176: get everything mailed to one central mailbox. 
        !          7177: The mailbox address for this mailing list is 
        !          7178: 
        !          7179:        frnzlist@colostate
        !          7180: 
        !          7181: Please note that this is a CSnet address. Thank you,
        !          7182: 
        !          7183:                                                    Joe Varghese
        !          7184:                                                    varghese@colostate
        !          7185: 
        !          7186: 
        !          7187: From [email protected]  Sun Jun  3 19:15:03 1984
        !          7188: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7189:        id AA07648; Sun, 3 Jun 84 19:15:03 pdt
        !          7190: Received: from CMU-CS-G.ARPA (cmu-cs-g.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.27)
        !          7191:        id AA24832; Sun, 3 Jun 84 19:13:42 pdt
        !          7192: Date: 3 Jun 1984 22:02-EST
        !          7193: From: [email protected]
        !          7194: Subject: Please add my name to the list
        !          7195: To: FRANZ-FRIENDS@BERKELEY
        !          7196: Message-Id: <455162572/trk@CMU-CS-G>
        !          7197: 
        !          7198: Please add my name to the FRANZ-FRIENDS list.
        !          7199:                                                        -Todd K.
        !          7200: 
        !          7201: From [email protected]  Sun Jun  3 23:24:19 1984
        !          7202: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7203:        id AA09575; Sun, 3 Jun 84 23:24:19 pdt
        !          7204: Received: from Xerox.ARPA (xerox.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.27)
        !          7205:        id AA27487; Sun, 3 Jun 84 23:22:53 pdt
        !          7206: Message-Id: <[email protected]>
        !          7207: Received: from Semillon.ms by ArpaGateway.ms ; 03 JUN 84 23:22:56 PDT
        !          7208: Date: 3 Jun 84 23:22 PDT
        !          7209: From: [email protected]
        !          7210: Subject: This is a test
        !          7211: To: Franz-Friends@BERKELEY
        !          7212: 
        !          7213: Sorry to bother you -- this is only a test of correct forwarding on this mailing list.
        !          7214: 
        !          7215: 
        !          7216: From @MIT-MC:[email protected]  Mon Jun 18 17:09:37 1984
        !          7217: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7218:        id AA21265; Mon, 18 Jun 84 17:09:37 pdt
        !          7219: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31)
        !          7220:        id AA19453; Mon, 18 Jun 84 17:07:25 pdt
        !          7221: Message-Id: <[email protected]>
        !          7222: Date: 18 Jun 1984 12:48:57-EDT
        !          7223: From: Simon.Lowenfeld@CMU-RI-ISL1
        !          7224: Subject: old messages
        !          7225: Apparently-To: <franz-friends@UCB-VAX>
        !          7226: 
        !          7227: Is there some kind of archive for old postings?
        !          7228: I am interested in the Franz/T argument
        !          7229: from earlier this year.
        !          7230: 
        !          7231: 
        !          7232: From [email protected]  Tue Jun 19 07:36:37 1984
        !          7233: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7234:        id AA01983; Tue, 19 Jun 84 07:36:37 pdt
        !          7235: Received: from ARDC (ardc.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31)
        !          7236:        id AA01762; Tue, 19 Jun 84 07:34:31 pdt
        !          7237: Message-Id: <[email protected]>
        !          7238: Date:     Tue, 19 Jun 84 10:31:27 EDT
        !          7239: From: William K. Cadwallender (LCWSL) <[email protected]>
        !          7240: To: franz-friends@BERKELEY
        !          7241: Subject:  Franz for VAX730
        !          7242: 
        !          7243:        We are about to purchase a VAX730 with BSD4.2 UNIX. Has anyone out thereheard of a port of Franz, or ANY LISP to a 730? Please reply to the net or directly to wkc@ARDC.
        !          7244:                        Bill Cadwallender (wkc@ARDC)
        !          7245: 
        !          7246: From RZ@MIT-MC  Thu Jun 21 19:26:57 1984
        !          7247: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7248:        id AA08546; Thu, 21 Jun 84 19:26:57 pdt
        !          7249: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31)
        !          7250:        id AA27996; Thu, 21 Jun 84 19:24:37 pdt
        !          7251: Message-Id: <[email protected]>
        !          7252: Date: 21 June 1984 22:28-EDT
        !          7253: From: Richard E. Zippel <RZ@MIT-MC>
        !          7254: Subject:  MIT flavors
        !          7255: To: franz-friends@BERKELEY
        !          7256: Cc: zymelman@MITRE, smh@MIT-VAX
        !          7257: In-Reply-To: Msg of 21 Jun 1984  9:19:16 EDT () from Ari Zymelman <m13676 at mitre>
        !          7258: 
        !          7259: I am happy to report than the MIT flavor system is finally available.  I
        !          7260: won't try to correct the numerous bits of misinformation that have been
        !          7261: spread about this other than to say that the MIT flavor system can now be
        !          7262: freely distributed, if it is not used for profit, and the MIT copyrights are
        !          7263: maintained in the sources.  Berkeley has a copy of the most recent version
        !          7264: of the code and should include it in their standard distributions shortly.
        !          7265: 
        !          7266: 
        !          7267: From hoey@nrl-aic  Wed Jun 27 14:24:24 1984
        !          7268: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7269:        id AA19372; Wed, 27 Jun 84 14:24:24 pdt
        !          7270: Received: from nrl-aic (nrl-aic.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31)
        !          7271:        id AA13744; Wed, 27 Jun 84 14:21:16 pdt
        !          7272: Message-Id: <[email protected]>
        !          7273: Date: 27 Jun 1984 16:42-EDT
        !          7274: From: Dan Hoey <hoey@NRL-AIC>
        !          7275: Subject: Incorrect "make fromasm" in 68k franz 38.91
        !          7276: To: franz-friends@BERKELEY
        !          7277: Cc: dejong@nrl-aic, franz-bugs@BERKELEY
        !          7278: 
        !          7279: Problem:
        !          7280: The "make fromasm" option for franz installation on a 68k does not work
        !          7281: as distributed.
        !          7282: 
        !          7283: Diagnosis:
        !          7284: The assembler is used to convert *.s files into *.o.  But the output of
        !          7285: as defaults to "a.out" and is not overridden, so no *.o files are
        !          7286: produced.
        !          7287: 
        !          7288: Fixes:
        !          7289: Specify the output file in the fromasm: option in lisplib/Makefile and
        !          7290: liszt/68k/Makefile.
        !          7291: 
        !          7292: In lisplib/Makefile, and (if make copylibrary has been done) in
        !          7293: /usr/lib/lisp/Makefile, change
        !          7294: 
        !          7295: <      for i in *.s; do echo $$i; ${LibDir}/as $$i; done
        !          7296: ----
        !          7297: >      for i in *.s; do echo $$i; \
        !          7298: >      ${LibDir}/as $$i -o `basename $$i .s`.o; done
        !          7299: 
        !          7300: In liszt/68k/Makefile, change
        !          7301: 
        !          7302: <      for i in *.s; do echo $$i; as $$i; done
        !          7303: ----
        !          7304: >      for i in *.s; do echo $$i; \
        !          7305: >      as $$i -o `basename $$i .s`.o; done
        !          7306: 
        !          7307: Bugs:
        !          7308: 1.  One version specifies ${LibDir}/as, the other uses vanilla as.  I
        !          7309:     didn't change it, but perhaps the liszt/68k/Makefile should also
        !          7310:     specify ${LibDir}/as.
        !          7311: 
        !          7312: 2.  Isn't there a cleaner way of doing this?  Can a ".s.o:" rule be
        !          7313:     specified?
        !          7314: 
        !          7315: Dan
        !          7316: 
        !          7317: From @MIT-MC:[email protected]  Mon Jul  9 22:06:26 1984
        !          7318: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7319:        id AA17486; Mon, 9 Jul 84 22:06:26 pdt
        !          7320: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31)
        !          7321:        id AA24170; Mon, 9 Jul 84 22:05:52 pdt
        !          7322: Message-Id: <[email protected]>
        !          7323: Date: 9 Jul 1984 21:10:53-EDT
        !          7324: From: Richard.Wallace@CMU-CS-H
        !          7325: Subject: Bell quote
        !          7326: Apparently-To: <franz-friends@UCB-VAX>
        !          7327: 
        !          7328: Lisp, designed about 1960 by John McCarthy, impressed me so 
        !          7329: much that I included the critcal data access primitives
        !          7330: in the architecture of the DEC System 10 in 1965 (still
        !          7331: about the fastest Lisp computer).
        !          7332: 
        !          7333:                         - C. Gordon Bell
        !          7334:                           IEEE Computer
        !          7335:                           June, 1984
        !          7336: 
        !          7337: 
        !          7338: 
        !          7339: From kanderso@bbn-vax  Tue Jul 10 11:41:39 1984
        !          7340: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7341:        id AA25755; Tue, 10 Jul 84 11:41:39 pdt
        !          7342: Received: from bbn-vax (bbn-vax.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31)
        !          7343:        id AA06454; Tue, 10 Jul 84 11:29:28 pdt
        !          7344: Message-Id: <[email protected]>
        !          7345: Date: Tue, 10 Jul 84 14:28 EDT
        !          7346: From: Ken Anderson <kanderso@bbn-vax>
        !          7347: Subject: Problem compiling flavors in Opus 83.79
        !          7348: To: franz-friends@BERKELEY
        !          7349: Cc: franz-composers@BERKELEY, lbagnall@bbn, jchung@bbn
        !          7350: 
        !          7351: When trying to make flavors from the version in pub/lib on ucbkim,
        !          7352: liszt complains about calling an undefined function e-sub2.  Here is
        !          7353: the output of my makefile.  Any suggestions?
        !          7354: 
        !          7355: liszt -a flavorm
        !          7356: Compilation begins with Liszt vax version 8.36
        !          7357: source: flavorm.l, result: flavorm.o
        !          7358: [fasl /usr/lib/lisp/machacks.o]
        !          7359: [autoload /usr/lib/lisp/struct]
        !          7360: [fasl /usr/lib/lisp/struct.o]
        !          7361: flavor-plist
        !          7362: flavor-init-keywords
        !          7363: flavor-initable-instance-variables
        !          7364: flavor-settable-instance-variables
        !          7365: flavor-gettable-instance-variables
        !          7366: flavor-default-handler
        !          7367: flavor-which-operations
        !          7368: flavor-depends-on-all
        !          7369: flavor-includes
        !          7370: flavor-depended-on-by
        !          7371: flavor-depends-on
        !          7372: flavor-method-table
        !          7373: flavor-all-instance-variables
        !          7374: flavor-local-instance-variables
        !          7375: flavor-name
        !          7376: flavor-method-hash-table
        !          7377: flavor-bindings
        !          7378: make-flavor
        !          7379: alter-flavor
        !          7380: instancep
        !          7381: instancep::cmacro:g00079
        !          7382: send
        !          7383: lexpr-send
        !          7384: send-self
        !          7385: lexpr-send-self
        !          7386: g00100::send
        !          7387: %Note: flavorm.l: Compilation complete
        !          7388: %Note: flavorm.l:  Time: Real: 0:32, CPU: 0:11.10, GC: 0:0.00 for 0 gcs
        !          7389: %Note: flavorm.l: Assembly begins
        !          7390: %Note: flavorm.l: Assembly completed successfully
        !          7391: liszt -a flavors
        !          7392: Compilation begins with Liszt vax version 8.36
        !          7393: source: flavors.l, result: flavors.o
        !          7394: [fasl /usr/lib/lisp/machacks.o]
        !          7395: [fasl /usr/lib/lisp/lmhacks.o]
        !          7396: [fasl flavorm.o]
        !          7397: defflavor
        !          7398: defun-method
        !          7399: [autoload /usr/lib/lisp/struct]
        !          7400: [fasl /usr/lib/lisp/struct.o]
        !          7401: instance-variable-boundp
        !          7402: instance-flavor
        !          7403: instance-flavor::cmacro:g00068
        !          7404: instance-function
        !          7405: instance-function::cmacro:g00075
        !          7406: get-flavor
        !          7407: instance-typep
        !          7408: flavor-additional-instance-variables
        !          7409: flavor-additional-instance-variables::cmacro:g00101
        !          7410: flavor-instance-variable-initializations
        !          7411: flavor-instance-variable-initializations::cmacro:g00108
        !          7412: flavor-remaining-default-plist
        !          7413: flavor-remaining-default-plist::cmacro:g00115
        !          7414: flavor-remaining-init-keywords
        !          7415: flavor-remaining-init-keywords::cmacro:g00122
        !          7416: flavor-all-initable-instance-variables
        !          7417: flavor-all-initable-instance-variables::cmacro:g00129
        !          7418: g00133::flavor
        !          7419: Undefined function called from compiled code   e-sub2
        !          7420: ?Error: flavors.l: : Lisp error during compilation
        !          7421: make: *** Error code 1 ***
        !          7422: 
        !          7423: From jkf@ucbmike  Tue Jul 10 12:18:28 1984
        !          7424: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7425:        id AA27111; Tue, 10 Jul 84 12:18:28 pdt
        !          7426: Received: from ucbmike.ARPA by UCB-VAX.ARPA (4.28/4.31)
        !          7427:        id AA07135; Tue, 10 Jul 84 12:06:28 pdt
        !          7428: Date: Tue, 10 Jul 84 12:07:07 pdt
        !          7429: From: John Foderaro (on an sun) <jkf@ucbmike>
        !          7430: Message-Id: <[email protected]>
        !          7431: Received: by ucbmike.ARPA (4.24ucb/3.5)
        !          7432:        id AA03780; Tue, 10 Jul 84 12:07:07 pdt
        !          7433: To: kanderso@bbn-vax, franz-friends@BERKELEY
        !          7434: Subject: Re: Problem compiling flavors in Opus 83.79
        !          7435: Cc: jchung@bbn, lbagnall@bbn, franz-composers@BERKELEY
        !          7436: In-Reply-To: Your message of Tue, 10 Jul 84 14:28 EDT
        !          7437: 
        !          7438:  This bug was fixed a while back, but apparently after you got your lisp
        !          7439: distribution.  You should get the latest lisp distribution.
        !          7440: 
        !          7441: 
        !          7442: 
        !          7443: From @MIT-MC:[email protected]  Tue Jul 10 13:29:15 1984
        !          7444: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7445:        id AA28822; Tue, 10 Jul 84 13:29:15 pdt
        !          7446: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31)
        !          7447:        id AA08350; Tue, 10 Jul 84 13:28:25 pdt
        !          7448: Message-Id: <[email protected]>
        !          7449: Date: 10 Jul 1984 13:46:05-EDT
        !          7450: From: Suzanne.Woolf@CMU-CS-SPICE
        !          7451: Subject: pretty printer
        !          7452: Apparently-To: <franz-friends@UCB-VAX>
        !          7453: 
        !          7454: Does anyone out there know of a well-documented pretty printer for lisp?  A
        !          7455: friend of mine needs one that can be hacked up.  Franz Lisp would be ideal,
        !          7456: but anything similar is fine.
        !          7457: 
        !          7458: Please send replies to:
        !          7459: Jaffe@cmu-psy-a
        !          7460: 
        !          7461: Thanks.
        !          7462: 
        !          7463: 
        !          7464: 
        !          7465: From @MIT-MC:smh@MIT-EMS  Tue Jul 10 15:29:20 1984
        !          7466: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7467:        id AA02481; Tue, 10 Jul 84 15:29:20 pdt
        !          7468: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31)
        !          7469:        id AA10890; Tue, 10 Jul 84 15:28:30 pdt
        !          7470: Message-Id: <[email protected]>
        !          7471: Date: 10 Jul 1984 18:24:02-EDT
        !          7472: From: <smh@mit-ems@mit-mc>
        !          7473: To: franz-friends@BERKELEY, kanderso@bbnvax
        !          7474: Subject: Re: Problem compiling flavors in Opus 83.79
        !          7475: 
        !          7476: A very quick check reveals the following suspiciousness:  The function
        !          7477: in flavors.l being compiled when the failure occurs is apparently:
        !          7478: 
        !          7479: (DEFUN (FLAVOR :NAMED-STRUCTURE-INVOKE) (OPERATION &OPTIONAL SELF &REST ARGS)
        !          7480:   (SELECTQ OPERATION
        !          7481:           (:WHICH-OPERATIONS '(:PRINT-SELF :DESCRIBE))
        !          7482:           (:PRINT-SELF
        !          7483:            (SI:PRINTING-RANDOM-OBJECT (SELF (CAR ARGS))
        !          7484:               (FORMAT (CAR ARGS) "FLAVOR ~S" (FLAVOR-NAME SELF))))
        !          7485:           (:DESCRIBE (DESCRIBE-FLAVOR SELF))
        !          7486:           (OTHERWISE
        !          7487:            (FERROR NIL "~S UNKNOWN OPERATION FOR FLAVOR" OPERATION))))
        !          7488: 
        !          7489: This is the first appearance in the file of defun with a "function
        !          7490: spec" instead of a symbol as the first argument.  This is a Lisp
        !          7491: Machine hack which basically means to squirrel the functional object
        !          7492: away under the :NAMED-STRUCTURE-INVOKE property of the plist of FLAVOR.
        !          7493: (More precisely, the first arg is the Maclisp compatability syntax for
        !          7494: (:PROPERTY FLAVOR :NAMED-STRUCTURE-INVOKE) ...)
        !          7495: 
        !          7496: Liszt could be choking as it tries to store into the
        !          7497: function-definition slot of something other than a symbol.  Such
        !          7498: abilities of defun are not documented in Franz, and it might be that
        !          7499: your defun macro in common0.l has not been extended for such usage.
        !          7500: Locally it is defined as follows:
        !          7501: 
        !          7502: ;--- defun
        !          7503: ; maclisp style function defintion
        !          7504: ;
        !          7505: (def defun
        !          7506:    (macro (l)
        !          7507:       (prog (name type arglist body specind specnam)
        !          7508:         (setq name (cadr l) l (cddr l))
        !          7509:         (cond ((dtpr name)
        !          7510:                (cond ((memq (cadr name) '(macro expr fexpr lexpr))
        !          7511:                       (setq l (cons (cadr name) l)
        !          7512:                             name (car name)))
        !          7513:                      (t (setq specnam (car name)
        !          7514:                               specind (cadr name)
        !          7515:                               name (concat (gensym) "::" specnam))))))
        !          7516:         (cond ((null (car l)) (setq type 'lambda))
        !          7517:               ((eq 'fexpr (car l)) (setq type 'nlambda l (cdr l)))
        !          7518:               ((eq 'expr (car l))  (setq type 'lambda l (cdr l)))
        !          7519:               ((eq 'macro (car l)) (setq type 'macro l (cdr l)))
        !          7520:               ((atom (car l))
        !          7521:                (setq type 'lexpr
        !          7522:                      l (nconc (list (list (car l)))
        !          7523:                               (cdr l))))
        !          7524:               (t (setq type 'lambda)))
        !          7525:         (setq body (list 'def name (cons type l)))
        !          7526:         (cond (specnam
        !          7527:                  (return (list 'progn ''compile
        !          7528:                                body
        !          7529:                                (list 'putprop
        !          7530:                                      (list 'quote specnam)
        !          7531:                                      (list 'getd
        !          7532:                                            (list 'quote name))
        !          7533:                                      (list 'quote specind)))))
        !          7534:               (t (return body))))))
        !          7535: 
        !          7536: You could also check by invoking liszt without arguments and then
        !          7537: asking it
        !          7538:        (testmac '(defun (foo bar) () (hello goodbye)))
        !          7539: and seeing if it properly generates
        !          7540:        (progn 'compile (defun ... ) (putprop ... ))
        !          7541: 
        !          7542: On another matter, I have recently been making a number of minor
        !          7543: bugfixes to the flavor and various other MIT compatibility packages.
        !          7544: These files come indirecly from Maclisp or Lisp Machines, and the ports
        !          7545: have generally never been exercised sufficiently to check all the
        !          7546: obscure features.  These fixes postdate the versions Rich Zippel
        !          7547: recently transmitted to Berkeley.  I will shortly distribute the
        !          7548: new versions to Berkeley.
        !          7549: 
        !          7550: Believe it or not, the flavor system really does work under Franz.
        !          7551: So do hash tables, defstruct, format, etc.  I use them every day.
        !          7552: 
        !          7553: Steve Haflich, MIT Experimental Music Studio
        !          7554: smh@mit-ems@mit-mc
        !          7555: {decvax!genrad, ihnp4}!mit-eddie!smh
        !          7556: 
        !          7557: 
        !          7558: From abar@ucbernie  Tue Jul 10 23:04:16 1984
        !          7559: Received: from ucbernie.ARPA by ucbkim.ARPA (4.28/4.27)
        !          7560:        id AA08764; Tue, 10 Jul 84 23:04:16 pdt
        !          7561: Received: by ucbernie.ARPA (4.28/4.30)
        !          7562:        id AA06176; Tue, 10 Jul 84 23:02:56 pdt
        !          7563: Date: Tue, 10 Jul 84 23:02:56 pdt
        !          7564: From: abar@ucbernie (Robert Abarbanel)
        !          7565: Message-Id: <[email protected]>
        !          7566: To: franz-friends@ucbernie
        !          7567: Subject: &optional, &rest, &aux
        !          7568: 
        !          7569: Any way to get these &args to work without compilation... that is, when
        !          7570: a function is working interpreted?
        !          7571: 
        !          7572: From kanderso@bbn-vax  Wed Jul 11 12:25:52 1984
        !          7573: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7574:        id AA17391; Wed, 11 Jul 84 12:25:52 pdt
        !          7575: Received: from bbn-vax (bbn-vax.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31)
        !          7576:        id AA19991; Wed, 11 Jul 84 12:24:54 pdt
        !          7577: Message-Id: <[email protected]>
        !          7578: Date: Wed, 11 Jul 84 15:24 EDT
        !          7579: From: Ken Anderson <kanderso@bbn-vax>
        !          7580: Subject: bugs in hash.l and array.l
        !          7581: To: franz-friends@BERKELEY
        !          7582: Cc: lbagnall@bbn, jchung@bbn
        !          7583: 
        !          7584: To get Flavors working in Opus 38.91 you will need to fix a bug in
        !          7585: lisplib/hash.l.  Change all occurances of "getlength" to "vsize".
        !          7586: 
        !          7587: Although unrelated to Flavors, there are several problems with
        !          7588: the functions, fillarray fillarrayarray and listarray in
        !          7589: lisplib/array.l.  Here is an ed script produced by diff:
        !          7590: 
        !          7591: 285,286c
        !          7592:               (cond ((or (arrayp arr)          ; KRA
        !          7593:                          (and (symbolp arr) (arrayp (setq arr (getd arr))))))
        !          7594: .
        !          7595: 282,283c
        !          7596:     (lexpr (n)
        !          7597:           (prog (arr size typ ret newv)
        !          7598: .
        !          7599: 280a
        !          7600: ; KRA 83-11-2:  Arrays need not be symbols.
        !          7601: .
        !          7602: 279c
        !          7603:                    (replace (arrayref arrto i) (arrayref arrfrom i)))
        !          7604:                (return arrto))))       ; KRA
        !          7605: .
        !          7606: 270c
        !          7607:                    (cond ((cdr ls) (setq ls (cdr ls)))))
        !          7608:                (return arr))))         ; KRA
        !          7609: .
        !          7610: 244a
        !          7611: ; KRA 83-11-2:  Fillarray  and fillarrayarray should return the array!
        !          7612: .
        !          7613: 
        !          7614: From jkf@ucbmike  Wed Jul 11 13:43:49 1984
        !          7615: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7616:        id AA20014; Wed, 11 Jul 84 13:43:49 pdt
        !          7617: Received: from ucbmike.ARPA by UCB-VAX.ARPA (4.28/4.31)
        !          7618:        id AA21120; Wed, 11 Jul 84 13:32:32 pdt
        !          7619: Date: Wed, 11 Jul 84 13:32:52 pdt
        !          7620: From: John Foderaro (on an sun) <jkf@ucbmike>
        !          7621: Message-Id: <[email protected]>
        !          7622: Received: by ucbmike.ARPA (4.24ucb/3.5)
        !          7623:        id AA05402; Wed, 11 Jul 84 13:32:52 pdt
        !          7624: To: franz-friends@BERKELEY
        !          7625: Subject: Re: &optional, &rest, &aux
        !          7626: Cc: franz-composers@BERKELEY
        !          7627: In-Reply-To: Your message of 11 Jul 1984 15:12:07-EDT
        !          7628: 
        !          7629:  The problem with the &optional and &rest was due to abar using the
        !          7630: cmufile package, which redefines 'def' and doesn't look for those
        !          7631: keywords.
        !          7632: 
        !          7633: 
        !          7634: 
        !          7635: From [email protected]  Wed Jul 11 20:29:28 1984
        !          7636: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7637:        id AA25212; Wed, 11 Jul 84 20:29:28 pdt
        !          7638: Received: from CMU-CS-G.ARPA (cmu-cs-g.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31)
        !          7639:        id AA28089; Wed, 11 Jul 84 20:28:27 pdt
        !          7640: Reply-To: [email protected]
        !          7641: Received: by cadre.UUCP (4.12/3.14)
        !          7642:        id AA22394; Wed, 11 Jul 84 23:22:09 edt
        !          7643: Date: Wed, 11 Jul 84 23:22:09 edt
        !          7644: From: cadre!sm (Sean McLinden)
        !          7645: Message-Id: <[email protected]>
        !          7646: To: [email protected]
        !          7647: Subject: redefinition of existing flavors
        !          7648: Cc: franz-friends@BERKELEY
        !          7649: 
        !          7650: 
        !          7651:  As distributed by Berkeley, the flavors package on Opus 38.89
        !          7652:  appears to work in all cases except when a flavor is redefined
        !          7653:  and perform-flavor-redefinition is invoked. The problem, I
        !          7654:  thought, was in copy-hunk-contents, since the default structures
        !          7655:  (and therefore flavors), in Opus 38.89, are VECTORS, not HUNKS.
        !          7656:  However, modifying copy-hunk-contents to copy VECTORS did not,
        !          7657:  completely, fix the problem (i.e, the first modification after
        !          7658:  redefinition of copy-hunk-contents caused an error, the second
        !          7659:  worked but then describe did not work for old instances of the
        !          7660:  flavor).
        !          7661: 
        !          7662:  Before delving into code with which I am unfamiliar are there
        !          7663:  any differences between Opus 38.89 and 38.91 which might explain
        !          7664:  this?
        !          7665: 
        !          7666:  Sean McLinden
        !          7667:  Decision Systems Lab
        !          7668:  University of Pittsburgh
        !          7669: 
        !          7670: 
        !          7671: From harrison@nrl-aic  Thu Jul 12 07:15:39 1984
        !          7672: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7673:        id AA28967; Thu, 12 Jul 84 07:15:39 pdt
        !          7674: Received: from nrl-aic (nrl-aic.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31)
        !          7675:        id AA07280; Thu, 12 Jul 84 07:14:50 pdt
        !          7676: Date: 12 Jul 1984 10:08-EDT
        !          7677: From: Patrick Harrison <harrison@NRL-AIC>
        !          7678: Subject: Lisp for Honeywell 6060 DPS-8
        !          7679: To: ailist@sri-ai
        !          7680: Cc: franz-friends@BERKELEY
        !          7681: Message-Id: <84/07/12 1008.550@NRL-AIC>
        !          7682: 
        !          7683: 
        !          7684:      Am looking for information on current versions of LISP (FranzLisp,
        !          7685: MacLisp) running in a Honeywell 6060, DPS-8 environment. Would also
        !          7686: like to implement OPS5 on same.  Address:
        !          7687:    
        !          7688:                         Dr. Patrick Harrison
        !          7689:                         Computer Science Department
        !          7690:                         U.S. Naval Academy
        !          7691:                         Annapolis, Maryland 21402.
        !          7692:  
        !          7693: Responses to above address or <harrison@nrl-aic>
        !          7694: 
        !          7695: From @MIT-MC:mhs@MIT-HTVAX  Tue Jul 17 12:45:10 1984
        !          7696: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7697:        id AA00659; Tue, 17 Jul 84 12:45:10 pdt
        !          7698: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31)
        !          7699:        id AA02214; Mon, 16 Jul 84 16:28:19 pdt
        !          7700: Message-Id: <[email protected]>
        !          7701: Date: 16 Jul 1984 16:32:48-EDT
        !          7702: From: mhs@mit-htvax@mit-mc
        !          7703: To: franz-friends@berkeley@mit-mc
        !          7704: Subject: Small bug in flavors.l
        !          7705: Cc: mhs@mit-htvax@mit-mc
        !          7706: 
        !          7707:     The following test demonstrates a problem with flavors.l as it is
        !          7708: distributed with Release 38.91.  (The "a" after the minor number indicates a
        !          7709: couple of changes made locally - mostly involving preloading struct, loop and
        !          7710: such.  flavors.l wasn't touched.)
        !          7711: 
        !          7712:     The problem is that simple method combination doesn't work for trivial
        !          7713: reasons.  A fix is suggested below.  As the example shows, the combined method
        !          7714: for :PROGN combination is wrong. (:OR, :LIST ... all have the same problem).
        !          7715: 
        !          7716: Franz Lisp, Opus 38.91a (with Zetalisp compatability package)
        !          7717: -> (defflavor object
        !          7718:      (color)
        !          7719:      ()
        !          7720:      :gettable-instance-variables
        !          7721:      :settable-instance-variables
        !          7722:      :initable-instance-variables
        !          7723:      (:method-combination (:progn :base-flavor-last :test1)))
        !          7724: object
        !          7725: -> (defmethod (object :test1) ()
        !          7726:      (format t "~&object :test1~%"))
        !          7727: (:method object :test1)
        !          7728: -> (defflavor car
        !          7729:      (price)
        !          7730:      (object)
        !          7731:      :gettable-instance-variables
        !          7732:      :settable-instance-variables
        !          7733:      :initable-instance-variables)
        !          7734: car
        !          7735: -> (defmethod (car :test1) ()
        !          7736:      (format t "~&car :test1~%"))
        !          7737: (:method car :test1)
        !          7738: -> (setq car (make-instance 'car))
        !          7739: #<car 591928>
        !          7740: -> (send car ':test1)
        !          7741: |Error:| eval: Undefined function  :progn
        !          7742: <1>: (debug)
        !          7743: 
        !          7744: <------debug------>
        !          7745: 
        !          7746: :bk
        !          7747: 
        !          7748: <------debug------>   <--- you are here
        !          7749: (eval (debug))
        !          7750: (break-err-handler (|ER%undef| 0 t |eval: Undefined function | :progn))
        !          7751: (:progn (lexpr-funcall (function car-test1-method) .daemon-caller-args.) (lexpr-funcall (function object-test1-method) .daemon-caller-args.))
        !          7752: ((lambda (.daemon-caller-args.) .daemon-caller-args. (:progn (lexpr-funcall (function car-test1-method) .daemon-caller-args.) (lexpr-funcall (function object-test1-method) .daemon-caller-args.))) (do ((g00005 g00004 (|1-| g00005)) (g00006 () (cons (arg g00005) g00006))) ((< g00005 1) g00006)))
        !          7753: ,
        !          7754: ,
        !          7755: ,
        !          7756: (send car (quote :test1))
        !          7757: (eval (send car (quote :test1)))
        !          7758: <bottom of stack>
        !          7759: 
        !          7760:     Look at the combined method:
        !          7761: 
        !          7762: (:progn
        !          7763:      (lexpr-funcall (function car-test1-method) .daemon-caller-args.)
        !          7764:      (lexpr-funcall (function object-test1-method) .daemon-caller-args.))
        !          7765: 
        !          7766:     I think the problem is caused by the fact that in the older package system,
        !          7767: the keyword package inherited from the global package.  Thus :PROGN (in the
        !          7768: keyword package) was the same atom as PROGN (in global).  However, this isn't
        !          7769: true in Franz.  :PROGN isn't EQ to PROGN, and it shouldn't be.  (The same
        !          7770: problem occurs for all of the other simple method combination types too, e.g.
        !          7771: :OR, :LIST ...).  One possible fix is to add an alist
        !          7772: (SIMPLE-METHOD-COMBINATION-TYPE-ALIST) to store the correspondence between
        !          7773: :PROGN and PROGN, like so:  (I just tested this code locally and it seemed to
        !          7774: work.)
        !          7775: 
        !          7776: #+franz
        !          7777: (DEFCONST SIMPLE-METHOD-COMBINATION-TYPE-ALIST
        !          7778:         '((:PROGN . PROGN)
        !          7779:           (:AND . AND)
        !          7780:           (:OR . OR)
        !          7781:           (:MAX . MAX)
        !          7782:           (:MIN . MIN)
        !          7783:           (:+ . +)
        !          7784:           (:APPEND . APPEND)
        !          7785:           (:NCONC . NCONC)))
        !          7786: 
        !          7787: (DEFUN SIMPLE-METHOD-COMBINATION (FL MAGIC-LIST-ENTRY)
        !          7788:   (LET ((METHODS (GET-CERTAIN-METHODS MAGIC-LIST-ENTRY NIL NIL NIL NIL))
        !          7789:        (WRAPPERS-P (SPECIALLY-COMBINED-METHODS-PRESENT MAGIC-LIST-ENTRY)))
        !          7790:     (OR (AND (NOT WRAPPERS-P) (NULL (CDR METHODS)) (CAR METHODS))
        !          7791:        (HAVE-COMBINED-METHOD FL MAGIC-LIST-ENTRY)
        !          7792:        (MAKE-COMBINED-METHOD FL MAGIC-LIST-ENTRY
        !          7793:            ;; In the old package system, :progn maps to progn trivially
        !          7794:            ;; via package inheritance (keyword inherits from global).
        !          7795:            ;; In Franz, we use an alist to implement the mapping.
        !          7796:           (CONS #-franz (CADR MAGIC-LIST-ENTRY)
        !          7797:                  #+franz (CDR (ASSQ (CADR MAGIC-LIST-ENTRY) 
        !          7798:                                  SIMPLE-METHOD-COMBINATION-TYPE-ALIST))
        !          7799:                         (MAPCAR 'METHOD-CALL
        !          7800:                                 METHODS))))))
        !          7801: 
        !          7802: 
        !          7803: From "Gladd Tom"@LLL-MFE.ARPA  Wed Jul 18 10:44:03 1984
        !          7804: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7805:        id AA00765; Wed, 18 Jul 84 10:44:03 pdt
        !          7806: Received: from LLL-MFE.ARPA (lll-mfe.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31)
        !          7807:        id AA01412; Wed, 18 Jul 84 10:42:20 pdt
        !          7808: Message-Id: <[email protected]>
        !          7809: Date: Wed, 18 Jul 84 10:35 PDT
        !          7810: From: "Gladd Tom"@LLL-MFE.ARPA
        !          7811: Subject: join list 619-453-6580
        !          7812: To: franz-friends@BERKELEY
        !          7813: 
        !          7814: i would like to join your list. i am very interested in list in general
        !          7815: and have been trying to learn it in a near vacuum (small hi-tech company
        !          7816: in sandiego. i am especially interested in advanced coding techniques
        !          7817: (at least beyond the standard texts). my background is theoretical
        !          7818: plasma physics. i have used and am very interested in macsyma.
        !          7819: my address is "gladd tom%cma"@lll-mfe.arpa
        !          7820: 
        !          7821: From @MIT-MC:[email protected]  Wed Jul 25 10:06:41 1984
        !          7822: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7823:        id AA08698; Wed, 25 Jul 84 10:06:41 pdt
        !          7824: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.33)
        !          7825:        id AA19747; Wed, 25 Jul 84 10:05:06 pdt
        !          7826: Message-Id: <[email protected]>
        !          7827: Date: 25 Jul 1984 12:30:25-EDT
        !          7828: From: Philip.Kasprzyk@CMU-RI-ISL2
        !          7829: Subject: Lisp Speed Benchmarks
        !          7830: Apparently-To: <franz-friends@UCB-VAX>
        !          7831: 
        !          7832: ~v
        !          7833: I am interested in determining the absolute speed of execution of a lisp
        !          7834: system. I realize that this is a complicated task that is application
        !          7835: and implementation dependant. Nevertheless I am seeking the following:
        !          7836: 
        !          7837: 1) A "gibson mix" style benchmark for lisp based systems.
        !          7838: 
        !          7839: 2) Any data that experienced users of lisp may have regarding performance.
        !          7840:     (I don't care what machine or dialect of lisp is reported)
        !          7841: 
        !          7842: 3) Any method or program which translates a lisp program into another
        !          7843:     target high level language with execution speed as its objective.
        !          7844:        (I don't mean a normal lisp compiler)
        !          7845: 
        !          7846: Can anyone out there help me? 
        !          7847: 
        !          7848: If so send mail to pmk@isl2.
        !          7849: 
        !          7850: 
        !          7851: 
        !          7852: From mab@aids-unix  Fri Jul 27 14:35:21 1984
        !          7853: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7854:        id AA29865; Fri, 27 Jul 84 14:35:21 pdt
        !          7855: Received: from aids-unix (aids-unix.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.33)
        !          7856:        id AA04068; Fri, 27 Jul 84 14:33:40 pdt
        !          7857: Message-Id: <[email protected]>
        !          7858: Date: 27 Jul 84 14:23:47 PDT (Fri)
        !          7859: From: Mike Brzustowicz <mab@aids-unix>
        !          7860: Subject: Benchmarks
        !          7861: To: franz-friends@BERKELEY
        !          7862: 
        !          7863: Does anyone have any small LISP programs that can be abused as benchmarks?
        !          7864: (They need to be small is source only.)  I need some very soon.  Thanks!
        !          7865: 
        !          7866: -Mike
        !          7867: <mab@aids-unix>
        !          7868: 
        !          7869: From [email protected]  Fri Jul 27 15:15:06 1984
        !          7870: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7871:        id AA01124; Fri, 27 Jul 84 15:15:06 pdt
        !          7872: Received: from Xerox.ARPA (xerox.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.33)
        !          7873:        id AA04900; Fri, 27 Jul 84 15:13:09 pdt
        !          7874: Message-Id: <[email protected]>
        !          7875: Received: from Semillon.ms by ArpaGateway.ms ; 27 JUL 84 15:14:21 PDT
        !          7876: Date: 27 Jul 84 15:14 PDT
        !          7877: From: [email protected]
        !          7878: Subject: Re: Benchmarks
        !          7879: In-Reply-To: Mike Brzustowicz <[email protected]>'s message of 27 Jul
        !          7880:  84 14:23:47 PDT (Fri)
        !          7881: To: [email protected]
        !          7882: Cc: franz-friends@BERKELEY
        !          7883: 
        !          7884: Here's a good benchmark:
        !          7885: 
        !          7886: (defun nilret () nil)
        !          7887: 
        !          7888: this is a good test of how fast your lisp returns NIL.
        !          7889: 
        !          7890: I also like
        !          7891: 
        !          7892: (defun retjunk (x) (cond((junkp x)  'junk)
        !          7893:                                 ((cdr x) (retjunk (car x)))
        !          7894:                                 ((= (car x) 'junk) (retjunk (cons (cdr x) (cdr x))))
        !          7895:                                 (t (retjunk (cons 'junk x))))
        !          7896: 
        !          7897: (defun junkp (x) (equal (reverse (explode x)) (reverse (explode
        !          7898: 'junk))))
        !          7899: 
        !          7900: 
        !          7901: This benchmark measures how fast your lisp can return junk, executing
        !          7902: the retjunk function.
        !          7903: 
        !          7904: Both of the benchmarks have the adavantage that they are small and can
        !          7905: be abused as benchmarks.
        !          7906: 
        !          7907: From @USC-ECL.ARPA:BENSON@ECLD  Tue Jul 31 20:02:20 1984
        !          7908: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27)
        !          7909:        id AA21521; Tue, 31 Jul 84 20:02:20 pdt
        !          7910: Received: from USC-ECL.ARPA (usc-ecl.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.33)
        !          7911:        id AA02839; Tue, 31 Jul 84 20:00:29 pdt
        !          7912: Message-Id: <[email protected]>
        !          7913: Received: from ECLD by ECLA with ECLnet; Tue 31 Jul 84 19:56:31-PDT
        !          7914: Date: Tue 31 Jul 84 19:33:52-PDT
        !          7915: From: Eric Benson <BENSON@ECLD.#ECLnet>
        !          7916: Subject: Re: Lisp Speed Benchmarks
        !          7917: To: [email protected]
        !          7918: Cc: BENSON@ECLD.#ECLnet, Franz-Friends@BERKELEY
        !          7919: In-Reply-To: Message from "Philip.Kasprzyk@CMU-RI-ISL2" of Wed 25 Jul 84 09:30:25-PDT
        !          7920: 
        !          7921: There is a set of benchmarks which have been run on a variety of Lisp
        !          7922: systems which have been compiled by Richard Gabriel at Stanford.  You
        !          7923: should contact Paul Wieneke (PW@SU-AI) for more information.
        !          7924: -------
        !          7925: 
        !          7926: From narain@rand-unix  Wed Aug  1 12:31:21 1984
        !          7927: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          7928:        id AA00623; Wed, 1 Aug 84 12:31:21 pdt
        !          7929: Received: from rand-unix.ARPA (rand-unix.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.33)
        !          7930:        id AA00567; Wed, 1 Aug 84 12:29:40 pdt
        !          7931: Received: by rand-unix.ARPA; Wed, 1 Aug 84 11:04:30 pdt
        !          7932: From: Sanjai Narain <narain@rand-unix>
        !          7933: Message-Id: <[email protected]>
        !          7934: Date: 01 Aug 84 11:04:25 PDT (Wed)
        !          7935: To: franz-friends@BERKELEY
        !          7936: Subject: Fast recompiling
        !          7937: 
        !          7938: 
        !          7939: Often we have files consisting of large numbers of functions which are
        !          7940: compiled. Sometimes, just one of these functions needs to be changed. It
        !          7941: would be nice to recompile just this function, and copy already compiled
        !          7942: functions to produce a fresh version of the compiled file. Is there any
        !          7943: quick method of doing this in Franz Lisp i.e. is there an equivalent of
        !          7944: Interlisp's "recompile" function.
        !          7945: 
        !          7946: I would be grateful for your response.
        !          7947: 
        !          7948: -- Sanjai Narain
        !          7949: 
        !          7950: From fateman@ucbdali  Wed Aug  1 13:24:30 1984
        !          7951: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          7952:        id AA03438; Wed, 1 Aug 84 13:24:30 pdt
        !          7953: Received: from ucbdali.ARPA by UCB-VAX.ARPA (4.28/4.33)
        !          7954:        id AA01542; Wed, 1 Aug 84 13:06:01 pdt
        !          7955: Received: by ucbdali.ARPA (4.24/4.27)
        !          7956:        id AA00994; Wed, 1 Aug 84 13:07:35 pdt
        !          7957: Date: Wed, 1 Aug 84 13:07:35 pdt
        !          7958: From: fateman@ucbdali (Richard Fateman)
        !          7959: Message-Id: <[email protected]>
        !          7960: To: franz-friends@BERKELEY, narain@rand-unix
        !          7961: Subject: Re:  Fast recompiling
        !          7962: 
        !          7963: This would be an interesting feature, but it is complicated by the
        !          7964: possibility that the compilation environment is built up in a typical
        !          7965: large Franz system, by processing the whole file.  I think that the
        !          7966: interlisp situation is usually simpler.  
        !          7967:   For example, in recompiling Macsyma, sometimes a file itself or
        !          7968: function definitions in it do not change at all. A "macro definition"
        !          7969: file which is included in the compilation environment can, however, change
        !          7970: the generated code, substantially.
        !          7971:   Something like UNIX's "make" might be needed.
        !          7972: 
        !          7973: Alternatively, you can use smaller files...
        !          7974: 
        !          7975: From jkf@ucbmike  Thu Aug  2 16:10:04 1984
        !          7976: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          7977:        id AA16097; Thu, 2 Aug 84 16:10:04 pdt
        !          7978: Received: from ucbmike.ARPA by UCB-VAX.ARPA (4.28/4.33)
        !          7979:        id AA00501; Thu, 2 Aug 84 16:08:09 pdt
        !          7980: Date: Thu, 2 Aug 84 16:09:45 pdt
        !          7981: From: John Foderaro (on an sun) <jkf@ucbmike>
        !          7982: Message-Id: <[email protected]>
        !          7983: Received: by ucbmike.ARPA (4.24ucb/3.5)
        !          7984:        id AA01757; Thu, 2 Aug 84 16:09:45 pdt
        !          7985: To: franz-friends@BERKELEY
        !          7986: Subject: repeated messages
        !          7987: Cc: 
        !          7988: 
        !          7989:   I'm sorry about the repeated messages.  Our mailing machine got a bit
        !          7990: overloaded.  I've modified the organization of the list to try to
        !          7991: fix the problem.
        !          7992: 
        !          7993: 
        !          7994: 
        !          7995: From NET-ORIGIN@MIT-MC  Fri Aug  3 15:15:44 1984
        !          7996: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          7997:        id AA26463; Fri, 3 Aug 84 15:15:44 pdt
        !          7998: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.33)
        !          7999:        id AA04086; Fri, 3 Aug 84 15:13:41 pdt
        !          8000: Received: from mit-heracles (mit-heracles.ARPA) by mit-charon (4.12/4.7)
        !          8001:        id AA13781; Fri, 3 Aug 84 14:32:51 edt
        !          8002: Received: by mit-heracles (4.12/4.7)
        !          8003:        id AA20045; Fri, 3 Aug 84 14:35:30 edt
        !          8004: From: yba@mit-heracles (Mark H Levine)
        !          8005: Message-Id: <8408031835.AA20045@mit-heracles>
        !          8006: Date:  3 Aug 1984 1435-EDT (Friday)
        !          8007: To: franz-friends@BERKELEY
        !          8008: Subject: Opus 37.79 building from source
        !          8009: 
        !          8010: 
        !          8011: Has anyone published a fix to the bug that causes "rawlisp" to take a
        !          8012: memory fault when built from vanilla 4.2bsd sources?
        !          8013: 
        !          8014: It seems that the routine "getatom" in franz/alloc.c calls strcmp
        !          8015: with "name" equal to "mod" and "aptr -> a.pname" equal to CNIL (-4).
        !          8016: 
        !          8017: This is presumably a side effect of some other error; it still causes
        !          8018: a memory fault in strcmp and prevents building from source.  The sources
        !          8019: have some Sept. '83 changes to the library code, but are otherwise con-
        !          8020: sistent with all the 4.2 code I have seen.
        !          8021: 
        !          8022: Got a fix handy?
        !          8023: 
        !          8024: 
        !          8025: 
        !          8026: From liz@maryland  Mon Aug  6 07:41:41 1984
        !          8027: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8028:        id AA16830; Mon, 6 Aug 84 07:41:41 pdt
        !          8029: Received: from maryland.ARPA (maryland.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.33)
        !          8030:        id AA06949; Mon, 6 Aug 84 07:39:52 pdt
        !          8031: Received: by maryland.ARPA (4.12/4.7)
        !          8032:        id AA01505; Mon, 6 Aug 84 10:40:52 edt
        !          8033: Date: Mon, 6 Aug 84 10:40:52 edt
        !          8034: From: liz@maryland (Liz Allen)
        !          8035: Message-Id: <[email protected]>
        !          8036: To: franz-friends@BERKELEY, yba%[email protected]
        !          8037: Subject: Re:  Opus 37.79 building from source
        !          8038: 
        !          8039: That sounds like an error I ran into recently -- only it was with Opus
        !          8040: 38.91 and it was also because I was adding more strings to rawlisp.
        !          8041: Anyway, the fix was easy and is probably worth trying.  Go into
        !          8042: franz/data.c and change the size of i_strbuf and make it bigger.  Ours
        !          8043: was 600, and I made it 1000.  You'll also need to change the
        !          8044: initialization for i_strbuf; I changed ours from "i_strbuf + 599" to
        !          8045: "i_strbuf + 999".
        !          8046: 
        !          8047: Hope this helps!
        !          8048: 
        !          8049:                                -Liz
        !          8050: 
        !          8051: From smotroff@bbncct  Wed Aug  8 14:39:03 1984
        !          8052: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8053:        id AA23393; Wed, 8 Aug 84 14:39:03 pdt
        !          8054: Received: from bbncct (bbncct.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8055:        id AA21105; Wed, 8 Aug 84 14:39:58 pdt
        !          8056: Message-Id: <[email protected]>
        !          8057: Date: Wed, 8 Aug 84 17:28:58 EDT
        !          8058: From: Ira Smotroff <[email protected]>
        !          8059: Subject: add me to the list
        !          8060: To: franz-friends@BERKELEY
        !          8061: 
        !          8062: please add my name to the franz-friends list
        !          8063: 
        !          8064: 
        !          8065: smotroff at bbn
        !          8066: 
        !          8067: 
        !          8068: From booker@nrl-aic  Fri Aug 10 06:18:45 1984
        !          8069: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8070:        id AA13113; Fri, 10 Aug 84 06:18:45 pdt
        !          8071: Received: from nrl-aic (nrl-aic.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8072:        id AA14441; Fri, 10 Aug 84 06:19:43 pdt
        !          8073: Message-Id: <[email protected]>
        !          8074: Date: 10 Aug 1984 09:09:24-PDT
        !          8075: From: Lashon Booker <booker@NRL-AIC>
        !          8076: To: franz-friends@BERKELEY
        !          8077: Subject: Interlisp Compatibility Package?
        !          8078: 
        !          8079: Has anyone written an Interlisp compatibility package
        !          8080: for Franz?  Thanks.
        !          8081: 
        !          8082: Lashon Booker
        !          8083: booker@nrl-aic
        !          8084: 
        !          8085: From @MIT-MC:smh@MIT-EMS  Fri Aug 10 13:14:44 1984
        !          8086: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8087:        id AA01017; Fri, 10 Aug 84 13:14:44 pdt
        !          8088: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8089:        id AA21922; Fri, 10 Aug 84 13:15:43 pdt
        !          8090: Message-Id: <[email protected]>
        !          8091: Date: 10 Aug 1984 16:06:48-EDT
        !          8092: From: smh@mit-ems@mit-mc
        !          8093: To: franz-friends@BERKELEY
        !          8094: Subject: (atom VECTOR): franz vs liszt
        !          8095: 
        !          8096: Versions: Franz 38.91, Liszt 8.39, and probably most others.
        !          8097: 
        !          8098: Description:
        !          8099:        The atom predicate operates inconsistently between compiled and
        !          8100:        interpreted code when passed a vector or vectori.
        !          8101: 
        !          8102: Repeat-by:
        !          8103:        Create and compile a file containing the following definition:
        !          8104:                (defun atum(x) (atom x))
        !          8105:        After loading it into the interpreter the following results can
        !          8106:        be obtained:
        !          8107:                (setq v (vector 1 2 3))
        !          8108:                (atom v)                ===> t
        !          8109:                (atum v)                ===> nil
        !          8110: 
        !          8111: Discussion:
        !          8112:        According to the manual, atom returns "t iff g_arg is not a list or
        !          8113:        hunk object."  By this definition, the interpreter is correct and the
        !          8114:        compiler incorrect.  However, one can make a strong argument that
        !          8115:        vectors, analogously to hunks, should not be considered atoms.
        !          8116:        Therefore, the both the documentation and interpreter should be
        !          8117:        changed.  (It is doubtful very much existing code depends on this.)
        !          8118: 
        !          8119: Suggested fix:
        !          8120:        Change the definition of atom section 2 of the manual to read:
        !          8121:                "t iff g_arg is not a list, hunk, vector, or vectori object."
        !          8122:        Add the following definition to franz/h/global.h, after the existing
        !          8123:        definition of HUNKP:
        !          8124:                #define HUNKORVECP(a1)  ((TYPE(a1) >= 11) & (TYPE(a1) <= 19))
        !          8125:        Change the definition of Latom in franz/lam1.c:
        !          8126:                lispval
        !          8127:                Latom()
        !          8128:                {
        !          8129:                        register struct argent *lb = lbot;
        !          8130:                        chkarg(1,"atom");
        !          8131:        ==>             if(TYPE(lb->val)==DTPR || (HUNKORVECP(lb->val)))
        !          8132:                                return(nil);
        !          8133:                        else
        !          8134:                                return(tatom);
        !          8135:                }
        !          8136: 
        !          8137: Alternative suggested fix:
        !          8138:        If franz-composers really feel that atom ought to treat hunks
        !          8139:        and vectors differently (sigh?), then fix the compiler instead
        !          8140:        of the interpreter and documentation.  The most important thing
        !          8141:        is that interpreted and compiler do the same thing!
        !          8142:        In liszt/funa.l:cc-atom, add 1_18 and 1_19 to the definition
        !          8143:        of the mask constant.
        !          8144: 
        !          8145: Random (constructive) flame:
        !          8146:        The interpreter definition above has to lookup the type of its
        !          8147:        argument expensively in the typetable *three* times, to wit:
        !          8148:                #define ATOX(a1)        ((((int)(a1)) - OFFSET) >> 9)
        !          8149:                #define TYPE(a1)        ((typetable+1)[ATOX(a1)])
        !          8150:        While compiled code is admirably streamlined, the interpreter
        !          8151:        could be made significantly faster here and elsewhere if TYPE
        !          8152:        were evaluated only once and held for examination in a
        !          8153:        temporary.  This would require a bunch more type predicate
        !          8154:        DEFINEs operating on TYPE values instead of object addresses.
        !          8155: 
        !          8156: Steve Haflich
        !          8157: smh%mit-ems@mit-mc
        !          8158: {decvax!genrad, ihnp4!mit-eddie}!mit-ems!smh
        !          8159: 
        !          8160: 
        !          8161: From [email protected]  Mon Aug 13 13:25:44 1984
        !          8162: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8163:        id AA03640; Mon, 13 Aug 84 13:25:44 pdt
        !          8164: Received: from Xerox.ARPA (xerox.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8165:        id AA05890; Mon, 13 Aug 84 13:26:52 pdt
        !          8166: Message-Id: <[email protected]>
        !          8167: Received: from Semillon.ms by ArpaGateway.ms ; 13 AUG 84 13:24:39 PDT
        !          8168: Date: 13 Aug 84 13:24 PDT
        !          8169: From: [email protected]
        !          8170: Subject: Re: (atom VECTOR): franz vs liszt
        !          8171: In-Reply-To: "smh@mit-ems"@MIT-MC.ARPA's message of 10 Aug 84 16:06:48
        !          8172:  EDT
        !          8173: To: "smh@mit-ems"@MIT-MC.ARPA
        !          8174: Cc: franz-friends@BERKELEY, [email protected], [email protected]
        !          8175: 
        !          8176: Perhaps this bug should be forwarded to BUG-LISP@MIT-MC, since the
        !          8177: original design flaw is in MacLisp.  The problem is that when Hunks were
        !          8178: first invented, there where some who wanted them as "annotated" list
        !          8179: cells (hence, they weren't ATOMs) while other wanted them as small
        !          8180: VECTORs (hence there should be ATOMs).  The resolution was some awful
        !          8181: switch setting for whether or not to treat them as ATOMs, but I don't
        !          8182: remember the default setting, nor the final results.
        !          8183: 
        !          8184: -- JonL --
        !          8185: 
        !          8186: 
        !          8187: 
        !          8188: 
        !          8189: From ALAN@MIT-MC  Mon Aug 13 17:15:11 1984
        !          8190: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8191:        id AA07443; Mon, 13 Aug 84 17:15:11 pdt
        !          8192: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8193:        id AA10564; Mon, 13 Aug 84 17:16:03 pdt
        !          8194: Message-Id: <[email protected]>
        !          8195: Date: 13 August 1984 20:08-EDT
        !          8196: From: Alan Bawden <ALAN@MIT-MC>
        !          8197: Subject:  (atom VECTOR): franz vs liszt
        !          8198: To: JonL.pa@XEROX
        !          8199: Cc: GSB@MIT-MC, franz-friends@BERKELEY, smh@MIT-EMS
        !          8200: In-Reply-To: Msg of 13 Aug 84 13:24 PDT from JonL.pa at XEROX.ARPA
        !          8201: 
        !          8202:     Date: 13 Aug 84 13:24 PDT
        !          8203:     From: JonL.pa at XEROX
        !          8204:     ...  The resolution was some awful switch setting for whether or not to
        !          8205:     treat them as ATOMs, but I don't remember the default setting, nor the
        !          8206:     final results.
        !          8207: 
        !          8208: There are indeed a couple of switches that control various random aspects
        !          8209: of hunks, but none of them have any effect on their atomic or non-atomic
        !          8210: nature.  Hunks are never atoms in MacLisp.  Everybody agrees that this is a
        !          8211: loss, but at this point it is rather deeply ingrained into things to think
        !          8212: about changing it.
        !          8213: 
        !          8214: 
        !          8215: From [email protected]  Tue Aug 14 01:53:12 1984
        !          8216: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8217:        id AA13476; Tue, 14 Aug 84 01:53:12 pdt
        !          8218: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8219:        id AA23091; Tue, 14 Aug 84 01:54:22 pdt
        !          8220: Message-Id: <[email protected]>
        !          8221: Received: From ct.csnet by csnet-relay;  14 Aug 84 4:31 EDT
        !          8222: Date: 13 Aug 1984 20:46:42-PST
        !          8223: From: jmiller%[email protected]
        !          8224: To: franz-friends@BERKELEY
        !          8225: Subject: bug in assoc
        !          8226: 
        !          8227: The following illustrates a rather unpleasant bug in Franz's ASSOC (as
        !          8228: of 38.26, anyhow).  Be forewarned....
        !          8229: 
        !          8230: ------------------------------------------------------------------------------
        !          8231: 
        !          8232: 8_(setq l '((a 1) (b 2) (c 3)))               ;;set up an a-list
        !          8233: ((a 1) (b 2) (c 3))
        !          8234: 
        !          8235: 9_(setq foo 'l)                               ;;FOO points to the NAME of the a-list
        !          8236: l
        !          8237: 
        !          8238: 10_(setq bar 'foo)                    ;;BAR points to the NAME of the NAME of
        !          8239: foo                                   ;;the a-list
        !          8240: 
        !          8241: 11_(assoc 'b l)                               ;;This does the right thing
        !          8242: (b 2)
        !          8243: 
        !          8244: 12_(assoc 'b foo)                     ;;Gag me with a mouse -- should err
        !          8245: (b 2)                                 ;;with "bad arg to <something>"
        !          8246: 
        !          8247: 13_(assoc 'b bar)                     ;;Double gag me with a mouse!!
        !          8248: (b 2)
        !          8249: 
        !          8250: ------------------------------------------------------------------------
        !          8251: 
        !          8252: For the record, ASSQ is flawed in the same way.
        !          8253: 
        !          8254: 
        !          8255: Jim Miller
        !          8256: Computer Thought, Dallas
        !          8257: [email protected]
        !          8258: ...!convex!ctvax!jmiller
        !          8259: 
        !          8260: From @MIT-MC:smh@MIT-EMS  Tue Aug 14 07:35:27 1984
        !          8261: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8262:        id AA14507; Tue, 14 Aug 84 07:35:27 pdt
        !          8263: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8264:        id AA26447; Tue, 14 Aug 84 07:36:36 pdt
        !          8265: Message-Id: <[email protected]>
        !          8266: Date: 14 Aug 1984 08:40:00-EDT
        !          8267: From: smh@mit-ems@mit-mc
        !          8268: To: ALAN@mit-mc, GSB@mit-mc, JonL.pa@parc-maxc
        !          8269: Subject: (atom VECTOR): franz vs liszt
        !          8270: Cc: franz-friends@BERKELEY
        !          8271: 
        !          8272: Gentlemen, I think we are losing grasp on the original bug report.
        !          8273: This is probably my fault for including a discourse on the philosophy
        !          8274: of hunks (:-) in the bug report.
        !          8275: 
        !          8276: Maclisp ain't gonna change about hunks, and it would be a poor idea for
        !          8277: Franz to change.  Anyway, the bug is with vectors.  In Franz, compiled
        !          8278: and interpreted code disagree whether a vector is an atom.  Certainly
        !          8279: no one can defend this!
        !          8280: 
        !          8281: Maclisp doesn't *have* vectors, does it?
        !          8282: 
        !          8283: Steve Haflich
        !          8284: smh%mit-ems@mit-mc
        !          8285: 
        !          8286: 
        !          8287: From mcgeer  Tue Aug 14 11:03:10 1984
        !          8288: Received: by ucbkim.ARPA (4.24/4.27)
        !          8289:        id AA17397; Tue, 14 Aug 84 11:03:10 pdt
        !          8290: Date: Tue, 14 Aug 84 11:03:10 pdt
        !          8291: From: Rick McGeer (on an h19-u) <mcgeer>
        !          8292: Message-Id: <[email protected]>
        !          8293: Phone: (415) 236-8262
        !          8294: To: ALAN@MIT-MC, JonL.pa@XEROX
        !          8295: Subject: Re:  (atom VECTOR): franz vs liszt
        !          8296: Cc: smh@MIT-EMS, franz-friends, GSB@MIT-MC
        !          8297: In-Reply-To: Your message of 13 August 1984 20:08-EDT
        !          8298: 
        !          8299:        The predicate atom in Franz appears to be:
        !          8300:        
        !          8301: (defun atom(foo)
        !          8302:    (if foo
        !          8303:       then (not (or (hunkp foo) (dtpr foo)))
        !          8304:       else t))
        !          8305: 
        !          8306: whereas a more natural implementation, it seems to me, is:
        !          8307: 
        !          8308: (defun atom(foo)
        !          8309:    (or (symbolp foo) (numberp foo)))
        !          8310: 
        !          8311: Since it seems to me that:
        !          8312: 
        !          8313: (xor (vectorp foo) (hunkp foo) (dtpr foo) (atom foo) (arrayp foo))
        !          8314: 
        !          8315: should always be non-nil for non-nil objects.  Or, better put, that vectors,
        !          8316: hunks, dtprs, atoms, and arrays should partition the data space.  No?
        !          8317: 
        !          8318:                                        Rick.
        !          8319: 
        !          8320: 
        !          8321: 
        !          8322: From mcgeer  Tue Aug 14 11:53:28 1984
        !          8323: Received: by ucbkim.ARPA (4.24/4.27)
        !          8324:        id AA18832; Tue, 14 Aug 84 11:53:28 pdt
        !          8325: Date: Tue, 14 Aug 84 11:53:28 pdt
        !          8326: From: Rick McGeer (on an h19-u) <mcgeer>
        !          8327: Message-Id: <[email protected]>
        !          8328: Phone: (415) 236-8262
        !          8329: To: jmiller%[email protected], franz-friends
        !          8330: Subject: Re: bug in assoc
        !          8331: Cc: 
        !          8332: In-Reply-To: Your message of 13 Aug 1984 20:46:42-PST
        !          8333: 
        !          8334:        "'Curiouser and curiouser', said Alice".  I dug out the source for
        !          8335: assoc (38.79), and here it is:
        !          8336: 
        !          8337: (def assoc
        !          8338:   (lambda (val alist)
        !          8339:          (do ((al alist (cdr al)))
        !          8340:              ((null al) nil)
        !          8341:              (cond ((null (car al)))
        !          8342:                    ((not (dtpr (car al)))
        !          8343:                     (error "bad arg to assoc" al))
        !          8344:                    ((equal val (caar al)) (return (car al)))))))
        !          8345: 
        !          8346: So nothing particularly screwy is going on here.  However, when I do the
        !          8347: traces (after setting up stuff the way you did), I get:
        !          8348: => (assoc 'b 'l)
        !          8349: 1 <Enter> assoc (b l)
        !          8350: 1 <EXIT>  assoc  (b 2)
        !          8351: (b 2)
        !          8352: => (assoc 'b ''l)
        !          8353: 1 <Enter> assoc (b 'l)
        !          8354: Error: bad arg to assoc (quote l) 
        !          8355: Form: (assoc 'b ''l)
        !          8356: {1} bar
        !          8357: foo
        !          8358: {1} (assoc 'b 'foo)
        !          8359: |2 <Enter> assoc (b foo)
        !          8360: |2 <EXIT>  assoc  (b 2)
        !          8361: (b 2)
        !          8362: {1} foo
        !          8363: l
        !          8364: {1} bar
        !          8365: foo
        !          8366: {1} (assoc 'b bar)
        !          8367: |2 <Enter> assoc (b foo)
        !          8368: |2 <EXIT>  assoc  (b 2)
        !          8369: (b 2)
        !          8370: {1} (assoc 'b ''l)
        !          8371: |2 <Enter> assoc (b 'l)
        !          8372: Error: bad arg to assoc (quote l) 
        !          8373: Form: (assoc 'b ''l)
        !          8374: {2}
        !          8375: 
        !          8376: Which is certainly *very* odd...
        !          8377: 
        !          8378: 
        !          8379: From mcgeer  Tue Aug 14 12:06:20 1984
        !          8380: Received: by ucbkim.ARPA (4.24/4.27)
        !          8381:        id AA19018; Tue, 14 Aug 84 12:06:20 pdt
        !          8382: Date: Tue, 14 Aug 84 12:06:20 pdt
        !          8383: From: Rick McGeer (on an h19-u) <mcgeer>
        !          8384: Message-Id: <[email protected]>
        !          8385: Phone: (415) 236-8262
        !          8386: To: ALAN@MIT-MC, JonL.pa@XEROX
        !          8387: Subject: Re:  (atom VECTOR): franz vs liszt
        !          8388: Cc: smh@MIT-EMS, franz-friends, GSB@MIT-MC
        !          8389: 
        !          8390:        Sorry to anyone who's getting this twice: I can't figure out from
        !          8391: the mailer error message who got it and who didn't...
        !          8392: 
        !          8393: 
        !          8394:        The predicate atom in Franz appears to be:
        !          8395:        
        !          8396: (defun atom(foo)
        !          8397:    (if foo
        !          8398:       then (not (or (hunkp foo) (dtpr foo)))
        !          8399:       else t))
        !          8400: 
        !          8401: whereas a more natural implementation, it seems to me, is:
        !          8402: 
        !          8403: (defun atom(foo)
        !          8404:    (or (symbolp foo) (numberp foo)))
        !          8405: 
        !          8406: Since it seems to me that:
        !          8407: 
        !          8408: (xor (vectorp foo) (hunkp foo) (dtpr foo) (atom foo) (arrayp foo))
        !          8409: 
        !          8410: should always be non-nil for non-nil objects.  Or, better put, that vectors,
        !          8411: hunks, dtprs, atoms, and arrays should partition the data space.  No?
        !          8412: 
        !          8413:                                        Rick.
        !          8414: 
        !          8415: 
        !          8416: 
        !          8417: 
        !          8418: 
        !          8419: 
        !          8420: From PSZ@MIT-MC  Tue Aug 14 13:53:19 1984
        !          8421: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8422:        id AA20310; Tue, 14 Aug 84 13:53:19 pdt
        !          8423: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8424:        id AA03508; Tue, 14 Aug 84 13:54:23 pdt
        !          8425: Message-Id: <[email protected]>
        !          8426: Date: 14 August 1984 16:37-EDT
        !          8427: From: Peter Szolovits <PSZ@MIT-MC>
        !          8428: Subject:  on the issue of the "ATOMness" of hunks
        !          8429: To: ALAN@MIT-MC
        !          8430: Cc: GSB@MIT-MC, PSZ@MIT-MC, JonL.pa@XEROX, franz-friends@BERKELEY, smh@MIT-EMS
        !          8431: In-Reply-To: Msg of 13 Aug 1984 20:08-EDT from Alan Bawden <ALAN>
        !          8432: 
        !          8433: I have a small quarrel with Alan Bawden's statement that "hunks never
        !          8434: being atoms in Maclisp" is a universally-agreed bug.  There are indeed
        !          8435: useful structures that one would like to build in Lisp that act as CONS
        !          8436: cells (i.e., CAR and CDR are applicable), but that can have further
        !          8437: structure.  I have sorely missed such objects in Lisp Machine Lisp and
        !          8438: NIL, where flavor-instances are always atomic, when I wanted to build
        !          8439: Brand X (interned "list structure" and universal property lists).  In
        !          8440: Maclisp, I could do this using hunks, though even that was not
        !          8441: completely right because I wanted to be able to disallow RPLACA and
        !          8442: RPLACD while allowing CAR and CDR, and this was hard, given the hunk
        !          8443: abstraction.  I would, however, love to have non-atomic flavor-instances 
        !          8444: 
        !          8445: 
        !          8446: From @MIT-MC:smh@MIT-EMS  Tue Aug 14 14:28:47 1984
        !          8447: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8448:        id AA20792; Tue, 14 Aug 84 14:28:47 pdt
        !          8449: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8450:        id AA04288; Tue, 14 Aug 84 14:29:41 pdt
        !          8451: Message-Id: <[email protected]>
        !          8452: Date: 14 Aug 1984 17:13:29-EDT
        !          8453: From: smh@mit-ems@mit-mc
        !          8454: To: mcgeer@ucbkim@BERKELEY
        !          8455: Subject: Re: bug in assoc
        !          8456: Cc: franz-friends@BERKELEY, [email protected]@udel-relay@mit-mc
        !          8457: 
        !          8458: As McGeer@ucbkim points out, the code for assoc is (in common0.l):
        !          8459: 
        !          8460: (def assoc
        !          8461:   (lambda (val alist)
        !          8462:          (do ((al alist (cdr al)))
        !          8463:              ((null al) nil)
        !          8464:              (cond ((null (car al)))
        !          8465:                    ((not (dtpr (car al)))
        !          8466:                     (error "bad arg to assoc" al))
        !          8467:                    ((equal val (caar al)) (return (car al)))))))
        !          8468: 
        !          8469: The reason for the reported strange behavior of assoc is as simple as
        !          8470: it is obscure!  First a couple hints:
        !          8471:  - This code is inside the executable franz interpreter and therefore
        !          8472:    runs compiled.
        !          8473:  - The same strangeness is exhibited by assq, which is C-coded inside
        !          8474:    the Franz kernel.
        !          8475:  - Both the cdr of a dtpr and the value of an atom are stored at offset
        !          8476:    zero within their respective structures.  The car and plist
        !          8477:    similarly share the same offset within their structures.
        !          8478:  - If you try to run the above assoc definition interpreted, it will
        !          8479:    properly fail to work, or rather, it will complain about a bad arg
        !          8480:    to car.
        !          8481:  - Of course, c[ad]r in the interpreter carfully check their arguments;
        !          8482:    In the compiler, they simple indirect through pointers for maximum
        !          8483:    speed.
        !          8484: 
        !          8485: Finally, in case by now it isn't absolutely clear to everyone what is
        !          8486: going on, assoc is (sort of) comparing val against the plist of bar and
        !          8487: subsequently foo, and then each time automagically effectively doing a
        !          8488: symeval on the atom to continue scanning down the "cdr" of the alist.
        !          8489: 
        !          8490: Moral:  Although the interpreter tries pretty hard to do the dynamic
        !          8491: typing and implied typechecking for which lisp is famous, type checking
        !          8492: in compiled code is often a myth.  Correct code only necessarily works
        !          8493: correctly when given corrent arguments.
        !          8494: 
        !          8495: Steve Haflich
        !          8496: MIT Experimental Music Studio
        !          8497: smh%mit-ems@mit-mc
        !          8498: {decvax!genrad, ihnp4!mit-eddie}!mit-ems!smh
        !          8499: 
        !          8500: 
        !          8501: From [email protected]  Wed Aug 15 16:33:44 1984
        !          8502: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8503:        id AA00784; Wed, 15 Aug 84 16:33:44 pdt
        !          8504: Received: from Xerox.ARPA (xerox.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8505:        id AA05115; Wed, 15 Aug 84 14:20:30 pdt
        !          8506: Message-Id: <[email protected]>
        !          8507: Received: from Semillon.ms by ArpaGateway.ms ; 15 AUG 84 14:19:35 PDT
        !          8508: Date: 15 Aug 84 14:18 PDT
        !          8509: From: [email protected]
        !          8510: Subject: Re: (atom VECTOR): franz vs liszt
        !          8511: In-Reply-To: Alan Bawden <[email protected]>'s message of 13 Aug 84 20:08
        !          8512:  EDT
        !          8513: To: [email protected]
        !          8514: Cc: [email protected], [email protected], franz-friends@BERKELEY,
        !          8515:         [email protected]
        !          8516: 
        !          8517: [Ah, confusion with Interlisp here].  
        !          8518: 
        !          8519: I meant to say "The resolution was some awful switch setting for whether
        !          8520: or not to treat them as LISTs" rather than "to treat them as ATOMs".
        !          8521: The switch name is HUNKP.
        !          8522: 
        !          8523: Interlisp's ATOM predicate is defined simply as (NOT (LISTP x)), and
        !          8524: LISTP is true only of cons cells [thus (LISTP NIL) is false].
        !          8525: 
        !          8526: -- JonL --
        !          8527: 
        !          8528: 
        !          8529: 
        !          8530: From [email protected]  Wed Aug 15 18:21:08 1984
        !          8531: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8532:        id AA02292; Wed, 15 Aug 84 18:21:08 pdt
        !          8533: Received: from Xerox.ARPA (xerox.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8534:        id AA09647; Wed, 15 Aug 84 18:21:57 pdt
        !          8535: Message-Id: <[email protected]>
        !          8536: Received: from Semillon.ms by ArpaGateway.ms ; 15 AUG 84 18:18:31 PDT
        !          8537: Date: 15 Aug 84 18:18 PDT
        !          8538: From: [email protected]
        !          8539: Subject: Re: bug in assoc
        !          8540: In-Reply-To: "smh@mit-ems"@MIT-MC.ARPA's message of 14 Aug 84 17:13:29
        !          8541:  EDT
        !          8542: To: "smh@mit-ems"@MIT-MC.ARPA
        !          8543: Cc: "mcgeer@ucbkim"@BERKELEY, franz-friends@BERKELEY,
        !          8544:         "[email protected]@udel-relay"@MIT-MC.ARPA, [email protected]
        !          8545: 
        !          8546: Common Lisp also faces the possibility of inconsistent system code due
        !          8547: to the handling of cases marked "is an error" (see Manual, sec. 1.2.4);
        !          8548: that is, it is undefined as to what happens if you apply CAR to a
        !          8549: non-LISTP.  All portable system code should therefore certify the type
        !          8550: of a datum before taking car or cdr.  ASSOC (and ASSQ) from the Franz
        !          8551: sources clearly doesn't check the type of the arguments before carcdring
        !          8552: away on them.
        !          8553: 
        !          8554: Well, why not "all system code should certify the type before taking
        !          8555: car/cdr . . . " -- it certainly can't hurt to "signal an error" rather
        !          8556: than fall into some undefined morass.
        !          8557: 
        !          8558: -- JonL --
        !          8559: 
        !          8560: 
        !          8561: From [email protected]  Wed Aug 15 19:49:22 1984
        !          8562: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8563:        id AA02844; Wed, 15 Aug 84 19:49:22 pdt
        !          8564: Received: from Xerox.ARPA (xerox.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8565:        id AA10989; Wed, 15 Aug 84 19:50:13 pdt
        !          8566: Message-Id: <[email protected]>
        !          8567: Received: from Semillon.ms by ArpaGateway.ms ; 15 AUG 84 19:48:41 PDT
        !          8568: Date: 15 Aug 84 15:00 PDT
        !          8569: From: [email protected]
        !          8570: Subject: Re: (atom VECTOR): franz vs liszt
        !          8571: In-Reply-To: "smh@mit-ems"@MIT-MC.ARPA's message of 14 Aug 84 08:40:00
        !          8572:  EDT
        !          8573: To: "smh@mit-ems"@MIT-MC.ARPA
        !          8574: Cc: [email protected], [email protected], [email protected],
        !          8575:         franz-friends@BERKELEY
        !          8576: 
        !          8577: MacLisp indeed does have VECTORs, STRINGs, CLASSes, etc. in an extended
        !          8578: SmallTalk-like hierarchy, but they are not in the initial system.  Some
        !          8579: of these used to have autoload properties, but I'm not sure about the
        !          8580: state of things now.  None of the extended stuff got documented in the
        !          8581: 1983 MacLisp manual, mostly because of Pitman's personal preferences for
        !          8582: not using the extended stuff.
        !          8583: 
        !          8584: HUNKs are relevant, because the extended heirarchy uses the USRHUNK
        !          8585: feature in order to cause system functions to "trap out" on hunks,
        !          8586: thereby viewing them in an object-oriented way rather than as lists
        !          8587: (Glaaaag!) or as mere simple vectors.
        !          8588: 
        !          8589: -- JonL --
        !          8590: 
        !          8591: 
        !          8592: 
        !          8593: From MLY@MIT-MC  Wed Aug 15 22:49:17 1984
        !          8594: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8595:        id AA04730; Wed, 15 Aug 84 22:49:17 pdt
        !          8596: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8597:        id AA13406; Wed, 15 Aug 84 22:49:59 pdt
        !          8598: Message-Id: <[email protected]>
        !          8599: Date: 16 August 1984 01:49-EDT
        !          8600: From: Richard Mlynarik <MLY@MIT-MC>
        !          8601: Subject:  on the issue of the "ATOMness" of hunks
        !          8602: To: PSZ@MIT-MC
        !          8603: Cc: ALAN@MIT-MC, GSB@MIT-MC, JonL.pa@XEROX, franz-friends@BERKELEY,
        !          8604:         smh@MIT-EMS
        !          8605: In-Reply-To: Msg of 14 Aug 1984 16:37-EDT from Peter Szolovits <PSZ>
        !          8606: 
        !          8607:     From: Peter Szolovits <PSZ>
        !          8608: 
        !          8609:     I have a small quarrel with Alan Bawden's statement that "hunks never
        !          8610:     being atoms in Maclisp" is a universally-agreed bug.  There are indeed
        !          8611:     useful structures that one would like to build in Lisp that act as CONS
        !          8612:     cells (i.e., CAR and CDR are applicable), but that can have further
        !          8613:     structure.  I have sorely missed such objects in Lisp Machine Lisp and
        !          8614:     NIL, where flavor-instances are always atomic, when I wanted to build
        !          8615:     Brand X (interned "list structure" and universal property lists).  In
        !          8616:     Maclisp, I could do this using hunks, though even that was not
        !          8617:     completely right because I wanted to be able to disallow RPLACA and
        !          8618:     RPLACD while allowing CAR and CDR, and this was hard, given the hunk
        !          8619:     abstraction.  I would, however, love to have non-atomic flavor-instances 
        !          8620: 
        !          8621: The MIT lisp machine system makes some attempt to "support" this sort
        !          8622: of thing, by sending :CAR, :CDR, etc messages to instances. The result
        !          8623: is that you get an error about an unclaimed message, rather than one
        !          8624: about an attempt to take the car of a non-nil atom. LISTP and CONSP
        !          8625: both still return NIL when applied to an instance. The way to get RPLACA
        !          8626: (or SETF of CAR), etc to not work is simply to not define methods for doing
        !          8627: these operations...
        !          8628: 
        !          8629: Is is not really clear to me what the value of such is, unless you get tired
        !          8630: of typing too many "(SEND"'s.
        !          8631: 
        !          8632: 
        !          8633: From goldfarb%[email protected]  Fri Aug 17 16:44:40 1984
        !          8634: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8635:        id AA00202; Fri, 17 Aug 84 16:44:40 pdt
        !          8636: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8637:        id AA01032; Fri, 17 Aug 84 16:45:24 pdt
        !          8638: Received: From ucf.csnet by csnet-relay;  17 Aug 84 19:26 EDT
        !          8639: Received: by ucf-cs.UUCP (4.12/4.7)
        !          8640:        id AA00852; Fri, 17 Aug 84 15:29:05 edt
        !          8641: Date: Fri, 17 Aug 84 15:29:05 edt
        !          8642: From: Ben Goldfarb <goldfarb%[email protected]>
        !          8643: Message-Id: <[email protected]>
        !          8644: To: franz-friends@BERKELEY
        !          8645: Subject: ChangeLog
        !          8646: 
        !          8647: The ReadMe file in /usr/src/cmd/ucb/lisp states that there are ChangeLog
        !          8648: files in the subdirectories franz and liszt.  We got no such files on
        !          8649: our distribution tape (Berkeley 4.2bsd).  I'd appreciate receiving copies
        !          8650: of these files, along with any other documentation of differences between
        !          8651: the 4.2 version and prior versions of Franz Lisp.  
        !          8652: 
        !          8653: Thanks,
        !          8654: 
        !          8655: Ben Goldfarb
        !          8656: University of Central Florida
        !          8657: uucp: {duke,decvax,princeton}!ucf-cs!goldfarb
        !          8658: ARPA: [email protected]
        !          8659: csnet: goldfarb@ucf
        !          8660: 
        !          8661: From [email protected]  Sun Aug 26 20:48:24 1984
        !          8662: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8663:        id AA11969; Sun, 26 Aug 84 20:48:24 pdt
        !          8664: Received: from CORNELL.ARPA (cornell-gw.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8665:        id AA18166; Sun, 26 Aug 84 20:46:52 pdt
        !          8666: Received: from CORNELL-GVAX.ARPA (gvax) by CORNELL.ARPA (4.30/4.30)
        !          8667:        id AA16455; Sun, 26 Aug 84 23:48:12 edt
        !          8668: Date: Sun, 26 Aug 84 23:45:55 edt
        !          8669: From: [email protected] (Mark Bromley)
        !          8670: Message-Id: <[email protected]>
        !          8671: Received: by CORNELL-GVAX.ARPA (4.30/4.30)
        !          8672:        id AA14288; Sun, 26 Aug 84 23:45:55 edt
        !          8673: To: [email protected]
        !          8674: Subject: Bug in open coding of vseti in Liszt 8.36
        !          8675: 
        !          8676: 
        !          8677: If (vseti vector index expression) gets open coded by the compiler,
        !          8678: the resulting value is the value of index, not the value of expression.
        !          8679: This also holds for vseti-byte and vseti-word.
        !          8680: 
        !          8681: The problem is in d_vset in vector.l.  The code which builds the return
        !          8682: value for immediate vectors assumes that the value of expression is in
        !          8683: index-reg, but it never gets put there.
        !          8684: 
        !          8685: One solution would be to change the lines
        !          8686: 
        !          8687:          (if g-loc
        !          8688:              then  (if (eq type 'byte)
        !          8689: 
        !          8690: (occuring about 3/4 of the way through d_vset) to
        !          8691:          (if g-loc
        !          8692:              then (setq temp (cadr (assq type '((byte cvtbl)
        !          8693:                                                 (word cvtwl)
        !          8694:                                                 (long movl)))))
        !          8695:                   (e-write3 temp vect-val index-reg)
        !          8696: 
        !          8697:                   (if (eq type 'byte)
        !          8698: 
        !          8699: Mark Bromley
        !          8700: bromley@cornell
        !          8701: 
        !          8702: 
        !          8703: From forwarder@UWVAX  Mon Aug 27 14:25:15 1984
        !          8704: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8705:        id AA19881; Mon, 27 Aug 84 14:25:15 pdt
        !          8706: Received: from wisc-rsch.arpa (wisc-rsch.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8707:        id AA05251; Mon, 27 Aug 84 14:23:30 pdt
        !          8708: Date: Mon, 27 Aug 84 16:26:07 cdt
        !          8709: Message-Id: <[email protected]>
        !          8710: Received: by wisc-rsch.arpa; Mon, 27 Aug 84 16:26:07 cdt
        !          8711: To: franz-friends@BERKELEY
        !          8712: Subject: FRANZ to VI and back
        !          8713: Cc: [email protected]
        !          8714: Sender: forwarder@UWVAX
        !          8715: From: [email protected]
        !          8716: 
        !          8717: Escuse me if this is a simple question, but i am a Unix novice.
        !          8718: What is the best way to go between VI & Franz when debugging a
        !          8719: program?  The way I currently do it is to ctrl-Z out of Franz,
        !          8720: FG to my VI process, correct my code, FG back to FRANZ, load the
        !          8721: corrected code.  Is there a better way (do not tell me about
        !          8722: Emacs because that is not an option)?
        !          8723: -thanks, david
        !          8724: 
        !          8725: From rad@mitre-bedford  Mon Aug 27 14:52:55 1984
        !          8726: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8727:        id AA20435; Mon, 27 Aug 84 14:52:55 pdt
        !          8728: Received: from mitre-bedford (mitre-bedford.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8729:        id AA05840; Mon, 27 Aug 84 14:51:11 pdt
        !          8730: Message-Id: <[email protected]>
        !          8731: Date: Monday, 27 Aug 1984 17:45-EDT
        !          8732: From: rad@Mitre-Bedford
        !          8733: To: [email protected]
        !          8734: Cc: franz-friends@BERKELEY, [email protected]
        !          8735: Subject: Re: FRANZ to VI and back
        !          8736: In-Reply-To: Your message of Monday, 27 Aug 1984 17:26-EDT.
        !          8737:              <[email protected]>
        !          8738: 
        !          8739: 
        !          8740: >>Escuse me if this is a simple question, but i am a Unix novice.
        !          8741: >>What is the best way to go between VI & Franz when debugging a
        !          8742: >>program?  The way I currently do it is to ctrl-Z out of Franz,
        !          8743: >>FG to my VI process, correct my code, FG back to FRANZ, load the
        !          8744: >>corrected code.  Is there a better way (do not tell me about
        !          8745: >>Emacs because that is not an option)?
        !          8746: 
        !          8747: It's undocumented in the franz opus 37 manual, but may be in the opus
        !          8748: 38:  In franz, type (vi foo) and lisp will spin up vi.  If it can't
        !          8749: find the file foo, it tries for foo.l before creating a new file.  If
        !          8750: you invoke it as (vil foo), it will load foo back in after you exit
        !          8751: from vi.  There are similar functions called ex and exl.  
        !          8752: 
        !          8753: If you're using BSD4.2, you probably have opus 38.  A new book is out
        !          8754: called Lispcraft.  It is based on franz, opus 38 in particular.  You
        !          8755: might want to pick that up.  The old standby, Lisp, by Winston and
        !          8756: Horn, documented Maclisp which is close to franz.  Their new, 2nd
        !          8757: edition is based on Common Lisp, however, which is different, so watch 
        !          8758: out!
        !          8759: 
        !          8760: If you don't like ex or vi (say you're an ed-masochist), there are hooks
        !          8761: for other editors.  Put the following in the .lisprc file in your home
        !          8762: directory:
        !          8763: 
        !          8764: (def ed (nlambda (x)
        !          8765:                   (exvi 'ed x nil)))
        !          8766: (def edl (nlambda (x)
        !          8767:                    (exvi 'ed x t)))
        !          8768: 
        !          8769: These will give you the same function as ex/vi and exl/vil except
        !          8770: using ed.  These functions are found in /usr/lib/lisp/auxfns0.l (opus
        !          8771: 37, anyway).
        !          8772: 
        !          8773: Dick Dramstad
        !          8774: rad@mitre-bedford
        !          8775: 
        !          8776: 
        !          8777: From liz@maryland  Tue Aug 28 10:17:28 1984
        !          8778: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8779:        id AA28395; Tue, 28 Aug 84 10:17:28 pdt
        !          8780: Received: from maryland.ARPA (maryland.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8781:        id AA24861; Tue, 28 Aug 84 10:15:46 pdt
        !          8782: Received: by maryland.ARPA (4.12/4.7)
        !          8783:        id AA20274; Tue, 28 Aug 84 10:59:06 edt
        !          8784: Date: Tue, 28 Aug 84 10:59:06 edt
        !          8785: From: liz@maryland (Liz Allen)
        !          8786: Message-Id: <[email protected]>
        !          8787: To: [email protected], rad@Mitre-Bedford
        !          8788: Subject: Re: FRANZ to VI and back
        !          8789: Cc: franz-friends@BERKELEY
        !          8790: 
        !          8791: One feature of our vi functions is to ask (after returning from vi)
        !          8792: whether or not you want to load the file.  This gives you the freedom
        !          8793: to decide later when you know if you modified the file.  To implement
        !          8794: this, you could change the last line of exvi from:
        !          8795: 
        !          8796:        (cond (doload (load edit_file)))
        !          8797: 
        !          8798: to:
        !          8799: 
        !          8800:        (cond ((or doload (query "Load " edit_file "? "))
        !          8801:               (load edit_file)))
        !          8802: 
        !          8803: and define query:
        !          8804: 
        !          8805:        (defmacro (&rest prompt)
        !          8806:          `(progn (msg ,@prompt) (yesp (read))))
        !          8807: 
        !          8808: (or something like that).  Exvi is defined in common1.l.
        !          8809: 
        !          8810: Enjoy!
        !          8811: 
        !          8812:                                -Liz
        !          8813: 
        !          8814: PS  You could also send me mail asking about getting our software!
        !          8815: 
        !          8816: 
        !          8817: From @MIT-MC:[email protected]  Wed Aug 29 08:09:14 1984
        !          8818: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8819:        id AA09035; Wed, 29 Aug 84 08:09:14 pdt
        !          8820: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8821:        id AA15198; Wed, 29 Aug 84 08:09:05 pdt
        !          8822: Message-Id: <[email protected]>
        !          8823: Date: 29 Aug 1984 11:06:09-EDT
        !          8824: From: Ingemar.Hulthage@CMU-RI-ISL2
        !          8825: Subject: Vector algebra
        !          8826: Apparently-To: <franz-friends@UCB-VAX>
        !          8827: 
        !          8828: 
        !          8829: I am writing a package of functions for vector algebra in arbitrary (finite)
        !          8830: dimensions and it occured to me that I ought to post a message to find
        !          8831: out if something like this is alredy available. 
        !          8832: 
        !          8833: I am looking forward to the replies
        !          8834: 
        !          8835: 
        !          8836: From @MIT-MC:[email protected]  Fri Aug 31 10:16:03 1984
        !          8837: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8838:        id AA04497; Fri, 31 Aug 84 10:16:03 pdt
        !          8839: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8840:        id AA03527; Fri, 31 Aug 84 10:15:41 pdt
        !          8841: Message-Id: <[email protected]>
        !          8842: Date: 31 Aug 1984 13:15:27-EDT
        !          8843: From: Ingemar.Hulthage@CMU-RI-ISL2
        !          8844: Subject: matrix inversion
        !          8845: Apparently-To: <franz-friends@UCB-VAX>
        !          8846: 
        !          8847: 
        !          8848: I need to numerically invert matrices of varying sizes and I would
        !          8849: appreciate pointers to any lisp functions that can do that.
        !          8850: 
        !          8851: 
        !          8852: From mccune@aids-unix  Fri Aug 31 10:42:29 1984
        !          8853: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8854:        id AA05060; Fri, 31 Aug 84 10:42:29 pdt
        !          8855: Received: from aids-unix (aids-unix.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8856:        id AA04133; Fri, 31 Aug 84 10:41:52 pdt
        !          8857: Message-Id: <[email protected]>
        !          8858: Date: 31 Aug 84 10:40:13 PDT (Fri)
        !          8859: From: Brian McCune <mccune@aids-unix>
        !          8860: Subject: Mailing list
        !          8861: To: franz-friends@BERKELEY
        !          8862: 
        !          8863: Please remove my name from franz-friends.  Thanks.  
        !          8864: 
        !          8865:        Brian McCune
        !          8866:        MCCUNE@AIDS-UNIX
        !          8867: 
        !          8868: From ucsbcsl!dave@engrvax  Tue Sep  4 11:22:20 1984
        !          8869: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8870:        id AA10583; Tue, 4 Sep 84 11:22:20 pdt
        !          8871: Received: by UCB-VAX.ARPA (4.24/4.33)
        !          8872:        id AA26490; Tue, 4 Sep 84 11:22:10 pdt
        !          8873: From: ucsbcsl!dave@engrvax
        !          8874: Received: from engrvax.UCSB (engrvax.ARPA) by ucsbcsl.UCSB (4.12/3.14.ucsb)
        !          8875:        id AA27209; Tue, 4 Sep 84 10:55:08 pdt
        !          8876: Date: Tue, 4 Sep 84 10:55:52 pdt
        !          8877: Message-Id: <[email protected]>
        !          8878: Received: by engrvax.UCSB (4.12/3.14.ucsb)
        !          8879:        id AA20764; Tue, 4 Sep 84 10:55:52 pdt
        !          8880: To: franz-friends@BERKELEY
        !          8881: Subject: I have moved.
        !          8882: 
        !          8883: Please change my mailing address to be 'ucsbcsl!chi!dave' from 'ucsbcsl!dave'.
        !          8884: Thanks.
        !          8885: 
        !          8886: From liz@maryland  Wed Sep  5 08:34:45 1984
        !          8887: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          8888:        id AA19892; Wed, 5 Sep 84 08:34:45 pdt
        !          8889: Received: from maryland.ARPA (maryland.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          8890:        id AA14415; Wed, 5 Sep 84 08:34:27 pdt
        !          8891: Received: by maryland.ARPA (4.12/4.7)
        !          8892:        id AA09320; Wed, 5 Sep 84 11:33:56 edt
        !          8893: Date: Wed, 5 Sep 84 11:33:56 edt
        !          8894: From: liz@maryland (Liz Allen)
        !          8895: Message-Id: <[email protected]>
        !          8896: To: franz-friends@BERKELEY
        !          8897: Subject: Maryland software
        !          8898: 
        !          8899: I'm mailing the announcement here again since a few things have
        !          8900: changed since I last sent it out here and I have had requests for
        !          8901: it.  Currently, we are completing the 4.2 switchover and will
        !          8902: (hopefully) be starting to distribute it by the end of September.
        !          8903: 
        !          8904:                                -Liz Allen
        !          8905: 
        !          8906: -----------------------------------------------------------------
        !          8907: 
        !          8908: Greetings:
        !          8909: 
        !          8910: 
        !          8911:      This is to announce the availability of the Univ of Maryland
        !          8912: software distribution.  This includes source code for the follow-
        !          8913: ing packages which are currently running on a  VAX  11/780  under
        !          8914: Berkeley UNIX(tm) 4.1:
        !          8915: 
        !          8916: (1)  The flavors package written in Franz Lisp.  This package has
        !          8917:      been used successfully in a number of large systems at Mary-
        !          8918:      land, and while it does not implement all  the  features  of
        !          8919:      Lisp  Machine  Flavors, the features present are as close to
        !          8920:      the Lisp Machine version as possible within the  constraints
        !          8921:      of  Franz  Lisp.   (Note that Maryland flavors code *can* be
        !          8922:      compiled.)
        !          8923: 
        !          8924: (2)  Other Maryland Franz hacks including the INTERLISP-like  top
        !          8925:      level,  the  lispbreak error handling package, the for macro
        !          8926:      and the new loader package.
        !          8927: 
        !          8928: (3)  The YAPS production system written in Franz Lisp.   This  is
        !          8929:      similar  to  OPS5  but  more  flexible  in the kinds of lisp
        !          8930:      expressions that may appear as facts and patterns  (sublists
        !          8931:      are  allowed and flavor objects are treated atomically), the
        !          8932:      variety of tests that may appear in the left hand  sides  of
        !          8933:      rules  and the kinds of actions may appear in the right hand
        !          8934:      sides of rules.  In  addition,  YAPS  allows  multiple  data
        !          8935:      bases which are flavor objects and may be sent messages such
        !          8936:      as "fact" and "goal".
        !          8937: 
        !          8938: (4)  The windows package in the form of  a  C  loadable  library.
        !          8939:      This flexible package allows convenient management of multi-
        !          8940:      ple contexts on the screen and runs  on  ordinary  character
        !          8941:      display  terminals as well as bit-mapped displays.  Included
        !          8942:      is a Franz lisp interface to the window  library,  a  window
        !          8943:      shell  for  executing shell processes in windows, and a menu
        !          8944:      package (also a C loadable library).
        !          8945: 
        !          8946: (5)  The phone program.  This is a facility to allow two or  more
        !          8947:      users  to type messages to each other in separate windows on
        !          8948:      a tty screen.  It uses the Maryland window package and CMU's
        !          8949:      IPC facility.
        !          8950: 
        !          8951: (6)  The calend program, an appointment calendar maintainer.   It
        !          8952:      uses a user file of reminding messages and dates for remind-
        !          8953:      ing, and can notify a user by messages printed to his termi-
        !          8954:      nal,  sending them mail, or nagging them to get off the ter-
        !          8955:      minal at a certain time of day.  It  allows  one-time  only,
        !          8956:      weekly,  biweekly, monthly, yearly and other similar methods
        !          8957:      for being reminded.
        !          8958: 
        !          8959: (7)  The bbd program, a multiple bulletin  board  system  loosely
        !          8960:      based  on the 'msgs' program.  It accepts character-oriented
        !          8961:      commands and allows user-definable bulletin-boards.
        !          8962: 
        !          8963: (8)  Rzasm, a relocating Z80 cross-assembler.  Running on the vax
        !          8964:      it  puts  out  ld-style object files.  Its features include,
        !          8965:      among others: free-form input;  (very)  long  variable/label
        !          8966:      names;  conditional assembly; macros (in 'm4' format); digit
        !          8967:      labels; global, external, common and local  common  declara-
        !          8968:      tions; data and text segments; support of the "undocumented"
        !          8969:      Z80 instructions (that work on high and  low  bytes  of  the
        !          8970:      index registers separately); expressions using C syntax; and
        !          8971:      string constants.
        !          8972: 
        !          8973: (9)  Zrun, a z80 microprocessor simulator.   Zrun  simulates  the
        !          8974:      execution  of  a  z80 with 64k RAM, as directed by user com-
        !          8975:      mands.  In addition to the essential commands that cause  an
        !          8976:      rzasm  object  program  to be loaded and executed, there are
        !          8977:      commands to examine and set  registers,  flags,  and  memory
        !          8978:      locations,  to  set  a  breakpoint, to single-step through a
        !          8979:      program, to re-direct the  flow  of  data  through  the  z80
        !          8980:      ports, etc.
        !          8981: 
        !          8982: The distribution currently runs under Berkeley Unix 4.1,  but  we
        !          8983: will  be upgrading to 4.2 in early July and the upgrade should be
        !          8984: ready for distribution in September.  At that time, we will begin
        !          8985: to put both the 4.1 and 4.2 sources on the distribution tape.  If
        !          8986: you are running 4.2 or plan to be running 4.2 in the near future,
        !          8987: it  is  probably  worth  your while to wait for it.  Also at that
        !          8988: time, the fee for the distribution will go up from $100 to $250.
        !          8989: 
        !          8990:      We also include Franz Lisp in the distribution since  it  is
        !          8991: easier  to do that than to describe all the small changes that we
        !          8992: have made to the Franz sources.  For  the  4.1  distribution,  we
        !          8993: send  Franz  Opus 38.26.  For the 4.2 distribution, we do not yet
        !          8994: know which Franz we will be mailing, but it will be whichever  we
        !          8995: get with our 4.2 Berkeley Unix.
        !          8996: 
        !          8997: 
        !          8998: How to obtain a tape:
        !          8999: 
        !          9000:      To obtain the Univ of Maryland distribution tape:
        !          9001: 
        !          9002: (1)  Fill in the form below and sign it.  Please indicate whether
        !          9003:      you  want  just  the  4.1 distribution, both the 4.1 and 4.2
        !          9004:      distributions or if you will be obtaining  the  distribution
        !          9005:      via a third party or via the Arpanet.
        !          9006: 
        !          9007: (2)  Make out a check to "University of Maryland Foundation"  for
        !          9008:      $100  (US  dollars) or for $250 (US dollars) if you want the
        !          9009:      4.2 distribution.  Mail the check and form to:
        !          9010: 
        !          9011:                   Liz Allen
        !          9012:                   Univ of Maryland
        !          9013:                   Dept of Computer Science
        !          9014:                   College Park MD 20742
        !          9015: 
        !          9016: 
        !          9017: (3)  If you need an invoice,  send  me  mail.   Don't  forget  to
        !          9018:      include your non-electronic mailing address.
        !          9019: 
        !          9020: Upon receipt of the money, we will mail you a tape containing our
        !          9021: software  and  the technical reports describing the software.  We
        !          9022: will also keep you informed of bug fixes via electronic mail.  We
        !          9023: have  an  electronic  mailing address for this kind of thing.  It
        !          9024: is:
        !          9025: 
        !          9026:          Usenet:      ...!seismo!umcp-cs!um-software
        !          9027:          Arpanet:     um-software@maryland
        !          9028: 
        !          9029: Please note that bug fixes will be done  only  insofar  they  are
        !          9030: consistent  with the research purposes of the University of Mary-
        !          9031: land.
        !          9032: 
        !          9033:      If you have any technical questions, etc, send mail  to  the
        !          9034: above  mailing  list.   If you have any administrative questions,
        !          9035: contact Diane Miller via electronic mail:
        !          9036: 
        !          9037:            Usenet:      ...!seismo!umcp-cs!despina
        !          9038:            Arpanet:     despina@maryland
        !          9039: 
        !          9040: or via phone at (301) 454-4251.
        !          9041: 
        !          9042: 
        !          9043:                          Liz Allen
        !          9044: 
        !          9045:                          Usenet:      ...!seismo!umcp-cs!liz
        !          9046:                          Arpanet:     liz@maryland
        !          9047: 
        !          9048: -----------------------------------------------------------------
        !          9049: 
        !          9050: In exchange for the Maryland software tape, I certify to the fol-
        !          9051: lowing:
        !          9052: 
        !          9053: a.   I will not use any of the Maryland software distribution  in
        !          9054:      a commercial product without obtaining permission from Mary-
        !          9055:      land first.
        !          9056: 
        !          9057: b.   I will keep the Maryland copyright  notices  in  the  source
        !          9058:      code,  and acknowledge the source of the software in any use
        !          9059:      I make of it.
        !          9060: 
        !          9061: c.   I will not redistribute this software to anyone without per-
        !          9062:      mission from Maryland first.
        !          9063: 
        !          9064: d.   I will keep Maryland informed of any bug fixes.
        !          9065: 
        !          9066: e.   I understand that the software I will be receiving has  been
        !          9067:      developed  for  research  purposes  only and may be good for
        !          9068:      absolutely nothing.  The University of  Maryland  offers  no
        !          9069:      warranties of any kind.  Bug fixes will be done only insofar
        !          9070:      they are  consistent  with  the  research  purposes  of  the
        !          9071:      University of Maryland.
        !          9072: 
        !          9073: f.   I am the appropriate person at my  site  who  can  make  the
        !          9074:      guarantees in parts a through e.
        !          9075: 
        !          9076: g.   I would like the package indicated below:
        !          9077: 
        !          9078: 
        !          9079:      ___  4.1 distribution only.  I have  enclosed  a  check  for
        !          9080:           $100.
        !          9081: 
        !          9082: 
        !          9083:      ___  4.1 and 4.2 distribution.  I have enclosed a check  for
        !          9084:           $250.   I  also understand that the 4.2 distribution is
        !          9085:           not yet ready and that there will be a delay  until  at
        !          9086:           least August or September before my tape arrives.
        !          9087: 
        !          9088:      ___  License and technical reports only.  I have enclosed  a
        !          9089:           check  for $100 and will obtain the distribution from a
        !          9090:           site that already has the distribtution or will get  it
        !          9091:           from  Maryland via the Arpanet.  (Please note specifics
        !          9092:           at the bottom of the form.)
        !          9093: 
        !          9094: 
        !          9095: 
        !          9096: 
        !          9097: Signature:                  ______________________________
        !          9098: 
        !          9099: Name:                       ______________________________
        !          9100: 
        !          9101: Position:                   ______________________________
        !          9102: 
        !          9103: Company or Organization:    ______________________________
        !          9104: 
        !          9105: Address:                    ______________________________
        !          9106: 
        !          9107:                             ______________________________
        !          9108: 
        !          9109: Phone number:               ______________________________
        !          9110: 
        !          9111: Electronic mail address:    ______________________________
        !          9112: 
        !          9113: 
        !          9114: From [email protected]  Wed Sep  5 16:11:17 1984
        !          9115: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9116:        id AA25823; Wed, 5 Sep 84 16:11:17 pdt
        !          9117: Received: from CORNELL.ARPA (cornell-gw.ARPA) by UCB-VAX.ARPA (4.24/4.33)
        !          9118:        id AA21315; Wed, 5 Sep 84 16:10:58 pdt
        !          9119: Received: from CORNELL-GVAX.ARPA (gvax) by CORNELL.ARPA (4.30/4.30)
        !          9120:        id AA15943; Wed, 5 Sep 84 19:11:13 edt
        !          9121: Date: Wed, 5 Sep 84 19:06:27 edt
        !          9122: From: [email protected] (Mark Bromley)
        !          9123: Message-Id: <[email protected]>
        !          9124: Received: by CORNELL-GVAX.ARPA (4.30/4.30)
        !          9125:        id AA19770; Wed, 5 Sep 84 19:06:27 edt
        !          9126: To: franz-friends@BERKELEY
        !          9127: Subject: Bug in open coding of vseti in Liszt 8.36
        !          9128: 
        !          9129: There is a mistake in the open coding of (vseti vector index expression).
        !          9130: When the generated code is executed it returns the value of the index expression
        !          9131: and not the value of expression.  The problem is in d_vset in liszt/vector.l.
        !          9132: The code in d_vset that generates the assembler code to compute the
        !          9133: return value assumes that code has been generated to put the value of
        !          9134: expression in index-reg.  This assumption is false.
        !          9135: 
        !          9136: I don't know the 68000 well enough to suggest a solution for it, but the
        !          9137: following should work for the VAX.  Change the lines
        !          9138: 
        !          9139:          (if g-loc
        !          9140:              then  (if (eq type 'byte)
        !          9141: 
        !          9142: (occuring about 3/4 of the way through d_vset) to
        !          9143: 
        !          9144:          (if g-loc
        !          9145:              then
        !          9146:                 #+for-vax
        !          9147:                 (progn
        !          9148:                      (setq temp (cadr (assq type '((byte cvtbl)
        !          9149:                                                    (word cvtwl)
        !          9150:                                                    (long movl)))))
        !          9151:                       (e-write3 temp vect-val index-reg)
        !          9152:                  )
        !          9153:                  
        !          9154:                  #+for-68k
        !          9155:                  (comment Do the same thing for the 68k)
        !          9156: 
        !          9157:                   (if (eq type 'byte)
        !          9158: 
        !          9159: Also, what is the current Berkeley distribution policy.  I tried ftp'ing
        !          9160: from ucbvax, but the pub/lisp directory there is empty.  I'd like to get my
        !          9161: hands on a distribution that has the flavors package in it.
        !          9162: 
        !          9163: Mark Bromley
        !          9164: bromley@cornell
        !          9165: 
        !          9166: 
        !          9167: 
        !          9168: 
        !          9169: From jkf@ucbmike  Tue Oct 30 12:19:45 1984
        !          9170: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9171:        id AA02909; Tue, 30 Oct 84 12:19:45 pst
        !          9172: Received: from ucbmike.arpa by UCB-VAX.ARPA (4.24/4.31)
        !          9173:        id AA23363; Tue, 30 Oct 84 11:43:13 pst
        !          9174: Received: by ucbmike.arpa (4.24ucb/4.33)
        !          9175:        id AA04265; Tue, 30 Oct 84 12:43:39 pst
        !          9176: Date: Tue, 30 Oct 84 12:43:39 pst
        !          9177: From: John Foderaro (on a sun) <jkf@ucbmike>
        !          9178: Message-Id: <[email protected]>
        !          9179: To: mrose%[email protected], franz-friends@BERKELEY
        !          9180: Subject: Re: Where is franz-friends-request
        !          9181: In-Reply-To: Your message of 28 Oct 84 10:04:05 EST (Sun)
        !          9182: 
        !          9183:  franz-friends-request@berkeley is valid.  occasionlly the mailer tries
        !          9184:  to look in the alias table while it is being updated.
        !          9185:  
        !          9186: 
        !          9187: 
        !          9188: From liz@tove  Tue Oct 30 13:18:32 1984
        !          9189: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9190:        id AA03406; Tue, 30 Oct 84 13:18:32 pst
        !          9191: Received: from tove.ARPA (tove.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31)
        !          9192:        id AA24224; Tue, 30 Oct 84 12:15:01 pst
        !          9193: Received: by tove.ARPA (4.12/4.7)
        !          9194:        id AA09504; Thu, 25 Oct 84 16:46:39 edt
        !          9195: From: Liz Allen <liz@tove>
        !          9196: Message-Id: <[email protected]>
        !          9197: Date: 25 Oct 1984 1646-EDT (Thursday)
        !          9198: To: Rene Bach <BACH@su-score>
        !          9199: Cc: franz-friends@BERKELEY
        !          9200: Subject: Re: A question
        !          9201: In-Reply-To: Your message of Thu 25 Oct 84 09:31:09-PDT.
        !          9202:              <[email protected]>
        !          9203: 
        !          9204:        From: Rene Bach <BACH%[email protected]>
        !          9205: 
        !          9206:        I am new on this list and haven't seen any other messages.
        !          9207: 
        !          9208: There isn't too much mail here.
        !          9209: 
        !          9210:        Is there a way to find out what are all the atoms which
        !          9211:        have been defined in Franz (a la mapatoms of INterlisp) ??
        !          9212: 
        !          9213: The functions (oblist) returns a list of all the atoms.
        !          9214: 
        !          9215:                                -Liz
        !          9216: 
        !          9217: From neves%[email protected]  Tue Oct 30 14:38:15 1984
        !          9218: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9219:        id AA04963; Tue, 30 Oct 84 14:38:15 pst
        !          9220: Received: from wisc-crys.arpa (wisc-crys.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31)
        !          9221:        id AA27563; Tue, 30 Oct 84 14:36:12 pst
        !          9222: Received: from wisc-ai.uwisc by wisc-crys.arpa; Tue, 30 Oct 84 16:35:00 cst
        !          9223: Date: Tue, 30 Oct 84 16:34:59 cst
        !          9224: From: neves%[email protected] (David Neves)
        !          9225: Message-Id: <[email protected]>
        !          9226: Received: by wisc-ai.uwisc; Tue, 30 Oct 84 16:34:59 cst
        !          9227: To: franz-friends@BERKELEY
        !          9228: Subject: vi/franz question
        !          9229: 
        !          9230: This is a vi/franz question.
        !          9231: I would like to use "=" in VI to indent my lisp code.  When I
        !          9232: type "=" in front of some lisp code I get
        !          9233: No alternate filename to substitute for #0
        !          9234: How do I indent Lisp code (besides using autoindent)?
        !          9235: -Thanks, David
        !          9236: 
        !          9237: From Johnson%[email protected]  Wed Oct 31 05:54:58 1984
        !          9238: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9239:        id AA04156; Wed, 31 Oct 84 05:54:58 pst
        !          9240: Received: from udel-relay (udel-gw.ARPA) by UCB-VAX.ARPA (4.24/4.31)
        !          9241:        id AA07029; Wed, 31 Oct 84 05:52:24 pst
        !          9242: Message-Id: <[email protected]>
        !          9243: Received: From udel-dewey.ARPA by udel-relay.ARPA id a018834 ;31 Oct 84 8:55 EST
        !          9244: Date:     Wed, 31 Oct 84 8:47:19 EST
        !          9245: From: johnson <johnson%[email protected]>
        !          9246: To: franz-friends@BERKELEY
        !          9247: Cc: johnson%[email protected]
        !          9248: Subject:  response to lisp/vi question
        !          9249: 
        !          9250: 
        !          9251: in response to:
        !          9252: 
        !          9253: >I would like to use "=" in VI to indent my lisp code.  When I
        !          9254: >type "=" in front of some lisp code I get
        !          9255: >No alternate filename to substitute for #0
        !          9256: >How do I indent Lisp code (besides using autoindent)?
        !          9257: 
        !          9258: 1. When I type "=" in vi (without :set lisp) I get no response at all.
        !          9259:        Is it possible that you defined a macro named "=" ?
        !          9260:        {
        !          9261:                check your ~/.exrc file for a line beginning:
        !          9262:                :map = <something-or-other>
        !          9263:        }
        !          9264: 
        !          9265: 2. Even after:
        !          9266:        :set lisp
        !          9267: 
        !          9268:        A single "=" does not seem to cause the correct action, however,
        !          9269:        two successive "="s do.  
        !          9270: 
        !          9271: to summarize:
        !          9272:        1. remove any mapping of "=" from ~/.exrc
        !          9273:        2. :set lisp
        !          9274:        3. use "==" rather than "="
        !          9275: 
        !          9276: - johnson@udel-ee
        !          9277: 
        !          9278: 
        !          9279: From raf%[email protected]  Wed Oct 31 11:35:57 1984
        !          9280: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9281:        id AA07802; Wed, 31 Oct 84 11:35:57 pst
        !          9282: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.31)
        !          9283:        id AA13682; Wed, 31 Oct 84 11:33:13 pst
        !          9284: Received: from bostonu by csnet-relay.csnet id ac00303; 31 Oct 84 14:27 EST
        !          9285: Received: by csvaxa.ARPA (4.12/4.7)
        !          9286:        id AA14678; Wed, 31 Oct 84 13:53:18 est
        !          9287: Date: Wed, 31 Oct 84 13:53:18 est
        !          9288: From: Rafail Ostrovsky <raf%[email protected]>
        !          9289: Message-Id: <[email protected]>
        !          9290: To: FRANZ-FRIENDS%[email protected]
        !          9291: Subject: MAILING LIST
        !          9292: 
        !          9293: Hello.
        !          9294: I would like to subscribe to your mailing list. 
        !          9295: I am a grad. student at Boston U. My address is:
        !          9296: 
        !          9297: raf%[email protected]
        !          9298: 
        !          9299:                Thank you, -Raf
        !          9300: 
        !          9301: From neves%[email protected]  Wed Oct 31 12:40:33 1984
        !          9302: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9303:        id AA09034; Wed, 31 Oct 84 12:40:33 pst
        !          9304: Received: from wisc-crys.arpa (wisc-crys.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31)
        !          9305:        id AA15180; Wed, 31 Oct 84 12:37:38 pst
        !          9306: Received: from wisc-ai.uwisc by wisc-crys.arpa; Wed, 31 Oct 84 14:35:47 cst
        !          9307: Date: Wed, 31 Oct 84 14:35:55 cst
        !          9308: From: neves%[email protected] (David Neves)
        !          9309: Message-Id: <[email protected]>
        !          9310: Received: by wisc-ai.uwisc; Wed, 31 Oct 84 14:35:55 cst
        !          9311: To: franz-friends@BERKELEY
        !          9312: Subject: re: Indenting lisp code in VI
        !          9313: 
        !          9314: Thanks for the response on indenting for Franz.  It seems as though
        !          9315: our systems people do not use Lisp and so have set up everyone's
        !          9316: .exrc file to map = to something else.  Your site might be doing the
        !          9317: same thing to this or other VI/Lisp features!  Stop them now.
        !          9318: 
        !          9319: From @MIT-MC:[email protected]  Wed Oct 31 17:37:36 1984
        !          9320: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9321:        id AA14939; Wed, 31 Oct 84 17:37:36 pst
        !          9322: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31)
        !          9323:        id AA02960; Wed, 31 Oct 84 17:14:37 pst
        !          9324: Message-Id: <[email protected]>
        !          9325: Date: 31 Oct 84 20:08:41 EST
        !          9326: From: Ingemar.Hulthage@CMU-RI-ISL2
        !          9327: Subject: Floating point division
        !          9328: To: BBoard.Maintainer@CMU-CS-A
        !          9329: 
        !          9330: 
        !          9331: Is there a pre-defined  function in Franz Lisp that never uses integer
        !          9332: division when it differs from floating point division ?  Obviously it is easy
        !          9333: to write (quotient (float a) b) or to write a function/macro with the same
        !          9334: effect. However, since Franz does a good job of dealing with different kinds
        !          9335: of numbers in other cases, it is inconvenient and inefficient if such a
        !          9336: function is not available in the system.
        !          9337: 
        !          9338: 
        !          9339: From eng20201%[email protected]  Thu Nov  1 16:02:58 1984
        !          9340: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9341:        id AA05698; Thu, 1 Nov 84 16:02:58 pst
        !          9342: Received: from WISCVM.ARPA (wiscvm.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31)
        !          9343:        id AA08850; Thu, 1 Nov 84 16:00:19 pst
        !          9344: Message-Id: <[email protected]>
        !          9345: Received: from [email protected] by WISCVM.ARPA on 11/01/84 at
        !          9346:    18:00:40 CST
        !          9347: Date:  1-Nov-84   18:58:53 EST
        !          9348: From: John Sutter               <eng20201%[email protected]>
        !          9349: Subject: Pretty typer
        !          9350: To: franz-friends@BERKELEY
        !          9351: Cc: eng20201%[email protected]
        !          9352: 
        !          9353: -----
        !          9354: 
        !          9355:   Does anyone know of a pretty typer for Franz Lisp?..
        !          9356: 
        !          9357:   If you do, please reply to me directly.
        !          9358: 
        !          9359:   Thanks
        !          9360: 
        !          9361:   ----  John
        !          9362: 
        !          9363: -----
        !          9364: 
        !          9365: From holtz%carleton.cdn%[email protected]  Sun Nov  4 14:39:06 1984
        !          9366: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9367:        id AA03203; Sun, 4 Nov 84 14:39:06 pst
        !          9368: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.31)
        !          9369:        id AA04466; Sun, 4 Nov 84 14:36:25 pst
        !          9370: Received: from ubc by csnet-relay.csnet id a004399; 4 Nov 84 15:43 EST
        !          9371: Date: Sun, 4 Nov 84 12:37:03 pst
        !          9372: Received: by ubc-ean.UUCP id AA17658; Sun, 4 Nov 84 12:37:03 pst
        !          9373: From: Neal Holtz <holtz%carleton.cdn%[email protected]>
        !          9374: To: franz-friends%[email protected]
        !          9375: Mmdf-Warning:  Parse error in preceding line at CSNET-RELAY.ARPA
        !          9376: Message-Id: 133:[email protected]
        !          9377: Subject: Franz on Apollos (or, Fritz Kunze, where are you?)
        !          9378: 
        !          9379: Sorry to send this to the newsgroup, but if Fritz (or anyone else,
        !          9380: for that matter) can tell me anything about the possibility of
        !          9381: having Franz run on Apollo workstations (under AEGIS) in the
        !          9382: near future, I would be most appreciative.
        !          9383: 
        !          9384: 
        !          9385: From holtz%carleton.cdn%[email protected]  Sun Nov  4 14:39:20 1984
        !          9386: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9387:        id AA03212; Sun, 4 Nov 84 14:39:20 pst
        !          9388: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.31)
        !          9389:        id AA04473; Sun, 4 Nov 84 14:36:37 pst
        !          9390: Received: from ubc by csnet-relay.csnet id a004408; 4 Nov 84 15:45 EST
        !          9391: Date: Sun, 4 Nov 84 12:37:03 pst
        !          9392: Received: by ubc-ean.UUCP id AA17658; Sun, 4 Nov 84 12:37:03 pst
        !          9393: From: Neal Holtz <holtz%carleton.cdn%[email protected]>
        !          9394: To: franz-friends%[email protected]
        !          9395: Mmdf-Warning:  Parse error in preceding line at CSNET-RELAY.ARPA
        !          9396: Message-Id: 133:[email protected]
        !          9397: Subject: Franz on Apollos (or, Fritz Kunze, where are you?)
        !          9398: 
        !          9399: Sorry to send this to the newsgroup, but if Fritz (or anyone else,
        !          9400: for that matter) can tell me anything about the possibility of
        !          9401: having Franz run on Apollo workstations (under AEGIS) in the
        !          9402: near future, I would be most appreciative.
        !          9403: 
        !          9404: 
        !          9405: From fkunze%ucbopal.CC%[email protected]  Sun Nov  4 23:25:12 1984
        !          9406: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9407:        id AA03125; Sun, 4 Nov 84 23:25:12 pst
        !          9408: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.31)
        !          9409:        id AA04781; Sun, 4 Nov 84 23:22:27 pst
        !          9410: Received: from ucb-vax.arpa by csnet-relay.arpa id a006482; 5 Nov 84 2:21 EST
        !          9411: Received: from ucbjade.CC.Berkeley.ARPA (ucbjade.ARPA) by UCB-VAX.ARPA (4.24/4.31)
        !          9412:        id AA04236; Sun, 4 Nov 84 22:58:35 pst
        !          9413: Received: from ucbopal.CC.Berkeley.ARPA (ucbopal.ARPA)
        !          9414:        by ucbjade.CC.Berkeley.ARPA (4.17/4.27.2)
        !          9415:        id AA14292; Sun, 4 Nov 84 22:59:18 pst
        !          9416: Received: by ucbopal.CC.Berkeley.ARPA (4.17/4.28)
        !          9417:        id AA03601; Sun, 4 Nov 84 22:59:26 pst
        !          9418: Date: Sun, 4 Nov 84 22:59:26 pst
        !          9419: From: Fritz Kunze <fkunze%ucbopal.CC%[email protected]>
        !          9420: Message-Id: <[email protected]>
        !          9421: To: franz-friends%ucb-vax.arpa%[email protected],
        !          9422:         holtz%carleton.cdn%ubc.csnet%[email protected]
        !          9423: Subject: Re: Franz on Apollos (or, Fritz Kunze, where are you?)
        !          9424: 
        !          9425: We are working on an Apollo port right now. Due to some
        !          9426: non-standard features in the Apollo operating system,
        !          9427: the port is requiring far more time than we originally
        !          9428: anticipated.  We are very close to a working interpreter,
        !          9429: but the compiler will require more time.  Are you interested
        !          9430: in the Interpreter first?
        !          9431: ---Fritz Kunze
        !          9432:    Franz Inc.
        !          9433:    2920 Domingo, suite 203
        !          9434:    Berkeley, CA 94705
        !          9435:    (415) 540-1224
        !          9436: 
        !          9437: 
        !          9438: 
        !          9439: From abrams@mitre  Mon Nov  5 11:41:38 1984
        !          9440: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9441:        id AA08762; Mon, 5 Nov 84 11:41:38 pst
        !          9442: Received: from mitre (mitre.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31)
        !          9443:        id AA06184; Mon, 5 Nov 84 11:38:18 pst
        !          9444: Message-Id: <[email protected]>
        !          9445: Date:  5 Nov 1984 14:17:36 EST (Monday)
        !          9446: From: Marshall Abrams <abrams@mitre>
        !          9447: Subject: Call for papers: Expert Systems Symposium
        !          9448: To: add1:@mitre
        !          9449: Cc: abrams@mitre
        !          9450: 
        !          9451: Call for Papers
        !          9452: 
        !          9453: Expert Systems in Government Conference
        !          9454: 
        !          9455: October 23-25, 1985
        !          9456: 
        !          9457: THE CONFERENCE objective is to allow the developers and implementers
        !          9458: of expert systems in goverenment agencies to exchange information and
        !          9459: ideas first hand for the purpose of improving the quality of
        !          9460: existing and future expert systems in the government sector. 
        !          9461: Artificial Intelligence (AI) has recently been maturing so rapidly
        !          9462: that interest in each of its various facets, e.g., robotics, vision,
        !          9463: natural language, supercomputing, and expert systems, has acquired
        !          9464: an increasing following and cadre of practitioners.
        !          9465: 
        !          9466: PAPERS are solicited which discuss the subject of the conference. 
        !          9467: Original research, analysis and approaches for defining  expert   
        !          9468: systems issues and problems such as those identified in the
        !          9469: anticipated session topics, methodological approaches for analyzing
        !          9470: the scope and nature of expert system issues, and potential
        !          9471: solutions are of particular interest.  Completed papers are to be no
        !          9472: longer than 20 pages including graphics and are due 1 May 1985.
        !          9473: Four copies of papers are to be sent to:
        !          9474: 
        !          9475: Dr. Kamal Karna, Program Chairman
        !          9476: MITRE Corporation W852
        !          9477: 1820 Dolley Madison Boulevard
        !          9478: McLean, Virginia  22102
        !          9479: Phone (703) 883-5866
        !          9480: ARPANET:  Karna @ Mitre
        !          9481: 
        !          9482: Notification of acceptance and manuscript preparation instructions
        !          9483: will be provided by 20 May 1985.
        !          9484: 
        !          9485: THE CONFERENCE is sponsored by the IEEE Computer Society and The
        !          9486: MITRE Corporation in cooperation with The Association for Computing
        !          9487: Machinery, The american Association for Artificial Intelligence and
        !          9488: The American Institute of Aeronautics and Astronautics National
        !          9489: Capital Section.  This conference will offer high quality technical
        !          9490: exchange and published proceedings.
        !          9491: 
        !          9492: It will be held at Tyson's Westpark Hotel, Tysons Corner, McLean,
        !          9493: VA, suburban Washington, D.C.
        !          9494: 
        !          9495: 
        !          9496: TOPICS OF INTEREST
        !          9497: 
        !          9498: The topics of interest include the expert systems in the following
        !          9499: applications domains (but are not limited to):
        !          9500: 
        !          9501:  1.  Professional:           Accounting, Consulting, Engineering,
        !          9502:                              Finance, Instruction, Law, Marketing,
        !          9503:                              Management, Medicine
        !          9504:                              Systems, Intelligent DBMS
        !          9505: 
        !          9506:  2.  Office Automation:      Text Understanding, Intelligent
        !          9507: 
        !          9508:  3.  Command & Control:      Intelligence Analysis, Planning,
        !          9509:                              Targeting, Communications, Air Traffic
        !          9510:                              Control
        !          9511: 
        !          9512:  4.  Exploration:            Space, Prospecting, Mineral, Oil
        !          9513: 
        !          9514:                              Archeology
        !          9515: 
        !          9516:  5.  Weapon Systems:         Adaptive Control, Electronic Warfare,
        !          9517:                              Star Wars, Target Identification
        !          9518: 
        !          9519:  6.  System Engineering:     Requirements, Preliminary Design,
        !          9520:                              Critical Design, Testing, and QA
        !          9521: 
        !          9522:  7.  Equipment:              Design Monitoring, Control, Diagnosis,  
        !          9523:                              Maintenance, Repair, Instruction
        !          9524: 
        !          9525:  8.  Project Management:     Planning, Scheduling, Control
        !          9526: 
        !          9527:  9.  Flexible Automation:    Factory and Plan Automation
        !          9528: 
        !          9529: 10.  Software:               Automatic Programming, Specifications,
        !          9530:                              Design, Production, Maintenance and
        !          9531:                              Verification and Validation
        !          9532: 
        !          9533: 11.  Architecture:           Single, Multiple, Distributed Problem
        !          9534:                              Solving Tools
        !          9535: 
        !          9536: 12.  Imagery:                Photo Interpretation, Mapping, etc.
        !          9537: 
        !          9538: 13.  Education:              Concept Formation, Tutoring, Testing,
        !          9539:                              Diagnosis, Learning
        !          9540: 
        !          9541: 14.  Entertainment and       Intelligent Games, Investment and
        !          9542:      Expert Advice Giving:   Finances, Retirement, Purchasing,
        !          9543:                              Shopping, Intelligent Information
        !          9544:                              Retrieval
        !          9545: 
        !          9546: 
        !          9547: 
        !          9548: From decvax!utzoo!dciem!nrcaero!clan.carleton!holtz  Mon Nov  5 17:32:56 1984
        !          9549: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9550:        id AA14064; Mon, 5 Nov 84 17:32:56 pst
        !          9551: Received: by UCB-VAX.ARPA (4.24/4.39)
        !          9552:        id AA14362; Mon, 5 Nov 84 17:30:11 pst
        !          9553: Return-Path: <decvax!utzoo!dciem!nrcaero!clan.carleton!holtz>
        !          9554: Received: by decvax.UUCP (4.12/1.0)
        !          9555:        id AA28321; Mon, 5 Nov 84 16:46:11 est
        !          9556: Date: Sun, 4 Nov 84 21:23:59 est
        !          9557: From: Neal Holtz <decvax!carleton!clan.carleton!holtz@clan.>
        !          9558: Message-Id: <8411050223.AA07104@clan. UUCP>
        !          9559: Received: by clan. UUCP (4.12/3.14)
        !          9560:        id AA07104; Sun, 4 Nov 84 21:23:59 est
        !          9561: To: nrcaero!dciem!utzoo!decvax!ucbvax!franz-friends
        !          9562: Subject: Franz on Apollos (or -- Fritz Kunze, where are you?)
        !          9563: 
        !          9564: Sorry to send this to the newsgroup, but if Fritz (or anyone else,
        !          9565: for that matter) can tell me anything about the possibility of
        !          9566: having Franz run on Apollo workstations (under AEGIS) in the
        !          9567: near future, I would be most appreciative.
        !          9568: 
        !          9569: 
        !          9570: 
        !          9571: 
        !          9572: 
        !          9573: 
        !          9574: 
        !          9575: From [email protected]  Tue Nov  6 16:15:33 1984
        !          9576: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9577:        id AA25403; Tue, 6 Nov 84 16:15:33 pst
        !          9578: Received: from SCRC-STONY-BROOK.ARPA (scrc-stony-brook.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31)
        !          9579:        id AA06061; Tue, 6 Nov 84 16:12:18 pst
        !          9580: Message-Id: <[email protected]>
        !          9581: Received: from CHAGRIN by SCRC-STONY-BROOK via CHAOS with CHAOS-MAIL id 122057; Tue 6-Nov-84 19:13:41-EST
        !          9582: Date: Tue, 6 Nov 84 19:11 EST
        !          9583: From: Richard Brenner <[email protected]>
        !          9584: Subject: Job Opportunities
        !          9585: To: maple-sys@BERKELEY, symalg%rand-unix.arpa%[email protected],
        !          9586:         franz-friends@BERKELEY
        !          9587: In-Reply-To: The message of 6 Nov 84 15:51-EST from Richard Pavelle <RP at SCRC-TENEX>
        !          9588: 
        !          9589: 
        !          9590: Symbolics, Inc. of Cambridge is the acknowledged leader in the field of
        !          9591: Symbolic Processing, offering the premier LISP-based Symbolic Processor
        !          9592: for advanced problem-solving applications.  We are a fast-growing,
        !          9593: high-tech company with new, modern facilities right in Cambridge. Recent
        !          9594: expansion has created opportunities for the following experienced
        !          9595: professionals:
        !          9596: 
        !          9597: 
        !          9598: Member of Technical Staff
        !          9599: 
        !          9600: You will assist with maintenance and enhancement of MACSYMA, a large
        !          9601: Computer Algebra System written in LISP and used by engineers and
        !          9602: scientists for performing symbolic computations.  Immediate projects
        !          9603: could include design and implementation of tools for conversion to
        !          9604: Common LISP, improving modularity, modernizing the user interface,
        !          9605: improving performance, and design and implementation of new mathematical
        !          9606: packages based on the latest available algorithms.  Work will be
        !          9607: performed on all versions of MACSYMA using Symbolics 3600 Family Lisp
        !          9608: Machines.  A strong background in mathematics and Lisp programming is
        !          9609: preferred.  Experience with MACSYMA is desirable.
        !          9610: 
        !          9611: 
        !          9612: Technical Sales Support Engineer
        !          9613: 
        !          9614: You will provide technical support to our internal sales staff, to
        !          9615: customers and to prospective customers.  Responsibilities include
        !          9616: assistance at demonstration sites, installations on several kinds of
        !          9617: machines, and a full range of customer support activities.  This could
        !          9618: include design, development and delivery of a trainging course for
        !          9619: MACSYMA users.  Qualified applicants will have experience with a
        !          9620: high-level language, preferably MACSYMA.  Good written and verbal
        !          9621: communication skills and prior software project involvement are desired.
        !          9622: B.S. degree or equivalent and 2 years experience preferred.
        !          9623: 
        !          9624: 
        !          9625: Qualified candidates should send their resume,in strict confidence,
        !          9626: including salary history, to Gina Setteducati, Personnel Supervisor,
        !          9627: Symbolics, Inc., 11 Cambridge Center, Cambridge, MA 02142.  An equal
        !          9628: opportunity employer.
        !          9629: 
        !          9630: 
        !          9631: From [email protected]  Wed Nov  7 19:52:19 1984
        !          9632: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9633:        id AA08630; Wed, 7 Nov 84 19:52:19 pst
        !          9634: Received: from uw-beaver.arpa (uw-beaver.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31)
        !          9635:        id AA05368; Wed, 7 Nov 84 18:51:47 pst
        !          9636: Received: by uw-beaver.arpa (4.12/2.2)
        !          9637:        id AA00936; Wed, 7 Nov 84 17:50:03 pst
        !          9638: Return-Path: <ssc-vax!steve>
        !          9639: Received: by ssc-vax (4.12/4.7)
        !          9640:        id AA06915; Wed, 7 Nov 84 17:24:40 pst
        !          9641: Date: Wed, 7 Nov 84 17:24:40 pst
        !          9642: From: [email protected] (Steve White)
        !          9643: Message-Id: <8411080124.AA06915@ssc-vax>
        !          9644: To: uw-beaver!franz-friends@BERKELEY
        !          9645: Subject: readtable within fasl
        !          9646: 
        !          9647: 
        !          9648: In "fasl.c" before the literals are read back out of the object file,
        !          9649: the readtable is rebound to the 'standard-readtable'. This short-circuits
        !          9650: any type of character macro expansion. Does anyone known a workaround
        !          9651: for this? In NIL you can specify the readtable associated with the object
        !          9652: code, I guess I'm wondering how to mimic this behavior in franz?
        !          9653:                        thanks
        !          9654:                                        steve white
        !          9655:                                (ssc-vax!steve@uw-beaver)
        !          9656: 
        !          9657: From @MIT-MC:smh@MIT-EDDIE  Thu Nov  8 07:49:13 1984
        !          9658: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9659:        id AA12925; Thu, 8 Nov 84 07:49:13 pst
        !          9660: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31)
        !          9661:        id AA17112; Thu, 8 Nov 84 07:46:31 pst
        !          9662: Message-Id: <[email protected]>
        !          9663: Received: by mit-eddie.Mit-chaos.Arpa id AA20888; Thu, 8 Nov 84 10:33:41 est
        !          9664: Date: Thu, 8 Nov 84 10:33:41 est
        !          9665: From: Steven M. Haflich <smh@mit-eddie>
        !          9666: To: franz-friends@BERKELEY
        !          9667: Subject: Re: readtable within fasl
        !          9668: 
        !          9669: I too was bothered by fasl's insistence on using the standard readtable
        !          9670: to process literals in liszt-compiled files until I realized the reason
        !          9671: for this limitation:
        !          9672: 
        !          9673: All source input to liszt is processed by `read' -- that is, the
        !          9674: compiler reads only forms, never ascii strings.  In order to place a
        !          9675: literal form in an object file, liszt must essentially convert the form
        !          9676: back into ASCII via `print'.  (Actually, a somewhat modified version
        !          9677: which knows how to wrap an assembler `.asciz' directive around the
        !          9678: printed representation of the form, etc.)  Unfortunately, liszt can make
        !          9679: no easy assumption about what strange readtable is likely to be active
        !          9680: at load time, so the only sane choice is to use the standard readtable.
        !          9681: 
        !          9682: In other words, you shouldn't think of literal forms stored in a fasl
        !          9683: object file as external (ASCII) representation of lisp data.  Rather,
        !          9684: liszt/fasl use ASCII as a convenient "position-independent" encoding of
        !          9685: a form which has already been processed by read at compile time.  This
        !          9686: is entirely analogous to what traditional compilers and assemblers do
        !          9687: with numeric constants represented in ASCII inside a program, except
        !          9688: their compiler-to-loader data format uses the native binary number
        !          9689: representation of the object machine.
        !          9690: 
        !          9691: One could argue that this isn't really a limitation provided one is
        !          9692: willing and able to provide the desired readtable at compile time.
        !          9693: Usually this isn't a problem, although I once I had a macro which wanted
        !          9694: to insert into a form a particular uninterned symbol which (obviously)
        !          9695: couldn't even exist until execution time.  I was forced to wrap the form
        !          9696: inside another function which would accomplish the substitution at load
        !          9697: time.
        !          9698: 
        !          9699: There is no reason liszt could not be made to copy ASCII forms into the
        !          9700: fasl file without read->print translation, but this would require
        !          9701: changes to the compiler and to fasl format, things not to be done
        !          9702: lightly.  If you *really* need the facility, and don't need to read huge
        !          9703: volumes of data, you could include ASCII forms inside a fasl file by
        !          9704: encoding them as lisp strings, and seeing that they get processed by an
        !          9705: appropriate function at load time, something like:
        !          9706: 
        !          9707:        (defun strange-read (str)
        !          9708:               (let ((readtable strange-readtable))
        !          9709:                    (readlist (explodec str))))
        !          9710: 
        !          9711: Then you can do things like:
        !          9712:        (setq foo (strange-read ") a b )c d( e (")
        !          9713: 
        !          9714: [What?  You don't like my readtable with the parens reversed?]  The
        !          9715: invocation of `strange-read' can, of course, be conveniently macrofied.
        !          9716: If appropriate, automatic printing of literal strings can also be
        !          9717: performed by compile time macros.  You will have to deal with the
        !          9718: problem of escaping quotes inside these forms, and you might want to
        !          9719: enable string garbage collection if you do a lot of this sort of thing.
        !          9720: 
        !          9721: I know it's ugly, but...
        !          9722: 
        !          9723: Steve Haflich
        !          9724: 
        !          9725: 
        !          9726: From @MIT-MC:smh@MIT-EDDIE  Thu Nov  8 12:17:02 1984
        !          9727: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9728:        id AA15294; Thu, 8 Nov 84 12:17:02 pst
        !          9729: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31)
        !          9730:        id AA22393; Thu, 8 Nov 84 11:59:13 pst
        !          9731: Message-Id: <[email protected]>
        !          9732: Received: by mit-eddie.Mit-chaos.Arpa id AA21531; Thu, 8 Nov 84 12:51:14 est
        !          9733: Date: Thu, 8 Nov 84 12:51:14 est
        !          9734: From: Steven M. Haflich <smh@mit-eddie>
        !          9735: To: franz-friends@BERKELEY
        !          9736: Subject: Re: Re: readtable within fasl
        !          9737: 
        !          9738: There was a typo in my previous mailing.  The function "explodec"
        !          9739: should have been "exploden".
        !          9740: 
        !          9741: 
        !          9742: From [email protected]  Thu Nov  8 14:24:38 1984
        !          9743: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9744:        id AA16474; Thu, 8 Nov 84 14:24:38 pst
        !          9745: Received: from SU-SCORE.ARPA (su-score.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31)
        !          9746:        id AA25584; Thu, 8 Nov 84 14:22:00 pst
        !          9747: Message-Id: <[email protected]>
        !          9748: Date: Thu 8 Nov 84 14:21:16-PST
        !          9749: From: Rene Bach <[email protected]>
        !          9750: Subject: printing delayed in Eunice
        !          9751: To: franz-friends@BERKELEY
        !          9752: Cc: [email protected]
        !          9753: 
        !          9754: It appears that printing gets delayed in Eunice. What I mean by that
        !          9755: is that I have a print statement which should indicate that the system
        !          9756: is progressing. However, the system is chugging along, nothing shows
        !          9757: for a long while and then the printing happens ALL at ONCE ! As if the
        !          9758: output was buffered and go printed when something else needed to be
        !          9759: printed.
        !          9760: 
        !          9761: As anyone run across this before ? Is there a flag one needs to set ?
        !          9762: 
        !          9763: Has it to do with Eunice ?  What I am printing is just an atom and a ", ".
        !          9764: When I print longer stuff, no buffering is noticed.
        !          9765: 
        !          9766: Thanks
        !          9767: Rene
        !          9768: -------
        !          9769: 
        !          9770: From [email protected]  Thu Nov  8 16:34:36 1984
        !          9771: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9772:        id AA17894; Thu, 8 Nov 84 16:34:36 pst
        !          9773: Received: from Xerox.ARPA (xerox.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31)
        !          9774:        id AA27172; Thu, 8 Nov 84 15:30:06 pst
        !          9775: Message-Id: <[email protected]>
        !          9776: Received: from Burger.ms by ArpaGateway.ms ; 08 NOV 84 15:29:24 PST
        !          9777: Date: 8 Nov 84 15:22 PST
        !          9778: From: [email protected]
        !          9779: Subject: Re: readtable within fasl
        !          9780: In-Reply-To: Steven M. Haflich <[email protected]>'s message of Thu, 8
        !          9781:  Nov 84 10:33:41 est
        !          9782: To: [email protected]
        !          9783: Cc: franz-friends@BERKELEY
        !          9784: 
        !          9785: The problems with a user-tailorable READ is one of the reasons why, over
        !          9786: 12 years ago, we chose a format for MacLisp's FASL files that is
        !          9787: somewhat akin to a position-independent list encoding.  (But in fact, it
        !          9788: was primarily for speed that the READ-oriented option was abandoned).
        !          9789: 
        !          9790: However, there was still the need to introduce load-time evaluation, in
        !          9791: order to create structures that can't be known even faintly at compile
        !          9792: time; there is an "internal" marker, accessible to the MacLisp user as a
        !          9793: global variable (named SQUID, I believe), so that the portions of a
        !          9794: structure that need to be eval'd at load time could be marked.  E.g.
        !          9795:     (FOO 3 '(SOME (DEEPLY NESTING (LIST IN #,LISPSYSTEMDATE))))
        !          9796: and the #, signals a spot for load-time evaluation, even though the
        !          9797: overall structure is essentally a QUOTE form.  
        !          9798: 
        !          9799: One needn't imagine that #, is the only client of this "internal" marker
        !          9800: -- it provides the way to get all but the trivial datatypes into
        !          9801: quotified structures; for example, I may have an input syntax for
        !          9802: arrays, but still PRINT won't put them out (MacLisp PRINT won't, at
        !          9803: least), and certainly not every conceivable datatype needs a special
        !          9804: encoding for the FASL file format; merely a LIST, which is viewed as a
        !          9805: general program by EVAL, is satisfactory to create any createable
        !          9806: datatype instance.
        !          9807: 
        !          9808: Interlisp too has a loadtime evaluation construct, but it may only
        !          9809: replace a QUOTE -- not some sub-piece of data underneath a QUOTE, such
        !          9810: as indicated by the #, above.  A primary reason for this limitation is
        !          9811: the similarity of Interlisp's and Franz's compiler output formats --
        !          9812: basically an ascii string to which READ is applied.   MacLisp's loader
        !          9813: is indeed quite more complex, but it results in a space savings for the
        !          9814: FASL files and a considerable time savings when loading them.
        !          9815: 
        !          9816: -- Jon L White --
        !          9817: 
        !          9818: 
        !          9819: 
        !          9820: From @MIT-MC:[email protected]  Fri Nov  9 12:09:40 1984
        !          9821: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9822:        id AA26238; Fri, 9 Nov 84 12:09:40 pst
        !          9823: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          9824:        id AA04311; Fri, 9 Nov 84 12:06:51 pst
        !          9825: Message-Id: <[email protected]>
        !          9826: Date: 9 Nov 84 14:02:29 EST
        !          9827: From: Nancy.Skooglund@CMU-RI-ISL3
        !          9828: Subject: opening file for output, append
        !          9829: To: BBoard.Maintainer@CMU-CS-A
        !          9830: 
        !          9831: Does anyone know how to open a file for output in Franz lisp and
        !          9832: @i(append) to that file?  The function "outfile" always deletes the old
        !          9833: version first.
        !          9834: 
        !          9835: Thanks,
        !          9836: Nancy Skooglund
        !          9837: 
        !          9838: 
        !          9839: From @MIT-MC:[email protected]  Sun Nov 11 11:57:03 1984
        !          9840: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9841:        id AA16052; Sun, 11 Nov 84 11:57:03 pst
        !          9842: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          9843:        id AA15747; Sun, 11 Nov 84 11:54:17 pst
        !          9844: Message-Id: <[email protected]>
        !          9845: Date: 11 Nov 84 00:15:49 EST
        !          9846: From: David.Yaskin@CMU-CS-H
        !          9847: Subject: Franz Question
        !          9848: To: BBoard.Maintainer@CMU-CS-A
        !          9849: 
        !          9850: 
        !          9851: How does one change the depth and length of list returned from functions.
        !          9852: While using CMULisp it keeps returning & instead of my list.
        !          9853: 
        !          9854:                David Yaskin   ( day@h)
        !          9855: 
        !          9856: 
        !          9857: From Johnson%[email protected]  Sun Nov 11 19:11:37 1984
        !          9858: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9859:        id AA19376; Sun, 11 Nov 84 19:11:37 pst
        !          9860: Received: from udel-relay (udel-gw.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          9861:        id AA21463; Sun, 11 Nov 84 19:08:46 pst
        !          9862: Message-Id: <[email protected]>
        !          9863: Received: From udel-dewey.ARPA by udel-relay.ARPA id a010044
        !          9864:           ;11 Nov 84 22:09 EST
        !          9865: Date:     Sun, 11 Nov 84 22:07:41 EST
        !          9866: From: johnson <johnson%[email protected]>
        !          9867: To: [email protected]
        !          9868: Cc: franz-friends@BERKELEY, johnson%[email protected]
        !          9869: Subject:  Re:  Franz Question
        !          9870: 
        !          9871: --------------------  for franz -----------------------------
        !          9872: In franz lisp, 'prinlevel' is a variable controlling the
        !          9873: depth to which the top-level is to print lists, 'prinlength'
        !          9874: controls how many elements of a list are printed by the
        !          9875: top-level. For either variable, a value of 'nil' represents
        !          9876: infinite depth or length.
        !          9877: 
        !          9878: If franz is printing expressions as '&' then 
        !          9879: prinlevel has a value of 0.
        !          9880: 
        !          9881: you should
        !          9882: (setq prinlevel nil)
        !          9883: to print lists of arbitrary depth.
        !          9884: (see Appendix B of the Franz manual)
        !          9885: 
        !          9886: ----------------  for CMU --------------------
        !          9887: 
        !          9888: In CMULisp, tlprint does the top-level printing, and this is
        !          9889: defined, (in, at least the 2 systems that I use) as:
        !          9890: 
        !          9891:        '(lambda (x) (printlev x 4))
        !          9892: 
        !          9893: if your functions always return &, then perhaps someone has defined
        !          9894: it as '(lambda (x) (printlev x 0))
        !          9895: 
        !          9896: if you want to change it you may either:
        !          9897: 1.  (sstatus translink nil)
        !          9898:     (defun tlprint (x) (printlev x <some-large-number>))
        !          9899: 
        !          9900: OR,  the solution  I prefer:
        !          9901: 
        !          9902: 2.  (load 'toplevel)  ; unnecessary in some installations.
        !          9903:     (defun tlprint (x) (top-print x))
        !          9904:   
        !          9905: causing 'prinlevel' and 'prinlength' to have
        !          9906: the effect described above for the franz system.
        !          9907:  
        !          9908:  NB: the tempting solution:
        !          9909:  (defun tlprint (x) (printlev x prinlevel))
        !          9910:  FAILS in the case that prinlevel is nil
        !          9911: 
        !          9912: 
        !          9913: -johnson@udel-ee
        !          9914: 
        !          9915: From Johnson%[email protected]  Sun Nov 11 19:31:52 1984
        !          9916: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9917:        id AA19491; Sun, 11 Nov 84 19:31:52 pst
        !          9918: Received: from udel-relay (udel-gw.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          9919:        id AA21770; Sun, 11 Nov 84 19:29:03 pst
        !          9920: Message-Id: <[email protected]>
        !          9921: Received: From udel-dewey.ARPA by udel-relay.ARPA id a010257
        !          9922:           ;11 Nov 84 22:29 EST
        !          9923: Date:     Sun, 11 Nov 84 22:21:49 EST
        !          9924: From: johnson <johnson%[email protected]>
        !          9925: To: [email protected]
        !          9926: Cc: franz-friends@BERKELEY, johnson%[email protected]
        !          9927: Subject:  Re:  opening file for output, append
        !          9928: 
        !          9929: In later versions of franz, 'outfile' takes a second argument;
        !          9930: to open a file for appending:
        !          9931: 
        !          9932:     (setq portname (outfile '<filename> 'a))
        !          9933: 
        !          9934: {try:
        !          9935:     (help outfile)
        !          9936: for a full description.}
        !          9937: 
        !          9938: If this does not work on your version, I have a hack that associates a port
        !          9939: with ANY open file descriptor, but it uses 4.x system calls, - so don't
        !          9940: request it unless the you can't use the new 'outfile' function.
        !          9941: 
        !          9942: -johnson@udel-ee
        !          9943: 
        !          9944: 
        !          9945: From @MIT-MC:[email protected]  Mon Nov 12 06:45:39 1984
        !          9946: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9947:        id AA22731; Mon, 12 Nov 84 06:45:39 pst
        !          9948: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          9949:        id AA01316; Mon, 12 Nov 84 06:42:54 pst
        !          9950: Message-Id: <[email protected]>
        !          9951: Date: 12 Nov 84 09:34:14 EST
        !          9952: From: Nancy.Skooglund@CMU-RI-ISL1
        !          9953: Subject: append to file answer found
        !          9954: To: BBoard.Maintainer@CMU-CS-A
        !          9955: 
        !          9956: Thanks to all who responded to my Franz lisp question about opening a
        !          9957: file for output and appending to it.  Here's how it works:
        !          9958: 
        !          9959:        (outfile '<filename> 'a)
        !          9960: 
        !          9961: 'a may be replaced by any symbol or string whose name begins with a.
        !          9962: 
        !          9963: Nancy
        !          9964: 
        !          9965: 
        !          9966: From [email protected]  Tue Nov 13 04:26:24 1984
        !          9967: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          9968:        id AA04324; Tue, 13 Nov 84 04:26:24 pst
        !          9969: Received: from ucbjade.CC.Berkeley.ARPA (ucbjade.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          9970:        id AA20746; Tue, 13 Nov 84 04:25:59 pst
        !          9971: Received: from wisdom.BITNET
        !          9972:        by ucbjade.CC.Berkeley.ARPA (4.17/4.27.5)
        !          9973:        id AA10274; Tue, 13 Nov 84 04:24:53 pst
        !          9974: Received: by wisdom.BITNET (4.12/4.7)
        !          9975:         id AA01997; Tue, 13 Nov 84 11:29:45 -0200
        !          9976: Date: Tue, 13 Nov 84 11:29:45 -0200
        !          9977: From: [email protected] (Jacob Levy)
        !          9978: Message-Id: <[email protected]>
        !          9979: To: [email protected]
        !          9980: Subject: Announcement of new Lisp for UN*X 4.x VAXen
        !          9981: 
        !          9982: I don't know if this is the appropriate place for this announcement, but
        !          9983: here goes anyway :-
        !          9984: 
        !          9985: 
        !          9986:         YLISP, a Coroutine-based Lisp System for VAXen.
        !          9987:         -=============================================-
        !          9988: 
        !          9989:         A friend of  mine, Yitzhak  Dimitrovski, and  myself, wrote a Lisp
        !          9990: system for UN*X 4.x systems on VAXen. It has the following features :-
        !          9991: 
        !          9992:         o - Coroutines and  closures. The  system uses  these to implement
        !          9993:             the user-interface, single-stepping and  error-handling.  It's
        !          9994:             easy to write a scheduler and time-share YLISP between  two or
        !          9995:             more user programs.
        !          9996:         o - Multiple-dimension arrays.
        !          9997:         o - Multiple name  spaces (oblists) arranged  in a tree hierarchy.
        !          9998:             This is similar to the Lisp Machine facility.
        !          9999:         o - Defstruct structure definition package.
        !          10000:         o - Flavors object-oriented programming tools.
        !          10001:         o - User-extensible  evaluator (it is  possible to (re)define  the
        !          10002:             actions of 'eval', 'apply' and 'print'  relative to all  user-
        !          10003:             and pre-defined types).
        !          10004:         o - Integer arithmetic. No floating-point, sorry. don't think that
        !          10005:             that's  really  necessary, but *could*  be hacked. No  BIGNUMs
        !          10006:             either.
        !          10007:         o - Good user-interface with history, sophisticated error handling
        !          10008:             and function-call and variable-assignment tracing facilities.
        !          10009:         o - Extensive library of ported and user-contributed programs,such
        !          10010:             as a variant of the Interlisp  structure editor, 'loop' macro,
        !          10011:             'mlisp' Pascal-like embedded language, etc.
        !          10012:         o - Compiler  that  generates efficient native  assembler code for
        !          10013:             the VAXen. The  compiler is provided as a separate program,due
        !          10014:             to size  considerations. The compiler is  written entirely  in
        !          10015:             Lisp, of course.
        !          10016:         o - Extensive online documentation, as well as  a 400-page  manual
        !          10017:             describing the whole system from a programmer's point of view.
        !          10018: 
        !          10019:         The system is named  'YLISP', and was written for 4.1 when we were
        !          10020: students at the Hebrew University  at Jerusalem. Since  then, Yitzhak  has
        !          10021: left  for the  US and  is  currently a  Ph.D. student in  Prof. Schwartz's
        !          10022: Supercomputer group at Courant. I have continued to  develop the system on
        !          10023: my own, and have ported it to UN*X 4.2.
        !          10024: 
        !          10025:         I am looking for a site that is willing to handle the distribution
        !          10026: of this software from the US, by letting  one FTP it  from their computer.
        !          10027: Alternatively, I am also willing to supply people  with magtapes of YLISP,
        !          10028: for the cost of the tape and handling charges (about 70$ a piece).  If you
        !          10029: are interested, please respond by electronic mail to one of  the addresses
        !          10030: given below. I will be  ready  to  start distributing  the  system in  two
        !          10031: weeks' time.
        !          10032: 
        !          10033:         Rusty Red (AKA Jacob Levy)
        !          10034: 
        !          10035:         BITNET:                         jaakov@wisdom
        !          10036:         CSNET and ARPA:                 jaakov%[email protected]
        !          10037:         UUCP: (if all else fails..)     ..!decvax!humus!wisdom!jaakov
        !          10038: 
        !          10039: 
        !          10040: 
        !          10041: 
        !          10042: From [email protected]  Tue Nov 13 06:20:04 1984
        !          10043: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10044:        id AA04848; Tue, 13 Nov 84 06:20:04 pst
        !          10045: Received: from uw-beaver.arpa (uw-beaver.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          10046:        id AA05430; Mon, 12 Nov 84 15:45:22 pst
        !          10047: Received: by uw-beaver.arpa (4.12/2.2)
        !          10048:        id AA28549; Mon, 12 Nov 84 15:43:15 pst
        !          10049: Return-Path: <[email protected]>
        !          10050: Received: by ssc-vax (4.12/4.7)
        !          10051:        id AA03520; Mon, 12 Nov 84 09:58:10 pst
        !          10052: Date: Mon, 12 Nov 84 09:58:10 pst
        !          10053: From: [email protected] (Steve White)
        !          10054: Message-Id: <8411121758.AA03520@ssc-vax>
        !          10055: To: uw-beaver!JonL.pa@XEROX, uw-beaver!smh@mit-eddie
        !          10056: Subject: Re: readtable within fasl
        !          10057: Cc: uw-beaver!franz-friends@BERKELEY
        !          10058: 
        !          10059: My problem was a bit simplier then the general case you mention. In MRS
        !          10060: a 'variable' is really a reader-macro ($) that at read time assigns a special
        !          10061: value to each variable-base-name. Basically it does a
        !          10062:        (set (implode `(|$| . ,(explodec name))) 'bl).
        !          10063: for side-effects of marking the symbol as a variable.  When compiling files
        !          10064: containing MRS code the compiler would execute the call inside its environment,
        !          10065: placing the *unbound* literals (as .asciz) in the object file to be READ
        !          10066: in at load time... so MRS would get the symbols and treat them as symbols
        !          10067: not variables.
        !          10068: 
        !          10069: The only reason i mention this is that the workaround used might be useful
        !          10070: for others seeking side effects within macros etc.
        !          10071: My workaround (h.a.c.k) was to use a special variable
        !          10072:        liszt-eof-forms
        !          10073: as a queue of the above SET forms and to provide a different macro expansion
        !          10074: for compile-time.  So
        !          10075: 
        !          10076: (setsyntax '|$| 'macro
        !          10077:   #'(lambda nil (let ((varname (implode `(|$| ,@(explodec (read))))))
        !          10078:                     (addq `(setq ,varname 'bl) liszt-eof-forms)
        !          10079:                     varname)))         ;; return variable name to liszt!
        !          10080: 
        !          10081: [where ADDQ does the correct thing if the variable has already been seen],
        !          10082: adds the following to the object file
        !          10083:        .asciz "$xyz"
        !          10084:        .asciz "(setq $xyz 'bl)"
        !          10085: which basically works (don't gag!)
        !          10086:                                        steve white
        !          10087: 
        !          10088: YAP -- (yet another problem) : does anyone at MIT have a list of fixes
        !          10089: to franz 38.91 to make the zeta-lisp environment work :-) I started fixing
        !          10090: a few things but it looks like something that might MIT may have already
        !          10091: done. ((or any plans to put NIL under UNIX? 8-) ))
        !          10092: 
        !          10093: From [email protected]  Thu Nov 15 18:09:13 1984
        !          10094: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10095:        id AA12102; Thu, 15 Nov 84 18:09:13 pst
        !          10096: Received: by UCB-VAX.ARPA (4.24/4.39)
        !          10097:        id AA11658; Thu, 15 Nov 84 18:09:11 pst
        !          10098: Received: from ucscd.UCSC (ucscd.ARPA) by ucscc.UCSC (4.12/4.7)
        !          10099:        id AA23553; Thu, 15 Nov 84 10:48:02 pst
        !          10100: Received: by ucscd.UCSC (4.12/4.7)
        !          10101:        id AA04900; Thu, 15 Nov 84 10:45:19 pst
        !          10102: Date: Thu, 15 Nov 84 10:45:19 pst
        !          10103: From: [email protected] (05550000)
        !          10104: Message-Id: <[email protected]>
        !          10105: To: [email protected]
        !          10106: Subject: mailing list name change
        !          10107: 
        !          10108:                
        !          10109:        Please stop sending to
        !          10110:                ucscc!figgy
        !          10111:        
        !          10112:        instead add
        !          10113:                ucbvax!ucscc!lispers
        !          10114:        
        !          10115:        Thank you.
        !          10116: 
        !          10117: From [email protected]  Thu Nov 15 20:51:49 1984
        !          10118: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10119:        id AA13810; Thu, 15 Nov 84 20:51:49 pst
        !          10120: Received: from ucbjade.CC.Berkeley.ARPA (ucbjade.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          10121:        id AA14507; Thu, 15 Nov 84 20:51:52 pst
        !          10122: Received: from ucbruby.CC.Berkeley.ARPA (ucbruby.ARPA)
        !          10123:        by ucbjade.CC.Berkeley.ARPA (4.18/4.27.5)
        !          10124:        id AA01653; Thu, 15 Nov 84 20:51:05 pst
        !          10125: Received: by ucbruby.CC.Berkeley.ARPA (4.18/4.27.6)
        !          10126:        id AA02961; Thu, 15 Nov 84 20:50:39 pst
        !          10127: Date: Thu, 15 Nov 84 20:50:39 pst
        !          10128: From: [email protected] (Harry Weeks)
        !          10129: Message-Id: <[email protected]>
        !          10130: To: franz-friends@BERKELEY
        !          10131: Subject: Lisp implementation details.
        !          10132: 
        !          10133: Are there any technical reports or memoranda available which
        !          10134: describe the internal workings of Franz?
        !          10135:                                                -- Harry
        !          10136: 
        !          10137: From @MIT-MC:[email protected]  Wed Nov 28 11:32:50 1984
        !          10138: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10139:        id AA15208; Wed, 28 Nov 84 11:32:50 pst
        !          10140: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          10141:        id AA14658; Wed, 28 Nov 84 11:32:04 pst
        !          10142: Message-Id: <[email protected]>
        !          10143: Date: 28 Nov 84 14:24:42 EST
        !          10144: From: Timothy.Glavin@CMU-CS-CAD
        !          10145: Subject: cmulisp docs
        !          10146: To: BBoard.Maintainer@CMU-CS-A
        !          10147: 
        !          10148: Does anyone know the location of on-line documentation for
        !          10149: cmulisp.  If not, is there a source for hard copy documentation?
        !          10150: I have the Foderaro Franz Lisp Manual, I only looking for info
        !          10151: on the CMU ideosyncracies.
        !          10152:                                        -- Tim (tg@cad)
        !          10153: 
        !          10154: 
        !          10155: From smith@nrl-aic  Fri Nov 30 09:17:53 1984
        !          10156: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10157:        id AA15087; Fri, 30 Nov 84 09:17:53 pst
        !          10158: Received: from nrl-aic (nrl-aic.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          10159:        id AA24282; Fri, 30 Nov 84 09:15:33 pst
        !          10160: Date: 30 Nov 1984 11:50-EST
        !          10161: From: Russ Smith <[email protected]>
        !          10162: Subject: bugs using flavors (and more)
        !          10163: To: franz-friends@BERKELEY
        !          10164: Message-Id: <470681409/smith@nrl-aic>
        !          10165: 
        !          10166: I recently installed opus 38.91 on our VAX780 under 4.2BSD. The
        !          10167: installation went smoothly. The files used for the installation appear
        !          10168: to be the most recent available from ucbkim. This includes the flavors
        !          10169: stuff with appropriate modifications (for example, fixing hash.l to use
        !          10170: "vsize" instead of "getlength" on a vector). The flavors stuff I scarfed
        !          10171: TODAY was dated October 2nd I believe. Anyway, I tried out some things
        !          10172: with flavors and, in particular, with "describe"...with the
        !          10173: following result (done with "script"):
        !          10174: =============================================================================
        !          10175: % lisp
        !          10176: Franz Lisp, Opus 38.91
        !          10177: -> (defflavor ob () () :settable-instance-variables)
        !          10178: [autoload /usr/lib/lisp/flavors]
        !          10179: [fasl /usr/lib/lisp/flavors.o]
        !          10180: [fasl /usr/lib/lisp/machacks.o]
        !          10181: [fasl /usr/lib/lisp/lmhacks.o]
        !          10182: [fasl /usr/lib/lisp/flavorm.o]
        !          10183: [fasl /usr/lib/lisp/vanilla.o]
        !          10184: ob
        !          10185: -> (describe 'ob)
        !          10186: [autoload /usr/lib/lisp/describe]
        !          10187: [fasl /usr/lib/lisp/describe.o]
        !          10188: 
        !          10189: ob has property flavor: flavor[17]
        !          10190: Error: Undefined function called from compiled code  defstruct-description-name
        !          10191: <1>: (exit)
        !          10192: =============================================================================
        !          10193: [Well, "defstruct-description-name" is used all over the
        !          10194: "/usr/lib/lisp/struct.l" set of functions...apparently mostly with no
        !          10195: arguments...which, I think, is wrong. One fix made by SMH to "describe.l" 
        !          10196: replaced a call on this macro with one with an argument. But that's NOT this
        !          10197: problem anyway.]
        !          10198: 
        !          10199: (1) Is there a known fix to get the "describe", or anything else that
        !          10200:         uses the "defstruct-description-name" macro, working correctly?
        !          10201: 
        !          10202: (2) Could it be that some sort of extended "defflavor" would load in an
        !          10203:         appropriate file which on-the-fly defines this macro? That is,
        !          10204:         did I do TOO simple a "defflavor"? [For example, doing:
        !          10205: 
        !          10206:                (load '/usr/pub/lisp/struct.l)
        !          10207: 
        !          10208:         allows one to "(pp defstruct-description-name)" showing that
        !          10209:         it requires an argument...without the "load" it is undefined.]
        !          10210: 
        !          10211: (3) Could the copy of the ftpable (???) opus38.91 files we have be out
        !          10212:         of date (seem to be from around June 84)?
        !          10213: 
        !          10214: Any help would be much appreciated. We are attempting to develop
        !          10215: some stuff for use on both an LMI Lisp Machine and the VAX. This has
        !          10216: thrown the proverbial wrench into the work(s)...
        !          10217: 
        !          10218: Russ <Smith@nrl-aic>
        !          10219: Navy Center for Applied Research in Artificial Intelligence (whew!)
        !          10220: 
        !          10221: From [email protected]  Sat Dec  1 15:40:10 1984
        !          10222: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10223:        id AA04698; Sat, 1 Dec 84 15:40:10 pst
        !          10224: Received: from RUTGERS.ARPA (rutgers-gw.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          10225:        id AA03439; Sat, 1 Dec 84 14:28:56 pst
        !          10226: Message-Id: <[email protected]>
        !          10227: Date: 30 Nov 84 22:45:59 EST
        !          10228: From: Sean McLinden  <[email protected]>
        !          10229: Subject: Re: bugs using flavors (and more)
        !          10230: To: [email protected], franz-friends@BERKELEY
        !          10231: Cc: [email protected]
        !          10232: In-Reply-To: Message from "Russ Smith <[email protected]>" of 30 Nov 84 11:50:00 EST
        !          10233: 
        !          10234: 
        !          10235:   There is a bug in the way that describe is compiled according to the
        !          10236:   makefile. Basically the problem is that defstruct-description-name
        !          10237:   is a macro which is NOT compiled so that when you fasl the compiled
        !          10238:   version of struct (as you are compiling describe), you don't get
        !          10239:   the proper definition for defstruct-description-name.
        !          10240: 
        !          10241:   You can either 1). load struct.l when compiling describe.l or
        !          10242:                 2). (declare (macros t)) in struct.l and recompile.
        !          10243: 
        !          10244:   Sean McLinden
        !          10245:   Decision Systems Laboratory
        !          10246: -------
        !          10247: 
        !          10248: From sridhar%[email protected]  Sat Dec  1 17:03:50 1984
        !          10249: Received: from ucbernie.ARPA by ucbkim.ARPA (4.24/4.27)
        !          10250:        id AA06036; Sat, 1 Dec 84 16:55:15 pst
        !          10251: Received: from csnet-relay (csnet-pdn-gw.ARPA) by ucbernie.ARPA (4.24/4.38)
        !          10252:        id AA08322; Sat, 1 Dec 84 16:50:50 pst
        !          10253: Message-Id: <[email protected]>
        !          10254: Received: from wsu by csnet-relay.csnet id a012949; 1 Dec 84 19:41 EST
        !          10255: Date:     Sat, 1 Dec 84 12:47 PST
        !          10256: From: "S. Sridhar" <sridhar%[email protected]>
        !          10257: To: [email protected]
        !          10258: Cc: sridhar%[email protected]
        !          10259: Subject:  Documentation pblms.
        !          10260: 
        !          10261: Hi,
        !          10262:   I am an ardent Franz hack here at Wash. St. Univ, Pullman.
        !          10263:   I need some specific info on Franz Lisp.
        !          10264: 
        !          10265:  There is no documentation on 'Structures' in the Franz Lisp manual, that
        !          10266: we have here. (This is dated June 1983. The version we have is Opus 38.69,
        !          10267: June 1983). Specifically I need documentaion on all the macros related to
        !          10268: the use of structures like defstruct. I know for sure that these macros
        !          10269: are available on our system, but I am having problems on their usage. The
        !          10270: on-line documentation does not give any help either. Maybe you have an 
        !          10271: updated version of the Franz Lisp manual. Can you help around, please ?
        !          10272: 
        !          10273: As another instance, functions relating to hashtables are available here
        !          10274: but there is no documentation for it. 
        !          10275: 
        !          10276: Thanks.
        !          10277: 
        !          10278: Sridhar
        !          10279: ------
        !          10280: 
        !          10281: From smith@nrl-aic  Mon Dec  3 12:17:10 1984
        !          10282: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10283:        id AA04104; Mon, 3 Dec 84 12:17:10 pst
        !          10284: Received: from nrl-aic (nrl-aic.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          10285:        id AA16806; Mon, 3 Dec 84 12:14:27 pst
        !          10286: Date: 3 Dec 1984 06:36-EST
        !          10287: From: Russ Smith <[email protected]>
        !          10288: Subject: followup to "flavors bugs (and more)"
        !          10289: To: franz-friends@BERKELEY
        !          10290: Message-Id: <470921820/smith@nrl-aic>
        !          10291: 
        !          10292: This is a followup to a previous note I sent requesting help with fixing
        !          10293: Opus 38.91 of Franz and Flavors running on a Vax780 under 4.2BSD.
        !          10294: 
        !          10295: First, I want to thank the many people who had helpful suggestions on
        !          10296: what may have been going wrong. Given the small amount of information I
        !          10297: provided on the problem, some of them were remarkably relevant.
        !          10298: 
        !          10299: The problem had to do with certain functions such as "describe" going
        !          10300: south when invoked on a FLAVOR object. The solution was (at least) two
        !          10301: fold. One, which I alluded to in the previous note, had to do with the
        !          10302: distributed file "hash.l" containing invalid calls on the intrinsic
        !          10303: "getlength" function with a vector argument. These calls had to be
        !          10304: changed to "vsize" instead (actually "getlength" could probably have
        !          10305: been redefined to allow vectors...). Whatever, that solved that part.
        !          10306: 
        !          10307: The second solution had to do with how WE at NCARAI were installing
        !          10308: Franz. We have a set of directories for "local" software into which
        !          10309: we wanted to put the "new" Franz. As such, I went through all the
        !          10310: "Makefile"s and changed default directories for such things as the
        !          10311: libraries and objects, etc. While doing this, it was noted that certain
        !          10312: files in the "lisplib" directory had hard-coded the default names for, for
        !          10313: example, the library. Since our library was not in the same place as
        !          10314: this default, these lines were "commented out" (with an "exit")...with
        !          10315: the result that the Franz and Liszt installations did not go as smoothly
        !          10316: as I thought. It turns out that these lines also should be changed to
        !          10317: reflect the appropriate directory. They are in the files "buildlisp.l",
        !          10318: "common1.l", and "fix.l" in the lisplib directory (possibly others exist as
        !          10319: well). The pertinent lines read something like:
        !          10320: 
        !          10321:        (or (boundp 'default-library-directory)
        !          10322:            (setq default-library-directory '/usr/lib/lisp))
        !          10323: 
        !          10324: During the installation (done on a CRT) I was doing something else. Thus
        !          10325: when the mods made (namely changing the "setq" call above into an "exit")
        !          10326: were invoked, I didn't notice later that a number of things which SHOULD have
        !          10327: happened didn't (they'd gone off the screen...). Needless to say, this
        !          10328: caused all sorts of bizarre inconsistencies (especially since our last
        !          10329: installation DID use the default directories...).
        !          10330: 
        !          10331: Anyway, notes for the future:
        !          10332: 
        !          10333:        (1) If ftp'ing Franz from ucbkim be sure to get the stuff in the
        !          10334:            "flavors" directory as well. This contains a new "hash.l"
        !          10335:            modified by SMH to use "vsize" rather than "getlength".
        !          10336: 
        !          10337:        (2) If not using the default directories for the installation,
        !          10338:            change the names in the above files as well to reflect the
        !          10339:            appropriate place(s)...sigh.
        !          10340: 
        !          10341: Yours (with an apparently working Franz+flavors),
        !          10342: 
        !          10343: Russ <Smith@nrl-aic>
        !          10344: Navy Center for Applied Research in Artificial Intelligence (whew!)
        !          10345: 
        !          10346: From @MIT-MC:smh@MIT-EDDIE  Tue Dec  4 12:49:49 1984
        !          10347: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10348:        id AA20917; Tue, 4 Dec 84 12:49:49 pst
        !          10349: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          10350:        id AA24636; Tue, 4 Dec 84 12:13:23 pst
        !          10351: Message-Id: <[email protected]>
        !          10352: Received: by mit-eddie.Mit-chaos.Arpa id AA19371; Tue, 4 Dec 84 14:50:26 est
        !          10353: Date: Tue, 4 Dec 84 14:50:26 est
        !          10354: From: Steven M. Haflich <smh@mit-eddie>
        !          10355: To: franz-friends@BERKELEY
        !          10356: Subject: the *real* flavor sources (etc.)
        !          10357: 
        !          10358: For some time I have been using and maintaining enhanced versions of the
        !          10359: several Franz lisplib modules which implement various Lisp Machine
        !          10360: compatibilities, most notably, the FLAVOR system and FORMAT output.
        !          10361: jkf@berkeley has authorized me to announce public availability of these
        !          10362: files via anonymous ftp from UCBKIM.  These seven files are compatible
        !          10363: with Opus 38.91, but supersede the versions in the 39.91 distribution.
        !          10364: There are a number of bugfixes and new features.
        !          10365: 
        !          10366: UCBKIM supports FTP with login "anonymous" and any password.  The
        !          10367: files are:
        !          10368:         ~anonymous/pub/flavors/Makefile
        !          10369:                                flavors.l
        !          10370:                                flavorm.l
        !          10371:                                vanilla.l
        !          10372:                                hash.l
        !          10373:                                describe.l
        !          10374:                                format.l
        !          10375: 
        !          10376: The changes are too many to describe in detail.  Many of the FLAVOR
        !          10377: system changes are for compatibility with changes to Franz, although a
        !          10378: few non-working or missing features (but not all) have been bludgeoned
        !          10379: into functionality.  In particular, wrappers work.  The FORMAT module
        !          10380: fixes a number of format directives which apparently never worked.
        !          10381: However, some of the hairier ones are known still to be defective.
        !          10382: 
        !          10383: This "completely unsupported" software is graciously being made
        !          10384: available to all takers without any promises whatever:  there is no
        !          10385: promise of correctness, and no promise of support.  Also, the sources
        !          10386: total 160K and unsuitable for uucp distribution, and I don't have time
        !          10387: to deal with tape requests [sorry].
        !          10388: 
        !          10389: The above notwithstanding, I am as eager as anyone for additional
        !          10390: improvements to the code.  Anyone with additional bugfixes is encouraged
        !          10391: to communicate to me, and I will try to integrate the code.  I will try
        !          10392: to respond to bug reports, but it may be a rather low priority business.
        !          10393: 
        !          10394: Steve Haflich
        !          10395: MIT Experimental Music Studio
        !          10396: ARPA: smh@mit-eddie@mit-mc
        !          10397: UUCP: {ihnp4, decvax!genrad}!mit-eddie!smh
        !          10398: 
        !          10399: 
        !          10400: From @MIT-MC:smh@MIT-EDDIE  Tue Dec  4 19:32:49 1984
        !          10401: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10402:        id AA26327; Tue, 4 Dec 84 19:32:49 pst
        !          10403: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          10404:        id AA26237; Tue, 4 Dec 84 13:26:17 pst
        !          10405: Message-Id: <[email protected]>
        !          10406: Received: by mit-eddie.Mit-chaos.Arpa id AA20260; Tue, 4 Dec 84 15:44:20 est
        !          10407: Date: Tue, 4 Dec 84 15:44:20 est
        !          10408: From: Steven M. Haflich <smh@mit-eddie>
        !          10409: To: franz-friends@BERKELEY
        !          10410: Subject: fix for describe.l
        !          10411: Cc: MCLINDEN@RUTGERS@MIT-MC, smith@nrl-aic@mit-mc
        !          10412: 
        !          10413: Previous postings have correctly identified the problem (which was fixed
        !          10414: long ago in the versions announced today).  The best fix is to change
        !          10415: the (environment-lmlisp) invocation near the beginning of describe.l to
        !          10416: read as follows, then recompile it:
        !          10417: 
        !          10418:        (environment-lmlisp (compile eval) (files struct flavorm))
        !          10419: 
        !          10420: The struct and flavorm modules do not need to be around when the
        !          10421: compiled describe code is executed, so omitting load from the eval-when
        !          10422: saves some unnecessary fasl's.  Describe, by the way, is useful even
        !          10423: when flavors and defstructs are not being used.  For instance, it will
        !          10424: report the source module in which a compiled function lives.
        !          10425: 
        !          10426: Steve Haflich
        !          10427: smh@mit-eddie@mit-mc
        !          10428: {ihnp4, decvax!genrad}!mit-eddie!smh
        !          10429: 
        !          10430: 
        !          10431: From @MIT-MC:smh@MIT-EDDIE  Tue Dec  4 22:49:05 1984
        !          10432: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10433:        id AA29026; Tue, 4 Dec 84 22:49:05 pst
        !          10434: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          10435:        id AA05974; Tue, 4 Dec 84 20:50:44 pst
        !          10436: Message-Id: <[email protected]>
        !          10437: Received: by mit-eddie.Mit-chaos.Arpa id AA24308; Tue, 4 Dec 84 23:50:01 est
        !          10438: Date: Tue, 4 Dec 84 23:50:01 est
        !          10439: From: Steven M. Haflich <smh@mit-eddie>
        !          10440: To: franz-friends@BERKELEY
        !          10441: Subject: Franz documentation for MIT LM code
        !          10442: Cc: sridhar%wsu.csnet@csnet-relay
        !          10443: 
        !          10444: Sorry to report that there really is no official documentation for the
        !          10445: several Franz lisplib modules which implement a measure of compatibility
        !          10446: with Zetalisp, the dialect running on MIT Lisp Machines (and, more or
        !          10447: less, on Symbolics and LMI machines).  The Franz source code was adapted
        !          10448: from the MIT Lisp machine code several years ago; there is still
        !          10449: approximate compatibility, although new features and certain semantic
        !          10450: subtleties have diverged.  Driven partially by natural evolution and
        !          10451: partially by the standardization efforts of Common Lisp, Lisp Machine
        !          10452: compatibility is something of a moving target.
        !          10453: 
        !          10454: But do not despair; there are two standardly available sources for
        !          10455: documentation.  Reading them will give a very usable idea about the
        !          10456: packages.  Unfortunately, a few unimplemented features and semantic
        !          10457: differences will have to be discovered by experimentation or examination
        !          10458: of the source code.  (What do you want for free? :-)
        !          10459: 
        !          10460: (1) If you have available a MIT Lisp Machine Manual, the sections on
        !          10461: defstruct, flavors, format, hash, and loop output are still reasonable
        !          10462: approximations of documentation for the Franz versions.  Incidentally,
        !          10463: the `Blue' MIT Lisp Machine Manual circa 1981 corresponds most closely
        !          10464: with the Franz inplementation, although a few more recent features have
        !          10465: been retrofitted.  If available, Symbolics documentation is probably
        !          10466: only very slightly less good -- the older, the better.
        !          10467: 
        !          10468: (2) For defstruct, hash, and format the Guy Steele <Common Lisp: The
        !          10469: Language>, published by Digital Press (a branch of DEC), is usefully
        !          10470: close to the existing Franz code.  Again, experimentation and
        !          10471: examination of the source code will resolve the details.  Unfortunately,
        !          10472: Flavors and the loop macro are not (yet) part of the Common Lisp
        !          10473: specification, and may well be very different when they are.
        !          10474: 
        !          10475: Unofficially, there is another even better hope.  The MIT Athena project
        !          10476: will be `releasing' these packages into their standard Franz system this
        !          10477: in another month or two.  They are commencing a quick effort to edit
        !          10478: Lisp Machine documentation into proper format for inclusion as
        !          10479: appendixes in the Franz manual.  If at all possible, I will attempt to
        !          10480: get the results publically distributed.  (Translation:  My assistance is
        !          10481: essential to this documentation, so I am in position to insist they be
        !          10482: `reasonable' about it...)  But no promises just yet.
        !          10483: 
        !          10484: Steve Haflich
        !          10485: MIT
        !          10486: 
        !          10487: 
        !          10488: From [email protected]  Thu Dec  6 13:53:03 1984
        !          10489: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10490:        id AA03880; Thu, 6 Dec 84 13:53:03 pst
        !          10491: Received: from ucbjade.CC.Berkeley.ARPA (ucbjade.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          10492:        id AA27039; Thu, 6 Dec 84 11:43:13 pst
        !          10493: Received: from CUNYVM.BITNET
        !          10494:        by ucbjade.CC.Berkeley.ARPA (4.19/4.30)
        !          10495:        id AA27252; Thu, 6 Dec 84 11:44:10 pst
        !          10496: Message-Id: <[email protected]>
        !          10497: Received: by CUNYVM     id 8508; Thu, 06 Dec 84 14:41:26 EST
        !          10498: Date:         Thu, 6 Dec 84 14:39 EST
        !          10499: From: Henry Nussbacher <[email protected]>
        !          10500: To: <[email protected]>, <franz-friends@BERKELEY>,
        !          10501:         <ailist-request@sri-ai>, <[email protected]>,
        !          10502:         <[email protected]>, <[email protected]>
        !          10503: 
        !          10504: Can you please register the following user to your lists:
        !          10505: arpalist%cunyvm.BITNET
        !          10506: 
        !          10507: Thank you,
        !          10508: Henry Nussbacher
        !          10509: BITNET Network Information Center
        !          10510: 
        !          10511: From [email protected]  Thu Dec  6 18:20:03 1984
        !          10512: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10513:        id AA07782; Thu, 6 Dec 84 18:20:03 pst
        !          10514: Received: from rice.ARPA (rice.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          10515:        id AA05141; Thu, 6 Dec 84 17:55:14 pst
        !          10516: Received: from thule by rice.ARPA (AA02673); Thu, 6 Dec 84 19:41:33 CST
        !          10517: Received: by thule (AA02845); Thu, 6 Dec 84 19:38:53 cst
        !          10518: Date: Thu, 6 Dec 84 19:38:53 cst
        !          10519: From: Mike Caplinger <[email protected]>
        !          10520: Message-Id: <8412070138.AA02845@thule>
        !          10521: To: franz-friends@BERKELEY
        !          10522: Subject: bug in 68k Opus 38.91 arrays
        !          10523: 
        !          10524: In 68k Opus 38.91, the expression
        !          10525: (array foo flonum-block 4 4)
        !          10526: generates an "Error: IMPROPER USE OF SET".
        !          10527: 
        !          10528: On the VAX, in Opus 38.79, this worked fine.  What's happening?
        !          10529: 
        !          10530: (I am on a Sun, compiled with sun_4_2.)
        !          10531: 
        !          10532:        - Mike
        !          10533: 
        !          10534: From @MIT-MULTICS.ARPA:[email protected]  Sat Dec  8 05:42:09 1984
        !          10535: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10536:        id AA25844; Sat, 8 Dec 84 05:42:09 pst
        !          10537: Received: from MIT-MULTICS.ARPA (mit-multics.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          10538:        id AA22892; Sat, 8 Dec 84 05:39:47 pst
        !          10539: Received: from VANDERBILT.MAILNET by MIT-MULTICS.ARPA with Mailnet id <[email protected]>; 08 Dec 1984 08:36:56 est
        !          10540: Date:        06 Dec 84 15:26 CDT
        !          10541: From: David_Linn%[email protected]
        !          10542: Reply-To:    David_Linn%[email protected]
        !          10543: To: "franz-friends"@BERKELEY
        !          10544: Subject:     FranzLISP on the S9000
        !          10545: Message-Id:  <30788@VUCCG1COM>
        !          10546: In-Reply-To: <30731@VUCCG1COM>
        !          10547: 
        !          10548: The AI Group at Vanderbilt would like to join the franz-friends
        !          10549: mailing list. We have version 38.87 running on the IBM Inruments
        !          10550: S9000 under CSOS 1.1, a very non-UNIX opsys. Both interpreter
        !          10551: and compiler are working and a farily large general-purpose
        !          10552: expert system tool set written on a VAX is up and running.
        !          10553: 
        !          10554: 
        !          10555: 
        !          10556: From [email protected]  Mon Dec 10 12:06:53 1984
        !          10557: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10558:        id AA18655; Mon, 10 Dec 84 12:06:53 pst
        !          10559: Received: from USC-ECLC.ARPA (usc-eclc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          10560:        id AA04397; Mon, 10 Dec 84 12:04:27 pst
        !          10561: Message-Id: <[email protected]>
        !          10562: Date: Mon 10 Dec 84 12:03:06-PST
        !          10563: From: [email protected]
        !          10564: Subject: array  - space
        !          10565: To: franz-friends@BERKELEY
        !          10566: Cc: [email protected]
        !          10567: 
        !          10568: 
        !          10569: I am working with images stored as fixnum arrays (with delta =1 i.e. four
        !          10570: pixels packed into a word)  aux as unmarked arrays. (I am on a VAX under
        !          10571: Eunice). How do I deallocate the array-space once I am done with it?
        !          10572: (I use small-segment to allocate space for the array).
        !          10573: 
        !          10574: Also I would appreciate any pointers of how to speed up programs with 
        !          10575: nested do loops (order of 512x512 x(5 x 5) itterations).
        !          10576: 
        !          10577: Thanks,
        !          10578: 
        !          10579: -Rakesh Mohan.
        !          10580: -------
        !          10581: 
        !          10582: From [email protected]  Mon Dec 10 15:37:50 1984
        !          10583: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10584:        id AA20942; Mon, 10 Dec 84 15:37:50 pst
        !          10585: Received: from rice.ARPA (rice.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          10586:        id AA08450; Mon, 10 Dec 84 15:35:12 pst
        !          10587: Received: from iapetus by rice.ARPA (AA26746); Mon, 10 Dec 84 17:28:43 CST
        !          10588: Received: by iapetus (AA16942); Mon, 10 Dec 84 17:29:45 CST
        !          10589: Date: Mon, 10 Dec 84 17:29:45 CST
        !          10590: From: Mike Caplinger <[email protected]>
        !          10591: Message-Id: <8412102329.AA16942@iapetus>
        !          10592: To: franz-friends@BERKELEY
        !          10593: Subject: gensym and the compiler
        !          10594: 
        !          10595: How does one get code like the following:
        !          10596: 
        !          10597: ; construct an identity transformation matrix.
        !          10598: (defun tm-new ()
        !          10599:     (let ((name (gensym)))
        !          10600:        (*array name 'flonum-block 4 4)
        !          10601:        (do i 0 (1+ i) (= i 4) (store (name i i) 1.0))
        !          10602:        name)
        !          10603: )
        !          10604: 
        !          10605: to work under the compiler?  Compiled, this refuses to believe
        !          10606: in the existence of name.
        !          10607: 
        !          10608: Do I need to declare it as a lambda?  Is there a way to declare arrays?
        !          10609: 
        !          10610:        - Mike
        !          10611: 
        !          10612: From jkf@ucbmike  Mon Dec 10 16:03:40 1984
        !          10613: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10614:        id AA21396; Mon, 10 Dec 84 16:03:40 pst
        !          10615: Received: from ucbmike.arpa by UCB-VAX.ARPA (4.24/4.39)
        !          10616:        id AA08955; Mon, 10 Dec 84 16:01:22 pst
        !          10617: Received: by ucbmike.arpa (4.24ucb/4.33)
        !          10618:        id AA06150; Mon, 10 Dec 84 16:04:09 pst
        !          10619: Date: Mon, 10 Dec 84 16:04:09 pst
        !          10620: From: John Foderaro (on a sun) <jkf@ucbmike>
        !          10621: Message-Id: <[email protected]>
        !          10622: To: [email protected], franz-friends@BERKELEY
        !          10623: Subject: Re: array  - space
        !          10624: Cc: [email protected]
        !          10625: In-Reply-To: Your message of Mon 10 Dec 84 12:03:06-PST
        !          10626: 
        !          10627:  You would be better off using immediate vectors (vectori) which
        !          10628: are garbage collected.    Items allocated with small-segment aren't
        !          10629: gc'ed.
        !          10630: 
        !          10631: 
        !          10632: 
        !          10633: 
        !          10634: From jkf@ucbmike  Mon Dec 10 17:08:13 1984
        !          10635: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10636:        id AA22000; Mon, 10 Dec 84 17:08:13 pst
        !          10637: Received: from ucbmike.arpa by UCB-VAX.ARPA (4.24/4.39)
        !          10638:        id AA10131; Mon, 10 Dec 84 17:05:36 pst
        !          10639: Received: by ucbmike.arpa (4.24ucb/4.33)
        !          10640:        id AA06315; Mon, 10 Dec 84 17:08:19 pst
        !          10641: Date: Mon, 10 Dec 84 17:08:19 pst
        !          10642: From: John Foderaro (on a sun) <jkf@ucbmike>
        !          10643: Message-Id: <[email protected]>
        !          10644: To: [email protected], franz-friends@BERKELEY
        !          10645: Subject: Re: array  - space
        !          10646: Cc: [email protected]
        !          10647: In-Reply-To: Your message of Mon 10 Dec 84 12:03:06-PST
        !          10648: 
        !          10649:  One small correction: small-segment space is garbage collected and
        !          10650: reclaimed, but only as individual elements: adjacent free elements are
        !          10651: not combined.   Vectors are different: adjacent free vectors are combined
        !          10652: into larger vectors.
        !          10653: 
        !          10654: 
        !          10655: 
        !          10656: From @MIT-MC:smh@MIT-EDDIE  Mon Dec 10 19:02:52 1984
        !          10657: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10658:        id AA23540; Mon, 10 Dec 84 19:02:52 pst
        !          10659: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39)
        !          10660:        id AA11754; Mon, 10 Dec 84 18:21:17 pst
        !          10661: Message-Id: <[email protected]>
        !          10662: Received: by mit-eddie.Mit-chaos.Arpa id AA03264; Mon, 10 Dec 84 21:20:04 est
        !          10663: Date: Mon, 10 Dec 84 21:20:04 est
        !          10664: From: Steven M. Haflich <smh@mit-eddie>
        !          10665: To: franz-friends@BERKELEY
        !          10666: Subject: re: gensym and the compiler
        !          10667: 
        !          10668: <Mike@rice> wants to know how to make this function work:
        !          10669: 
        !          10670:        ; construct an identity transformation matrix.
        !          10671:        (defun tm-new ()
        !          10672:            (let ((name (gensym)))
        !          10673:                (*array name 'flonum-block 4 4)
        !          10674:                (do i 0 (1+ i) (= i 4) (store (name i i) 1.0))
        !          10675:                name)
        !          10676:        )
        !          10677: 
        !          10678: The problem is that send is a macro (see lisplib/array.l), and at
        !          10679: compile time it is impossible for it to determine exactly the "data
        !          10680: type" of name.  Therefore, it expands the function to:
        !          10681: 
        !          10682:        (defun tm-new ()
        !          10683:            (let ((name (gensym)))
        !          10684:                (*array name 'flonum-block 4 4)
        !          10685:                (do i 0 (1+ i) (= i 4) (name 1.0 i i))
        !          10686:                name)
        !          10687:        )
        !          10688: 
        !          10689: Essentially, it just assumes 'name is a symbol which has an array in its
        !          10690: function binding, or else which symevals (possibly recursively) to
        !          10691: something that is either an array, or a symbol with an array in its
        !          10692: function binding.  When the compiler compiles the expansion, it assumes
        !          10693: that it wants to call the function-binding of name, not the
        !          10694: function-binding of symeval of name.  In the interpreter it happens to
        !          10695: work because eval of a list in the interpreter (but not the compiler) is
        !          10696: defined to repetitively evaluate the car of the list until it finds a
        !          10697: recognizable function or array.  (See chapter 4.)  But note!!  If 'name
        !          10698: also has a function binding, the interpreter will find it instead of the
        !          10699: array!
        !          10700: 
        !          10701: What you really want to do, then, is this:
        !          10702: 
        !          10703:        (defun tm-new ()
        !          10704:            (let ((name (gensym)))
        !          10705:                (*array name 'flonum-block 4 4)
        !          10706:                (do i 0 (1+ i) (= i 4) (funcall name 1.0 i i))
        !          10707:                name)
        !          10708:        )
        !          10709: 
        !          10710: This guarantees that name gets symevaled once before the interpreter
        !          10711: checks for function bindings, which also does the right thing in
        !          10712: compiled code.  Unfortunately, you will have to write this out by hand.
        !          10713: I don't see any way that the send macro can be fixed.  If it always
        !          10714: returned the extra funcall, then this simple case wouldn't work
        !          10715: compiled:
        !          10716: 
        !          10717:        (array foo ...)
        !          10718:        (store foo ...)
        !          10719: 
        !          10720: Did anyone follow any of this?
        !          10721: 
        !          10722: 
        !          10723: From [email protected]  Tue Dec 11 20:05:09 1984
        !          10724: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10725:        id AA06334; Tue, 11 Dec 84 20:05:09 pst
        !          10726: Received: from SUMEX-AIM.ARPA (sumex-aim.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.40)
        !          10727:        id AA15218; Tue, 11 Dec 84 20:03:46 pst
        !          10728: Message-Id: <[email protected]>
        !          10729: Date: Tue 11 Dec 84 20:04:16-PST
        !          10730: From: Rene Bach <[email protected]>
        !          10731: Subject: Porting FRANZ to other OS running C ?
        !          10732: To: franz-friends@BERKELEY
        !          10733: 
        !          10734: I am interested in finding out if someone has ported FRANZ to some
        !          10735: other OS than UNIX. A friend of mine is interested in running a LISP
        !          10736: under VMS at no cost. He has C on his machine.
        !          10737: Is this feasible, how much work is involved ?
        !          10738: 
        !          10739: What about porting FRANZ to some UNIX look alike ?  How much work is
        !          10740: involved ?
        !          10741: 
        !          10742: Thanks for any leads
        !          10743: Rene
        !          10744: -------
        !          10745: 
        !          10746: From [email protected]  Tue Dec 11 20:44:19 1984
        !          10747: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10748:        id AA06672; Tue, 11 Dec 84 20:44:19 pst
        !          10749: Received: from RUTGERS.ARPA (rutgers-gw.ARPA) by UCB-VAX.ARPA (4.24/4.40)
        !          10750:        id AA16044; Tue, 11 Dec 84 20:42:36 pst
        !          10751: Message-Id: <[email protected]>
        !          10752: Date: 11 Dec 84 23:41:49 EST
        !          10753: From: Sean McLinden  <[email protected]>
        !          10754: Subject: Re: Franz documentation for MIT LM code
        !          10755: To: smh%[email protected], franz-friends@BERKELEY
        !          10756: Cc: sridhar%[email protected], [email protected]
        !          10757: In-Reply-To: Message from "Steven M. Haflich <smh@mit-eddie>" of 4 Dec 84 23:50:01 EST
        !          10758: 
        !          10759: 
        !          10760: 
        !          10761:  Regarding the documentation for Franz Lisp and the MIT/Lisp Machine
        !          10762:  compatibility packages:
        !          10763: 
        !          10764:  Another option exists for those who might be interested. We at Decision
        !          10765:  Systems Lab have been using a modified version of Opus 38.89 which in-
        !          10766:  cludes the  defstruct and flavors code already described. It also in-
        !          10767:  cludes an Interlisp compatibility package which allows Interlisp
        !          10768:  records as well as most of the CLISP forms (these are actually very
        !          10769:  easily simulated with LOOP but we chose a strategy which is more
        !          10770:  in keeping with the Interlisp implementation of CLISP involving
        !          10771:  hashed definitions for CLISP forms.
        !          10772: 
        !          10773:  The modified Lisp has all of the up-to-date flavors code and an
        !          10774:  edited version of the manual which describes the format, defstruct,
        !          10775:  and CLISP packages (borrowing heavily from the Laser edition of
        !          10776:  the Common Lisp manual by Guy Steele). It also includes a re-organization
        !          10777:  of much of the older manual into a more coherent form, and a number
        !          10778:  of examples of more difficult concepts.
        !          10779: 
        !          10780:  If there is any interest I can make this publicly available. It would
        !          10781:  be of little value to simply have the additional chapter since it
        !          10782:  refers, heavily, to material in other sections. Also, flavors is not,
        !          10783:  yet included, since the status of flavors in Franz was uncertain up
        !          10784:  to a few months ago.
        !          10785: 
        !          10786:  For those interested, I will not be prepared to answer requests before
        !          10787:  Christmas but after that I'll be around and can handle almost anything.
        !          10788: 
        !          10789:  Sean McLinden
        !          10790:  Decision Systems Laboratory
        !          10791:  University of Pittsburgh
        !          10792: 
        !          10793: -------
        !          10794: 
        !          10795: From @MIT-MC:ZZZ.RLK@MIT-OZ  Wed Dec 12 21:51:39 1984
        !          10796: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10797:        id AA08208; Wed, 12 Dec 84 21:51:39 pst
        !          10798: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.40)
        !          10799:        id AA07258; Wed, 12 Dec 84 21:03:56 pst
        !          10800: Message-Id: <[email protected]>
        !          10801: Date: Wednesday, 12 December 1984, 19:53-EST
        !          10802: From: Robert L. Krawitz <ZZZ.RLK@MIT-OZ>
        !          10803: Reply-To: rlk%mit-eecs at mit-mc.arpa
        !          10804: To: franz-friends@BERKELEY
        !          10805: 
        !          10806: Hi.
        !          10807: 
        !          10808: I'm writing a term paper on the procedure call in various languages,
        !          10809: perhaps on various languages on the VAX, perhaps just on the procedure
        !          10810: call in various dialects of Lisp on the Vax.
        !          10811: 
        !          10812: Could someone mail me some info on this subject (i. e. the calling
        !          10813: conventions, how/if the Vax procedure call instructions are used, etc.)
        !          10814: quickly, as this is the last week of classes and I don't want to take
        !          10815: too long on this paper.  Thanks.
        !          10816: 
        !          10817: Robert^Z
        !          10818: 
        !          10819: From psm@mitre-bedford  Mon Dec 17 09:05:35 1984
        !          10820: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10821:        id AA20993; Mon, 17 Dec 84 09:05:35 pst
        !          10822: Received: from mitre-bedford (mitre-bedford.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.40)
        !          10823:        id AA19421; Mon, 17 Dec 84 09:04:32 pst
        !          10824: Message-Id: <[email protected]>
        !          10825: Date: 17 Dec 1984 11:56:37-EST
        !          10826: From: psm@Mitre-Bedford
        !          10827: To: franz-friends@BERKELEY
        !          10828: Subject: Please add me to your  mailing list.
        !          10829: Cc: psm@Mitre-Bedford
        !          10830: 
        !          10831: Hi,
        !          10832: 
        !          10833: Would you please add me to your mailing list/ user's group.
        !          10834: (I hope this is the right place to make the request & it's not
        !          10835: franz-friends-request or something like that.  Sorry for the
        !          10836: inconvenience if it is.)
        !          10837: 
        !          10838: Peter Mager
        !          10839: (psm@mitre-bedford)
        !          10840: 
        !          10841: From jkf@ucbmike  Mon Dec 17 13:01:48 1984
        !          10842: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10843:        id AA00901; Mon, 17 Dec 84 13:01:48 pst
        !          10844: Received: from ucbmike.arpa by UCB-VAX.ARPA (4.24/4.40)
        !          10845:        id AA24456; Mon, 17 Dec 84 13:00:55 pst
        !          10846: Received: by ucbmike.arpa (4.24ucb/4.33)
        !          10847:        id AA15009; Mon, 17 Dec 84 13:03:16 pst
        !          10848: Date: Mon, 17 Dec 84 13:03:16 pst
        !          10849: From: John Foderaro (on a sun) <jkf@ucbmike>
        !          10850: Message-Id: <[email protected]>
        !          10851: To: psm@Mitre-Bedford, franz-friends@BERKELEY
        !          10852: Subject: Re: Please add me to your  mailing list.
        !          10853: Cc: psm@Mitre-Bedford
        !          10854: In-Reply-To: Your message of 17 Dec 1984 11:56:37-EST
        !          10855: 
        !          10856:  I've added you to franz-friends.
        !          10857:  
        !          10858: 
        !          10859: 
        !          10860: From jkf@ucbmike  Mon Dec 17 13:06:53 1984
        !          10861: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10862:        id AA01005; Mon, 17 Dec 84 13:06:53 pst
        !          10863: Received: from ucbmike.arpa by UCB-VAX.ARPA (4.24/4.40)
        !          10864:        id AA24568; Mon, 17 Dec 84 13:05:59 pst
        !          10865: Received: by ucbmike.arpa (4.24ucb/4.33)
        !          10866:        id AA15044; Mon, 17 Dec 84 13:08:10 pst
        !          10867: Date: Mon, 17 Dec 84 13:08:10 pst
        !          10868: From: John Foderaro (on a sun) <jkf@ucbmike>
        !          10869: Message-Id: <[email protected]>
        !          10870: To: franz-friends@BERKELEY
        !          10871: Subject: I'll be away
        !          10872: Cc: 
        !          10873: 
        !          10874: 
        !          10875:   For the new few weeks I'll be unable to handle franz-friends requests.
        !          10876: 
        !          10877:   Happy Holidays to all of you.
        !          10878: 
        !          10879:                                        john foderaro
        !          10880:                                        
        !          10881:   
        !          10882: 
        !          10883: 
        !          10884: From @MIT-MC:[email protected]  Mon Dec 17 13:08:08 1984
        !          10885: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10886:        id AA01035; Mon, 17 Dec 84 13:08:08 pst
        !          10887: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.40)
        !          10888:        id AA24610; Mon, 17 Dec 84 13:07:10 pst
        !          10889: Message-Id: <[email protected]>
        !          10890: Date: 17 Dec 84 16:02:13 EST
        !          10891: From: Wilson.Harvey@CMU-CS-IUS
        !          10892: Subject: appending to files in lisp?
        !          10893: To: BBoard.Maintainer@CMU-CS-A
        !          10894: 
        !          10895: 
        !          10896: Does anyone have a function that will allow them to append to a file?  I
        !          10897: need to open a file and write some data to it then, at a later time, reopen
        !          10898: the same file and add some more data to it.  The only things that I could
        !          10899: find in Franz were "infile" and "outfile", and "outfile" truncates the file
        !          10900: when called.  It would be nice if the function would create the file if it
        !          10901: didn't already exist, but that is not necessary.
        !          10902: 
        !          10903: Thanks. --Wilson
        !          10904: 
        !          10905: P.S. I tried writing a C-function to handle this, but I didn't have any luck
        !          10906: passing the FILE pointer back into Franz.  It didn't recognize the pointer
        !          10907: as a port, and I don't know how to set it straight.
        !          10908: 
        !          10909: 
        !          10910: From [email protected]  Mon Dec 17 13:31:59 1984
        !          10911: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10912:        id AA01357; Mon, 17 Dec 84 13:31:59 pst
        !          10913: Received: from ARDC (ardc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.40)
        !          10914:        id AA25405; Mon, 17 Dec 84 13:30:56 pst
        !          10915: Message-Id: <[email protected]>
        !          10916: Date:     Mon, 17 Dec 84 16:23:16 EST
        !          10917: From: William K. Cadwallender (LCWSL) <[email protected]>
        !          10918: To: franz-friends@BERKELEY
        !          10919: Subject:  Please change my ID
        !          10920: 
        !          10921: The computer people here at ARDC have changed my ID: I was wkc@ARDC, I am
        !          10922: now cadwall@ARDC. Please update the franz-friends mailer accordingly.
        !          10923:                                Thanks,
        !          10924:                                Bill Cadwallender
        !          10925:                                (now cadwall@ARDC)
        !          10926: 
        !          10927: From liz@tove  Tue Dec 18 12:19:24 1984
        !          10928: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10929:        id AA00302; Tue, 18 Dec 84 12:19:24 pst
        !          10930: Received: from tove.ARPA (tove.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.40)
        !          10931:        id AA04349; Tue, 18 Dec 84 11:54:53 pst
        !          10932: Received: by tove.ARPA (4.12/4.7)
        !          10933:        id AA26165; Tue, 18 Dec 84 14:54:41 est
        !          10934: From: Liz Allen <liz@tove>
        !          10935: Message-Id: <[email protected]>
        !          10936: Date: 18 Dec 1984 1454-EST (Tuesday)
        !          10937: To: Wilson.Harvey@CMU-CS-IUS
        !          10938: Cc: franz-friends@BERKELEY
        !          10939: Subject: Re: appending to files in lisp?
        !          10940: In-Reply-To: Your message of 17 Dec 84 16:02:13 EST.
        !          10941:              <[email protected]>
        !          10942: 
        !          10943: To append to a file, use the outfile function's second argument:
        !          10944: 
        !          10945:        (setq oport (outfile '<filename> 'append))
        !          10946: 
        !          10947: This is discussed in the documentation for outfile in the Franz Lisp
        !          10948: Manual.
        !          10949: 
        !          10950:                                -Liz
        !          10951: 
        !          10952: From @MIT-MC:[email protected]  Tue Dec 18 16:46:44 1984
        !          10953: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10954:        id AA02563; Tue, 18 Dec 84 16:46:44 pst
        !          10955: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.40)
        !          10956:        id AA10079; Tue, 18 Dec 84 16:15:50 pst
        !          10957: Message-Id: <[email protected]>
        !          10958: Date: 17 Dec 84 23:04:24 EST
        !          10959: From: Wilson.Harvey@CMU-CS-IUS
        !          10960: Subject: appendfile question answered
        !          10961: To: BBoard.Maintainer@CMU-CS-A
        !          10962: 
        !          10963: 
        !          10964: Wow, was that an easy question.  All the responces were equally simple (use
        !          10965: "fileopen" with mode = a, or use "outfile" with the extra argument
        !          10966: "append").
        !          10967: 
        !          10968: I must have an outdated copy of the manual because I could find none of
        !          10969: these "features" documented.  A hearty "Thank you" to all who responded.
        !          10970: 
        !          10971: Wilson
        !          10972: 
        !          10973: 
        !          10974: From [email protected]  Wed Jan  2 03:00:04 1985
        !          10975: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          10976:        id AA08140; Wed, 2 Jan 85 03:00:04 pst
        !          10977: Received: from udel-dewey (udel-dewey.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.40)
        !          10978:        id AA01144; Wed, 2 Jan 85 02:51:04 pst
        !          10979: Message-Id: <[email protected]>
        !          10980: Received: From localhost.DELAWARE by udel-dewey.DELAWARE id a029713
        !          10981:           ;2 Jan 85 5:57 EST
        !          10982: To: franz-friends@BERKELEY
        !          10983: Cc: johnson@udel-dewey
        !          10984: Subject: franz on 68k-based systems? (esp NCR tower)
        !          10985: Date: 02 Jan 85 05:57:37 EST (Wed)
        !          10986: From: johnson <johnson@udel-dewey>
        !          10987: 
        !          10988: 
        !          10989: Has anyone out there had experience using franz (or similar lisps)
        !          10990: on an NCR tower or tower XP? (or any other 68k-based unix system ?)
        !          10991: 
        !          10992: I am interested in answers to these questions:
        !          10993: 
        !          10994:  1. What version of (franz) lisp are you using.
        !          10995: 
        !          10996:  2. Are there any special problems you've discovered in this system?
        !          10997: 
        !          10998:  3. How does this system perform? (compared to franz on a VAX 11/70,
        !          10999:        assuming you have had experience with both)
        !          11000: 
        !          11001:  4. Where did you obtain your version of (franz) lisp and how?
        !          11002:     (what media, what cost, under what terms or license?)
        !          11003: 
        !          11004:  thanks in advance,
        !          11005:  johnson@udel-ee
        !          11006: 
        !          11007: From sridhar%[email protected]  Thu Jan 24 00:31:15 1985
        !          11008: Received: from ucbernie.ARPA by ucbkim.ARPA (4.24/4.27)
        !          11009:        id AA12825; Thu, 24 Jan 85 00:31:15 pst
        !          11010: Received: from csnet-relay (csnet-pdn-gw.ARPA) by ucbernie.ARPA (4.24/4.40)
        !          11011:        id AA15268; Thu, 24 Jan 85 00:31:03 pst
        !          11012: Message-Id: <[email protected]>
        !          11013: Received: from wsu by csnet-relay.csnet id a006053; 24 Jan 85 3:16 EST
        !          11014: Date:     Wed, 23 Jan 85 21:50 PST
        !          11015: From: "S. Sridhar" <sridhar%[email protected]>
        !          11016: To: cross%[email protected]
        !          11017: Cc: [email protected]
        !          11018: Subject:  pretty printing
        !          11019: 
        !          11020: Is there any way I can pretty-print Franz lisp function (or files) with all
        !          11021: the comments in tact. Right now when I use the built in pp, it pretty prints
        !          11022: and strips off all comments. I mean is there any built-in function that does
        !          11023: this. Thanks.
        !          11024: 
        !          11025: Sridhar (sridhar@wsu)
        !          11026: 
        !          11027: From [email protected]  Thu Jan 24 05:33:59 1985
        !          11028: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          11029:        id AA14557; Thu, 24 Jan 85 05:33:59 pst
        !          11030: Received: from BRL-VOC (brl-voc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.41)
        !          11031:        id AA00666; Thu, 24 Jan 85 05:16:27 pst
        !          11032: Message-Id: <[email protected]>
        !          11033: Date:     Thu, 24 Jan 85 7:59:46 EST
        !          11034: From: "Ferd Brundick (VLD/LTTB)" <[email protected]>
        !          11035: To: "S. Sridhar" <sridhar%[email protected]>
        !          11036: Cc: Franz-Friends@BERKELEY
        !          11037: Subject:  Re:  pretty printing
        !          11038: 
        !          11039: Haah,
        !          11040: 
        !          11041: Franz's (read) function trashes all comments on input. [Which means
        !          11042: you can document your data files.]  You have to pretty-print the
        !          11043: original code before Franz gets it.  I don't know of any stand-alone
        !          11044: programs to do this (surely someone has written one).  I use
        !          11045: Berkeley's "vi" editor because it has a lisp mode; all input is
        !          11046: automatically pretty-printed if you say
        !          11047:   :set ai lisp
        !          11048: (ai stands for autoindent)
        !          11049: Another way is to execute the vi "=" command while in lisp mode.  All
        !          11050: of this is documented in the vi manual.  Hope this helps.
        !          11051: 
        !          11052:                                         dsw, fferd
        !          11053:                                         Fred S. Brundick
        !          11054:                                         USABRL, APG, MD.
        !          11055:                                         <fsbrn@brl-voc>
        !          11056: 
        !          11057: From @MIT-MC:smh@MIT-EMS  Thu Jan 24 06:01:33 1985
        !          11058: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          11059:        id AA14651; Thu, 24 Jan 85 06:01:33 pst
        !          11060: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.41)
        !          11061:        id AA00458; Thu, 24 Jan 85 06:00:41 pst
        !          11062: Message-Id: <[email protected]>
        !          11063: Received: by mit-ems.Mit-chaos.Arpa id AA25956; Thu, 24 Jan 85 08:59:42 est
        !          11064: Date: Thu, 24 Jan 85 08:59:42 est
        !          11065: From: Steven Haflich <smh@mit-ems>
        !          11066: To: franz-friends@BERKELEY, sridhar%wsu.csnet@csnet-relay
        !          11067: Subject: Re: pretty printing
        !          11068: 
        !          11069: Since comments are not part of a Lisp form returned by `read', clearly
        !          11070: no pretty-print function can do what you want.  Certainly a far more
        !          11071: complicated pretty-printer could be written which would be passed an
        !          11072: ascii file to read and which would somehow preserve comments inside the
        !          11073: form in order to regurgitate them during formatting.  The problem has
        !          11074: several complications, however, such as how to handle ascii Lisp text
        !          11075: with conditionalized inclusions (`#+' constructions)...
        !          11076: 
        !          11077: Instead, what you want is probably provided the Lisp-mode `grind'
        !          11078: facilities available in several popular text editors -- in particular,
        !          11079: EMACS.  (I know CCA EMACS works, and believe Gosling EMACS does also.)
        !          11080: In these editors a couple keystrokes will specify a region of text and
        !          11081: apply one of several Lisp-indentation algorithms to it.  They almost
        !          11082: always indent in reasonable ways, and attempt to do reasonable things
        !          11083: with comments, at least.  The ones with which I am familiar will *not*,
        !          11084: however, adjust line length length by moving either comment or Lisp
        !          11085: text from line to line.  This is not a great problem for normal
        !          11086: human-typed text, such as programs, since one tends not to type
        !          11087: absurdly long lines.
        !          11088: 
        !          11089: 
        !          11090: From peck@sri-spam  Wed Feb  6 12:01:17 1985
        !          11091: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          11092:        id AA28782; Wed, 6 Feb 85 12:01:17 pst
        !          11093: Received: from sri-spam.ARPA (sri-spam.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.41)
        !          11094:        id AA04441; Wed, 6 Feb 85 12:00:09 pst
        !          11095: Received: from localhost.ARPA by sri-spam.ARPA (4.22/4.16)
        !          11096:        id AA08198; Wed, 6 Feb 85 12:00:05 pst
        !          11097: Message-Id: <[email protected]>
        !          11098: Date: 06 Feb 85 11:59:58 PST (Wed)
        !          11099: To: ailist-request@sri-ai, franz-friends@BERKELEY
        !          11100: Subject: AI, Lisp, Graphics on SUN computers?
        !          11101: From: peck@sri-spam
        !          11102: 
        !          11103: I would like to here from anyone using SUN computers 
        !          11104: who can supply answers or comments on any of these issues:
        !          11105:  Is Franz the only (best) lisp available?
        !          11106:  Has anyone used the Maryland Flavors to create useful tools/extensions?
        !          11107:  Any support for sun graphics (windows, menus,etc) a la Interlisp-D?
        !          11108:  Any differential reports of Prolog (Quintus) vs Lisp ?
        !          11109:  Any obvious alternative to SUN? (vendor in same class (Tektronix?))
        !          11110:  Worst or hidden problems, pitfalls, gotcha's, etc.
        !          11111: > Can real AI development (even applications) be supported on SUN's? <
        !          11112: 
        !          11113: From kessler%utah-orion@utah-cs  Wed Feb  6 15:58:12 1985
        !          11114: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          11115:        id AA03031; Wed, 6 Feb 85 15:58:12 pst
        !          11116: Received: from utah-cs.ARPA (utah-gateway.ARPA) by UCB-VAX.ARPA (4.24/4.41)
        !          11117:        id AA06871; Wed, 6 Feb 85 13:46:19 pst
        !          11118: Received: from utah-orion.ARPA by utah-cs.ARPA (4.42/4.40.1)
        !          11119:        id AA03096; Wed, 6 Feb 85 14:37:05 MST
        !          11120: Received: by utah-orion.ARPA (4.42/4.40.1)
        !          11121:        id AA10406; Wed, 6 Feb 85 14:36:22 MST
        !          11122: Date: Wed, 6 Feb 85 14:36:22 MST
        !          11123: From: kessler%utah-orion@utah-cs (Robert Kessler)
        !          11124: Message-Id: <[email protected]>
        !          11125: To: [email protected]
        !          11126: Cc: [email protected], franz-friends@BERKELEY
        !          11127: Subject: Re: AI, Lisp, Graphics on SUN computers? (Long Message)
        !          11128: In-Reply-To: Your message of 06 Feb 85 11:59:58 PST (Wed).
        !          11129:             <[email protected]>
        !          11130: 
        !          11131: 
        !          11132:  > I would like to here from anyone using SUN computers 
        !          11133:  > who can supply answers or comments on any of these issues:
        !          11134:  >  Is Franz the only (best) lisp available?
        !          11135: We have finally finished porting Portable Standard LISP (PSL) to yet
        !          11136: another machine.  This time it is now running on the SUN.  Initial
        !          11137: timing measurements indicate that its speed is somewhere between a 
        !          11138: Vax 750 and 780 (all running PSL), and about twice as fast as Franz running
        !          11139: the REDUCE algebra system test on Suns.  We are now running the Gabriel
        !          11140: benchmarks to discover where it fits in the set.  For more details
        !          11141: see the announcement at the end of this message.
        !          11142:  >  Has anyone used the Maryland Flavors to create useful tools/extensions?
        !          11143: PSL provides support for a simple flavors package that seems quite
        !          11144: useful.  However, the current version has no inheritance.
        !          11145:  >  Any support for sun graphics (windows, menus,etc) a la Interlisp-D?
        !          11146: We have oload working which allows you to call externally compiled
        !          11147: routines (like other c sources).  So the interface should be easy to
        !          11148: add (but we haven't done it).
        !          11149:  >  Any differential reports of Prolog (Quintus) vs Lisp ?
        !          11150: None that I know of.
        !          11151:  >  Any obvious alternative to SUN? (vendor in same class (Tektronix?))
        !          11152: PSL also runs on Apollo's and HP Series 200 (both 68K based machines).
        !          11153: We have also ported a simple "educational" version to the 128K
        !          11154: Macintosh which is used in a beginning programming class.  We plan on
        !          11155: moving at least the Standard LISP subset and compiler to the 512K mac
        !          11156: (so if you want to go really cheap...... :-) )
        !          11157:  >  Worst or hidden problems, pitfalls, gotcha's, etc.
        !          11158: We had a lot of problems with the Sun port.  Some were hardware
        !          11159: related, others were differences between Unix 4.2 on the Sun and on the
        !          11160: Vax.  After we get some more experience using PSL on the machine, maybe
        !          11161: we could report more.
        !          11162:  > > Can real AI development (even applications) be supported on SUN's? <
        !          11163: I think so, as long as you can get one with enough memory.  Some of our
        !          11164: applications running on HP 9836's (which doesn't have virtual memory)
        !          11165: really fly (better than a 780 in speed).  So, memory is really a key to
        !          11166: a fast machine.
        !          11167:  > 
        !          11168: Bob.
        !          11169: 
        !          11170:                   PSL 3.2 for the SUN Workstation
        !          11171: 
        !          11172: We are pleased to announce that Portable Standard LISP (PSL) version
        !          11173: 3.2 is now available for the Sun workstation.  PSL is about the power,
        !          11174: speed and flavor  of Franz LISP or  MACLISP, with growing  influence
        !          11175: from Common  LISP.  It  is recognized  as an  efficient and  portable
        !          11176: LISP implementation with  many  more capabilities  than  described in
        !          11177: the  1979 Standard LISP Report.  PSL's main  strength is its
        !          11178: portability across  many different  systems,   including:   Vax  BSD
        !          11179: Unix, Vax VMS,  Extended   Addressing DecSystem-20 Tops-20, Apollo
        !          11180: DOMAIN  Aegis, and HP  Series 200.  A  version for the IBM-370 is in
        !          11181: beta test and two Cray versions are being used on an experimental
        !          11182: basis.  Since PSL generates very efficient code, it is an ideal
        !          11183: delivery vehicle for LISP based applications (we can  also provide  PSL
        !          11184: reseller  licenses for  binary only  and  source distributions).
        !          11185: 
        !          11186: PSL is distributed for the  various systems with executables, all
        !          11187: sources, an approximately  500 page  manual and  release notes.   The
        !          11188: release  notes describe how to install the system and how to rebuild
        !          11189: the various  modules.  We are charging  $750 for the  Sun version of
        !          11190: PSL for Commercial  Site licenses.  Non-profit institutions and all
        !          11191: other versions of PSL will  not be charged a license fee.  We are also
        !          11192: charging a $250 tape distribution fee for each system.
        !          11193: 
        !          11194: PSL is in heavy use at Utah, and by collaborators at Hewlett-Packard,
        !          11195: Rand, Stanford, Columbia and over  250 other sites.   Many existing
        !          11196: programs  and applications have been  adapted to  PSL including
        !          11197: Hearn's REDUCE  computer algebra system and GLISP, Novak's object
        !          11198: oriented LISP dialect.  These  are available from Hearn and Novak.
        !          11199: 
        !          11200: To obtain a copy of the license  and order form, please send a NET
        !          11201: message or letter with your US MAIL address to:
        !          11202: 
        !          11203: Utah Symbolic Computation Group Secretary
        !          11204: University of Utah - Dept. of Computer Science
        !          11205: 3160 Merrill Engineering Building
        !          11206: Salt Lake City, Utah 84112
        !          11207: 
        !          11208: ARPANET: CRUSE@UTAH-20
        !          11209: USENET:  utah-cs!cruse
        !          11210: 
        !          11211: From cas@cvl  Thu Feb 21 11:40:59 1985
        !          11212: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          11213:        id AA17380; Thu, 21 Feb 85 11:40:59 pst
        !          11214: Received: from cvl.ARPA (cvl.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.41)
        !          11215:        id AA23930; Thu, 21 Feb 85 11:33:27 pst
        !          11216: Received: by cvl.ARPA (4.12/4.7)
        !          11217:        id AA09421; Thu, 21 Feb 85 14:38:26 est
        !          11218: Date: Thu, 21 Feb 85 14:38:26 est
        !          11219: From: cas@cvl (Cliff Shaffer)
        !          11220: Message-Id: <[email protected]>
        !          11221: To: franz-friends@BERKELEY
        !          11222: Subject: database system request
        !          11223: 
        !          11224: 
        !          11225: Does anybody know of a database system written in FRANZ or easily
        !          11226: compatible with FRANZ?  We have written a lot of software for a
        !          11227: geographic information system, and may want to redo the section which
        !          11228: handles random bits of information associated with polygons or points
        !          11229: stored in a map.  Right now we store this information as a property
        !          11230: list on an atom associated with the polygon or point in question.  This
        !          11231: becomes very inefficient when we want to find all such atoms with
        !          11232: a particular value for some arbitrary property.  Equally importantly,
        !          11233: there is very little relationship between the set of properties associated
        !          11234: with each polygon or point, so a system storing a fixed length record
        !          11235: for each polygon, with fields for each piece of information, would not work.
        !          11236: Any suggestions?
        !          11237:                Cliff Shaffer
        !          11238:                cas@cvl
        !          11239: 
        !          11240: From layer@ucbdali  Thu Feb 21 12:54:14 1985
        !          11241: Received: from ucbdali.ARPA by ucbkim.ARPA (4.24/4.27)
        !          11242:        id AA18356; Thu, 21 Feb 85 12:54:14 pst
        !          11243: Received: by ucbdali.ARPA (4.24/4.40)
        !          11244:        id AA16858; Thu, 21 Feb 85 12:53:47 pst
        !          11245: Date: Thu, 21 Feb 85 12:53:47 pst
        !          11246: From: layer@ucbdali (Kevin Layer)
        !          11247: Message-Id: <[email protected]>
        !          11248: Phone: (415) 652-2405
        !          11249: To: cas@cvl, franz-friends@kim
        !          11250: Subject: Re:  database system request
        !          11251: 
        !          11252: You could use the dbm library, as supplied by UNIX (/usr/lib/libdbm.a),
        !          11253: via cfasl and getaddress.
        !          11254: 
        !          11255:        Kevin
        !          11256: 
        !          11257: 
        !          11258: From freemant%[email protected]  Mon Feb 25 04:50:50 1985
        !          11259: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          11260:        id AA20175; Mon, 25 Feb 85 04:50:50 pst
        !          11261: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.41)
        !          11262:        id AA24603; Mon, 25 Feb 85 04:43:20 pst
        !          11263: Date: Mon, 25 Feb 85 04:43:17 pst
        !          11264: Message-Id: <[email protected]>
        !          11265: Received: from rpi by csnet-relay.csnet id a012112; 25 Feb 85 7:24 EST
        !          11266: From: freemant%[email protected]
        !          11267: To: franz-friends@BERKELEY
        !          11268: 
        !          11269: Hello!  Our version of lxref didn't work right when it was passed the -a
        !          11270: option, so I fixed it.  Someone may want to use the -a option on lxref one
        !          11271: of these days, so I am mailing you my fixes in hopes that you will
        !          11272: distribute them.  
        !          11273: 
        !          11274: Things are kind of chaotic around here, so I am not sure that I was working
        !          11275: with the most current version of lxref.  Make sure that your current version
        !          11276: of lxref matches the code that I changed before you edit in my changes.
        !          11277: 
        !          11278: The origional definition of the function process-annotate-file left files
        !          11279: open.  Because the lisp interpreter can only have a finite number of files
        !          11280: open at once, this caused lxref to bomb when it was given a large job to do.
        !          11281: To fix this, I changed the definition of process-annotate-file from:
        !          11282: 
        !          11283: (defun process-annotate-file (filename)
        !          11284:    (let (sourcep outp)
        !          11285:       ; make sure file exists and write annotate file as a
        !          11286:       ; file with the prefix #,
        !          11287:       (if (null (errset (setq sourcep (infile filename))))
        !          11288:         then (msg "will ignore that file " N)
        !          11289:         else ; will write to file.A (erasing the final l)
        !          11290:              (let ((filen (concat "#," filename)))
        !          11291:                 (setq outp (outfile filen))
        !          11292:                 (anno-it sourcep outp)
        !          11293:                 (close outp)
        !          11294:                 ; now mv the original filename to #dfilename
        !          11295:                 ; and the annotated file to the original file
        !          11296:                 (let ((oldcopy (concat "#." filename)))
        !          11297:                    (if (null (errset
        !          11298:                                 (progn (if (probef oldcopy)
        !          11299:                                           then (sys:unlink oldcopy))
        !          11300:                                        (sys:link filename oldcopy)
        !          11301:                                        (sys:unlink filename)
        !          11302:                                        (sys:link filen filename)
        !          11303:                                        (sys:unlink filen))))
        !          11304:                       then (msg "An error occured while mving files around "
        !          11305:                                 N
        !          11306:                                 "files possibly affected "
        !          11307:                                 filename oldcopy filen)))))))
        !          11308: 
        !          11309: to:
        !          11310: 
        !          11311: (defun process-annotate-file (filename)
        !          11312:    (let (sourcep outp)
        !          11313:       ; make sure file exists and write annotate file as a
        !          11314:       ; file with the prefix #,
        !          11315:       (if (null (errset (setq sourcep (infile filename))))
        !          11316:         then (msg "will ignore that file " N)
        !          11317:         else ; will write to file.A (erasing the final l)
        !          11318:              (let ((filen (concat "#," filename)))
        !          11319:                 (setq outp (outfile filen))
        !          11320:                 (anno-it sourcep outp)
        !          11321:                 (close outp)
        !          11322:                 (close sourcep)
        !          11323:                 ; now mv the original filename to #dfilename
        !          11324:                 ; and the annotated file to the original file
        !          11325:                 (let ((oldcopy (concat "#." filename)))
        !          11326:                    (if (null (errset
        !          11327:                                 (progn (if (probef oldcopy)
        !          11328:                                           then (sys:unlink oldcopy))
        !          11329:                                        (sys:link filename oldcopy)
        !          11330:                                        (sys:unlink filename)
        !          11331:                                        (sys:link filen filename)
        !          11332:                                        (sys:unlink filen))))
        !          11333:                       then (msg "An error occured while mving files around "
        !          11334:                                 N
        !          11335:                                 "files possibly affected "
        !          11336:                                 filename oldcopy filen)))))))
        !          11337: 
        !          11338: Note that the only change is the insertion of one close statement.
        !          11339: 
        !          11340: The other bug I found was that find-func miserably failed to do its job
        !          11341: right.  The origional version of the function looked like this:
        !          11342: 
        !          11343: (defun find-func (buf)
        !          11344:    ; first locate first space or tab
        !          11345:    (do ((i 1 (1+ i))
        !          11346:        (max (cxr 0 buf))
        !          11347:        (die))
        !          11348:        ((or (setq die (not (<& i max)))
        !          11349:            (memq (cxr i buf) '(#\space #\tab)))
        !          11350:        (if die
        !          11351:           then nil     ; can find it, so give up
        !          11352:           else ; find first non blank
        !          11353:                (do ((ii i (1+ ii)))
        !          11354:                    ((or (setq die (not (<& ii max)))
        !          11355:                         (not (memq (cxr ii buf) '(#\space #\tab))))
        !          11356:                     (if (or die (eq (cxr ii buf) #\lpar))
        !          11357:                        then nil
        !          11358:                        else ; fid first sep or left paren
        !          11359:                             (do ((iii (1+ ii) (1+ iii)))
        !          11360:                                 ((or (not (<& iii max))
        !          11361:                                      (memq (cxr iii buf)
        !          11362:                                            '(#\space #\tab #\lpar)))
        !          11363:                                  (implode-fun buf ii (1- iii)))))))))))
        !          11364: 
        !          11365: Not unsurprisingly, this code didn't work.  I discarded it and rewrote the
        !          11366: function in a much simpler fashion:
        !          11367: 
        !          11368: (defun find-func (buf)
        !          11369:     (let ((i 1)
        !          11370:          (max (cxr 0 buf))
        !          11371:          (result nil))
        !          11372:         (loop until (or (greaterp i max) (memq (cxr i buf) '(#\space #\tab)))
        !          11373:               do (setq i (+ i 1)))
        !          11374:         (loop while (and (not (greaterp i max))
        !          11375:                          (memq (cxr i buf) '(#\space #\tab))) do
        !          11376:               (setq i (+ i 1)))
        !          11377:         (loop until (or (greaterp i max)
        !          11378:                         (memq (cxr i buf) 
        !          11379:                               '(#\space #\tab #.(getcharn '|(| 1)))) do
        !          11380:               (setq result (cons (cxr i buf) result))
        !          11381:               (setq i (+ i 1)))
        !          11382:         (if result then (implode (reverse result)) else nil)))
        !          11383: 
        !          11384: The error in the origional definition of find-func caused the -a option to
        !          11385: always do nothing.  It is surprising that no one caught the fact that the -a
        !          11386: option was useless earlier.  (However, I am not sure that the source that I
        !          11387: was looking at came from your tape, so perhaps it isn't your fault.)  In any
        !          11388: case, my version works.
        !          11389: 
        !          11390: Bye!
        !          11391:                                        Tim Freeman
        !          11392:                                        freemant@rpi
        !          11393: 
        !          11394: From bane@gymble  Wed Feb 27 12:20:08 1985
        !          11395: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          11396:        id AA19926; Wed, 27 Feb 85 12:20:08 pst
        !          11397: Received: from gymble.ARPA (gymble.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          11398:        id AA13078; Wed, 27 Feb 85 12:12:21 pst
        !          11399: Received: by gymble.ARPA (4.12/4.7)
        !          11400:        id AA25775; Wed, 27 Feb 85 15:17:32 est
        !          11401: Date: Wed, 27 Feb 85 15:17:32 est
        !          11402: From: John R. Bane <bane@gymble>
        !          11403: Message-Id: <[email protected]>
        !          11404: To: franz-friends@BERKELEY
        !          11405: Subject: symeval 'feature'
        !          11406: 
        !          11407:        I've just finished a half-hour "It works interpreted but not compiled"
        !          11408: debugging session with a user who was new to compiling Franz, and I have a
        !          11409: complaint. The function 'symeval' works misleadingly differently interpreted
        !          11410: and compiled.
        !          11411: 
        !          11412:        Compiled symeval open-codes into a symbol value-cell reference. This
        !          11413: is fine. Interpreted symeval is implemented as a pointer to 'eval'.  This
        !          11414: loses because something like (symeval '(+ 1 2)) is not an error interpreted,
        !          11415: and it should be because it turns into the worst kind of bug when compiled,
        !          11416: since it'll return some random pointer from cons node space.
        !          11417: 
        !          11418:        This 'feature' was observed in Opus 38.91.
        !          11419: 
        !          11420: From [email protected]  Thu Feb 28 11:37:06 1985
        !          11421: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          11422:        id AA04105; Thu, 28 Feb 85 11:37:06 pst
        !          11423: Received: from wisc-ai.arpa (wisc-ai.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          11424:        id AA08982; Thu, 28 Feb 85 11:29:20 pst
        !          11425: Date: Thu, 28 Feb 85 13:34:20 cst
        !          11426: From: [email protected] (David Neves)
        !          11427: Message-Id: <[email protected]>
        !          11428: Received: by wisc-ai.arpa; Thu, 28 Feb 85 13:34:20 cst
        !          11429: To: franz-friends@BERKELEY
        !          11430: Subject: franz to vi & back
        !          11431: 
        !          11432: We have a heavily loaded vax on which we run our Lisp classes.  It
        !          11433: seems to me that we could lessen the load by not having VI start
        !          11434: up anew every time the student does a VIL in Franz.  
        !          11435: 
        !          11436: It would be nice to have two processes, one Lisp and the other VI.
        !          11437: There would be a function (like VIL) in Franz that would start up
        !          11438: a VI process if there wasn't one and if there was a VI process just
        !          11439: goto it.  When the student is finished editing the file he/she would
        !          11440: hit a key that would save out the file and return to Lisp (without
        !          11441: killing the VI process).  I believe that Gosling Emacs had something
        !          11442: like this, only more sophisticated.
        !          11443: 
        !          11444: My questions.  Has anyone done this for Franz & VI?  Would this help
        !          11445: the load average on a VAX?  If no one has done it, would it be difficult
        !          11446: to do?
        !          11447: -Thanks, David
        !          11448: 
        !          11449: From moore.losangel%[email protected]  Thu Feb 28 16:20:09 1985
        !          11450: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          11451:        id AA08882; Thu, 28 Feb 85 16:20:09 pst
        !          11452: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          11453:        id AA05586; Thu, 28 Feb 85 16:12:12 pst
        !          11454: Message-Id: <[email protected]>
        !          11455: Received: from ibm-sj by csnet-relay.csnet id ac15203; 28 Feb 85 19:11 EST
        !          11456: Date: Thu, 28 Feb 85 15:34:11 PST
        !          11457: From: Jim moore <moore.losangel%[email protected]>
        !          11458: To: [email protected], franz-friends@BERKELEY
        !          11459: Subject: Can/does Franz exist on PC/IX or VM/IX?
        !          11460: 
        !          11461: I am looking for a high quality LISP to run under PC(VM)/IX.
        !          11462:  
        !          11463: Is Franzlisp the one?  Who & How?
        !          11464:  
        !          11465: If not, which?
        !          11466:  
        !          11467: Thanks in advance -- Jim Moore
        !          11468:  
        !          11469: (MOORE.LOSANGEL@IBM)
        !          11470:  
        !          11471: p.s. pls reply directly since I'm not on this list.
        !          11472:  
        !          11473: 
        !          11474: From [email protected]  Fri Mar  1 04:29:27 1985
        !          11475: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          11476:        id AA17511; Fri, 1 Mar 85 04:29:27 pst
        !          11477: Received: from udel-dewey (udel-dewey.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          11478:        id AA18449; Fri, 1 Mar 85 04:21:31 pst
        !          11479: Message-Id: <[email protected]>
        !          11480: Received: From localhost.DELAWARE by udel-dewey.DELAWARE id a009017
        !          11481:           ;1 Mar 85 7:18 EST
        !          11482: To: David Neves <[email protected]>
        !          11483: Cc: franz-friends@BERKELEY, johnson@udel-dewey
        !          11484: Subject: Re: franz to vi & back
        !          11485: In-Reply-To: Your message of Thu, 28 Feb 85 13:34:20 cst.
        !          11486:             <[email protected]>
        !          11487: Date: 01 Mar 85 07:18:11 EST (Fri)
        !          11488: From: johnson@udel-dewey
        !          11489: 
        !          11490: 
        !          11491: Subject: franz to vi & back
        !          11492: 
        !          11493: > We have a heavily loaded vax on which we run our Lisp classes.  It
        !          11494: > seems to me that we could lessen the load by not having VI start
        !          11495: > up anew every time the student does a VIL in Franz.  
        !          11496: > 
        !          11497: > It would be nice to have two processes, one Lisp and the other VI.
        !          11498: > There would be a function (like VIL) in Franz that would start up
        !          11499: > a VI process if there wasn't one and if there was a VI process just
        !          11500: > goto it.  When the student is finished editing the file he/she would
        !          11501: > hit a key that would save out the file and return to Lisp (without
        !          11502: > killing the VI process).  I believe that Gosling Emacs had something
        !          11503: > like this, only more sophisticated.
        !          11504: > 
        !          11505: > My questions.  Has anyone done this for Franz & VI?  Would this help
        !          11506: > the load average on a VAX?  If no one has done it, would it be difficult
        !          11507: > to do?
        !          11508: > 
        !          11509: 
        !          11510: I have developed something similar to what you describe, for franz
        !          11511: running under bsd4.2
        !          11512: 
        !          11513: It was moderately difficult at the time, but I was just learning to
        !          11514: exploit job control.
        !          11515: 
        !          11516: in this system, the user invokes: 
        !          11517: (vif  foo)
        !          11518: to edit the function foo.
        !          11519: 
        !          11520: when he is finished editing, he saves the current buffer by:
        !          11521: :w
        !          11522: then exits the editor by pressing:
        !          11523: ^Z  [NOT wq!!]
        !          11524: 
        !          11525: (getting users o use ^Z rather than wq is the biggest difficulty)
        !          11526: 
        !          11527: the function is the read from a temporary file which is created
        !          11528: by vif.
        !          11529: 
        !          11530: if the user later wishes to modify the SAME function [often the case]
        !          11531: he simply invokes:
        !          11532: (vif)
        !          11533: - and is returned to the [stopped] editing session EXACTLY where
        !          11534: he left it.  
        !          11535: [ providing some motivation for putting up with ^Z ]
        !          11536: 
        !          11537: 
        !          11538: The system people around here aren't too adventurous, so the only people
        !          11539: who use this system are my friends and myself, so I can't say what effect
        !          11540: it has on the load, [but it can only help]
        !          11541: 
        !          11542: one problem:  files in /tmp may accumulate, as there is no way to force
        !          11543: a user to clean up all editing sessions before exiting lisp.
        !          11544: [but that is what /tmp is for!]  you might warn your system people
        !          11545: to remove all VIF files that are over 2days old, or something like that.
        !          11546: 
        !          11547: 
        !          11548: note: this package knows about changes made by [cmu]edit, and may
        !          11549: be simplified if you are using a system where cmuedit is unavailable.
        !          11550: 
        !          11551: 
        !          11552: NOTE!!!!!!
        !          11553: Neither the University of Delaware
        !          11554: nor Apperson H. Johnson
        !          11555: relinquishes any rightts toi this software.
        !          11556: 
        !          11557: Please do NOT transfer the software without written permission
        !          11558: from both The University of Delaware and Apperson H. Johnson.
        !          11559: 
        !          11560: 
        !          11561: **********************************************************
        !          11562: setting up the system:
        !          11563: 
        !          11564: Script started on Fri Mar  1 06:49:30 1985
        !          11565: % make jced
        !          11566: cc  -c jced.c
        !          11567: cc  -c eroar.c
        !          11568: ld -o jcedmod.o -r  jced.o eroar.o
        !          11569: % lisp
        !          11570: Franz Lisp, Opus 38.79
        !          11571: -> [load 'vif]
        !          11572: [load vif.l]
        !          11573: /usr/lib/lisp/nld -N -x -A /usr/ucb/lisp -T 95800 jcedmod.o -e _jced_ -o /tmp/Li8788.0  -lc
        !          11574: t
        !          11575: -> [dumplisp newlisp]
        !          11576: nil
        !          11577: -> (exit)
        !          11578: script done on Fri Mar  1 06:51:45 1985
        !          11579: *******************************************************************
        !          11580: 
        !          11581: "newlisp" is now the lisp to use - you can put it in some directory
        !          11582: in youtr student's path
        !          11583: ----------  here is vif.l  --------------------------------
        !          11584: (setq sccid "#(@)vif.l V1.1    johnson@udel    10/13/84")
        !          11585: (eval-when (compile)
        !          11586:        (msg "vif doen't work compiled!!!\\ "N) (exit))
        !          11587: (declare (localf sccid))
        !          11588: ;
        !          11589: ;  uses job-control to allow ^Z from 'vi' to return to inside of
        !          11590: ;  Lisp function
        !          11591: ;
        !          11592: 
        !          11593: 
        !          11594: ; ::vif::
        !          11595: ;
        !          11596: ;  Usage: (vif [<function-name>])
        !          11597: ;  returns: t if function is loaded without errors, nil otherwise
        !          11598: ;  side-effect: starts vi with temporary file,
        !          11599: ;
        !          11600: ;  does NOT REMOVE FILE UNLESS SUCCESSFUL LOAD HAS BEEN MADE
        !          11601: ;  AND user has "quit" the editor
        !          11602: ;
        !          11603: ;  - allows ~instantaneous return to file being edited if
        !          11604: ;    vi has been exited by ^Z (or whatever the susp character is, [see stty.1])
        !          11605: ;   
        !          11606: ;  NOTE: file and vi session may stay "LIVE" even between invocations!!!
        !          11607: ; eg:
        !          11608: ;
        !          11609: ;  (def jnk '(lambda (x) "i am jnk"))
        !          11610: ;
        !          11611: ;  (vif jnk)
        !          11612: ;    --> vi session, followed by :w, and then ^Z
        !          11613: ;  t
        !          11614: ;  followed by  :
        !          11615: ;     (vif jnk ) 
        !          11616: ;  or:
        !          11617: ;     (vif)
        !          11618: ;   --> INSTANTLY returns to former vi session !!
        !          11619: ;
        !          11620: ;
        !          11621: ;
        !          11622: (declare (special *jced_lastf* *jced_lastc*  %changes))
        !          11623: 
        !          11624: (def vif
        !          11625:   (nlambda (fn)
        !          11626:     (prog (res tf er ppflag)
        !          11627:           (cond
        !          11628:            (fn
        !          11629:             (cond
        !          11630:              ((or (not (boundp '*jced_lastf*))
        !          11631:                   (neq *jced_lastf* (car fn)))
        !          11632:               (setq ppflag t)
        !          11633:               (setq *jced_lastf* (car fn))))))
        !          11634:           (cond ((boundp '*jced_lastf*)
        !          11635:                  (setq tf
        !          11636:                        (substring (concat '/tmp/VF
        !          11637:                                           (concat (syscall 20)
        !          11638:                                                   (concat '_
        !          11639:                                                           *jced_lastf*)))
        !          11640:                                   1))
        !          11641:                  (cond
        !          11642:                   ((and (boundp '%changes)
        !          11643:                         (memq *jced_lastf* %changes)
        !          11644:                         (or (not (boundp '*jced_lastc*))
        !          11645:                             (neq *jced_lastc* (memq *jced_lastf* %changes))))
        !          11646:                    (setq ppflag t)))
        !          11647:                  (cond
        !          11648:                   (ppflag
        !          11649:                    (eval (list 'pp (list 'F tf) *jced_lastf*)))))
        !          11650:                 (t (msg "vif: edit what ??" N) (return nil)))
        !          11651:      lp   (setq res (jced_ tf ""))
        !          11652:           (setq er nil)
        !          11653:           (setq ER%all '(lambda (x)
        !          11654:                                 (setq er t))
        !          11655:                         )
        !          11656:           (cond
        !          11657:            ((not (probef tf))
        !          11658:             (msg "vif: cannot find " tf)
        !          11659:             (cond
        !          11660:              ((eq res 1)
        !          11661:               (msg " want to return to the editor? {y/n} ")
        !          11662:               (cond ((eq (read) 'y) (go lp)))
        !          11663:                          (return nil)))
        !          11664:             (msg " sorry." N)
        !          11665:             (makunbound '*jced_lastf*)
        !          11666:             (return t)))
        !          11667:           (errset (load tf))
        !          11668:           (cond
        !          11669:            ((boundp '%changes)
        !          11670:             (setq *jced_lastc* (memq *jced_lastf* %changes))))
        !          11671:           (cond
        !          11672:            (er (msg "vif: want to fix " *jced_lastf* "? {y/n} ")
        !          11673:                (cond ((eq (read) 'y) (go lp)))))
        !          11674:           (cond ((eq res 0)
        !          11675:                  (makunbound '*jced_lastf*)
        !          11676:                  (syscall 10 tf)
        !          11677:                  (return t))
        !          11678:                 (t (return nil))))))
        !          11679: 
        !          11680: 
        !          11681: ;
        !          11682: ; include modules written in C
        !          11683: (cfasl 'jcedmod.o '_jced_ 'jced_ "integer-function")
        !          11684: 
        !          11685: ;  initialization string for jced
        !          11686: (jced_ ":se lisp
        !          11687: " "edinit")
        !          11688: 
        !          11689: ;  editor to use
        !          11690: (jced_ "/usr/ucb/vi" "editor")
        !          11691: 
        !          11692: --------------- -------     jced.c             ---------------
        !          11693: static char sccid[] = "@(#)jced.c      1.1     johnson@udel 11/2/84";
        !          11694: 
        !          11695: #include  <signal.h>
        !          11696: #include  <sgtty.h>
        !          11697: #include  <errno.h>
        !          11698: #include  <sys/wait.h>
        !          11699: #include  <sys/types.h>
        !          11700: #include  <sys/stat.h>
        !          11701: #include  <sys/file.h>
        !          11702: #include  <stdio.h>
        !          11703: 
        !          11704: #define streq(s1,s2)   (0 == strcmp(s1,s2))
        !          11705: #define file_exist(FN)  (0 == access(FN,F_OK))
        !          11706: static int chpgrp, pgrp;   
        !          11707: static union wait status;
        !          11708: static struct stat st0,st1;
        !          11709: static struct sigvec sv1 = { SIG_IGN, 0, 0};
        !          11710: static struct sigvec sv0;
        !          11711: 
        !          11712: static char curname[128];
        !          11713: static char ed_buf[] = "/usr/ucb/vi";
        !          11714: static char init_buf[] = "";
        !          11715: static char myname_buf[] = "jced_";
        !          11716: static char *editor = ed_buf;
        !          11717: static char *edinit = init_buf;
        !          11718: static char *myname = myname_buf;
        !          11719: 
        !          11720: /*     ::jced_::
        !          11721:  *     
        !          11722:  *     Usage: (jced_ "filename" "")
        !          11723:  *     
        !          11724:  *                     jced_ is a job-control editor
        !          11725:  *
        !          11726:  *     - starts an editor session with "filename"
        !          11727:  *       (or resumes it if there is a 'living' session with that file)
        !          11728:  *     - returns 1 if the session remains alive, 0 if the session is over
        !          11729:  *     
        !          11730:  *     NOTE: if the SECOND argument is not the EMPTY string, 
        !          11731:  *     then the following special calls may apply:
        !          11732:  *     
        !          11733:  *              (jced_ "/usr/ucb/vi" "editor") 
        !          11734:  *     - causes jced to use /usr/ucb/vi as the editor (this is the default)
        !          11735:  *     
        !          11736:  *             : (jced_ ":se bla" "edinit") 
        !          11737:  *     - causes jced cause the editor to pretend that the user typed ":se bla"
        !          11738:  *     every time the editor is invoked (the default is "")
        !          11739:  *
        !          11740:  *             : (jced_ "jced_" "myname") 
        !          11741:  *     - causes jced to use the name "jced_" in its prompts and messages
        !          11742:  *     (this is the default)
        !          11743:  *
        !          11744:  */
        !          11745: int
        !          11746: jced_(fname,cmd)
        !          11747: char *fname, *cmd;
        !          11748: {
        !          11749: union wait  status;
        !          11750: char resp[2];
        !          11751: 
        !          11752: 
        !          11753:        if (*cmd) {
        !          11754:                if (streq(cmd,"editor")) newstring(&editor,fname);
        !          11755:                else if (streq(cmd,"edinit")) newstring(&edinit,fname);
        !          11756:                else if (streq(cmd,"myname")) newstring(&myname,fname);
        !          11757:                else fprintf(stderr,"%s: %s is an unknown command",myname,cmd);
        !          11758:                return(0);
        !          11759:        }
        !          11760: 
        !          11761:        if (*curname) {
        !          11762:                if (*fname &&  !streq(fname,curname)) {
        !          11763:                                if (file_exist(curname))
        !          11764:                                        eroar(unlink(curname),0,"unlink %",curname);
        !          11765:                                kvil_();
        !          11766:                                strcpy(curname,fname);
        !          11767:                                begin_vi(); resume_vi();
        !          11768:                } else {
        !          11769:                        /*
        !          11770:                         * if file has been modified elsewhere,
        !          11771:                         * new editing session is needed
        !          11772:                         */ 
        !          11773:                        if (file_exist(curname)) { 
        !          11774:                                eroar(stat(curname,&st1),0,"stat");
        !          11775:                                if(st0.st_mtime != st1.st_mtime) {
        !          11776:                                        kvil_(); strcpy(curname,fname); begin_vi();
        !          11777:                                }
        !          11778:                        }
        !          11779:                        resume_vi();
        !          11780:                }
        !          11781:        } else if (*fname) {
        !          11782:                        strcpy(curname,fname);
        !          11783:                        begin_vi(); resume_vi();
        !          11784:     } else
        !          11785:                return(0);
        !          11786:                
        !          11787:        return((*curname) ? 1 : 0);
        !          11788: }
        !          11789: 
        !          11790: /*  to be called when a function is modified elsewhwre */
        !          11791: kvil_()
        !          11792: {
        !          11793:        eroar(killpg(chpgrp,SIGKILL),0,"killpg %d",chpgrp);
        !          11794:        wait3(&status,WUNTRACED,0);
        !          11795:        curname[0] = '\0';
        !          11796: }
        !          11797: 
        !          11798: static
        !          11799: begin_vi()
        !          11800: {
        !          11801:        if (chpgrp = fork()) {
        !          11802:                pgrp = getpgrp(0);
        !          11803:                eroar(setpgrp(chpgrp,chpgrp),0,"setpgrp");
        !          11804:        } else {
        !          11805:                fakeinput(edinit);
        !          11806:                execlp(editor,editor,curname,0);
        !          11807:                fprintf(stderr,"%s: exec of %s failed\n",myname,editor);
        !          11808:     }
        !          11809: }
        !          11810: 
        !          11811: 
        !          11812: static
        !          11813: resume_vi()
        !          11814: {
        !          11815: char dum[2];
        !          11816: 
        !          11817:        for (;;) {
        !          11818:                eroar(sigvec(SIGTTOU,&sv1,&sv0),0,"sigvec -IGN TTOU");
        !          11819:                eroar(ioctl(0,TIOCSPGRP,&chpgrp),0,"SPGRP chpgrp");
        !          11820:                if (file_exist(curname))
        !          11821:                        eroar(stat(curname,&st1),0,"stat");
        !          11822:                else
        !          11823:                        st1.st_mtime = 0;
        !          11824:                killpg(chpgrp,SIGCONT);
        !          11825:                wait3(&status,WUNTRACED,0);
        !          11826:                eroar(ioctl(0,TIOCSPGRP,&pgrp),0,"ioctl SPGRP pid");
        !          11827:                eroar(sigvec(SIGTTOU,&sv0,0),0,"sigvec -DFL TTOU");
        !          11828:                if (file_exist(curname))
        !          11829:                        eroar(stat(curname,&st0),0,"stat");
        !          11830:                else
        !          11831:                        st0.st_mtime = st1.st_mtime;
        !          11832: 
        !          11833:                if(!status.w_status) {
        !          11834:                        curname[0] = '\0'; break;
        !          11835:                }
        !          11836:                if(st0.st_mtime == st1.st_mtime) {
        !          11837:                        fprintf(stderr,"%s: %s was not modified, try again? {y/n} ",
        !          11838:                                myname, curname);
        !          11839:                        if (1 == scanf("%1s",dum) && dum[0] == 'n')  break;
        !          11840:                } else 
        !          11841:                        break;
        !          11842:        }
        !          11843: }
        !          11844: 
        !          11845: static
        !          11846: fakeinput(s)
        !          11847: char *s;
        !          11848: {
        !          11849: int i;
        !          11850:        /* pretend s was typed at the terminal */
        !          11851:        for(i=0;s[i]; ++i)
        !          11852:                ioctl(0,TIOCSTI,s+i);
        !          11853: }
        !          11854: 
        !          11855: static
        !          11856: newstring(sptr,s)
        !          11857: char **sptr, *s;
        !          11858: {
        !          11859: char *s2, *malloc();
        !          11860: 
        !          11861:        if (NULL == (s2 = malloc(1 + strlen(s)))) {
        !          11862:                fprintf(stderr,"%s: malloc failed\n",myname);
        !          11863:        } else {
        !          11864:                strcpy(s2,s);
        !          11865:                *sptr = s2;
        !          11866:        }
        !          11867: }
        !          11868: 
        !          11869: ---------------------------  eroar.c  --------------------
        !          11870: 
        !          11871: static char sccid[] = "@(#)eroar.c     1.0     johnson@udel 10/13/84";
        !          11872: 
        !          11873: /*     ::eroar.c::
        !          11874:  *     
        !          11875:  *     error reporter-handler for faulty system function calls
        !          11876:  *     
        !          11877:  *     Usage: eroar( <system-call>, <exit-code>, <printf-pattern>, 
        !          11878:  *                                             <printf-arg>, <printf-arg>,  ...... );
        !          11879:  *     
        !          11880:  *     behavior:
        !          11881:  *             if the system call is successful, returns (1) immediately
        !          11882:  *             else
        !          11883:  *                     prints out the error message (from the printf pattern)
        !          11884:  *                       and prints an error explanation
        !          11885:  *                     if exit-code is non-zero, exits with that code
        !          11886:  *                     else returns (0)
        !          11887:  */
        !          11888: 
        !          11889: 
        !          11890: #include <errno.h>
        !          11891: #include <stdio.h>
        !          11892: #define ERR_BUFMAX 128
        !          11893: 
        !          11894: extern int sys_nerr, errno;
        !          11895: extern char *sys_errlist[];
        !          11896: 
        !          11897: eroar(expr,code,s,p1,p2,p3,p4,p5,p6,p7,p8,p9)
        !          11898: int expr,code; char *s;
        !          11899: {
        !          11900:        static char errbuf[ERR_BUFMAX];
        !          11901:        if (-1 != expr) return(1);
        !          11902:        fprintf(stderr,s,p1,p2,p3,p4,p5,p6,p7,p8,p9);
        !          11903:        fprintf(stderr,": %s\n",
        !          11904:                (0 < errno && errno < sys_nerr) ?
        !          11905:                                sys_errlist[errno] : "UNKNOWN ERROR");
        !          11906:        if (code) exit(code);
        !          11907:        return(0);
        !          11908: }
        !          11909: 
        !          11910: -----------------    makefile -----------------------
        !          11911: 
        !          11912: jced : jcedmod.o
        !          11913: 
        !          11914: jcedmod.o : jced.o eroar.o
        !          11915:        ld -o jcedmod.o -r  jced.o eroar.o
        !          11916: -------------------------------------------------------
        !          11917: 
        !          11918: ... (share a little joke with the world) ...
        !          11919: 
        !          11920: net:           johnson@udel-ee
        !          11921: usmail:        Apperson H. Johnson
        !          11922:                        618 Lehigh Rd. apt S11
        !          11923:                        Newark, De. 19711
        !          11924: --------------------------------------------------------
        !          11925: 
        !          11926: From jshaver@apg-3  Fri Mar  1 13:37:57 1985
        !          11927: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          11928:        id AA22358; Fri, 1 Mar 85 13:21:35 pst
        !          11929: Received: from apg-3 (apg-3.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          11930:        id AA28355; Fri, 1 Mar 85 13:13:39 pst
        !          11931: Message-Id: <[email protected]>
        !          11932: Date:  1 Mar 1985 16:15:48 EST (Friday)
        !          11933: From: John Shaver STEEP-TM-AC 879-7602 <jshaver@apg-3>
        !          11934: Subject: Vax availability
        !          11935: To: franz-friends@BERKELEY
        !          11936: Cc: jshaver@apg-3
        !          11937: 
        !          11938: Is Franz Lisp available for the VAX?   Please respond directly to me, as I am
        !          11939: not on the list.  Please add me to the list.
        !          11940: 
        !          11941: Thank you.
        !          11942: This is an Otrona Attache 1200 bps
        !          11943: 
        !          11944:  
        !          11945: John
        !          11946: 
        !          11947: 
        !          11948: From jshaver@apg-3  Mon Mar  4 06:10:51 1985
        !          11949: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          11950:        id AA11236; Mon, 4 Mar 85 06:10:51 pst
        !          11951: Received: from apg-3 (apg-3.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          11952:        id AA03832; Mon, 4 Mar 85 06:05:00 pst
        !          11953: Message-Id: <[email protected]>
        !          11954: Date:  4 Mar 1985  9:09:27 EST (Monday)
        !          11955: From: John Shaver STEEP-TM-AC 879-7602 <jshaver@apg-3>
        !          11956: Subject: Returned mail: User unknown
        !          11957: To: franz-friends@BERKELEY
        !          11958: Cc: jshaver@apg-3
        !          11959: 
        !          11960: 
        !          11961: ----BEGINNING OF FORWARDED MESSAGES----
        !          11962: Received: from ucbkim.ARPA by UCB-VAX.ARPA (4.24/4.42)
        !          11963:        id AA28859; Fri, 1 Mar 85 13:34:56 pst
        !          11964: Received: by ucbkim.ARPA (4.24/4.27)
        !          11965:        id AA00121; Fri, 1 Mar 85 13:37:57 pst
        !          11966: Date:  1 Mar 1985 16:15:48 EST (Friday)
        !          11967: From: MAILER-DAEMON%ucbkim@Berkeley (Mail Delivery Subsystem)
        !          11968: Subject: Returned mail: User unknown
        !          11969: Message-Id: <[email protected]>
        !          11970: To: <jshaver@apg-3>
        !          11971: 
        !          11972:    ----- Transcript of session follows -----
        !          11973: >>> RCPT To:<[email protected]>
        !          11974: <<< 550 <[email protected]>... User unknown
        !          11975: 550 franz-friends-3@ucbmike... User unknown
        !          11976: >>> RCPT To:<[email protected]>
        !          11977: <<< 550 <[email protected]>... User unknown
        !          11978: 550 franz-friends-score@ucbmike... User unknown
        !          11979: 
        !          11980:    ----- Unsent message follows -----
        !          11981: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          11982:        id AA22358; Fri, 1 Mar 85 13:21:35 pst
        !          11983: Received: from apg-3 (apg-3.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          11984:        id AA28355; Fri, 1 Mar 85 13:13:39 pst
        !          11985: Message-Id: <[email protected]>
        !          11986: Date:  1 Mar 1985 16:15:48 EST (Friday)
        !          11987: From: John Shaver STEEP-TM-AC 879-7602 <jshaver@apg-3>
        !          11988: Subject: Vax availability
        !          11989: To: franz-friends@BERKELEY
        !          11990: Cc: jshaver@apg-3
        !          11991: 
        !          11992: Is Franz Lisp available for the VAX?   Please respond directly to me, as I am
        !          11993: not on the list.  Please add me to the list.
        !          11994: 
        !          11995: Thank you.
        !          11996: This is an Otrona Attache 1200 bps
        !          11997: 
        !          11998:  
        !          11999: John
        !          12000: 
        !          12001: 
        !          12002: ----END OF FORWARDED MESSAGES----
        !          12003: Is it something I'm doing?
        !          12004: 
        !          12005: 
        !          12006: From jshaver@apg-3  Mon Mar  4 06:16:15 1985
        !          12007: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          12008:        id AA11275; Mon, 4 Mar 85 06:16:15 pst
        !          12009: Received: from apg-3 (apg-3.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          12010:        id AA03880; Mon, 4 Mar 85 06:10:25 pst
        !          12011: Message-Id: <[email protected]>
        !          12012: Date:  4 Mar 1985  9:10:31 EST (Monday)
        !          12013: From: John Shaver STEEP-TM-AC 879-7602 <jshaver@apg-3>
        !          12014: Subject: mail request failure
        !          12015: To: franz-friends@BERKELEY
        !          12016: Cc: jshaver@apg-3
        !          12017: 
        !          12018: 
        !          12019: ----BEGINNING OF FORWARDED MESSAGES----
        !          12020: Received: from CMU-CS-A.ARPA (cmu-cs-a.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          12021:        id AA29648; Fri, 1 Mar 85 14:05:23 pst
        !          12022: Message-Id: <[email protected]>
        !          12023: Date: 1 Mar 85 17:8:8 EST
        !          12024: From: Mailer <[email protected]>
        !          12025: To: <@BERKELEY:jshaver@apg-3>
        !          12026: Reply-To: Gripe <[email protected]>
        !          12027: Subject: mail request failure
        !          12028: 
        !          12029:    ----- Transcript of session follows -----
        !          12030: 
        !          12031: Mail being sent from disk area [N900AR0M]
        !          12032: *NMail 1 Mar 85 17:06:02 EST;@UCB-VAX.ARPA:jshaver@apg-3;927920.QED[n900ar0m];mark.stevenson@cmua
        !          12033: 1 Mar 85 17:8:8 EST
        !          12034: ?%No such person as 'mark.stevenson' at CMU-CS-A.
        !          12035: 
        !          12036: 
        !          12037:    ----- Unsent message follows -----
        !          12038: Received: from UCB-VAX.ARPA by CMU-CS-A.ARPA; 1 Mar 85 17:05:57 EST
        !          12039: Received: from ucbkim.ARPA by UCB-VAX.ARPA (4.24/4.42)
        !          12040:        id AA28701; Fri, 1 Mar 85 13:30:28 pst
        !          12041: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          12042:        id AA22358; Fri, 1 Mar 85 13:21:35 pst
        !          12043: Received: from apg-3 (apg-3.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          12044:        id AA28355; Fri, 1 Mar 85 13:13:39 pst
        !          12045: Message-Id: <[email protected]>
        !          12046: Date:  1 Mar 1985 16:15:48 EST (Friday)
        !          12047: From: John Shaver STEEP-TM-AC 879-7602 <jshaver@apg-3>
        !          12048: Subject: Vax availability
        !          12049: To: franz-friends@Berkeley
        !          12050: Cc: jshaver@apg-3
        !          12051: 
        !          12052: Is Franz Lisp available for the VAX?   Please respond directly to me, as I am
        !          12053: not on the list.  Please add me to the list.
        !          12054: 
        !          12055: Thank you.
        !          12056: This is an Otrona Attache 1200 bps
        !          12057: 
        !          12058:  
        !          12059: John
        !          12060: 
        !          12061: 
        !          12062: 
        !          12063: ----END OF FORWARDED MESSAGES----
        !          12064: Try a return address of RREINER@Simtel20.  They forward everything to me.
        !          12065: 
        !          12066: 
        !          12067: From [email protected]  Tue Mar  5 08:17:28 1985
        !          12068: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          12069:        id AA00161; Tue, 5 Mar 85 08:17:28 pst
        !          12070: Received: from BRL-VOC (brl-voc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          12071:        id AA09879; Tue, 5 Mar 85 08:11:28 pst
        !          12072: Message-Id: <[email protected]>
        !          12073: Date:     Tue, 5 Mar 85 11:13:21 EST
        !          12074: From: "Ferd Brundick (VLD/LTTB)" <[email protected]>
        !          12075: To: Franz-Friends@BERKELEY
        !          12076: Cc: Meself <[email protected]>
        !          12077: Subject:  Trace bug
        !          12078: 
        !          12079: Haah,
        !          12080: 
        !          12081: We recently installed some revisions to our 4.2 BSD system, and the
        !          12082: Joseph Lister package is apparently broken.  Since our system
        !          12083: administrators don't use Franz, I poked around in the file trace.l.
        !          12084: An error run is shown below:
        !          12085: 
        !          12086: -> (getsyntax '\;)
        !          12087: vsplicing-macro
        !          12088: -> (trace intersect)
        !          12089: [autoload /usr/lib/lisp/trace]
        !          12090: [load /usr/lib/lisp/trace.l]
        !          12091: [load /usr/lib/lisp/charmac.l]
        !          12092: Error: Unbound Variable: ;;
        !          12093: <1>: (getsyntax '\;)
        !          12094: vcharacter
        !          12095: 
        !          12096: The trace code that is executing is:
        !          12097: 
        !          12098: (eval-when (eval)
        !          12099:   (setq old-read-table-trace readtable)
        !          12100:   (setq readtable (makereadtable t))
        !          12101:   (setq old-uctolc-value (status uctolc))
        !          12102:   (sstatus uctolc nil)         ; turn off case conversion
        !          12103:   (load 'charmac)
        !          12104:   (setsyntax '\; 'macro 'zapline)
        !          12105:   )
        !          12106: 
        !          12107: What I think is happening is that the readtable is being clobbered by
        !          12108: the (makereadtable t) line.  The file charmac.l starts off with a
        !          12109: comment line, but the definition of ';' has changed in the readtable.
        !          12110: I copied trace.l and reversed the last 2 lines so ';' is macro'd to
        !          12111: zapline BEFORE charmac.l is loaded.  I can then load trace.l and
        !          12112: (trace) functions with no trouble.
        !          12113: 
        !          12114: My question is: Why did I have to reverse those lines ??  (trace) used
        !          12115: to work fine.  Is there a problem with (makereadtable) that I need to
        !          12116: fix ??  We are running Opus 38.79.
        !          12117: 
        !          12118:                                         dsw, fferd
        !          12119:                                         Fred S. Brundick
        !          12120:                                         USABRL, APG, MD.
        !          12121:                                         <fsbrn@brl-voc>
        !          12122: 
        !          12123: "Me ears are on the wrong side of me 'ead."
        !          12124: 
        !          12125: From [email protected]  Tue Mar  5 14:55:27 1985
        !          12126: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          12127:        id AA00189; Tue, 5 Mar 85 14:55:27 pst
        !          12128: Received: from BRL-VOC (brl-voc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          12129:        id AA16643; Tue, 5 Mar 85 13:15:11 pst
        !          12130: Message-Id: <[email protected]>
        !          12131: Date:     Tue, 5 Mar 85 16:14:14 EST
        !          12132: From: "Ferd Brundick (VLD/LTTB)" <[email protected]>
        !          12133: To: Franz-Friends@BERKELEY
        !          12134: Cc: Ferd Brundick <[email protected]>, [email protected]
        !          12135: Subject:  Re:  Trace bug
        !          12136: 
        !          12137: Haah,
        !          12138: 
        !          12139:   >>Why aren't you loading the compiled version of trace?
        !          12140:   >>Would that help?
        !          12141: 
        !          12142: That was the what the person who stumbled onto the bug said.  (I don't
        !          12143: use the trace package myself because everything works the first time
        !          12144: :-).  I don't see how that would matter because compiled code is just
        !          12145: as wrong; it just bombs faster.  Besides, my slightly obsolete Franz
        !          12146: manual says "the trace package ... usually in the file
        !          12147: /usr/lib/lisp/trace.l".  I'm just wondering why the file doesn't work
        !          12148: any more when it used to.  I'd rather fix the problem permanently
        !          12149: instead of patching around it.
        !          12150: 
        !          12151:                                         dsw, fferd
        !          12152:                                         Fred S. Brundick
        !          12153:                                         USABRL, APG, MD.
        !          12154:                                         <fsbrn@brl-voc>
        !          12155: 
        !          12156: "I think I pulled a muscle in me ear."
        !          12157: 
        !          12158: From [email protected]  Tue Mar 19 16:50:09 1985
        !          12159: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          12160:        id AA22357; Tue, 19 Mar 85 16:50:09 pst
        !          12161: Received: from MIT-HTVAX.ARPA (mit-htvax.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          12162:        id AA05308; Tue, 19 Mar 85 11:49:40 pst
        !          12163: Received: by MIT-HTVAX.ARPA (4.12/4.7) 
        !          12164:        id AA21434; Tue, 19 Mar 85 14:50:20 est
        !          12165: Date: Tue, 19 Mar 85 14:50:20 est
        !          12166: From: Walter Hamscher <[email protected]>
        !          12167: Message-Id: <[email protected]>
        !          12168: To: Franz-Friends@BERKELEY
        !          12169: Subject: Franz -> Common Lisp ?
        !          12170: 
        !          12171: Reply-to: [email protected]
        !          12172: 
        !          12173: Is there a common lisp that runs on 4.2 BSD?  Seems to
        !          12174: me this is  a vacuum that many folks must be trying to fill.
        !          12175: 
        !          12176: I am wondering:
        !          12177: 
        !          12178: (1) Who's working on one?
        !          12179: 
        !          12180:     <<None of the following answers win brownie points:
        !          12181:        (a) DEC.  Their Unix common lisp is only for in-house use.
        !          12182:        (b) CCA.  Ain't ready yet.
        !          12183:        (c) David Betz (XLISP 1.4).  Currently only a small subset.
        !          12184:        (d) NIL.  No Unix implementation planned.>>
        !          12185: 
        !          12186: (2) Is there a common lisp compatability package for franz?
        !          12187: 
        !          12188:        <<Unlikely, I know.  Still, how much of common
        !          12189:        lisp already exists in compatability packages,
        !          12190:        e.g. Lexical scoping :-), Packages, Keyword
        !          12191:        arguments, Pathnames, Bit-arrays?>>
        !          12192: 
        !          12193: (3) Are folks at UCB thinking of spinning off a common
        !          12194:     lisp from the existing franz implementation?
        !          12195: 
        !          12196:        <<Also unlikely but surely the thought has occurred.>>
        !          12197: 
        !          12198: All answers and pointers appreciated.
        !          12199: 
        !          12200:        Thanks,
        !          12201:        Walter Hamscher
        !          12202: 
        !          12203: From shebs@utah-cs  Wed Mar 20 17:27:57 1985
        !          12204: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          12205:        id AA08685; Wed, 20 Mar 85 17:27:57 pst
        !          12206: Received: from utah-cs.ARPA (utah-gateway.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          12207:        id AA11992; Wed, 20 Mar 85 16:51:20 pst
        !          12208: Received: by utah-cs.ARPA (4.42/4.40.2)
        !          12209:        id AA01825; Wed, 20 Mar 85 17:48:26 MST
        !          12210: Date: Wed, 20 Mar 85 17:48:26 MST
        !          12211: From: shebs@utah-cs (Stanley Shebs)
        !          12212: Message-Id: <[email protected]>
        !          12213: To: Franz-Friends@BERKELEY, [email protected]
        !          12214: Subject: Re:  Franz -> Common Lisp ?
        !          12215: 
        !          12216: We have several versions of compatibility stuff for PSL (and it
        !          12217: would work under Franz without much change).  We're trying to
        !          12218: get CL while retaining the speed of PSL, so we haven't yet
        !          12219: embarked on a full standalone CL...
        !          12220: 
        !          12221:                                                stan shebs
        !          12222: 
        !          12223: From [email protected]  Thu Mar 21 11:05:39 1985
        !          12224: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          12225:        id AA18463; Thu, 21 Mar 85 11:05:39 pst
        !          12226: Received: from ucla-locus.arpa (ucla-locus.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          12227:        id AA12504; Thu, 21 Mar 85 10:37:45 pst
        !          12228: Date:           Thu, 21 Mar 85 10:35:28 PST
        !          12229: From: Ingrid Zukerman <[email protected]>
        !          12230: To: franz-friends@BERKELEY
        !          12231: Subject:        setq command changes code
        !          12232: Message-Id:     <[email protected]>
        !          12233: 
        !          12234: I have the following problems:
        !          12235: 1. After performing the command (setq x (list ... )), I noticed that
        !          12236:    the code in the function that initializes x was also changed to the
        !          12237:    new value. After consulting with my guru, he pointed out that this
        !          12238:    might be due to a sharing pattern I am not aware of, or to the way
        !          12239:    in which assignments are performed (e.g., by passing a pointer).
        !          12240:    I wasn't able to find this information, so my question is were I
        !          12241:    could find it in order to avoid such occurrences in the future. Of
        !          12242:    course, if somebody up there is terribly curious and wants to look
        !          12243:    at a transcript of the session, I'll be very appreciative.
        !          12244: 2. The most updated copy we have of Franz is Opus 38.5. I hear that it
        !          12245:    is now Opus 38.91. What should I do in order to get an updated copy?
        !          12246:    Please don't advise me to contact the person in charge, because this
        !          12247:    person (who no longer wishes to be in charge) told me to contact you.
        !          12248: Thanks very much.
        !          12249: --Ingrid
        !          12250: 
        !          12251: From franz!schlafly  Mon Mar 25 18:03:33 1985
        !          12252: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          12253:        id AA20019; Mon, 25 Mar 85 18:03:33 pst
        !          12254: Received: from ucbkim.ARPA by UCB-VAX.ARPA (4.24/4.42)
        !          12255:        id AA21825; Mon, 25 Mar 85 17:57:20 pst
        !          12256: Received: by ucbkim.ARPA (4.24/4.27)
        !          12257:        id AA20010; Mon, 25 Mar 85 18:03:19 pst
        !          12258: Received: by franz.uucp (1.2/3.14)
        !          12259:        id AA00961; Mon, 25 Mar 85 17:36:52 pst
        !          12260: Date: Mon, 25 Mar 85 17:36:52 pst
        !          12261: From: franz!schlafly (Roger Schlafly)
        !          12262: Message-Id: <[email protected]>
        !          12263: To: franz-friends@BERKELEY
        !          12264: Subject: programs written in Franz Lisp
        !          12265: 
        !          12266: 
        !          12267: I am compiling a list of expert systems and expert
        !          12268: system building tools which are written in Franz Lisp.
        !          12269: 
        !          12270: I would appreciate it if people would send me:
        !          12271: (1) The name of each such program.
        !          12272: (2) A brief description of what it does.
        !          12273: (3) Whether it is available to the public.
        !          12274: (4) An electronic address for obtaining more information.
        !          12275: 
        !          12276: I will then make this list available to anyone who requests it.
        !          12277: 
        !          12278:        Roger Schlafly
        !          12279:        ucbvax!franz!schlafly
        !          12280: 
        !          12281: 
        !          12282: From franz!schlafly  Mon Mar 25 20:02:47 1985
        !          12283: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          12284:        id AA21162; Mon, 25 Mar 85 20:02:47 pst
        !          12285: Received: from ucbkim.ARPA by UCB-VAX.ARPA (4.24/4.42)
        !          12286:        id AA23786; Mon, 25 Mar 85 19:56:37 pst
        !          12287: Received: by ucbkim.ARPA (4.24/4.27)
        !          12288:        id AA21150; Mon, 25 Mar 85 20:02:36 pst
        !          12289: Received: by franz.uucp (1.2/3.14)
        !          12290:        id AA01276; Mon, 25 Mar 85 19:37:31 pst
        !          12291: Date: Mon, 25 Mar 85 19:37:31 pst
        !          12292: From: franz!schlafly (Roger Schlafly)
        !          12293: Message-Id: <[email protected]>
        !          12294: To: franz-friends@BERKELEY
        !          12295: Subject: programs written in Franz Lisp
        !          12296: 
        !          12297: 
        !          12298: I am compiling a list of expert systems and expert
        !          12299: system building tools which are written in Franz Lisp.
        !          12300: 
        !          12301: I would appreciate it if people would send me:
        !          12302: (1) The name of each such program.
        !          12303: (2) A brief description of what it does.
        !          12304: (3) Whether it is available to the public.
        !          12305: (4) An electronic address for obtaining more information.
        !          12306: 
        !          12307: I will then make this list available to anyone who requests it.
        !          12308: 
        !          12309:        Roger Schlafly
        !          12310:        ucbvax!franz!schlafly
        !          12311: 
        !          12312: 
        !          12313: From carter%[email protected]  Tue Mar 26 12:52:24 1985
        !          12314: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          12315:        id AA00886; Tue, 26 Mar 85 12:52:24 pst
        !          12316: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          12317:        id AA11893; Tue, 26 Mar 85 12:46:01 pst
        !          12318: Received: from ubc by csnet-relay.csnet id a017378; 26 Mar 85 15:03 EST
        !          12319: Received: from ubc-vision.UUCP by ubc.csnet id AA04906; Tue, 26 Mar 85 12:01:03 pst
        !          12320: Date: Tue, 26 Mar 85 12:00:43 pst
        !          12321: From: Alan Carter <carter%[email protected]>
        !          12322: Message-Id: <[email protected]>
        !          12323: Received: by ubc-vision.UUCP id AA09422; Tue, 26 Mar 85 12:00:43 pst
        !          12324: To: franz-friends@BERKELEY
        !          12325: Subject: Lisp interface to C functions
        !          12326: 
        !          12327: 
        !          12328: 
        !          12329: Does anyone know if there is a problem with calling malloc and free from
        !          12330: C functions which are called by Franz ?
        !          12331: 
        !          12332: 
        !          12333:                                        Alan Carter
        !          12334:                                        [email protected]
        !          12335: 
        !          12336: From mcgeer  Tue Mar 26 16:06:57 1985
        !          12337: Received: by ucbkim.ARPA (4.24/4.27)
        !          12338:        id AA03620; Tue, 26 Mar 85 16:06:57 pst
        !          12339: Date: Tue, 26 Mar 85 16:06:57 pst
        !          12340: From: Rick McGeer (on an aaa-60-s) <mcgeer>
        !          12341: Message-Id: <[email protected]>
        !          12342: To: prolog@ernie, franz-friends
        !          12343: Subject: Lisp is faster than Prolog?
        !          12344: Cc: 
        !          12345: 
        !          12346:        A number of articles in recent IEEE Spectra have discussed Silicon
        !          12347: Compilation in Prolog, and concluded with a statement to the effect: for
        !          12348: performance reasons, we will go to Lisp for a production version.
        !          12349: 
        !          12350:        Is Lisp really faster than Prolog?  I used to think so.  Some time
        !          12351: ago, I wrote a Prolog interpreter in Lisp: after several versions, I gave
        !          12352: up, because I couldn't make my Prolog fast.  Its best speed was 100 LIPS
        !          12353: through the append loop on a 780, or about 7% of the speed of C-Prolog (1500
        !          12354: LIPS, according to the literature.
        !          12355: 
        !          12356:        Then it occured to me that I could not expect my Prolog to run
        !          12357: faster than an equivalent function coded in Lisp.  I coded the function, and
        !          12358: the result was the following:
        !          12359: 
        !          12360: (def my-append
        !          12361:    (lambda (x y)
        !          12362:       (cond (x (cons (car x) (my-append (cdr x) y)))
        !          12363:            (t y))))
        !          12364: 
        !          12365: it can be seen that the time of the computation is invariant with respect to
        !          12366: the second argument.  Hence, for all the tests to be mentioned, the second
        !          12367: argument is '(1 2 3 4 5).
        !          12368: 
        !          12369:        I ran the program on the lists consisting of the first 100, 250, and
        !          12370: 300 integers.  The results were the following:
        !          12371: 
        !          12372: list length    ticks (60/sec)  LIPS equivalent
        !          12373:   100            14              429
        !          12374:   250            29              517
        !          12375:   300            34              529
        !          12376: 
        !          12377: Or about one-third the published speed of of the same function in CProlog on
        !          12378: a 780.  I then wondered how the native Franz append would do.  This function
        !          12379: is compiled, and is optimized for tail recursion, so the experiment is not
        !          12380: really fair to CProlog.  In any case:
        !          12381: 
        !          12382: list length    ticks           LIPS equivalent
        !          12383:   100            3               2000
        !          12384:   250            8               1875
        !          12385:   300           10               1800
        !          12386: 
        !          12387: I don't know what this proves, but I know what it doesn't prove.  The Lisp
        !          12388: used, by the way, was Franz version 38.96 on a Vax 11/780 at the University
        !          12389: of California at Berkeley.  Despite numerous queries to Edinburgh, we still
        !          12390: don't have a version of C-Prolog for comparative measurement here, so I
        !          12391: can't personally vouch for the 1500 LIPS claim.
        !          12392: 
        !          12393:                                                        Rick.
        !          12394: 
        !          12395: 
        !          12396: From chris@maryland  Tue Mar 26 16:18:52 1985
        !          12397: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          12398:        id AA03876; Tue, 26 Mar 85 16:18:52 pst
        !          12399: Received: from maryland.ARPA (maryland.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          12400:        id AA16580; Tue, 26 Mar 85 16:12:34 pst
        !          12401: Received: by maryland.ARPA (4.12/4.7)
        !          12402:        id AA23203; Tue, 26 Mar 85 19:17:28 est
        !          12403: Date: Tue, 26 Mar 85 19:17:28 est
        !          12404: From: Chris Torek <chris@maryland>
        !          12405: Message-Id: <[email protected]>
        !          12406: To: carter%[email protected]
        !          12407: Subject: Re:  Lisp interface to C functions
        !          12408: Cc: franz-friends@BERKELEY
        !          12409: 
        !          12410: I believe that there were.  In U of M Franz, we stuck in a version of
        !          12411: malloc and free that uses the Lisp allocator to get unGCable memory,
        !          12412: and a host of problems with the window library went away ... (the
        !          12413: window library uses malloc & free quite, er, freely :-) ).
        !          12414: 
        !          12415: Chris
        !          12416: 
        !          12417: From narain@rand-unix  Tue Mar 26 18:17:38 1985
        !          12418: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          12419:        id AA06939; Tue, 26 Mar 85 18:17:38 pst
        !          12420: Received: from rand-unix.ARPA (rand-unix.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          12421:        id AA18369; Tue, 26 Mar 85 17:39:36 pst
        !          12422: Received: by rand-unix.ARPA; Tue, 26 Mar 85 17:33:48 pst
        !          12423: From: Sanjai Narain <narain@rand-unix>
        !          12424: Message-Id: <[email protected]>
        !          12425: Date: 26 Mar 85 17:33:41 PST (Tue)
        !          12426: To: Rick McGeer <mcgeer@ucbkim>
        !          12427: Cc: prolog@ernie, franz-friends@ucbkim, narain@rand-unix
        !          12428: Subject: Re: Lisp is faster than Prolog?
        !          12429: In-Reply-To: Your message of Tue, 26 Mar 85 16:06:57 pst.
        !          12430:             <[email protected]>
        !          12431: 
        !          12432: 
        !          12433: Your first comparison of Prolog and Lisp is not very meaningful. You are
        !          12434: comparing a Prolog implemented in Lisp with a Lisp implemented in C.
        !          12435: Perhaps you could try to compare Lisp in Lisp with Prolog in Lisp.
        !          12436: 
        !          12437: In a certain sense, your comparison of Franzlisp and C-Prolog infact
        !          12438: indicates the superiority of C-Prolog. C-Prolog can be used to do append
        !          12439: and all other functional programming at almost the speed of FranzLisp.
        !          12440: However, in C-Prolog, you can do also do deduction, searching, pattern
        !          12441: matching and a lot of other AI-stuff at the same speed. To do these in
        !          12442: Franzlisp you must write Lisp functions and suffer the loss in speed
        !          12443: associated with simulating functionality in a high-level language.
        !          12444: 
        !          12445: -- Sanjai
        !          12446: 
        !          12447: From mcgeer  Tue Mar 26 18:30:58 1985
        !          12448: Received: by ucbkim.ARPA (4.24/4.27)
        !          12449:        id AA07153; Tue, 26 Mar 85 18:30:58 pst
        !          12450: Date: Tue, 26 Mar 85 18:30:58 pst
        !          12451: From: Rick McGeer (on an aaa-60-s) <mcgeer>
        !          12452: Message-Id: <[email protected]>
        !          12453: To: narain@rand-unix
        !          12454: Subject: Re: Lisp is faster than Prolog?
        !          12455: Cc: narain@rand-unix, franz-friends, prolog@ernie
        !          12456: In-Reply-To: Your message of 26 Mar 85 17:33:41 PST (Tue)
        !          12457: 
        !          12458: 
        !          12459:        You misunderstood my message.  Prolog-in-Lisp really isn't under
        !          12460: examination: the only reason I brought it up was that it provided the
        !          12461: original motivation for the experiment (I wanted to determine a limit on the
        !          12462: speed I could expect out of my Prolog, reasoning that it could not possibly
        !          12463: be faster than native-coded Lisp.)
        !          12464: 
        !          12465:        The rest of your letter is essentially correct: the figures imply
        !          12466: that CProlog is at least as fast as Franz, since the relevant test is
        !          12467: interpreted code in each language (i.e., the first set of figures).
        !          12468: However, this should not imply that I believe that Prolog is a "better"
        !          12469: language than Lisp (I don't want to get into *that* debate), or imply
        !          12470: that Lisp has no advantages over Prolog.  Lisp may have real advantages over
        !          12471: Prolog, but there is no reason to believe that speed is one of them.
        !          12472: 
        !          12473:                                        Rick.
        !          12474: 
        !          12475: 
        !          12476: From hilfingr@ucbrenoir  Wed Mar 27 01:06:00 1985
        !          12477: Received: from ucbrenoir.ARPA by ucbkim.ARPA (4.24/4.27)
        !          12478:        id AA11390; Wed, 27 Mar 85 01:06:00 pst
        !          12479: Received: by ucbrenoir.ARPA (4.24/4.42)
        !          12480:        id AA03594; Wed, 27 Mar 85 01:07:16 pst
        !          12481: Date: Wed, 27 Mar 85 01:07:16 pst
        !          12482: From: hilfingr@ucbrenoir (Paul Hilfinger)
        !          12483: Message-Id: <[email protected]>
        !          12484: To: mcgeer@ucbkim, narain@rand-unix
        !          12485: Subject: Re: Lisp is faster than Prolog? A personal plea
        !          12486: Cc: prolog@ernie, franz-friends@ucbkim
        !          12487: In-Reply-To: Your message of 26 Mar 85 17:33:41PST
        !          12488: 
        !          12489: 
        !          12490: Please, please, please stop trying to compare the performance of Lisp and
        !          12491: Prolog by considering micro-benchmarks!  Even in languages that are
        !          12492: essentially "the same" (from my perspective as a semanticist/language
        !          12493: designer or from the perspective of a Prolog programmer, FORTRAN, Pascal,
        !          12494: Modula 2, and Ada are all the same); such benchmarks are imperfect guides.
        !          12495: When comparing Lisp and Prolog, where the programs one might write to do a
        !          12496: particular problem might be radically different in strategy, anything that
        !          12497: compares the performance of tiny programs conveys almost no useful
        !          12498: information.
        !          12499: 
        !          12500: Please, please, please, PLEASE don't try to compare Prolog with Lisp (etc.)
        !          12501: using LIPS as a part of the measure! In comparing Prolog implementations, I
        !          12502: suppose LIPS might be of some interest, but when comparing Lisp with Prolog,
        !          12503: they don't help at all. The reason is simple: if Lisp is not suited for
        !          12504: doing logical inferences (in the Prolog sense) quickly, then the good Lisp
        !          12505: programmer simply does not formulate his solution using logical inferences.
        !          12506: (Patient: Doctor! Doctor! It hurts when I do this. Doctor: Well, then don't
        !          12507: do that.) It's like saying that my APL implementation, which uses lazy
        !          12508: evaluation and a bit of cleverness to compute
        !          12509: 
        !          12510:        +/ ,((iota n) o.= iota n) x A +.x B
        !          12511: 
        !          12512: (the trace of the matrix product of nxn matrices A and B, I think) in time
        !          12513: O(n^2) instead of O(n^3), is "faster" than my FORTRAN implementation, which
        !          12514: requires time O(n^3) to do a direct transcription of this algorithm
        !          12515: (actually forming the full matrix product).  
        !          12516: 
        !          12517: I think it wrong to say
        !          12518: 
        !          12519:    "To do [deduction, searching, pattern matching and other AI-stuff] in
        !          12520:     Franzlisp you must write Lisp functions and suffer the loss in speed
        !          12521:     associated with simulating functionality in a high-level language."
        !          12522: 
        !          12523: because one DOESN'T use simulation if one wants speed, but instead goes
        !          12524: after an entirely different kind of solution (I won't argue that this
        !          12525: solution is "just as easy" as the Prolog solution; there are certainly many
        !          12526: instances in which Prolog solutions are simpler, and I haven't the foggiest
        !          12527: notion what the story is for large systems.)  
        !          12528: 
        !          12529:        * * *
        !          12530: 
        !          12531: Finally, a question.  I was struck by Sanjai Narain's  comment:
        !          12532: 
        !          12533:     "However, in C-Prolog, you can do also do deduction, searching, 
        !          12534:      pattern matching and a lot of other AI-stuff at the same speed."
        !          12535: 
        !          12536: I notice that the Prolog digest is full of interesting puzzles whose
        !          12537: solution involves search. But are these representative? I think pattern
        !          12538: matching is certainly a big part of any Prolog program, but do deduction and
        !          12539: searching really form a big part of actual Prolog applications in practice?
        !          12540: 
        !          12541: I recall an article by Drew McDermott called the "The Prolog Phenonmenon"
        !          12542: that appeared (I think) in SIGArt at some point, maybe July '82. He asked
        !          12543: why it was that Prolog had not died out, as had PLANNER, which also
        !          12544: purported to support searching et al. He said some things on what he liked
        !          12545: and disliked about Prolog, and then made the following comment (emphasis
        !          12546: mine):
        !          12547: 
        !          12548:        "The Europeans went in a different direction [from the Americans
        !          12549:         in reaction to the problems of PLANNER-like languages].  What
        !          12550:         they liked best about logic was its variable-binding machinery.
        !          12551:         Their attitude towards backtracking has been simply that it is a
        !          12552:         programmer's duty to remember that his program will be executed
        !          12553:         backward as well as forward, that his programs must correct bad
        !          12554:         guesses as well as exploit good ones.  If the backwards
        !          12555:         execution blows up, he must debug his program, not rewrite the
        !          12556:         interpreter [the American approach], just as with more prosaic
        !          12557:         kinds of infinite loops.  Once this burden was shifted away
        !          12558:         from the language implementer and onto the programmer, the
        !          12559:         logical [!] next step was to freeze the interpreter design
        !          12560:         and make it as efficient as possible.  THE RESULT IS A 
        !          12561:         PROGRAMMING LANGUAGE, NOT A PROBLEM SOLVER OR THEOREM PROVER;
        !          12562:         it doesn't compete with NOAH, but with Lisp.  And it's my
        !          12563:         impression that it competes pretty well.
        !          12564:         
        !          12565:             "The effect is to reverse the usual images of the American 
        !          12566:         and European computer scientists.  In this case, the Americans
        !          12567:         have pursued impractical theoretical studies, while the
        !          12568:         Europeans have bummed the hell out of a hack."
        !          12569: 
        !          12570: (By "backward execution," he is referring to backtracking, I believe). To
        !          12571: put this another way, one doesn't use Prolog's backtracking to do AI-style
        !          12572: (i.e., very large) search, but rather to do very local and carefully-
        !          12573: controlled "search," in the sense of "search this list (tree, ....) for an
        !          12574: element equal to this one" or "try all permutations of this tiny set for one
        !          12575: that satisfies P." Likewise, one doesn't use it to do what an AI
        !          12576: investigator would call "deduction." One CAN convince the Prolog machinery
        !          12577: to do more general AI-style searching efficiently, but only at the expense
        !          12578: of vastly obscuring the original clear, simple, declarative form of the
        !          12579: program.
        !          12580: 
        !          12581: Not being a real Prolog hacker (yet) I don't really know how accurate this
        !          12582: view is, and would appreciate some reaction (preferably semi-quantitative).
        !          12583: 
        !          12584: 
        !          12585: 
        !          12586: From franz!jkf  Wed Mar 27 08:03:25 1985
        !          12587: Received: by ucbkim.ARPA (4.24/4.27)
        !          12588:        id AA13270; Wed, 27 Mar 85 08:03:25 pst
        !          12589: Received: by franz.uucp (1.2/3.14)
        !          12590:        id AA06162; Wed, 27 Mar 85 07:59:36 pst
        !          12591: Date: Wed, 27 Mar 85 07:59:36 pst
        !          12592: From: franz!jkf (John Foderaro)
        !          12593: Message-Id: <[email protected]>
        !          12594: To: [email protected], [email protected], [email protected]
        !          12595: Subject: Re: Lisp is faster than Prolog? A personal plea
        !          12596: Cc: [email protected], prolog@ernie
        !          12597: In-Reply-To: Your message of Wed, 27 Mar 85 01:07:16 pst
        !          12598: 
        !          12599:  While I find the discussion of Prolog vrs Lisp interesting, please do don't
        !          12600: include franz-friends in on the discussion.  When the mailing list has
        !          12601: strayed off the topic of Franz Lisp in the past,  I've gotten inundated with
        !          12602: complaints.    Thanks.
        !          12603:                                        John Foderaro
        !          12604:                                        
        !          12605: 
        !          12606: 
        !          12607: 
        !          12608: From mcgeer  Wed Mar 27 10:22:15 1985
        !          12609: Received: by ucbkim.ARPA (4.24/4.27)
        !          12610:        id AA15354; Wed, 27 Mar 85 10:22:15 pst
        !          12611: Date: Wed, 27 Mar 85 10:22:15 pst
        !          12612: From: Rick McGeer (on an aaa-60-s) <mcgeer>
        !          12613: Message-Id: <[email protected]>
        !          12614: To: hilfingr@ucbrenoir, narain@rand-unix
        !          12615: Subject: Re: Lisp is faster than Prolog? A personal plea
        !          12616: Cc: franz-friends, prolog@ernie
        !          12617: In-Reply-To: Your message of Wed, 27 Mar 85 01:07:16 pst
        !          12618: 
        !          12619:        Good point, Paul, but I think you're missing something.  First you
        !          12620: plead with us not to use micro-benchmarks, then you point out (correctly)
        !          12621: that the strategy that one would use to write a program in Lisp instead of
        !          12622: Prolog can often differ.  I would think that the implication from the latter
        !          12623: observation is that large programs are fundamentally incomparable, and I
        !          12624: think that that is probably correct.
        !          12625: 
        !          12626:        So if you deny us micro-benchmarks, then we can not measure the
        !          12627: relative performance of these languages at all (or, more precisely, the
        !          12628: standard implementations of these languages on the 11/780).  Hence we might
        !          12629: as well accept the statements "Prolog is faster than Lisp" or "Lisp is faster
        !          12630: than Prolog" or "Lisp is faster than assembler" as essentially meaningless
        !          12631: statements, since we can't quantify any of them.
        !          12632: 
        !          12633:        Let me sputter out making one final point.  LIPS is not all that
        !          12634: bad a measure.  Perhaps if we called it "cycles through the append loop" or
        !          12635: "function calls per second" (essentially identical statements) I think most
        !          12636: people would agree that this is a fair measure of the performance of any
        !          12637: Lisp.  After all, Lisp does nothing other than call functions and manipulate
        !          12638: lists.
        !          12639: 
        !          12640:        I'm certainly not going to take issue with the rest of your letter,
        !          12641: which is really more directed at Sanjai's claims than mine, and walks rather
        !          12642: closer to debates on programming style than any sane man should dare to go.
        !          12643: 
        !          12644: 
        !          12645:        I remain, sir,
        !          12646: 
        !          12647:                                        Y'r obedient servant,
        !          12648: 
        !          12649:                                                Rick McGeer.
        !          12650: 
        !          12651: 
        !          12652: From jeffr@sri-spam  Fri Mar 29 16:22:50 1985
        !          12653: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          12654:        id AA09984; Fri, 29 Mar 85 16:22:50 pst
        !          12655: Received: from sri-spam.ARPA (sri-spam.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          12656:        id AA04718; Fri, 29 Mar 85 16:16:10 pst
        !          12657: Received: from localhost.ARPA by sri-spam.ARPA (4.22/4.16)
        !          12658:        id AA29100; Fri, 29 Mar 85 16:22:32 pst
        !          12659: Message-Id: <[email protected]>
        !          12660: Date: 29 Mar 85 16:22:30 PST (Fri)
        !          12661: To: franz-friends@BERKELEY
        !          12662: Subject: Problems Forking Around
        !          12663: From: jeffr@sri-spam
        !          12664: 
        !          12665: I am having problems getting child processes forked from Franz to exit
        !          12666: cleanly.  If I execute a simple forking function, such as
        !          12667: 
        !          12668:        (defun fork_test ()
        !          12669:                        (prog (pid)
        !          12670:                (cond ((setq pid (fork)) (return pid)))
        !          12671:                (exit)
        !          12672:        ]
        !          12673: 
        !          12674: from the Franz interpreter, a zombie process is created which doesn't exit
        !          12675: until I exit the interpreter.  The same result holds when fork_test is
        !          12676: called from a compiled Franz daemon which is not associated with a tty.
        !          12677: 
        !          12678: It's Friday and I'm out of ideas; any you have, even if only speculation,
        !          12679: would be greatly appreciated.
        !          12680: 
        !          12681:                                        - Jeff Rininger
        !          12682:                                          SRI International     
        !          12683: 
        !          12684: From larus@ucbdali  Fri Mar 29 16:50:22 1985
        !          12685: Received: from ucbdali.ARPA by ucbkim.ARPA (4.24/4.27)
        !          12686:        id AA10643; Fri, 29 Mar 85 16:50:22 pst
        !          12687: Received: by ucbdali.ARPA (4.24/4.42)
        !          12688:        id AA04603; Fri, 29 Mar 85 16:50:11 pst
        !          12689: Message-Id: <[email protected]>
        !          12690: To: [email protected]
        !          12691: Cc: franz-friends@ucbdali
        !          12692: Subject: Re: Problems Forking Around
        !          12693: In-Reply-To: Your message of 29 Mar 85 16:22:30 PST (Fri).
        !          12694:             <[email protected]>
        !          12695: Date: 29 Mar 85 16:50:02 PST (Fri)
        !          12696: From: larus@ucbdali
        !          12697: 
        !          12698: This is a not-very-well-known bug/feature of Franz/Unix.  Try adding a
        !          12699: (wait) call in the main routine and the zombies will go away.
        !          12700: 
        !          12701: /Jim
        !          12702: 
        !          12703: From [email protected]  Fri Mar 29 18:23:00 1985
        !          12704: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          12705:        id AA11898; Fri, 29 Mar 85 18:23:00 pst
        !          12706: Received: from ucbjade.CC.Berkeley.ARPA (ucbjade.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          12707:        id AA07034; Fri, 29 Mar 85 18:16:19 pst
        !          12708: Received: from ucbruby.CC.Berkeley.ARPA (ucbruby.ARPA)
        !          12709:        by ucbjade.CC.Berkeley.ARPA (4.19/4.34.1)
        !          12710:        id AA11566; Fri, 29 Mar 85 18:22:39 pst
        !          12711: Received: by ucbruby.CC.Berkeley.ARPA (4.19/4.34.1)
        !          12712:        id AA10320; Fri, 29 Mar 85 18:21:53 pst
        !          12713: Date: Fri, 29 Mar 85 18:21:53 pst
        !          12714: From: [email protected] (Harry Weeks)
        !          12715: Message-Id: <[email protected]>
        !          12716: To: jeffr@sri-spam
        !          12717: Subject: Re: Problems Forking Around
        !          12718: Cc: franz-friends@BERKELEY
        !          12719: 
        !          12720: It is a characteristic of Unix that processes do not really die
        !          12721: until they are waited for.  Your `zombie' process will not die
        !          12722: until you (wait) for it.  The (wait) function returns the dotted
        !          12723: pair (pid . status).  Thus the following examples will spawn
        !          12724: children that immediately die.
        !          12725:                                                --Harry
        !          12726: 
        !          12727: In simplest terms:
        !          12728: 
        !          12729:     (def beget
        !          12730:       (lambda nil
        !          12731:        (cond ((fork) (wait))
        !          12732:              (t (exit 0)))))
        !          12733: 
        !          12734: In more realistic terms:
        !          12735: 
        !          12736:     (def beget
        !          12737:       (lambda nil
        !          12738:        (prog (child)
        !          12739:              (setq child (fork))
        !          12740:              (cond ((null child)
        !          12741:                     ; child branch: (fork) evaluated to nil
        !          12742:                     (exit 0))
        !          12743:                    ((> child 0)
        !          12744:                     ; parent branch: (fork) evaluated to pid
        !          12745:                     (princ "Begot ")
        !          12746:                     (princ child)
        !          12747:                     (princ ".")
        !          12748:                     (terpri)
        !          12749:                     (return (beget:wait child)))
        !          12750:                    ((< child 0)
        !          12751:                     ; error branch
        !          12752:                     (princ "Birth pain.")
        !          12753:                     (terpri)
        !          12754:                     (return child))
        !          12755:                    (t
        !          12756:                     ; impossible branch
        !          12757:                     (princ "Impossible pain.")
        !          12758:                     (terpri)
        !          12759:                     (return -1))))))
        !          12760:     (def beget:wait
        !          12761:       (lambda (child)
        !          12762:        (prog (pvec)
        !          12763:              (setq pvec (wait))
        !          12764:              (cond ((= (car pvec) child)
        !          12765:                     ; child we are waiting for died
        !          12766:                     (return (cdr pvec)))
        !          12767:                    ((< (car pvec) 0)
        !          12768:                     ; error
        !          12769:                     (princ "Wait error.")
        !          12770:                     (terpri)
        !          12771:                     (return (car pvec)))
        !          12772:                    (t
        !          12773:                     ; another child died, keep waiting for ours
        !          12774:                     (return (beget:wait child)))))))
        !          12775: 
        !          12776: From carter%[email protected]  Tue Apr  2 16:48:37 1985
        !          12777: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          12778:        id AA15047; Tue, 2 Apr 85 16:48:37 pst
        !          12779: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          12780:        id AA26876; Tue, 2 Apr 85 16:48:19 pst
        !          12781: Received: from ubc by csnet-relay.csnet id a008974; 2 Apr 85 19:35 EST
        !          12782: Received: from ubc-vision.UUCP by ubc.csnet id AA06552; Tue, 2 Apr 85 16:28:06 pst
        !          12783: Date: Tue, 2 Apr 85 16:27:59 pst
        !          12784: From: Alan Carter <carter%[email protected]>
        !          12785: Message-Id: <[email protected]>
        !          12786: Received: by ubc-vision.UUCP id AA14795; Tue, 2 Apr 85 16:27:59 pst
        !          12787: To: franz-friends@BERKELEY
        !          12788: Subject: C interface
        !          12789: 
        !          12790: Does anyone know if it is OK to call malloc and free from C functions
        !          12791: called by lisp?
        !          12792:                                -- Alan Carter
        !          12793:                                   [email protected]
        !          12794: 
        !          12795: From dennis%[email protected]  Wed Apr  3 19:05:09 1985
        !          12796: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          12797:        id AA09023; Wed, 3 Apr 85 19:05:09 pst
        !          12798: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          12799:        id AA24595; Wed, 3 Apr 85 19:04:50 pst
        !          12800: Message-Id: <[email protected]>
        !          12801: Received: from boulder by csnet-relay.csnet id af16243; 3 Apr 85 21:51 EST
        !          12802: Received: by boulder.UCBOULDER (4.30/4.7)
        !          12803:        id AA10745; Wed, 3 Apr 85 09:58:09 mst
        !          12804: Date: Wed, 3 Apr 85 09:58:09 mst
        !          12805: From: Dennis Heimbigner <dennis%[email protected]>
        !          12806: To: carter%[email protected], franz-friends@BERKELEY
        !          12807: Subject: Re:  C interface
        !          12808: 
        !          12809: If I recall correctly, the pre-4.2 malloc did not appear to work
        !          12810: with franz because it assumed that it had control
        !          12811: of all of free memory.  The malloc for 4.2 uses a buddy
        !          12812: system and should not care if, for example, franz
        !          12813: has pre-empted pieces of virtual memory for its own use.
        !          12814: On the other side, franz only looks at the memory
        !          12815: it gets from sbrk, so it doesn't care about malloc'd
        !          12816: areas of virtual memory.
        !          12817: .lp
        !          12818: More to the point, I have been using malloc inside
        !          12819: cfasl'd code and have not yet seen a problem.
        !          12820: 
        !          12821: Dennis Heimbigner
        !          12822: dennis.boulder@csnet-relay.
        !          12823: 
        !          12824: 
        !          12825: From @seismo.ARPA:[email protected]  Fri Apr  5 01:13:08 1985
        !          12826: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          12827:        id AA27833; Fri, 5 Apr 85 01:13:08 pst
        !          12828: Received: from seismo.ARPA (css-ring-gw.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          12829:        id AA25779; Fri, 5 Apr 85 01:12:50 pst
        !          12830: Return-Path: <[email protected]>
        !          12831: Received: from prlb2.UUCP by seismo.ARPA with UUCP; Fri, 5 Apr 85 04:12:31 EST
        !          12832: Received: by prlb2.UUCP (4.12/4.7)
        !          12833:        id AA01128; Fri, 5 Apr 85 10:36:51 -0200
        !          12834: Date: Fri, 5 Apr 85 10:36:51 -0200
        !          12835: From: [email protected] (Marc Vauclair)
        !          12836: Message-Id: <[email protected]>
        !          12837: To: franz-friends@BERKELEY
        !          12838: Subject: Profiling options in Franz Lisp. Opus 38.91. UoM Var. 3.5.
        !          12839: 
        !          12840: Does anyone know how to set up profiling in Franz Lisp ?
        !          12841: We have Franz Lisp of University of Maryland : Opus 38.91, UoM Variation 3.5.
        !          12842: 
        !          12843: I have already made the following modifications :
        !          12844: 
        !          12845: 1) as stated in the makefile : ../franz/vax/Makefile I have removed the #
        !          12846:    in :
        !          12847: ------------------------------------------------------------------------------
        !          12848: ProfFlag = # -XP
        !          12849: ProfFlag2 = # -DPROF
        !          12850: ------------------------------------------------------------------------------
        !          12851: 
        !          12852: giving :
        !          12853: 
        !          12854: ------------------------------------------------------------------------------
        !          12855: ProfFlag =  -XP
        !          12856: ProfFlag2 =  -DPROF
        !          12857: ------------------------------------------------------------------------------
        !          12858: 
        !          12859: 2) I've changed in ../franz/vax/Makefile the line :
        !          12860: 
        !          12861: ------------------------------------------------------------------------------
        !          12862:        /lib/cpp $< -I../h |\
        !          12863: ------------------------------------------------------------------------------
        !          12864: 
        !          12865: to :
        !          12866: 
        !          12867: ------------------------------------------------------------------------------
        !          12868:        /lib/cpp ${ProfFlag2} $< -I../h |\
        !          12869: ------------------------------------------------------------------------------
        !          12870: 
        !          12871: 3) I've changed in ../franz/vax/Makefile/qfuncl.c the lines :
        !          12872: 
        !          12873: ------------------------------------------------------------------------------
        !          12874: #ifdef PROF
        !          12875:        .set    indx,0
        !          12876: #define Profile \
        !          12877:        movab   prbuf+indx,r0  \
        !          12878:        .set    indx,indx+4 \
        !          12879:        jsb     mcount
        !          12880: #define Profile2 \
        !          12881:        movl   r0,r5 \
        !          12882:        Profile \
        !          12883:        movl   r5,r0 
        !          12884: #else
        !          12885: #define Profile
        !          12886: #define Profile2
        !          12887: #endif
        !          12888: ------------------------------------------------------------------------------
        !          12889: 
        !          12890: to :
        !          12891: 
        !          12892: ------------------------------------------------------------------------------
        !          12893: #ifdef PROF
        !          12894:        .set    indx,0
        !          12895: #define Profile \
        !          12896:        movab   prbuf+indx,r0 ; \
        !          12897:        .set    indx,indx+4 ; \
        !          12898:        jsb     mcount
        !          12899: #define Profile2 \
        !          12900:        movl   r0,r5 ; \
        !          12901:        Profile ; \
        !          12902:        movl   r5,r0 
        !          12903: #else
        !          12904: #define Profile
        !          12905: #define Profile2
        !          12906: #endif
        !          12907: ------------------------------------------------------------------------------
        !          12908: 
        !          12909: After all these modifications, we have the following error message when
        !          12910: making it slow :
        !          12911: 
        !          12912: ------------------------------------------------------------------------------
        !          12913: ld -x -o rawlisp -e start ../low.o ../lowaux.o crt0.o ../alloc.o ../data.o  bigmath.o qfuncl.o vax.o ../lisp.o ../eval.o ../eval2.o ../inits.o ../io.o ../error.o  ../sysat.o ../lam1.o ../lam2.o ../lam3.o ../lam4.o ../lam5.o ../lam6.o  ../lam7.o ../lam8.o 
        !          12914: 
        !          12915: 
        !          12916: ../lam9.o ../lamr.o ../lamp.o  ../fex1.o ../fex2.o ../fex3.o ../fex4.o ../fexr.o ../fpipe.o  ../subbig.o ../pbignum.o ../divbig.o  ../ffasl.o ../fasl.o  ../trace.o ../evalf.o ../frame.o ../lamgc.o  ../lamuom.o ../hash.o  -lm -lc -ltermlib
        !          12917: mcount: ld:/lib/libc.a(mon.o): multiply defined
        !          12918: *** Error code 2
        !          12919: 
        !          12920: Stop.
        !          12921: *** Error code 1
        !          12922: 
        !          12923: Stop.
        !          12924: ------------------------------------------------------------------------------
        !          12925: 
        !          12926: From franz!schlafly  Fri Apr  5 11:19:37 1985
        !          12927: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          12928:        id AA02221; Fri, 5 Apr 85 11:19:37 pst
        !          12929: Received: from ucbkim.ARPA by UCB-VAX.ARPA (4.24/4.42)
        !          12930:        id AA04091; Fri, 5 Apr 85 11:18:48 pst
        !          12931: Received: by ucbkim.ARPA (4.24/4.27)
        !          12932:        id AA02177; Fri, 5 Apr 85 11:18:45 pst
        !          12933: Received: by franz.uucp (1.2/3.14)
        !          12934:        id AA00261; Fri, 5 Apr 85 10:37:18 pst
        !          12935: Date: Fri, 5 Apr 85 10:37:18 pst
        !          12936: From: franz!schlafly (Roger Schlafly)
        !          12937: Message-Id: <[email protected]>
        !          12938: To: franz-friends@BERKELEY
        !          12939: Subject: Franz Lisp applications
        !          12940: 
        !          12941: 
        !          12942: 
        !          12943: Here is my list of Franz Lisp applications. Enough people
        !          12944: requested copies that I am sending it to all franz-friends.
        !          12945: If anyone sees any notable omissions, please send me a
        !          12946: message and I will augment the list.
        !          12947: 
        !          12948:        Roger Schlafly
        !          12949:        ucbvax!franz!schlafly
        !          12950: 
        !          12951: ============================================================
        !          12952: 
        !          12953: 
        !          12954: 
        !          12955:         AI and Expert System Tools and Applications
        !          12956:            Developed or Running under Franz Lisp
        !          12957: 
        !          12958: 
        !          12959: 
        !          12960: + OPS-5
        !          12961: A rule based  environment  for  developing  expert  systems.
        !          12962: Available  from  Franz Inc. with Franz LISP at no charge, or
        !          12963: at no charge from Carnegie Mellon University.
        !          12964: 
        !          12965: Computer Science  Department,  Carnegie  Mellon  University,
        !          12966: Schenley Park, Pittsburgh PA 15213.  (412) 578-2592
        !          12967: 
        !          12968: + Flavors
        !          12969: An object oriented extension of Lisp, developed at  MIT  and
        !          12970: the  University  of  Maryland.   Used  on the Symbolics Lisp
        !          12971: machines.  Available from Franz Inc. at no  charge  to  pur-
        !          12972: chasers of Franz Lisp.
        !          12973: 
        !          12974: + DUCK
        !          12975: DUCK is an expert systems development environment.
        !          12976: 
        !          12977: Available  from  Smart  Systems  Technology,  6870  Elm  St.
        !          12978: McLean, VA.  22101 (703) 448-8562.
        !          12979: 
        !          12980: + Boyer-Moore Theorem Prover
        !          12981: Available from Prof. Robert Boyer, University of Texas, Aus-
        !          12982: tin.    Computer  Science  Department,  3-28  Painter  Hall,
        !          12983: University of Texas, Austin, Texas 78712.  (512) 471-7316
        !          12984: 
        !          12985: + GLISP
        !          12986: GLISP is a high-level language which is based on Lisp and is
        !          12987: compiled  into  Lisp.  It was developed at the University of
        !          12988: Texas at Austin by Prof. Gordon Novak.  Object-centered pro-
        !          12989: gramming  is  supported.   Message  interpretations  can  be
        !          12990: looked up at compile time  to  produce  efficient  code.   A
        !          12991: window-based  editor,  GEV, is available to inspect and edit
        !          12992: data according to its data structure description.  GLISP  is
        !          12993: available  from  Franz  Inc.  at  no charge to purchasers of
        !          12994: Franz Lisp, or from the University of Texas at Austin, Prof.
        !          12995: Gordon  Novak,  Computer  Science  Department,  3-28 Painter
        !          12996: Hall, University of Texas, Austin, Texas 78712.  (512)  471-
        !          12997: 7316
        !          12998: 
        !          12999: + FRL
        !          13000: A frame representation language for AI development.
        !          13001: 
        !          13002: Available from Steven Rosenberg, Hewlett Packard  (415)  857
        !          13003: 5902
        !          13004: 
        !          13005: + MRS
        !          13006: A logic based knowledge  representation  system.   Available
        !          13007: from Stanford University.
        !          13008: 
        !          13009: Attention: Pattie McCabe SUMEX Computing Facility,  Stanford
        !          13010: University  Medical Center, Room TB105, Stanford, California
        !          13011: 94305, (415) 497-5141
        !          13012: 
        !          13013: + Macsyma
        !          13014: Developed at MIT, Macsyma is a program that carries out sym-
        !          13015: bolic  computation.   It  will solve all those integrals you
        !          13016: learned about in your calculus class, as well as systems  of
        !          13017: differential equations and other mathematical problems.
        !          13018: 
        !          13019: + Reduce
        !          13020: Reduce is similar to  Macsyma.   It  was  developed  at  the
        !          13021: University  of Utah.  Computer Science Department, 3160 Mer-
        !          13022: rill Engineering Bldg.  Salt Lake City, Utah  84112.   (801)
        !          13023: 484-7651 Ext 205
        !          13024: 
        !          13025: +  XCON
        !          13026: Digital Equipment's famous expert system, written in  OPS-5,
        !          13027: originally  ran  on top of Franz Lisp.  XCON configures com-
        !          13028: puters before shipment.
        !          13029: 
        !          13030: + ACE
        !          13031: Automatic Cable Expertise : A knowledge based expert  system
        !          13032: that  provides  trouble-shooting  and diagnostic reports for
        !          13033: telephone company managers.   Developed by Stolfo,  Vesonder
        !          13034: and  others  at  AT&T  Bell Labs. For details see "The Fifth
        !          13035: Generation Challenge" Proceedings ACM '84 Annual Conference.
        !          13036: 
        !          13037: + Slang
        !          13038: A circuit design and analysis tool.  It  has  been  used  to
        !          13039: design  several  integrated  circuits  at  U.C. Berkeley.  A
        !          13040: detailed description is in the masters thesis of Korbin  Van
        !          13041: Dyke at U.C. Berkeley.
        !          13042: 
        !          13043: Available from: Industrial Liason Program, EECS  Department,
        !          13044: University of California, Berkeley CA 94720   (415) 642-0253
        !          13045: 
        !          13046: + Lyra
        !          13047: A VLSI design rule checker.  A description is in the masters
        !          13048: thesis of Michael Arnold  at U.C. Berkeley.
        !          13049: 
        !          13050: + Pearl
        !          13051: A database and AI representation language written  in  Franz
        !          13052: Lisp.   Available from Franz Inc. at no charge to purchasers
        !          13053: of Franz Lisp.
        !          13054: 
        !          13055: + YAPS
        !          13056: Yet Another Production System.  Developed by  Liz  Allen  at
        !          13057: the  University  of  Maryland.   A forward driven production
        !          13058: rule system similar to OPS-5, but  with  added  flexibility.
        !          13059: YAPS  supports  objects in facts, and defines an object that
        !          13060: is a complete production system, so you can have  more  than
        !          13061: one expert around at a time.  See "YAPS: A Production System
        !          13062: Meets Object" by Liz Allen in AAAI-83 for more  information.
        !          13063: YAPS  is  available  at  nominal cost from the Universtiy of
        !          13064: Maryland.  The license fee is $100 for  BSD  4.1,  $250  for
        !          13065: 4.2.   It's  also  Arpanet FTP'able for $100 for either ver-
        !          13066: sion.  Contact Bob Bane on Arpanet at  bane@maryland  or  on
        !          13067: Usenet  at  ...seismo!umcp-cs!bane  or  contact Liz Allen at
        !          13068: [email protected] or seismo!umcp-cs!liz .
        !          13069: 
        !          13070: + GENIE
        !          13071: GENeric Inference  Engine.   An  expert  system  development
        !          13072: tool.   Written by John Dumer, Tim Hanratty, Paul Tanenbaum,
        !          13073: and Fred S. Brundick.  For more information contact: Fred S.
        !          13074: Brundick,
        !          13075: 
        !          13076: + The Berkeley UNIX Consultant
        !          13077: An expert System incorporating a natural language  interface
        !          13078: which  answers  questions  about UNIX.  Under development at
        !          13079: U.C. Berkeley.  USABRL, APG, MD.  <fsbrn@brl-voc>
        !          13080: 
        !          13081: + ROSS and SWIRL
        !          13082: ROSS is an object-oriented language developed  for  building
        !          13083: knowledge  based simulations.  SWIRL is a program written in
        !          13084: ROSS that embeds knowledge about defensive and offensive air
        !          13085: battle  strategies.  Developed by Narain, McArthur and Klahr
        !          13086: at The Rand Corporation, 1700 Main Street, Santa  Monica  CA
        !          13087: 90406.    These  systems  were  implemented  in various LISP
        !          13088: environments including Franz  LISP.   A  comparison  of  hte
        !          13089: various  environments in terms of CPU usage, real-time usage
        !          13090: and user aids can be found in an article by the above in the
        !          13091: proceedings  of  the  1983 International Joint Conference on
        !          13092: Artificial Intelligence, Karlsruhe, W. Germany.
        !          13093: 
        !          13094: From liz@tove  Sat Apr  6 09:35:22 1985
        !          13095: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          13096:        id AA13697; Sat, 6 Apr 85 09:35:22 pst
        !          13097: Received: from tove.ARPA (tove.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42)
        !          13098:        id AA24792; Sat, 6 Apr 85 09:35:09 pst
        !          13099: Received: by tove.ARPA (4.12/4.7)
        !          13100:        id AA10092; Sat, 6 Apr 85 12:36:17 est
        !          13101: Message-Id: <[email protected]>
        !          13102: To: franz!schlafly@BERKELEY (Roger Schlafly)
        !          13103: Cc: franz-friends@BERKELEY
        !          13104: Subject: Re: Franz Lisp applications
        !          13105: In-Reply-To: Your message of Fri, 5 Apr 85 10:37:18 pst.
        !          13106:             <[email protected]>
        !          13107: Date: 06 Apr 85 12:36:04 EST (Sat)
        !          13108: From: Liz Allen <liz@tove>
        !          13109: 
        !          13110: A correction to one of the entries.
        !          13111: 
        !          13112:        From: franz!schlafly@Berkeley (Roger Schlafly)
        !          13113: 
        !          13114:        + Flavors
        !          13115:        An object oriented extension of Lisp, developed at  MIT  and
        !          13116:        the  University  of  Maryland.   Used  on the Symbolics Lisp
        !          13117:        machines.  Available from Franz Inc. at no  charge  to  pur-
        !          13118:        chasers of Franz Lisp.
        !          13119: 
        !          13120: Actually, there are two implmentations of flavors available for
        !          13121: Franz; one written at MIT and the other at Univ of Maryland.  Franz
        !          13122: Inc distributes the one from MIT and we (at UofM) distribute our
        !          13123: version as part of the Maryland software distribution (which includes
        !          13124: Franz 38.91).  For more information about getting our distribution,
        !          13125: contact Bob Bane [email protected] or seismo!umcp-cs!bane.
        !          13126: 
        !          13127:                                -Liz
        !          13128: 
        !          13129: 
        !          13130: From wfi%[email protected]  Tue Apr  9 02:28:37 1985
        !          13131: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          13132:        id AA07208; Tue, 9 Apr 85 02:28:37 pst
        !          13133: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.45)
        !          13134:        id AA14376; Tue, 9 Apr 85 02:27:14 pst
        !          13135: Message-Id: <[email protected]>
        !          13136: Received: from ucsc by csnet-relay.csnet id ad14837; 9 Apr 85 5:28 EST
        !          13137: Received: by vger.UCSC (4.12/4.7)
        !          13138:        id AA27515; Mon, 8 Apr 85 14:09:04 pst
        !          13139: Date: Mon, 8 Apr 85 14:09:04 pst
        !          13140: From: wfi <@csnet-relay.arpa,@ucsc.CSNET:[email protected] (Wayne F. Iba)>
        !          13141: To: franz-friends@BERKELEY
        !          13142: Subject: franz profiling
        !          13143: Cc: [email protected]
        !          13144: 
        !          13145: 
        !          13146: There is a short note in the documentation of liszt that "if the lisp
        !          13147: system is built with profiling", then using the -p option will allow
        !          13148: use of the UNIX prof command etc.
        !          13149: 
        !          13150: Can someone explain how to rebuild (if necessary) our lisp system
        !          13151: accordingly?
        !          13152: 
        !          13153: Thanks
        !          13154: --wayne (wfi%ucsc.csnet)
        !          13155: 
        !          13156: 
        !          13157: From klahr@rand-unix  Tue Apr  9 10:03:37 1985
        !          13158: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          13159:        id AA09758; Tue, 9 Apr 85 10:03:37 pst
        !          13160: Received: from rand-unix.ARPA (rand-unix.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.45)
        !          13161:        id AA20618; Tue, 9 Apr 85 10:02:11 pst
        !          13162: Received: by rand-unix.ARPA; Tue, 9 Apr 85 09:41:46 pst
        !          13163: From: Phil Klahr <klahr@rand-unix>
        !          13164: Message-Id: <[email protected]>
        !          13165: Date: 09 Apr 85 09:41:40 PST (Tue)
        !          13166: To: FRANZ-FRIENDS@BERKELEY
        !          13167: Cc: randvax!klahr
        !          13168: Subject: IJCAI-85 Registration -- Please post
        !          13169: 
        !          13170: 
        !          13171: The International Joint Conference on Artificial Intelligence will be
        !          13172: meeting in Los Angeles (at UCLA) August 18-23, 1985.  Conference
        !          13173: brochures (including registration information) have already been mailed
        !          13174: out.  If you have not received one, or would like extras, contact
        !          13175: 
        !          13176:        IJCAI-85
        !          13177:        c/o AAAI
        !          13178:        445 Burgess Drive
        !          13179:        Menlo Park, CA 94025
        !          13180:        415-328-3123 or 415-321-1118
        !          13181: 
        !          13182: Registration will be limited to 5,000 people.  Based on early projections,
        !          13183: up to 7,000 people may wish to attend, so early registration is highly
        !          13184: encouraged (if not necessary).
        !          13185: 
        !          13186: As a bonus, early registrants will receive a substantial reduction in
        !          13187: registration costs.  Through June 28, registration fees are $175 ($80 for
        !          13188: students); for registrations received after June 28 but prior to July 26,
        !          13189: fees will be $225 ($100 for students); and for on-site registration (if
        !          13190: available), fees will be $275 ($125 for students).  Substantial reductions
        !          13191: for early tutorial registrations are also in effect.
        !          13192: 
        !          13193: Further information on the technical conference, the tutorials, the
        !          13194: exhibition, and housing can be found in the conference brochure.
        !          13195: 
        !          13196: From jeffr@sri-spam  Tue Apr  9 16:38:17 1985
        !          13197: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          13198:        id AA00472; Tue, 9 Apr 85 16:38:17 pst
        !          13199: Received: from sri-spam.ARPA (sri-spam.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.45)
        !          13200:        id AA29765; Tue, 9 Apr 85 16:36:41 pst
        !          13201: Received: by sri-spam.ARPA (4.22/4.16)
        !          13202:        id AA05175; Tue, 9 Apr 85 16:37:20 pst
        !          13203: Date: Tue, 9 Apr 85 16:37:20 pst
        !          13204: From: jeffr@sri-spam (Jeff Rininger)
        !          13205: Message-Id: <[email protected]>
        !          13206: To: franz-friends@BERKELEY
        !          13207: 
        !          13208: Does anyone know of (or have) a Franz function that returns a character
        !          13209: corresponding to a given fixnum representation, but without the pesky
        !          13210: symbol delimiters that `ascii' returns ?
        !          13211: 
        !          13212: From g_keaton%[email protected]  Sat Apr 13 23:33:19 1985
        !          13213: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          13214:        id AA22504; Sat, 13 Apr 85 23:33:19 pst
        !          13215: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.45)
        !          13216:        id AA13927; Sat, 13 Apr 85 23:32:05 pst
        !          13217: Message-Id: <[email protected]>
        !          13218: Received: from scarolina by csnet-relay.csnet id a013785; 14 Apr 85 2:36 EST
        !          13219: Date:     Fri, 12 Apr 85 13:01 EST
        !          13220: From: Bonnell <g_keaton%[email protected]>
        !          13221: To: FRANZ-FRIENDS@BERKELEY
        !          13222: Subject:  Problems with *process.
        !          13223: 
        !          13224: I am attempting to have a Lisp process talk to a C process using
        !          13225: Lisp's *process function. This function works fine with system commands
        !          13226: such as 'ls' but fails when the C process is a typical user program.
        !          13227: I hope someone has run into similar difficulties and can provide some
        !          13228: enlightenment. We are using a set Sun workstations running Berkley Unix.
        !          13229: The same problem also occurs on our VAX. 
        !          13230: 
        !          13231:                        Thanks,
        !          13232:                                Gar Keaton
        !          13233: 
        !          13234: From narain@rand-unix  Mon Apr 15 11:33:17 1985
        !          13235: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          13236:        id AA08082; Mon, 15 Apr 85 11:33:17 pst
        !          13237: Received: from rand-unix.ARPA (rand-unix.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.45)
        !          13238:        id AA08871; Mon, 15 Apr 85 11:31:51 pst
        !          13239: Received: by rand-unix.ARPA; Mon, 15 Apr 85 11:29:44 pst
        !          13240: From: Sanjai Narain <narain@rand-unix>
        !          13241: Message-Id: <[email protected]>
        !          13242: Date: 15 Apr 85 11:29:40 PST (Mon)
        !          13243: To: Bonnell <g_keaton%[email protected]>
        !          13244: Cc: FRANZ-FRIENDS@BERKELEY, narain@rand-unix
        !          13245: Subject: Re: Problems with *process.
        !          13246: In-Reply-To: Your message of Fri, 12 Apr 85 13:01 EST.
        !          13247:             <[email protected]>
        !          13248: 
        !          13249: 
        !          13250: I once set up a link between Franzlisp and C-Prolog using process instead of
        !          13251: *process and it worked fine. It was on Vax 11/780, but it was most probably
        !          13252: on an earlier version of Unix, rather than 4.2bsd.
        !          13253: 
        !          13254: -- Sanjai Narain
        !          13255: 
        !          13256: From chin@ucbdali  Sat Apr 20 11:50:19 1985
        !          13257: Received: from ucbdali.ARPA by ucbkim.ARPA (4.24/4.27)
        !          13258:        id AA03799; Sat, 20 Apr 85 11:50:19 pst
        !          13259: Received: by ucbdali.ARPA (4.24/4.45)
        !          13260:        id AA08585; Sat, 20 Apr 85 11:50:12 pst
        !          13261: Date: Sat, 20 Apr 85 11:50:12 pst
        !          13262: From: chin@ucbdali (David N. Chin)
        !          13263: Message-Id: <[email protected]>
        !          13264: To: franz-friends@ucbdali
        !          13265: Subject: profiling
        !          13266: 
        !          13267: Does anyone have a profiling package for FRANZ that provides execution
        !          13268: time statistics?  The prof.l package in the lisplib only provides call
        !          13269: frequency statistics, and the liszt -p option only works if lisp was
        !          13270: created with profiling (not to mention that you would have to recompile
        !          13271: all your code to use it).
        !          13272: 
        !          13273:                                Thanks in advance,
        !          13274:                                David Chin
        !          13275:                                chin@BERKELEY
        !          13276:                                ucbvax!chin
        !          13277: 
        !          13278: From [email protected]  Sun Apr 21 14:13:02 1985
        !          13279: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27)
        !          13280:        id AA17063; Sun, 21 Apr 85 14:13:02 pst
        !          13281: Received: from mit-eddie.ARPA (mit-eddie.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.45)
        !          13282:        id AA03920; Sun, 21 Apr 85 14:11:39 pst
        !          13283: Received: by mit-eddie.ARPA (4.12/4.8)  id AA03273; Sun, 21 Apr 85 17:11:05 est
        !          13284: Date: Sun, 21 Apr 85 17:11:05 est
        !          13285: From: Steven M. Haflich <[email protected]>
        !          13286: Message-Id: <[email protected]>
        !          13287: To: franz-friends@BERKELEY
        !          13288: Subject: Gnu EMACS customization for Lisp
        !          13289: 
        !          13290: Lisp hackers who use Gnu EMACS might want to try this useful
        !          13291: customization.  It emulates the standard keybinding of CCA EMACS
        !          13292: that makes C-Z (i.e. control-Z) a prefix which both CONTROL- and
        !          13293: META-izes to the following keystroke.  This is particularly useful
        !          13294: for Lisp because most of the special Lisp editing commands are bound
        !          13295: to ESC CONTROL characters.
        !          13296: 
        !          13297: This text can be placed in the personal .emacs file in your home
        !          13298: directory.  The suspend-emacs function previously run by C-Z is
        !          13299: still available as either C-X C-Z or C-Z C-Z .
        !          13300: 
        !          13301: But first: The two "^Z" strings in the text below have been sanitized
        !          13302: to pass through mailers and, as mailed, contain a two character
        !          13303: sequence representing CONTROL-Z to humans.  You will have to edit
        !          13304: them to contain the single literal character C-Z, which can be typed
        !          13305: in EMACS via the two-keystroke sequence: C-Q C-Z .
        !          13306: 
        !          13307: ======================================
        !          13308: (defun c-m-prefix ()
        !          13309:  "Apply both META and CONTROL to the next command character"
        !          13310:  (interactive)
        !          13311:  (command-execute
        !          13312:   (lookup-key esc-map (char-to-string (logand 31 (read-char))))))
        !          13313: 
        !          13314: (define-key global-map "^Z" 'c-m-prefix)
        !          13315: (define-key esc-map "^Z" 'suspend-emacs)
        !          13316: 
        !          13317: From @MIT-MC:[email protected]  Tue Apr 23 17:48:24 1985
        !          13318: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.46)
        !          13319:        id AA18909; Tue, 23 Apr 85 17:48:24 pst
        !          13320: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.46)
        !          13321:        id AA10636; Tue, 23 Apr 85 17:46:11 pst
        !          13322: Message-Id: <[email protected]>
        !          13323: Received: from CMU-CS-IUS.ARPA by MIT-MC.ARPA; 22 APR 85 12:13:41 EST
        !          13324: Date: 22 Apr 85 12:05:53 EST
        !          13325: From: Wilson.Harvey@CMU-CS-IUS
        !          13326: Subject: #ifdef for liszt?
        !          13327: To: BBoard.Maintainer@CMU-CS-A
        !          13328: 
        !          13329: 
        !          13330: Is there anything for the lisp compiler akin to the "#ifdef" statement
        !          13331: for the C compiler?  Can anyone point me to something similar?
        !          13332: Thanks.  -- Wilson
        !          13333: 
        !          13334: 
        !          13335: 
        !          13336: From liz@tove  Wed Apr 24 12:02:32 1985
        !          13337: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.46)
        !          13338:        id AA01778; Wed, 24 Apr 85 12:02:32 pst
        !          13339: Received: from tove.ARPA (tove.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.46)
        !          13340:        id AA02711; Wed, 24 Apr 85 12:00:04 pst
        !          13341: Received: by tove.ARPA (4.12/4.7)
        !          13342:        id AA15012; Wed, 24 Apr 85 15:00:27 est
        !          13343: Message-Id: <[email protected]>
        !          13344: To: Wilson.Harvey@cmu-cs-ius
        !          13345: Cc: franz-friends@BERKELEY
        !          13346: Subject: Re: #ifdef for liszt?
        !          13347: In-Reply-To: Your message of 22 Apr 85 12:05:53 EST.
        !          13348:             <[email protected]>
        !          13349: Date: 24 Apr 85 15:00:16 EST (Wed)
        !          13350: From: Liz Allen <liz@tove>
        !          13351: 
        !          13352:        From: Wilson.Harvey@CMU-CS-IUS
        !          13353: 
        !          13354:        Is there anything for the lisp compiler akin to the "#ifdef" statement
        !          13355:        for the C compiler?  Can anyone point me to something similar?
        !          13356:        Thanks.  -- Wilson
        !          13357: 
        !          13358: The reader has built into it a switch that works in both liszt and
        !          13359: lisp.  You can tell lisp whether or not to read an expression by
        !          13360: putting before that expression something like:
        !          13361: 
        !          13362:        #+feature       
        !          13363:        #-feature
        !          13364:        #+(or feature ...)
        !          13365:        #+(and feature ...)
        !          13366: 
        !          13367: where feature is on iff it is on the "(status features)" list (which
        !          13368: can be modified).  Thus you can do something like this:
        !          13369: 
        !          13370:        #-uomlisp (defun morerecent (file1 file2) ...)
        !          13371: 
        !          13372: since uomlisp is turned only in Franz's that contain all our hacks and
        !          13373: morerecent happens to already be defined in our stuff.  If you look at
        !          13374: the liszt code, you'll see lots of "#+vax"'s and "#+68k"'s where the
        !          13375: code needs to be different, eg:
        !          13376: 
        !          13377:        (defun cc-foo (x y z)
        !          13378:           (bar #+vax vax-arg
        !          13379:                #+68k 68k-arg)
        !          13380:            ...)
        !          13381: 
        !          13382: It can be quite convenient especially when you have two lisps that are
        !          13383: almost the same, you can maintain just one source containing these
        !          13384: things whenever the sources for the different lisps must be different.
        !          13385: 
        !          13386: I know this stuff is documented in the code in charmac.l; I can't
        !          13387: remember right now if it is documented in the Franz reference manual
        !          13388: and I don't have it with me right now to check.
        !          13389: 
        !          13390: 
        !          13391: Hope this helps.
        !          13392: 
        !          13393:                                -Liz
        !          13394: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.