|
|
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:
5158: evalhook and funcallhook can now be executed without setting (*rset t)
5159: and (sstatus evalhook t). Although they can be executed, they won't
5160: have any effect unless and until (*rset t) and (sstatus evalhook t) are
5161: done.
5162: The reason for this change is that now one can turn off stepping
5163: by (sstatus evalhook nil) and then continue the evaluation with
5164: evalhook and funcallhook.
5165:
5166: Those who use the new top-level 'tpl' will notice a few new commands
5167: dealing with stepping when you type '?help'. These new commands
5168: are ?step, ?soff, and ?sc. Details of the commands are available
5169: using the help mechanism (e.g. '?help step').
5170:
5171:
5172:
5173:
5174: From jkf Fri Aug 19 13:54:26 1983
5175: Received: by ucbkim.ARPA (4.2/4.2)
5176: id AA20017; Fri, 19 Aug 83 13:54:26 PDT
5177: Date: Fri, 19 Aug 83 13:54:26 PDT
5178: From: jkf (John Foderaro)
5179: Message-Id: <[email protected]>
5180: To: local-lisp
5181: Subject: liszt 8.36
5182:
5183: The compiler will now compile the form
5184: (*no-macroexpand* <form>)
5185: in a special way: if <form> is a function call, e.g. (name arg1 ...),
5186: then any macro properties of 'name' will be ignored for this
5187: invocation. This permits one to write macros which attempt
5188: an optimization, and if that fails, then call the standard
5189: function. *no-macroexpand* is not a function that can be called,
5190: thus forms with *no-macroexpand* are likely to be 'cmacros'.
5191: Here is an example:
5192:
5193: (defcmacro length (x &protect (x))
5194: `(if (null ,x)
5195: then 0
5196: elseif (null (cdr ,x))
5197: then 1
5198: else (*no-macroexpand* (length ,x))))
5199:
5200:
5201: [in case you are wondering, the `&protect (x)' means that
5202: should the actual argument to 'length' be a non atom, defcmacro
5203: will lambda bind the value, insuring that it is only evaluated
5204: once]
5205:
5206:
5207:
5208:
5209: From layer Wed Aug 24 22:18:34 1983
5210: Received: by ucbkim.ARPA (4.6/4.2)
5211: id AA12256; Wed, 24 Aug 83 22:18:34 PDT
5212: From: layer (Kevin Layer)
5213: Phone: (415) 652-2405
5214: Date: 24 Aug 1983 2218-PDT (Wednesday)
5215: Message-Id: <12219.30.430636709@ucbkim>
5216: To: local-lisp
5217: Subject: liszt on kim
5218:
5219: The liszt that I installed on kim yesterday, compiled eq's wrong
5220: in some rare cases. I installed a new one this evening that fixes
5221: this, but if you compiled any programs with the bad one, you might
5222: consider re-compiling them...
5223:
5224: Kevin
5225:
5226: From fateman Thu Aug 25 13:58:59 1983
5227: Received: by ucbkim.ARPA (4.6/4.2)
5228: id AA21033; Thu, 25 Aug 83 13:58:59 PDT
5229: Date: Thu, 25 Aug 83 13:58:59 PDT
5230: From: fateman (Richard Fateman)
5231: Message-Id: <[email protected]>
5232: To: local-lisp
5233:
5234: I have a copy of the latest Common Lisp manual... the Excelsior Edition.
5235:
5236: From patel@UCLA-LOCUS Tue Aug 30 21:58:38 1983
5237: Received: from ucbvax.ARPA by ucbkim.ARPA (4.6/4.2)
5238: id AA29417; Tue, 30 Aug 83 21:58:38 PDT
5239: Received: from ucla-locus (ucla-locus.ARPA) by ucbvax.ARPA (4.8/4.4)
5240: id AA06203; Tue, 30 Aug 83 21:50:26 PDT
5241: Message-Id: <[email protected]>
5242: Date: Tue, 30 Aug 83 21:44:13 PDT
5243: From: Dorab Patel <patel@UCLA-LOCUS>
5244: To: franz-friends@BERKELEY
5245: Subject: bug fix for 'insert' in opus 38.50
5246:
5247: The function 'insert' in Opus 38.50 does not perform as advertised in
5248: the manual if the last argument is non-nil (i.e. if no duplicates are allowed.
5249: It still insists on putting the duplicate element into the list. The
5250: fix is in /usr/lib/lisp/common2.l. Just change the default setting
5251: of the 'comparefn' to that given below instead of
5252: (function alphalessp). Here is an excerpt from the modified file.
5253:
5254:
5255: [.....]
5256: (def insert
5257: (lambda (x l comparefn nodups)
5258: (cond ((null l) (list x))
5259: ((atom l)
5260: (error "an atom, can't be inserted into" l))
5261: (t (cond
5262: ((null comparefn) (setq comparefn
5263: (function
5264: (lambda (x y)
5265: (or (alphalessp x y)
5266: (equal x y)))))))
5267: (prog (l1 n n1 y)
5268: (setq l1 l)
5269: (setq n (length l))
5270: a (setq n1 (/ (add1 n) 2))
5271: (setq y (Cnth l1 n1))
5272: [..........]
5273:
5274: From jkf Sun Sep 4 09:59:01 1983
5275: Received: by ucbkim.ARPA (4.6/4.2)
5276: id AA03721; Sun, 4 Sep 83 09:59:01 PDT
5277: Date: Sun, 4 Sep 83 09:59:01 PDT
5278: From: jkf (John Foderaro)
5279: Message-Id: <[email protected]>
5280: To: local-lisp
5281: Subject: opus 38.77
5282:
5283: The 'error' function used to print its arguments and then call 'err' to
5284: cause the familar 'call to err' error. The problem with this is that
5285: even if you wrap your compuatation with (errset ... nil), the error message
5286: will still be printed. In opus 38.77, this problem has been fixed.
5287:
5288: A new function was added:
5289: (err-with-message 'st_message ['g_value])
5290: This causes an error to be signaled with the given message. The message
5291: will only be printed if an '(errset ... nil)' isn't being executed.
5292: Normally nil is returned from an errset if an error occured. If you provide
5293: g_value, then it will be returned from the errset.
5294: [Not surprisingly, 'error' now uses 'err-with-message']
5295:
5296:
5297: Also, 'error' now takes any number of arguments. In concatenates them,
5298: separated by spaces, and this is the error message passed to
5299: err-with-message.
5300:
5301:
5302:
5303:
5304: From narain@rand-unix Fri Sep 9 13:32:24 1983
5305: Received: from ucbvax.ARPA by ucbkim.ARPA (4.6/4.2)
5306: id AA16481; Fri, 9 Sep 83 13:32:24 PDT
5307: Received: from rand-unix (rand-unix.ARPA) by ucbvax.ARPA (4.12/4.7)
5308: id AA11010; Fri, 9 Sep 83 13:31:58 PDT
5309: Message-Id: <[email protected]>
5310: Date: Friday, 9 Sep 1983 10:55-PDT
5311: To: franz-friends@BERKELEY
5312: Cc: narain@rand-unix
5313: Subject: Franzlisp Question
5314: From: narain@rand-unix
5315:
5316:
5317: Hello all:
5318:
5319: I would be grateful if you could answer another question regarding Franzlisp.
5320: How does one make Franzlisp continue from an error? For example when Lisp
5321: gives an error message like "x unbound variable", is it possible to
5322: bind x to a value and make Lisp continue from that point? Right now we have
5323: to start over again and it is very time consuming.
5324:
5325: -- Sanjai
5326:
5327: From [email protected] Fri Sep 9 13:46:45 1983
5328: Received: from ucbvax.ARPA by ucbkim.ARPA (4.6/4.2)
5329: id AA16843; Fri, 9 Sep 83 13:46:45 PDT
5330: Received: from DEC-MARLBORO.ARPA by ucbvax.ARPA (4.12/4.7)
5331: id AA11248; Fri, 9 Sep 83 13:46:26 PDT
5332: Date: 9 Sep 1983 1427-EDT
5333: From: AUSTIN@DEC-MARLBORO
5334: To: FRANZ-FRIENDS@BERKELEY
5335: Subject: LIST MEMBERSHIP
5336: Message-Id: <"MS10(2124)+GLXLIB1(1136)" 11950297972.20.647.3882 at DEC-MARLBORO>
5337:
5338: PLEASE ADD ME TO FRANZ-FRIENDS@BERKELEY DISTRIBUTION.
5339:
5340: MY NAME IS TOM AUSTIN AND MY NETWORK ADDRESS IS AUSTIN@DEC-MARLBORO.
5341:
5342: THANKS!
5343: --------
5344:
5345: From jkf Sat Sep 10 12:34:14 1983
5346: Received: by ucbkim.ARPA (4.6/4.2)
5347: id AA28421; Sat, 10 Sep 83 12:34:14 PDT
5348: Date: Sat, 10 Sep 83 12:34:14 PDT
5349: From: jkf (John Foderaro)
5350: Message-Id: <[email protected]>
5351: To: local-lisp
5352: Subject: opus 38.78
5353:
5354: The new functions contributed by the bair group dealing with symbol
5355: creation have been changed from fexprs to exprs (lambdas) and lexprs.
5356:
5357: The new documentation follows:
5358:
5359:
5360:
5361:
5362:
5363:
5364:
5365: The functions described below are an alternative to the
5366: gensym facility. They generate new symbols by attaching
5367: counter numbers to the ends of the symbols' names. An exam-
5368: ple follows of how the functions are used.
5369:
5370:
5371: ____________________________________________________
5372:
5373: -> (initsym 'joe '(john 5)) ; initializing new symbol counters
5374: (joe0 john5)
5375: -> (newsym 'john) ; create a new symbol
5376: john6
5377: -> (newsym 'chuck) ; symbol need not be initsym'ed
5378: chuck0
5379: -> (oldsym 'john) ; get current symbol
5380: john6
5381: -> (allsym 'john) ; get all symbols between 0 and counter
5382: (john0 john1 john2 john3 john4 john5 john6)
5383: -> (allsym '(john 5)) ; get all symbols between 5 and counter
5384: (john5 john6)
5385: -> (remsym 'joe '(john 4)) ; remob all interned symbols
5386: ; associated with joe and from
5387: ; john4 to the current john
5388: ; symbol--returns symbols with symbol counters
5389: ; before doing remsym
5390: (joe0 john6)
5391: -> (symstat 'joe 'john)
5392: ((joe nil) (john 3))
5393: ____________________________________________________
5394:
5395:
5396:
5397:
5398: (initsym 'g_arg1 ...)
5399:
5400: WHERE: g_argi is a list (n_counteri s_argi) or a
5401: string s_argi (which is equivalent to (0
5402: s_argi)).
5403:
5404: RETURNS: a list of interned identifiers using the sym-
5405: bol counters n_counteri, i.e., the result of
5406: concatenating s_argi to n_counteri.
5407:
5408: EXAMPLE: (initsym 'joe '(john 5)) ==> (joe0 john5)
5409:
5410: NOTE: See also newsym, oldsym, allsym, remsym, and sym-
5411: stat functions.
5412:
5413:
5414:
5415:
5416:
5417:
5418:
5419:
5420:
5421:
5422:
5423:
5424:
5425:
5426:
5427:
5428:
5429:
5430:
5431: (newsym 's_arg)
5432:
5433: RETURNS: an interned identifier formed by concatenating
5434: the name s_arg to the symbol counter for
5435: s_arg. The symbol counter is stored on the
5436: property list of s_arg under symctr. If there
5437: is no counter, a counter of 0 is used and
5438: added to the property list. Thus, a symbol
5439: need not be initsymed.
5440:
5441: EXAMPLE: (initsym 'joe '(john5)) ==> (joe0 john5)
5442: (newsym 'john) ==> john6
5443: (newsym 'joe) ==> joe1
5444:
5445: NOTE: See also initsym, oldsym, allsym, remsym, and
5446: symstat functions.
5447:
5448: (oldsym 's_arg)
5449:
5450: RETURNS: the identifier using the current symbol
5451: counter for s_arg, rather than creating a new
5452: identifier. If no symbol counter exists for
5453: s_arg, then s_arg is returned.
5454:
5455: NOTE: See also initsym, newsym, allsym, remsym, and
5456: symstat functions.
5457:
5458: (allsym 'g_arg)
5459:
5460: WHERE: g_arg is a list (s_arg n_counter) or a string
5461: s_arg (equivalent to (s_arg 0)).
5462:
5463: RETURNS: a list of all the created identifiers between
5464: n_counter and the current symbol counter for
5465: s_arg.
5466:
5467: EXAMPLE: (allsym 'john) ==> (john0 john1 john2)
5468:
5469: NOTE: See also initsym, newsym, oldsym, remsym, and
5470: symstat functions.
5471:
5472: (remsym 'g_arg1 ...)
5473:
5474: WHERE: g_argi is a list (s_argi n_counteri) or a
5475: string s_argi (which is equivalent to (s_argi
5476: 0)).
5477:
5478: RETURNS: a list of symbols s_argi with the current sym-
5479: bol counters.
5480:
5481: SIDE EFFECT: remsym remob's all the created identifiers
5482: between zero and the current symbol
5483: counter for s_argi.
5484:
5485:
5486:
5487:
5488:
5489:
5490:
5491:
5492:
5493:
5494:
5495:
5496:
5497: NOTE: See also initsym, newsym oldsym, allsym, and sym-
5498: stat functions.
5499:
5500: (symstat 's_arg1 ...)
5501:
5502: RETURNS: a list of pairs consisting of (s_argi symctri)
5503: where symctri is s_argi's current symbol
5504: counter.
5505:
5506: NOTE: See also initsym, newsym, oldsym, allsym, and
5507: remsym functions.
5508:
5509:
5510:
5511:
5512:
5513:
5514:
5515:
5516:
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.