|
|
1.1 ! root 1: From jkf Tue Apr 13 00:12:22 1982 ! 2: To: /na/doe/jkf/lispnews ! 3: Subject: new features ! 4: Status: RO ! 5: ! 6: In response to requests from franz users, these enhancements have been ! 7: made: ! 8: ! 9: In Lisp 38.07, if the lisp variable 'displace-macros' is set to non-nil, ! 10: then when a macro expansion is done by the evaluator, the resulting ! 11: expansion replaces the original call. This means that macro expansion ! 12: is only done once. ! 13: ! 14: In Liszt 8.03, the 'function' function is open coded. If you have ! 15: (function (lambda ....)) ! 16: in your code then the lambda expression is compiled as a separate function ! 17: and the result of the function call is a 'bcd' object which points ! 18: to that compiled lambda. ! 19: ! 20: ! 21: ! 22: From jkf Sun Apr 18 13:16:46 1982 ! 23: To: local-lisp ! 24: Subject: opus 38.09 ! 25: Status: RO ! 26: ! 27: The new features of this version are: ! 28: If the load function ends up fasl'ing in a file, then load will ! 29: do what is necessary to insure that the new functions are linked in ! 30: correctly. Previously, if you turned on the transfer tables with ! 31: (sstatus translink on) or (sstatus translink t) and then fasl'ed in ! 32: functions which already existed, the old versions of the functions ! 33: would still be used, unless you did (sstatus translink on) yourself. ! 34: Now this is done automatically. ! 35: ! 36: tyi now accepts a second argument which is the object to return ! 37: upon eof. -1 is the default. ! 38: ! 39: (pp-form 'g_obj ['p_port]) should be used instead of $prpr ! 40: for pretty printing a form. ! 41: ! 42: The storage allocator and collector has been modified to add ! 43: two new data types: vector and vector immediate. They are not in ! 44: their final form so I suggest that you not try to use them. ! 45: However, be on the lookout for garbage collection bugs. ! 46: ! 47: ! 48: ! 49: From jkf Wed Apr 21 07:45:54 1982 ! 50: To: local-lisp ! 51: Subject: liszt 8.04 ! 52: Status: RO ! 53: ! 54: the new features of liszt 8.04 are: ! 55: ! 56: 1) init files: ! 57: Before liszt begins compiling, it looks for an init file to load in. ! 58: It first searches in the current directory, and then it searches ! 59: your home directory (getenv 'HOME). ! 60: It looks for file names: ! 61: .lisztrc.o .lisztrc.l lisztrc.o lisztrc.l ! 62: It loads only the first one it finds. ! 63: ! 64: 2) interrupt handling ! 65: If you interrupt liszt (with ^C typically), it will remove its ! 66: temporary file and exit. ! 67: ! 68: 3) preallocation of space ! 69: It preallocates space in order to reduce the number of gc's done ! 70: during compiling. ! 71: ! 72: ! 73: ! 74: ! 75: ! 76: From jkf Wed Apr 21 13:47:50 1982 ! 77: To: local-lisp ! 78: Subject: lisp opus 38.10 ! 79: Status: RO ! 80: ! 81: lisp will now look for a lisprc in a way similar to liszt. ! 82: ! 83: It will first search in . and then in $HOME ! 84: It will look for the file .lisprc or lisprc ending with .o, .l and then ! 85: just .lisprc or lisprc. ! 86: ! 87: Shortly, it will only look for files ending in .l and .o since we don't ! 88: want to encourage files with non-standard filename extensions. ! 89: ! 90: ! 91: ! 92: ! 93: ! 94: From jkf Wed Apr 21 23:40:59 1982 ! 95: To: local-lisp ! 96: Subject: lisp opus 38.11 ! 97: Status: RO ! 98: ! 99: I finally got sick of showstack and baktrace and rewrote them in lisp, ! 100: rincorporating some of the features people have been requesting. ! 101: Showstack now works as follows: ! 102: (showstack) : show all interesting forms. Forms resulting from ! 103: the trace package are not printed as well as ! 104: extraneous calls to eval. In the form printed, ! 105: the special form <**> means 'the previous expression ! 106: printed'. prinlevel and prinlength are set to ! 107: reasonable values to prevent the expression from ! 108: getting too large ! 109: (showstack t) : same as above but print all expressions. ! 110: (showstack 5) : print only the first 5 expressions. of course, 5 ! 111: is not the only possible numeric argument. ! 112: (showstack lev 3) : set prinlevel to 3 before printing ! 113: (showstack len 4) : set prinlength to 4 before printing ! 114: the above arguments can be used in combination. ! 115: ! 116: The default value of prinlevel is showstack-prinlevel, that of prinlength ! 117: is showstack-prinlength. the default showstack printer is the ! 118: value of showstack-printer (default is 'print'). ! 119: ! 120: baktrace accepts the same arguments as showstack, but it ignores the ! 121: prinlevel and prinlength arguments. ! 122: ! 123: ! 124: ! 125: ! 126: From jkf Sat Apr 24 08:55:18 1982 ! 127: To: local-lisp ! 128: Subject: lisp opus 38.12, liszt 8.05 ! 129: Status: RO ! 130: ! 131: these changes and enhancements were made: ! 132: ! 133: 1) the function 'function' in the interpreter acts just like 'quote' ! 134: In the compiler, 'function' will act like 'quote' unless the ! 135: argument is a lambda expression, in which case liszt will replace ! 136: the lambda expression with a unique symbol. That unique symbol's ! 137: function cell will contain a compiled version of the lambda ! 138: expression. These changes will make Franz compatible with Maclisp ! 139: type lisps, as far as the treatment of 'function' ! 140: ! 141: 2) Mechanisms were added to permit user written C or Fortran code to call ! 142: lisp code. Everything isn't quite ready yet. ! 143: ! 144: 3) Signal was fixed so that if you ask for a signal to be ignored, the ! 145: operating system will be notified. The correct way to fork a lisp ! 146: is now: ! 147: (cond ((fork) (signal 2 (prog1 (signal 2) (wait))))) ! 148: ! 149: 4) You can select the default function trace uses to print the arguments and ! 150: results. Just lambda bind trace-printer to the name of the function ! 151: you want it to use. The standard trace-printer sets prinlevel and ! 152: prinlength to the values of trace-prinlevel and trace-prinlength before ! 153: printing. By default, trace-prinlevel is 4, and trace-prinlength is 5 ! 154: ! 155: ! 156: ! 157: ! 158: ! 159: From jkf Sun Apr 25 23:46:16 1982 ! 160: To: local-lisp ! 161: Subject: lisp opus 38.13 ! 162: Status: RO ! 163: ! 164: Functions 1+ and 1- are now part of the interpreter, rather than ! 165: being made equivalent to add1 and sub1. ! 166: ! 167: ! 168: ! 169: From jkf Wed Apr 28 09:52:43 1982 ! 170: To: local-lisp ! 171: Subject: Opus 38.14 ! 172: Status: RO ! 173: ! 174: Has these new features: ! 175: 1) the message [load filename] will appear before load ! 176: reads in a lisp source file. This can be disabled by ! 177: setting $ldprint to nil. ! 178: 2) a function 'truename' as been added. It takes a port ! 179: and returns the name of the file associated with that port. ! 180: It returns a string if there is a file associated with ! 181: the port, otherwise it returns nil. ! 182: ! 183: ! 184: ! 185: From jkf Wed Apr 28 10:36:34 1982 ! 186: To: local-lisp ! 187: Subject: more on opus 38.14 ! 188: Status: RO ! 189: ! 190: $ldprint is lambda bound to nil during the loading of the lisprc file. ! 191: ! 192: ! 193: ! 194: ! 195: From jkf Wed May 5 08:30:00 1982 ! 196: To: local-lisp ! 197: Subject: opus 38.15 ! 198: Status: RO ! 199: ! 200: a minor modification: 'makhunk' is now more efficient. ! 201: ! 202: ! 203: From jkf Wed May 5 20:56:40 1982 ! 204: To: local-lisp ! 205: Subject: Opus 38.16 ! 206: Status: RO ! 207: ! 208: A new function was added: ! 209: (hunk-to-list 'h_hunk) ! 210: returns the elements of h_hunk as a list. ! 211: ! 212: Also, the error message printed when an oversized print name is encountered ! 213: has been improved. ! 214: ! 215: ! 216: ! 217: From jkf Fri May 7 20:03:40 1982 ! 218: To: local-lisp ! 219: Subject: Liszt version 8.06 ! 220: Status: RO ! 221: ! 222: ! 223: Local declarations are now supported. You can say: ! 224: (defun foo (a b) ! 225: (declare (special a)) ! 226: ... body ...) ! 227: ! 228: and the special declaration for 'a' will affect the body of function ! 229: foo only. The 'a' which is an argument to foo will also be special ! 230: in this case. Declarations may be ! 231: 1) at the top level, not within a function body. ! 232: 2) at the beginning of a 'lambda' body. ! 233: 3) at the beginning of a 'prog' body ! 234: 4) at the beginning of a 'do' body. ! 235: ! 236: 'the beginning' means either the first, second or third form in the body. ! 237: When the compiler is searching for declarations, it will not macroexpand. ! 238: ! 239: ! 240: Fixnum declarations now have meaning. If you do ! 241: (declare (fixnum i j)) ! 242: then ! 243: (greaterp i j) will be converted to (>& i j) ! 244: ! 245: The declare function is now defined in the compiler. Previously, ! 246: the only way to declare something was for the compiler to 'compile' ! 247: the declaration form. Now, if you load or fasl in a file with ! 248: a declare statement in it, the declare statement will have the ! 249: proper effect in the compiler. ! 250: ! 251: ! 252: (function (lambda () ...)), (function (nlambda () ...)) and ! 253: (function (lexpr () ...)) are all supported. ! 254: ! 255: ! 256: ! 257: From jkf Wed May 12 08:15:37 1982 ! 258: To: local-lisp ! 259: Subject: Lisp Opus 38.17 ! 260: Status: RO ! 261: ! 262: ... has a minor bug fix: The port returned by 'fileopen' will now print ! 263: correctly. ! 264: ! 265: ! 266: ! 267: From jkf Tue May 25 06:18:04 1982 ! 268: Date: 25-May-82 06:17:51-PDT (Tue) ! 269: From: jkf ! 270: Subject: opus 38.18 ! 271: Via: ucbkim.EtherNet (V3.100 [3/27/82]); 25-May-82 06:18:04-PDT (Tue) ! 272: To: local-lisp ! 273: Status: RO ! 274: ! 275: The msg macro will now evaluate all atom arguments except the ones ! 276: for carriage control (N B). Thus if you used (msg foo) you should ! 277: now use (msg "foo"). ! 278: ! 279: ! 280: ! 281: From jkf Thu May 27 08:29:29 1982 ! 282: To: local-lisp ! 283: Subject: liszt 8.08 ! 284: Status: RO ! 285: ! 286: Fixes a bug in the code which converts generic arithmetic to fixnum only ! 287: arithmetic. Liszt was converting from generic to fixnum operators based on ! 288: the first argument only due to a typo in the code. ! 289: ! 290: ! 291: ! 292: ! 293: From jkf Wed Jun 9 07:25:19 1982 ! 294: To: local-lisp ! 295: Subject: lisp Opus 38.20 ! 296: Status: RO ! 297: ! 298: There is now a character macro for reading hexadecimal. ! 299: #x1f = #X1f = #X1F = 31 ! 300: #x-1f = -31 ! 301: ! 302: ! 303: ! 304: From jkf Thu Jun 17 15:42:54 1982 ! 305: To: local-lisp ! 306: Subject: Lisp Opus 38.21 ! 307: Status: RO ! 308: ! 309: Has two routines for interfacing with termcap. These routines were ! 310: written by morris djavaher and are meant to be called by lisp programs ! 311: which have yet to be installed. ! 312: ! 313: ! 314: ! 315: ! 316: From jkf Tue Jun 22 09:09:25 1982 ! 317: Date: 22-Jun-82 09:09:13-PDT (Tue) ! 318: From: jkf ! 319: Subject: opus 38.22 ! 320: Via: ucbkim.EtherNet (V3.120 [6/17/82]); 22-Jun-82 09:09:25-PDT (Tue) ! 321: To: local-lisp ! 322: Status: RO ! 323: ! 324: setq with no arguments will now return nil. ! 325: ! 326: ! 327: ! 328: From jkf Wed Jun 30 19:05:54 1982 ! 329: Date: 30-Jun-82 19:05:32-PDT (Wed) ! 330: From: jkf (John Foderaro) ! 331: Subject: liszt 8.09 ! 332: Via: ucbkim.EtherNet (V3.130 [6/26/82]); 30-Jun-82 19:05:54-PDT (Wed) ! 333: To: local-lisp ! 334: Status: RO ! 335: ! 336: liszt will now look in 12 places for an init file when it starts up. ! 337: It will load in the first one it comes to only. ! 338: The files it looks for are: ! 339: ! 340: { ./ , $HOME } { .lisztrc , lisztrc } { .o , .l , } ! 341: ! 342: ! 343: ! 344: ! 345: From jkf Tue Sep 14 08:53:03 1982 ! 346: Date: 14-Sep-82 08:52:44-PDT (Tue) ! 347: From: jkf (John Foderaro) ! 348: Subject: lisp opus 38.26 ! 349: Message-Id: <[email protected]> ! 350: Received: by UCBKIM.BERKELEY.ARPA (3.193 [9/6/82]) id a09999; ! 351: 14-Sep-82 08:53:03-PDT (Tue) ! 352: To: local-lisp ! 353: Status: RO ! 354: ! 355: Franz used to read the symbols 4dxx 4Dxx and 4Exx as 4exx. Now it reads ! 356: them (and other similar symbols) correctly. ! 357: ! 358: ! 359: ! 360: ! 361: From jkf Sat Oct 2 15:15:48 1982 ! 362: Date: 2-Oct-82 15:15:32-PDT (Sat) ! 363: From: jkf (John Foderaro) ! 364: Subject: lisp opus 38.27 ! 365: Message-Id: <[email protected]> ! 366: Received: by UCBKIM.BERKELEY.ARPA (3.193 [9/6/82]) id a10796; ! 367: 2-Oct-82 15:15:48-PDT (Sat) ! 368: To: local-lisp ! 369: Status: RO ! 370: ! 371: If you set the variable top-level-print to a non nil value, then that ! 372: value will be used by the top-level to print out the result of the ! 373: evaluation. This has effect in break loops too. ! 374: For example, if you want the pretty printer to print out the top level ! 375: values, type (setq top-level-print 'pp-form). ! 376: ! 377: ! 378: ! 379: ! 380: ! 381: From jkf Sun Oct 3 19:28:45 1982 ! 382: Date: 3-Oct-82 19:28:29-PDT (Sun) ! 383: From: jkf (John Foderaro) ! 384: Subject: lisp opus 38.28 ! 385: Message-Id: <[email protected]> ! 386: Received: by UCBKIM.BERKELEY.ARPA (3.193 [9/6/82]) id a09829; ! 387: 3-Oct-82 19:28:45-PDT (Sun) ! 388: To: local-lisp ! 389: Status: RO ! 390: ! 391: A modification has been made to the load function. ! 392: Normally if you type (load 'x), the load function will first try to fasl ! 393: the file x.o and failing that it will try to load x.l ! 394: If you (setq load-most-recent t), and if x.l and x.o both exist, then ! 395: load will fasl or load the most recently modified file. ! 396: The load-most-recent flag only has an effect if you type the filename ! 397: without a trailing .l or .o. ! 398: ! 399: ! 400: ! 401: ! 402: From jkf Tue Oct 5 21:01:55 1982 ! 403: Date: 5-Oct-82 21:01:33-PDT (Tue) ! 404: From: jkf (John Foderaro) ! 405: Subject: liszt 8.12, lisp 38.29 ! 406: Message-Id: <[email protected]> ! 407: Received: by UCBKIM.BERKELEY.ARPA (3.193 [9/6/82]) id a06358; ! 408: 5-Oct-82 21:01:55-PDT (Tue) ! 409: To: local-lisp ! 410: Status: RO ! 411: ! 412: Liszt will now check that you are passing the correct number of arguments ! 413: to functions. As a result, some files which have compiled without ! 414: complaint in the past may compile now with warnings or errors. In this ! 415: note, I'll explain what the compiler knows, what it looks for in your ! 416: program, and how you can help the compiler understand your program. ! 417: ! 418: For each function, liszt either knows nothing about the the number of ! 419: arguments to a function, or it knows the minimum number of arguments, or the ! 420: maximum number of arguments, or both the minimum and maximum number of ! 421: arguments. This information comes about in one of three ways: ! 422: 1) it is known when liszt starts (by virtue of a value stored under the ! 423: fcn-info indicator on a function's property list) ! 424: 2) it is declared by the user, either via (declare (*arginfo ...)) ! 425: or (declare (*args ...)) [see below] ! 426: 3) it is determined when a (lambda) function is compiled. ! 427: When a lambda is compiled, the compiler can easily figure out the ! 428: minimum and maximum number of arguments. ! 429: When an nlambda or lexpr function is compiled, the compiler doesn't ! 430: make a guess as to how many arguments are expected. The user should ! 431: use the (declare (*args ...)) form to tell the compiler how many ! 432: arguments are expected. ! 433: For lexpr's generated via 'defun' using &optional and &rest keywords, ! 434: the correct declaration is generated automatically. ! 435: Once liszt determines the number of arguments to a function, it uses that ! 436: information to check that the function is called with the correct number of ! 437: arguments. It does not check calls to the function that occured before it ! 438: determined the correct number of arguments. [This backward checking will ! 439: be added sometime in the future.] ! 440: ! 441: If liszt finds that a function is called with the wrong number of ! 442: arguments, it prints an informative message. That message is a error if the ! 443: function being called is one which is open coded by the compiler. The ! 444: message is a warning otherwise. The reason for the distinction is that ! 445: you are free to redefine functions not open coded by the compiler. If the ! 446: number of arguments is not correct, it may just be that the compiler's ! 447: database and your code are refering to two different functions. ! 448: If you redefine system functions, you should use the ! 449: (declare (*arginfo ...)) form to let the compiler know about the number ! 450: of arguments expected by your version of the functions. ! 451: ! 452: You can declare the number of arguments to functions using this form ! 453: ! 454: (declare (*arginfo (fcnname1 min1 max1) (fcnname2 min2 max2) ...)) ! 455: where each min or max is either a fixnum or nil (meaning "I don't know") ! 456: ! 457: for example, here are some `correct' declarations: ! 458: ! 459: (declare (*arginfo (read 0 2) (cons 2 2) (boole 3 nil) (append nil nil))) ! 460: ! 461: explanation: ! 462: (read 0 2) means that the function read expects between 0 and 2 ! 463: arguments (inclusive). ! 464: (cons 2 2) means that cons expects 2 arguments. ! 465: (boole 3 nil) means that boole expects at least 3 arguments. ! 466: (append nil nil) means that append expects any number of arguments, ! 467: this is equivalent to (append 0 nil). ! 468: ! 469: ! 470: The *arginfo declaration is usually made at the top level of a file. ! 471: ! 472: To declare the argument characteristics of the current function being ! 473: compiled use the '*args' declaration. It looks somewhat like the ! 474: *arginfo declaration. ! 475: ! 476: It is best explained with examples ! 477: ! 478: (def read ! 479: (lexpr (n) ! 480: (declare (*args 0 2)) ! 481: ... code for read ! 482: )) ! 483: ! 484: (def process ! 485: (nlambda (x) ! 486: (declare (*args 1 3)) ! 487: ... code for process ! 488: )) ! 489: ! 490: Note: the *args declaration is not needed for lambda's. ! 491: ! 492: ! 493: ! 494: If you get an error or warning which you believe is incorrect, it is ! 495: probably due to an incorrect database entry. Please let me know and I will ! 496: fix it immediately. I expect that there will be quite a few of these ! 497: errors because much of the database was built by hand. ! 498: ! 499: ! 500: ! 501: ! 502: ! 503: ! 504: From jkf Fri Oct 8 12:55:45 1982 ! 505: Date: 8-Oct-82 12:55:31-PDT (Fri) ! 506: From: jkf (John Foderaro) ! 507: Subject: lisp 38.30, liszt 8.13 ! 508: Message-Id: <[email protected]> ! 509: Received: by UCBKIM.BERKELEY.ARPA (3.193 [9/6/82]) id a04140; ! 510: 8-Oct-82 12:55:45-PDT (Fri) ! 511: To: local-lisp ! 512: Status: RO ! 513: ! 514: There are now three new functions for dealing with processes: ! 515: *process ! 516: *process-send ! 517: *process-receive ! 518: ! 519: These functions are designed to replace the 'process' function, which, due ! 520: to its nlambda'ness, was difficult to use. All of the above functions ! 521: are lambda's or lexpr's. ! 522: ! 523: See chapter 6 of the manual (its on-line) for the details of these ! 524: functions. This is a quick summary: ! 525: ! 526: (*process-send 'st_command) ! 527: tells the shell to run the command st_command concurrently, and returns ! 528: a write-only port. Characters written to this port will appear at ! 529: the standard input of st_command. ! 530: example: ! 531: (setq p (*process-send "mail jkf")) ! 532: (print 'HiThere p) ! 533: (close p) ! 534: ! 535: ! 536: (*process-receive 'st_command) ! 537: tells the shell to run st_command concurrently, and returns a ! 538: read-only port. Characters written to the standard output by ! 539: st_command will be available by reading from the given port. ! 540: Characters written on the standard error by st_command will ! 541: appear on lisp's the standard error (the terminal most likely). ! 542: example: ! 543: ; to see if foo is logged in: ! 544: (setq p (*process-receive "u")) ! 545: (do ((user (read p '**eof**) (read p '**eof**))) ! 546: ((eq '**eof** user) (print 'Not-Logged-In)) ! 547: (cond ((eq 'foo user) (print 'Is-Logged-In)))) ! 548: (close p) ! 549: ! 550: ! 551: (*process 'st_command ['g_readp ['g_writep]]) ! 552: this is the general function which process, *process-send and ! 553: *process-receive call. If called with one argument it ! 554: starts the new process and waits for it to end, e.g: ! 555: (*process (concat "vi " filename)) ! 556: In this case *process return the exit code of the process. ! 557: ! 558: The g_readp and g_writep arguments, if given, tell *process to ! 559: run the process concurrently. If g_read is non nil then ! 560: *process will return a port just like *process-receive. ! 561: If g_writep is non-nil, then *process will set up a pipe like ! 562: *process-send. ! 563: *process will return a list of the form ! 564: (readport writeport process-id) ! 565: where readport and writeport will only be a port if g_readp ! 566: or g_writep are non nil. ! 567: ! 568: ! 569: A little know fact about processes is that a process, once started, ! 570: cannot die and disappear until its parent asks about its status. ! 571: Take the mail example given above: ! 572: (setq p (*process-send "mail jkf")) ! 573: (print 'HiThere p) ! 574: (close p) ! 575: after the mail process finishes it work, it will attempt to die, returning ! 576: an integer called the 'exit status'. However until the lisp program ! 577: asks about its status the mail process will remain in existence ! 578: in a Zombie state, somewhere between life and death. ps will show this: ! 579: ! 580: PID TT STAT TIME COMMAND ! 581: 3876 p0 Z 0:01 <exiting> ! 582: ! 583: A user is only allowed a small number of processes, so if you continue ! 584: to generate processes and leave them around as Zombies, you will eventually ! 585: run out of processes. The way to let the Zombie die is to call ! 586: the wait function, e.g. ! 587: -> (wait) ! 588: (3876 . 0) ! 589: -> ! 590: this says that process 3876 died with exit status 0. ! 591: ! 592: Also, when you exit lisp the shell will clean up the Zombies. ! 593: ! 594: If you start a process with (*process "vi foo") then lisp will wait ! 595: for it to complete before continuing, so you don't have to worry about ! 596: Zombies. You only have to worry if you run a process concurrently, ! 597: such as when you use *process-send or *process-receive. ! 598: ! 599: ! 600: ! 601: ! 602: ! 603: ! 604: ! 605: From jkf Tue Oct 12 10:44:22 1982 ! 606: Date: 12-Oct-82 10:43:52-PDT (Tue) ! 607: From: jkf (John Foderaro) ! 608: Subject: lisp opus 38.31 ! 609: Message-Id: <[email protected]> ! 610: Received: by UCBKIM.BERKELEY.ARPA (3.220 [10/11/82]) ! 611: id A29800; 12-Oct-82 10:44:22-PDT (Tue) ! 612: To: local-lisp ! 613: Status: RO ! 614: ! 615: new function: (time-string ['x_time]) ! 616: if given no arguments, it returns the current time as a string. ! 617: ! 618: if given an argument, x_time, then it converts that argument to ! 619: a time string and returns that string. ! 620: The argument should represent the number of seconds since ! 621: Jan 1, 1970 (GMT). ! 622: ! 623: note that this makes (status ctime) obsolete. ! 624: ! 625: ! 626: ! 627: From jkf Tue Oct 12 14:35:26 1982 ! 628: Date: 12-Oct-82 14:34:10-PDT (Tue) ! 629: From: jkf (John Foderaro) ! 630: Subject: also in opus 38.31 ! 631: Message-Id: <[email protected]> ! 632: Received: by UCBKIM.BERKELEY.ARPA (3.220 [10/11/82]) ! 633: id A05086; 12-Oct-82 14:35:26-PDT (Tue) ! 634: To: local-lisp ! 635: Status: RO ! 636: ! 637: If top-level-read is set to a non nil value, then the lisp ! 638: top level will funcall it to read a form for evaluation. ! 639: It will be funcalled with two arguments, a port and an eof marker. ! 640: top-level-read will be used in break levels too. ! 641: Be very careful when setting top-level-read because if you set it ! 642: to an illegal value, there is no way to correct it. ! 643: ! 644: ! 645: ! 646: ! 647: ! 648: From jkf Tue Oct 19 18:54:18 1982 ! 649: Date: 19-Oct-82 18:54:02-PDT (Tue) ! 650: From: jkf (John Foderaro) ! 651: Subject: lisp tags ! 652: Message-Id: <[email protected]> ! 653: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82]) ! 654: id A00195; 19-Oct-82 18:54:18-PDT (Tue) ! 655: To: franz-friends ! 656: Status: RO ! 657: ! 658: We also use vi style tags so emacs users and vi users can share the same ! 659: tags file. Rather than modify ctags, we use this shell script: ! 660: ! 661: #!/bin/csh ! 662: # make a tags file for lisp source files. ! 663: # use: ! 664: # lisptags foo.l bar.l baz.l ... bof.l ! 665: # generate the file 'tags' ! 666: # ! 667: awk -f /usr/local/lib/ltags $* | sort > tags ! 668: ! 669: ! 670: where the file /usr/local/lib/ltags is ! 671: ! 672: /^\(DEF/ { print $2 " " FILENAME " ?^" $0 "$?" } ! 673: /^\(def/ { print $2 " " FILENAME " ?^" $0 "$?" } ! 674: ! 675: ! 676: ! 677: From jkf Tue Oct 19 22:50:40 1982 ! 678: Date: 19-Oct-82 22:50:29-PDT (Tue) ! 679: From: jkf (John Foderaro) ! 680: Subject: Lisp Opus 38.32, Liszt 8.14 ! 681: Message-Id: <[email protected]> ! 682: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82]) ! 683: id A03968; 19-Oct-82 22:50:40-PDT (Tue) ! 684: To: local-lisp ! 685: Status: RO ! 686: ! 687: ! 688: Topic 1: ! 689: liszt can now autoload macros. If liszt encounters a symbol without ! 690: a function definition but with a macro-autoload indicator on the ! 691: property list, then the value of the indicator is a file to load which ! 692: should define the macro. ! 693: ! 694: The interpreter's undefined function handler will also look for ! 695: macro-autoload properties, thus you needn't give a symbol both an ! 696: autoload and a macro-autoload property. ! 697: ! 698: The default lisp contains macro-autoload properties for the macros ! 699: defstruct, loop and defflavor. ! 700: ! 701: Topic 2: ! 702: It is now possible to define 'compiler only macros' or cmacros. ! 703: A cmacro acts like a normal macro, but will only be used by the ! 704: compiler. A cmacro is stored on the property list of a ! 705: symbol under the indicator 'cmacro'. Thus a function can ! 706: have a normal definition and a cmacro definition. ! 707: The macro 'defcmacro' has a syntax identical to 'defmacro' and ! 708: creates cmacros instead of macros. ! 709: For an example of the use of cmacros, see the definitions ! 710: of nthcdr and nth in /usr/lib/lisp/common2.l ! 711: ! 712: Topic 3: ! 713: If the form (foo ...) is macro expanded and the result also begins ! 714: with the symbol foo, then liszt will stop macro expanding (previously ! 715: it got into an infinite loop). ! 716: ! 717: Topic 4: ! 718: The function nth has been added to Franz. ! 719: (nth 'x_index 'l_list) ! 720: returns the nth element of l_list, where the car of the list ! 721: is accessed with (nth 0 'l_list) ! 722: ! 723: The macros (push 'g_value 'g_stack), and ! 724: (pop 'g_stack ['g_into]) ! 725: have been added to franz. ! 726: typical uses ! 727: (setq foo nil) ! 728: (push 'xxx foo) ! 729: (push 123 foo) ! 730: now foo = (123 xxx) ! 731: (pop foo) returns 123 ! 732: now foo = (xxx) ! 733: (pop foo yyy) returns xxx and sets yyy to xxx ! 734: ! 735: ! 736: Topic 5: ! 737: The version of Flavors written at Mit for Franz have been transported ! 738: here. Flavors is a system for doing object oriented programming in ! 739: lisp. The documentation for flavors in the Lisp Machine manual ! 740: from Mit. Since Lisp Machine manuals are rather scarce around here, ! 741: perhaps we can find someone to make copies of the flavor chapter for ! 742: those interested in it. There is a description of the unique ! 743: features of the Franz Flavors in /usr/lib/lisp/flavors.usage. ! 744: As mentioned above, the flavors code will be autoloaded ! 745: when you call 'defflavor' for the first time. ! 746: Our local flavors expert is Eric Cooper (r.ecc). ! 747: ! 748: ! 749: ! 750: ! 751: ! 752: ! 753: ! 754: From jkf Fri Oct 22 15:46:51 1982 ! 755: Date: 22-Oct-82 15:46:32-PDT (Fri) ! 756: From: jkf (John Foderaro) ! 757: Subject: lisp opus 38.34 ! 758: Message-Id: <[email protected]> ! 759: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82]) ! 760: id A05610; 22-Oct-82 15:46:51-PDT (Fri) ! 761: To: local-lisp ! 762: Status: RO ! 763: ! 764: ! 765: Franz lisp now has a form of closure called an fclosure. A fclosure is a ! 766: compromise between a funarg and the type of functional object that we ! 767: currently have in Franz. In this short note, I'll explain through examples ! 768: what fclosures are and where you might use them, and finally describe the new ! 769: functions. The fclosure system was designed to be compatible with the Lisp ! 770: Machine closures, so you may want to look at a Lisp Machine manual for more ! 771: information. fclosure are related to closures in this way: ! 772: (fclosure '(a b) 'foo) <==> (let ((a a) (b b)) (closure '(a b) 'foo)) ! 773: ! 774: A example of the use of fclosures: ! 775: ! 776: ->(setq counter 0) ! 777: 0 ! 778: ->(setq x (fclosure '(counter) '(lambda (val) (setq counter (+ val counter))))) ! 779: fclosure[1] ! 780: ! 781: The function 'fclosure' creates a new type of object called a fclosure. ! 782: A fclosure object contains a functional object, and a set of symbols and ! 783: values for the symbols. In the above example, the fclosure functional ! 784: object is (lambda (val) (setq counter (+ val counter))) ! 785: and the set of symbols and values just contains the symbol 'counter' and ! 786: zero, the value of counter when the fclosure was created. ! 787: ! 788: When a fclosure is funcall'ed: ! 789: 1) the lisp system lambda binds the symbols in the fclosure to their ! 790: values in the fclosure. ! 791: 2) it continues the funcall on the functional object of the fclosure ! 792: 3) finally it un-lambda binds the symbols in the fclosure and at the ! 793: same time stores the current values of the symbols in the fclosure. ! 794: ! 795: To see what that means, let us continue the example: ! 796: -> (funcall x 32) ! 797: 32 ! 798: -> (funcall x 21) ! 799: 53 ! 800: ! 801: Notice that the fclosure is saving the value of the symbol 'counter'. ! 802: Each time a fclosure is created, new space is allocated for saving ! 803: the values of the symbols. ! 804: If we executed the same fclosure function: ! 805: ->(setq y (fclosure '(counter) '(lambda (val) (setq counter (+ val counter))))) ! 806: fclosure[1] ! 807: ! 808: We now have two independent counters: ! 809: -> (funcall y 2) ! 810: 2 ! 811: -> (funcall y 12) ! 812: 14 ! 813: -> (funcall x 3) ! 814: 56 ! 815: ! 816: To summarize: ! 817: ! 818: (fclosure 'l_vars 'g_funcobj) ! 819: l_vars is a list of symbols (not containing nil) ! 820: g_funcobj is lambda expression or a symbol or another fclosure ! 821: ! 822: examples: (fclosure '(foo bar baz) 'plus) ! 823: (fclosure '(a b) #'(lambda (x) (plus x a))) notice the #' ! 824: which will make the compiler compile the ! 825: lambda expression. ! 826: ! 827: ! 828: There are time when you want to share variables between fclosures. ! 829: This can be done if the fclosures are created at the time times using ! 830: fclosure-list: ! 831: ! 832: (fclosure-list 'l_vars1 'g_funcobj1 ['l_vars2 'g_funcobj2 ... ...]) ! 833: This creates a list of closures such that if a symbol appears in ! 834: l_varsN and l_varsM then its value will be shared between the ! 835: closures associated with g_funcobjN and g_funcobjM. ! 836: ! 837: example: -> (setq x (fclosure-list '(a) '(lambda (y) (setq a y)) ! 838: '(c a) '(lambda () (setq c a)))) ! 839: (fclosure[4] fclosure[7]) ! 840: -> (funcall (car x) 123) ; set the value of a in the 1st fclosure ! 841: 123 ! 842: -> (funcall (cadr x)) ; read the same value in the 2nd fclosure ! 843: 123 ! 844: ! 845: ! 846: Other fclosure functions: ! 847: ! 848: (fclosure-alist 'c_fclosure) ! 849: returns an assoc list giving the symbols and values in the fclosure ! 850: ! 851: (fclosurep 'g_obj) ! 852: returns t iff g_obj is a fclosure ! 853: ! 854: (fclosure-function 'c_fclosure) ! 855: returns the functional object of the fclosure ! 856: ! 857: ! 858: ! 859: Note: If a throw (or error) occurs during the evaluation of a fclosure, ! 860: which passes control out of the fclosure, then current values of the ! 861: symbols will not be stored. This may be a bug. We could set up ! 862: an unwind-protect, but it would then take longer to funcall ! 863: a fclosure. If you think an unwind protect is important, let me know. ! 864: ! 865: Note 2: you can also 'apply' a fclosure. ! 866: ! 867: ! 868: ! 869: ! 870: ! 871: ! 872: From jkf Sat Oct 23 08:58:07 1982 ! 873: Date: 23-Oct-82 08:57:53-PDT (Sat) ! 874: From: jkf (John Foderaro) ! 875: Subject: more on closures ! 876: Message-Id: <[email protected]> ! 877: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82]) ! 878: id A21572; 23-Oct-82 08:58:07-PDT (Sat) ! 879: To: local-lisp ! 880: Status: RO ! 881: ! 882: I sent the maryland people the flavors.usage file from mit so that they ! 883: could compare their implementation with mit's. What follows is their ! 884: analysis. Some of the differences between the two versions is due to ! 885: different schemes for getting around the fact that franz didn't have a form ! 886: of closure. RZ has indicated that now that franz has fclosures, it may be ! 887: possible to use more of the 'official' lisp machine flavor code. fclosures ! 888: will probably affect the maryland implementation too: ! 889: Date: 22 Oct 82 15:39:18 EDT (Fri) ! 890: From: Liz Allen <liz.umcp-cs@UDel-Relay> ! 891: Subject: flavors ! 892: To: jkf at Ucb-C70 ! 893: Via: UMCP-CS; 23 Oct 82 9:09-EDT ! 894: ! 895: Wow, implementing closure in one day is amazing. We had thought ! 896: about writing some kind of closure... We've been discussing how ! 897: having closures would affect our code. It might make it easier to ! 898: read and modify, but it might be less efficient. Can you tell us ! 899: how your implementation works and what it looks like to a user? ! 900: ! 901: About the MIT implementation. Ours is probably better in a couple ! 902: of respects but probably loses a couple of places, too. Pros: ! 903: ! 904: 1. With ours, there is no need to discard instances when ! 905: redefining a flavor. The only time this would be necessary ! 906: is if the instance variables change which rarely happens ! 907: since methods change much more often than the instance ! 908: variables. Without a structure editor, you tend to reload the ! 909: file containing flavors in order to change a method. ! 910: ! 911: 2. We can compile files with flavors (he didn't say if you ! 912: can compile MIT's Franz flavors) and when they are compiled ! 913: they run *fast*. Most of the overhead occurs at combine ! 914: time and compiled flavors shouldn't have to be recombined. ! 915: ! 916: 3. We use hunks to store instance variables (actually, an ! 917: instance is a hunk whose cxr 0 is the name of the flavor and ! 918: whose cxr n (> 0) are the values of instance variables). We ! 919: pay a price at combine time since instance variable references ! 920: in method code are replaced with cxr and rplacx calls (but MIT ! 921: pays the same price in putting hash calls in the methods), but ! 922: we win over MIT since the cxr calls are much faster than the ! 923: hash table calls. We do have to have "ghost" methods which ! 924: are copies of methods containing different cxr calls when the ! 925: referenced variables of a method don't align in flavors ! 926: which inherit the method. This, however, happens only ! 927: rarely. ! 928: ! 929: 4. We handle getting and setting instance variables better ! 930: than the MIT implementation -- we don't need to send a message ! 931: and the syntax is much better. We recently added the ! 932: functions << and >> which get and set instance variables, eg: ! 933: ! 934: (<< foo 'instance-var) ! 935: and ! 936: (>> foo 'instance-var 'value) ! 937: ! 938: where foo is a flavor instance. ! 939: ! 940: 5. Our describe function has a hook which (if the variable ! 941: *debugging-flavors* is set to non-nil) allows the user to ! 942: follow pointers to any instances referenced in the describe. ! 943: This is done by assigning to a variable (made from its unique ! 944: id) the value of the instance. ! 945: ! 946: Cons: ! 947: ! 948: 1. They implement more things from Lisp Machine flavors ! 949: (like wrappers/whoppers, init-keywords), but we really haven't ! 950: found the need for them. We implement less closely to LM ! 951: flavors, but in a way that's better suited to Franz Lisp. ! 952: ! 953: 2. We didn't implement the method table as a hash table, but ! 954: there's no reason why we couldn't. ! 955: ! 956: 3. Things we don't have, but could easily implement include: ! 957: describe-method, defun-method/declare-flavor-instance-variables, ! 958: and storing flavor information in hunks instead of on the ! 959: property lists. ! 960: ! 961: 4. We don't handle method types like :and and :or. We just ! 962: have primary/untyped methods and :before and :after daemons. ! 963: ! 964: We have people reading our documentation. After we get some feedback ! 965: from them, we'll send the tape and docs to you. That should be early ! 966: next week. ! 967: ! 968: -Liz Allen and Randy Trigg ! 969: ! 970: ! 971: ! 972: ! 973: ! 974: ! 975: ! 976: From jkf Mon Oct 25 12:56:59 1982 ! 977: Date: 25-Oct-82 12:55:44-PDT (Mon) ! 978: From: jkf (John Foderaro) ! 979: Subject: lisp Opus 38.35, liszt 8.15 ! 980: Message-Id: <[email protected]> ! 981: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82]) ! 982: id A17542; 25-Oct-82 12:56:59-PDT (Mon) ! 983: To: local-lisp ! 984: Status: RO ! 985: ! 986: ! 987: New features: ! 988: 1) tilde-expansion: franz will now expand filenames which begin with ~ ! 989: just like csh does. It will only do the expansion if ! 990: the symbol tilde-expansion has a non-nil value. The default ! 991: value for tilde-expansion is t. ! 992: These functions do tilde expansion: If I've left any out, let ! 993: me know: ! 994: load, fasl, infile, outfile, fileopen, probef, cfasl, ffasl, chdir ! 995: sys:access, sys:unlink [these are new functions, see below] ! 996: ! 997: 2) liszt will remove its temporary file if given a SIGTERM signal ! 998: (SIGTERM is sent by default when you give the kill command from the shell) ! 999: ! 1000: 3) load will now print a helpful message if an read error occurs when it ! 1001: is reading a file. ! 1002: ! 1003: 4) new functions: ! 1004: ! 1005: (lexpr-funcall 'function 'arg1 ... 'argn) ! 1006: This is a cross between funcall and apply. ! 1007: The last argument, argn, must be a list (possibly empty). ! 1008: The element of list argn are stacked and then the function is ! 1009: funcalled. ! 1010: For example: ! 1011: (lexpr-funcall 'list 'a 'b 'c '(d e f)) ! 1012: is the same as ! 1013: (funcall 'list 'a 'b 'c 'd 'e 'f) ! 1014: ! 1015: Also ! 1016: (lexpr-funcall 'list 'a 'b 'c nil) ! 1017: is the same as ! 1018: (funcall 'list 'a 'b 'c) ! 1019: ! 1020: (tilde-expand 'st_filename) ! 1021: returns: symbol whose pname is the filename, with a leading tilde ! 1022: expanded. if st_filename doesn't begin with a tilde, it ! 1023: just returns st_filename ! 1024: ! 1025: (username-to-dir 'st_name) ! 1026: returns: the home directory of the given user, if that user exists. ! 1027: Saves old information so doesn't have to keep searching ! 1028: the passwd file. ! 1029: ! 1030: Some low level system functions. These are listed here for completeness. ! 1031: The perform a function from the unix library (see the unix manual ! 1032: for details). ! 1033: (sys:getpwnam 'st_username) ! 1034: return passwd file info. ! 1035: (sys:access 'st_file 'x_mode) ! 1036: (sys:unlink 'st_file) ! 1037: ! 1038: ! 1039: Bug fixes: ! 1040: 1) patom will handle prinlevel and prinlength correctly. ! 1041: 2) it is now safe for an interpreted function to redefine itself. ! 1042: 3) the information return by 'evalframe' about a funcall'ed function ! 1043: is now correct. ! 1044: ! 1045: ! 1046: ! 1047: ! 1048: ! 1049: ! 1050: From jkf Mon Oct 25 14:57:00 1982 ! 1051: Date: 25-Oct-82 14:56:25-PDT (Mon) ! 1052: From: jkf (John Foderaro) ! 1053: Subject: 'if' macro: request for comments ! 1054: Message-Id: <[email protected]> ! 1055: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82]) ! 1056: id A21567; 25-Oct-82 14:57:00-PDT (Mon) ! 1057: To: local-lisp ! 1058: Status: RO ! 1059: ! 1060: Would anyone object if we added a macro called 'if' to the default franz ! 1061: system? 'if' is a common name and I want to make sure that it doesn't ! 1062: break any existing code before I add it. ! 1063: ! 1064: Some background: ! 1065: At mit the 'if' macro is used all over the place. ! 1066: Its form is ! 1067: (if <predicate> <then-expr> [ <else-expr>]) ! 1068: ! 1069: I've always felt that macros should make the code more readable and ! 1070: that the 'if' macro makes code more obscure because it isn't easy ! 1071: to tell in complicated 'if' expressions where the <then-expr> ! 1072: and <else-expr>'s begin. Also, there is no provision for ! 1073: an 'elseif' expression. ! 1074: ! 1075: I wrote a macro called 'If' which uses keywords to separate clauses. ! 1076: (If <pred> ! 1077: then <then-expr> ! 1078: [elseif <pred> then <then-expr>]* ! 1079: [else <else-expr>]) ! 1080: ! 1081: These two macros are not incompatible. one macro could do the job ! 1082: of both. There is an ambigous case: ! 1083: (if p then x) could be (cond (p then) (t x)) ! 1084: or (cond (p x)) ! 1085: but it isn't likely that 'if' macro users would write something like ! 1086: that. ! 1087: ! 1088: Thus I propose that we add a macro, if, which act's like 'If' if ! 1089: its second arg is 'then' or like 'if' it the second arg is not 'then' ! 1090: and there are two or three arguments. Other cases would cause ! 1091: an error. ! 1092: ! 1093: ! 1094: ! 1095: ! 1096: ! 1097: From jkf Mon Oct 25 22:37:24 1982 ! 1098: Date: 25-Oct-82 22:37:09-PDT (Mon) ! 1099: From: jkf (John Foderaro) ! 1100: Subject: opus 38.36 ! 1101: Message-Id: <[email protected]> ! 1102: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82]) ! 1103: id A01666; 25-Oct-82 22:37:24-PDT (Mon) ! 1104: To: local-lisp ! 1105: Status: RO ! 1106: ! 1107: I've added the 'if' macro to franz. If you have any objections, it is still ! 1108: not too late to voice them. ! 1109: I've also defined 'If' to be the same as 'if'. ! 1110: ! 1111: As I mentioned in my earlier request for comments, the 'if' macro is a ! 1112: cross between the mit version and a locally written version using keywords. ! 1113: The following documentation describes the various forms. ! 1114: As you know, you can test out the 'if' macro by using apply. for example: ! 1115: ! 1116: => (apply 'if '(if a then b c elseif d thenret else e)) ! 1117: (cond (a b c) (d) (t e)) ! 1118: ! 1119: ! 1120: ; ! 1121: ; This macro is compatible with both the crufty mit-version and ! 1122: ; the keyword version at ucb. ! 1123: ; ! 1124: ; simple summary: ! 1125: ; non-keyword use: ! 1126: ; (if a b) ==> (cond (a b)) ! 1127: ; (if a b c d e ...) ==> (cond (a b) (t c d e ...)) ! 1128: ; with keywords: ! 1129: ; (if a then b) ==> (cond (a b)) ! 1130: ; (if a thenret) ==> (cond (a)) ! 1131: ; (if a then b c d e) ==> (cond (a b c d e)) ! 1132: ; (if a then b c else d) ==> (cond (a b c) (t d)) ! 1133: ; (if a then b c elseif d thenret else g) ! 1134: ; ==> (cond (a b c) (d) (t g)) ! 1135: ; ! 1136: ; ! 1137: ; ! 1138: ; ! 1139: ; In the syntax description below, ! 1140: ; optional parts are surrounded by [ and ], ! 1141: ; + means one or more instances. ! 1142: ; | means 'or' ! 1143: ; <expr> is an lisp expression which isn't a keyword ! 1144: ; The keywords are: then, thenret, else, elseif. ! 1145: ; <pred> is also a lisp expression which isn't a keyword. ! 1146: ; ! 1147: ; <if-stmt> ::= <simple-if-stmt> ! 1148: ; | <keyword-if-stmt> ! 1149: ; ! 1150: ; <simple-if-stmt> ::= (if <pred> <expr>) ! 1151: ; | (if <pred> <expr> <expr>) ! 1152: ; ! 1153: ; <keyword-if-stmt> ::= (if <pred> <then-clause> [ <else-clause> ] ) ! 1154: ; ! 1155: ; <then-clause> ::= then <expr>+ ! 1156: ; | thenret ! 1157: ; ! 1158: ; <else-clause> ::= else <expr>+ ! 1159: ; | elseif <pred> <then-clause> [ <else-clause> ] ! 1160: ! 1161: ! 1162: ! 1163: ! 1164: ! 1165: ! 1166: From jkf Tue Oct 26 09:20:25 1982 ! 1167: Date: 26-Oct-82 09:20:04-PDT (Tue) ! 1168: From: jkf (John Foderaro) ! 1169: Subject: no more jkfmacs ! 1170: Message-Id: <[email protected]> ! 1171: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82]) ! 1172: id A11552; 26-Oct-82 09:20:25-PDT (Tue) ! 1173: To: local-lisp ! 1174: Status: RO ! 1175: ! 1176: ! 1177: Since Franz now has the push, pop, if and msg macros, there is no ! 1178: reason for jkfmacs to exist. I've removed the code in jkfmacs and ! 1179: replaced it with a warning message which will be printed if you load it. ! 1180: If you used the jkfmacs version of 'push' you will have to go through ! 1181: your code and switch the order of arguments. The Franz version is ! 1182: (push value stack) ! 1183: Also, the unpush macro, defined in jkfmacs, no longer exists: just use ! 1184: pop with one argument. ! 1185: ! 1186: ! 1187: ! 1188: From jkf Wed Oct 27 20:35:07 1982 ! 1189: Date: 27-Oct-82 20:34:25-PDT (Wed) ! 1190: From: jkf (John Foderaro) ! 1191: Subject: liszt 8.16 ! 1192: Message-Id: <[email protected]> ! 1193: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82]) ! 1194: id A27561; 27-Oct-82 20:35:07-PDT (Wed) ! 1195: To: local-lisp ! 1196: Status: RO ! 1197: ! 1198: Back on May 6, a modification to liszt was made which turned 'declare' ! 1199: into a user callable function which provided information to the compiler. ! 1200: The purpose of the change was to permit one to 'load' a file containing ! 1201: declarations, instead of 'include'ing it. It turns out that this was a bad ! 1202: idea since if the compiler were to evaluate an interpreted function with ! 1203: local declarations, it would assume that those local declarations were ! 1204: describing the current file being compiled. ! 1205: Thus declare has it old meaning: it is a no-op unless the compiler is ! 1206: compiling the form. If one really wants to actively declare something, ! 1207: we've added the function 'liszt-declare', which looks just like declare ! 1208: but can be evaluated within the compiler. ! 1209: ! 1210: If you are confused by all this, don't worry. There is very little chance ! 1211: that it will affect you. ! 1212: ! 1213: ! 1214: ! 1215: From jkf Fri Oct 29 09:34:11 1982 ! 1216: Date: 29-Oct-82 09:33:59-PDT (Fri) ! 1217: From: jkf (John Foderaro) ! 1218: Subject: cmacros ! 1219: Message-Id: <[email protected]> ! 1220: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82]) ! 1221: id A08411; 29-Oct-82 09:34:11-PDT (Fri) ! 1222: To: local-lisp ! 1223: Status: RO ! 1224: ! 1225: A week ago, Joe Faletti mentioned that one problem with cmacros is that if ! 1226: you redefine a function, the cmacro property stays around and thus the ! 1227: redefinition of the function isn't communicate to the compiler. ! 1228: He suggested that whenever a function is defined (via 'def' or when fasl'ed ! 1229: in) any cmacro properties should be remprop'ed. I've been trying to think ! 1230: of an alternative to this, but I can't think of one. Unless someone ! 1231: has a better idea, I'll implement his suggestion. ! 1232: This means that if you want to define the function 'foo' and a cmacro for ! 1233: 'foo', the cmacro definition must appear later in the file than 'foo's ! 1234: definition. ! 1235: ! 1236: ! 1237: ! 1238: ! 1239: From jkf Fri Oct 29 10:11:36 1982 ! 1240: Date: 29-Oct-82 10:10:54-PDT (Fri) ! 1241: From: jkf (John Foderaro) ! 1242: Subject: LetS: An Expressional Loop Notation ! 1243: Message-Id: <[email protected]> ! 1244: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82]) ! 1245: id A09176; 29-Oct-82 10:11:36-PDT (Fri) ! 1246: To: local-lisp ! 1247: Status: RO ! 1248: ! 1249: I've got a copy of a paper by Richard Waters (at mit) describing a system ! 1250: for writing loops in lisp (and other languages). Basically you describe the ! 1251: loop in functional programming terms (similar to Backus's FP, or apl) and ! 1252: the LetS package converts it into an iterative form for efficient execution ! 1253: in lisp. ! 1254: We don't have the LetS code here to play with, and we probably won't be ! 1255: able to get it for a while since our arpanet connection is hopelessly ! 1256: clogged for anything but tiny messages. However you might be interested in ! 1257: stopping by my office and looking at the paper. ! 1258: ! 1259: ! 1260: ! 1261: ! 1262: From jkf Fri Oct 29 12:06:47 1982 ! 1263: Date: 29-Oct-82 12:06:08-PDT (Fri) ! 1264: From: jkf (John Foderaro) ! 1265: Subject: Re: cmacros ! 1266: Message-Id: <[email protected]> ! 1267: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82]) ! 1268: id A12141; 29-Oct-82 12:06:47-PDT (Fri) ! 1269: To: baden, local-lisp ! 1270: In-Reply-To: Your message of 29 Oct 1982 1159-PDT (Friday) ! 1271: Status: RO ! 1272: ! 1273: I could make it a 'Note'. I would prefer not to make it a warning because ! 1274: such redefinition is guaranteed to occur when the compiler compiles itself ! 1275: and the lisp code part of the lisp system. ! 1276: ! 1277: ! 1278: ! 1279: From fateman Sat Oct 30 09:17:49 1982 ! 1280: To: franz-friends ! 1281: Subject: fugue # 2 ! 1282: Status: RO ! 1283: ! 1284: FUGUE Notes ! 1285: ! 1286: An occasional publication of the ! 1287: Franz Lisp User Group under Unix and Eunice (FUGUE) ! 1288: ! 1289: Number 2 (October, 1982) ! 1290: edited by Richard J. Fateman ! 1291: University of California ! 1292: Berkeley CA 94720 ! 1293: USA ! 1294: fateman@berkeley ! 1295: ! 1296: 1. Welcome! ! 1297: ! 1298: It seems about time to publish the second of these ! 1299: newsletters, since we have accumulated a number of new ! 1300: items. We would also like to relay to others such informa- ! 1301: tion as has been forwarded to us. The reports of projects at ! 1302: Berkeley (and elsewhere) may strike sympathetic chords with ! 1303: other research. ! 1304: ! 1305: 2. New programs ! 1306: ! 1307: 2.1. OPS-5 ! 1308: ! 1309: OPS-5 is a "production system" written by Charles Forgy ! 1310: of CMU. It appears to work just fine in Franz, and is in ! 1311: wide use. Interested persons may obtain copies of documen- ! 1312: tation and the program from Charles.Forgy@CMU-10A. ( Charles ! 1313: Forgy, Computer Science Department, Carnegie-Mellon Univer- ! 1314: sity, Pittsburgh, PA 15213) ! 1315: ! 1316: It is their policy to send it to anyone who wants it free of ! 1317: charge. ! 1318: ! 1319: 2.2. GLISP ! 1320: ! 1321: GLISP is a system which provides interesting linguistic ! 1322: features for generic operations and data abstraction. Writ- ! 1323: ten by Gordon Novak at Stanford University, it was origi- ! 1324: nally developed for Interlisp, but has been ported to other ! 1325: lisps, including Franz. ! 1326: ! 1327: 2.3. Flavors ! 1328: ! 1329: There are now two distinct implementations, apparently ! 1330: with identical functionally, of "flavors" as appearing in ! 1331: the MIT Lisp Machine software. One is described in TR-1174, ! 1332: ____________________ ! 1333: 9 UNIX, Eunice, Franz Lisp, may be trademarks of Bell Labs, ! 1334: SRI Int'l, and Univ. of Calif. ! 1335: ! 1336: ! 1337: ! 1338: 9 ! 1339: ! 1340: ! 1341: ! 1342: ! 1343: ! 1344: ! 1345: ! 1346: ! 1347: ! 1348: ! 1349: "Franz Flavors" by Richard J. Wood (Dept of C.S., Univ. of ! 1350: Maryland, College Pk, MD 20742). The other was written by ! 1351: Juan R. Loaiza of MIT, Laboratory for Computer Science. We ! 1352: have a copy of the latter on-line here, and expect to ! 1353: receive a copy of the Maryland one, shortly. Eric Cooper ! 1354: here at Berkeley is in charge of the flavors situation. ! 1355: ! 1356: There is an implementation of closures, mostly compati- ! 1357: ble with the Lisp Machine specification, announced by John ! 1358: Foderaro for Opus 38.33. The incompatibility is a result of ! 1359: what we perceive to be a high performance penalty for eso- ! 1360: terica. ! 1361: ! 1362: 2.4. Database Interfaces ! 1363: ! 1364: Jim Larus at UCB has cooked up interfaces to both the ! 1365: INGRES relational database system, and the simpler TROLL ! 1366: database system. These will be described in his forthcoming ! 1367: MS report, along with the next item. ! 1368: ! 1369: 2.5. Cursor-control and Menus ! 1370: ! 1371: Larus has provided an implementation of screen manage- ! 1372: ment which uses the UNIX "curses" package for primitive win- ! 1373: dow management. A menu-based interface has also been ! 1374: developed as part of this. ! 1375: ! 1376: 2.6. Vaxima and Algebraic Manipulation ! 1377: ! 1378: A new version of vaxima, the VAX version of the MACSYMA ! 1379: algebraic manipulation system, was released in July by UCB, ! 1380: incorporating some bug fixes, improved programs, and a large ! 1381: number of user-contributed subroutine libraries. This was ! 1382: made available to test-site licensees. Unfortunately, MIT ! 1383: has suspended new test-site licensing since about April, ! 1384: 1982. We hope that MIT will be liberalizing its distribu- ! 1385: tion policy to non-commercial sites. ! 1386: ! 1387: See the note below about MACSYMA being sold. ! 1388: ! 1389: As a counterpoint to this, UC Berkeley has received a ! 1390: substantial grant from the System Development Foundation for ! 1391: work on Mathematical Representation and Manipulation, which ! 1392: should result in some more advanced systems for application ! 1393: of computers to symbolic mathematics. Recruiting for ! 1394: researchers, staff, and students is underway now, and ! 1395: interested persons should contact Richard Fateman. ! 1396: ! 1397: 2.7. VLSI Design Rule Checker ! 1398: ! 1399: Lyra, written in Lisp by Michael Arnold, is a retarget- ! 1400: able, hierarchical, design rule checker for VLSI circuits. ! 1401: Lyra features a rule compiler (also written in Lisp of ! 1402: ! 1403: ! 1404: ! 1405: ! 1406: ! 1407: ! 1408: ! 1409: ! 1410: ! 1411: ! 1412: ! 1413: ! 1414: ! 1415: course!) which translates symbolic design rule descriptions ! 1416: to lisp code for checking the rules. Lyra was used for the ! 1417: RISC project. It is currently being used extensively at ! 1418: Berkeley, and will be included in the Fall-82 distribution ! 1419: of of the Berkeley CAD tools. For more information contact ! 1420: Michael Arnold or John Ousterhout at Berkeley. ! 1421: ! 1422: 2.8. Generic Arithmetic ! 1423: ! 1424: As a proposed extension to Franz arithmetic, Richard ! 1425: Fateman, Keith Sklower and Scott Morrison, have written a ! 1426: simple-minded generic arithmetic package which includes ! 1427: modules which can be loaded to support exact rational arith- ! 1428: metic, software-simulated IEEE extended arithmetic, arbi- ! 1429: trary precision floating point, complex, interval, and mul- ! 1430: tivariate polynomial. Combinations of some of these are sup- ! 1431: ported, although the package is as yet incomplete in some ! 1432: areas. The IEEE arithmetic simulation is written in C. ! 1433: These packages are probably not in good enough shape for ! 1434: casual use by others. ! 1435: ! 1436: ! 1437: 3. New features ! 1438: ! 1439: Various performance enhancements and bug fixes have ! 1440: been incorporated in versions of Franz (now on Opus 38.33 ! 1441: and the compiler, Liszt 8.14) These are mentioned in brief ! 1442: here; more details accompany updates of the system and ! 1443: manual included in the forthcoming Berkeley 4.2BSD UNIX dis- ! 1444: tribution. ! 1445: ! 1446: 3.1. Franz ! 1447: ! 1448: We added a switch to cause the evaluator to save macro ! 1449: expansions so they need only be expanded once. ! 1450: ! 1451: We added vector and vector-immediate data types. ! 1452: ! 1453: We rewrote showstack and backtrace so they are easier ! 1454: to use. ! 1455: ! 1456: We made the lisp to foreign function interface more ! 1457: secure. The system now allows foreign function to call lisp ! 1458: functions. ! 1459: ! 1460: We added closures and support flavors, features from ! 1461: the Lisp Machine. ! 1462: ! 1463: 3.2. Liszt ! 1464: ! 1465: Liszt will check the number of arguments to system ! 1466: functions and user defined functions. ! 1467: 9 ! 1468: ! 1469: 9 ! 1470: ! 1471: ! 1472: ! 1473: ! 1474: ! 1475: ! 1476: ! 1477: ! 1478: ! 1479: ! 1480: Liszt supports local declarations. ! 1481: ! 1482: Liszt will automatically compile lambda expressions ! 1483: headed by the function `function'. ! 1484: ! 1485: Liszt supports compiler-only macros and will autoload ! 1486: macros if necessary. ! 1487: ! 1488: 4. MC68000 ! 1489: ! 1490: Keith Sklower and Kevin Layer have been working on the ! 1491: MC68000 version of Franz under the UNIX operating system ! 1492: (using a DUAL System 83). While the current configuration is ! 1493: a swapping system, the Lisp should be able to use the full ! 1494: address space of the CPU. We expect to have this system run- ! 1495: ning on the UNIX 4.2 BSD SUN software, too. The base system ! 1496: on the DUAL, including the interpreter, reader, bignums, ! 1497: fasl, works; the compiler is being perfected. ! 1498: ! 1499: ! 1500: 5. Other Lisps ! 1501: ! 1502: We now have, in-house tried 4 (other) VAX UNIX lisp ! 1503: systems: YLISP, Interlisp, PSL, and VLISP. We know that ! 1504: Interlisp can run also on VMS using the Eunice package. ! 1505: Interested parties can contact David Dyer at USC-ISI. There ! 1506: is also a version of lisp which runs on VMS only, namely ! 1507: NIL, from MIT, which appears to be undergoing limited dis- ! 1508: tribution. Two other lisps under development under UNIX are ! 1509: Yale's answer to NIL, namely "T", and Common Lisp, from CMU ! 1510: and friends. ! 1511: ! 1512: Counting Franz, that makes 7 lisp systems for the VAX ! 1513: computer line. Not counting variants on 2 operating systems. ! 1514: A Paen to standardization. ! 1515: ! 1516: Dick Gabriel states some useful principles for com- ! 1517: parisons in the conference record of the 1982 ACM Lisp and ! 1518: Functional Programming Conference, which was held in August. ! 1519: We understand he now has a collection of some 18 programs ! 1520: which he is continuing to time on various systems. ! 1521: ! 1522: 6. Work in Progress ! 1523: ! 1524: 6.1. BITGRAPH SUN AED-512 ! 1525: ! 1526: Greg Foster at UCB is working on raster-graphics sup- ! 1527: port in Franz for the 800 by 1000 b/w raster displays of the ! 1528: BBN Bitgraph and/or the SUN Workstation, and possibly the ! 1529: color 512 by 512 AED system. We are probably going to han- ! 1530: dle mice and Bitpad (stylus) input for pointing. There are ! 1531: lots of projects we hear about with similar systems, e.g. ! 1532: just recently from the University of Maryland, using UNIX ! 1533: ! 1534: ! 1535: ! 1536: ! 1537: ! 1538: ! 1539: ! 1540: ! 1541: ! 1542: ! 1543: ! 1544: ! 1545: ! 1546: and multiplexed files for window management of a 68000-based ! 1547: home-grown workstation. ! 1548: ! 1549: 6.2. RISC-LISP ! 1550: ! 1551: Yes, Reduced Instruction Set Computer fans, who else ! 1552: but UCB would be so bold... Carl Ponder is examining the ! 1553: issues involved in constructing a fast lisp interpreter and ! 1554: compiler for the RISC architecture. You see, we have all ! 1555: these chips... ! 1556: ! 1557: ! 1558: 7. Work Contemplated ! 1559: ! 1560: 7.1. Fast Number Compiler ! 1561: ! 1562: Undergraduate Jeff Cohen at Berkeley is starting to ! 1563: look at this. There are several industrial concerns that ! 1564: have expressed interest in using such a system, but expected ! 1565: it to be subsidized by someone else. ! 1566: ! 1567: 7.2. IBM Franz ! 1568: ! 1569: Even more nibbles on this one, but not yet. ! 1570: ! 1571: 8. Business News ! 1572: ! 1573: 8.1. Eunice SOLD ! 1574: ! 1575: Some of you may have heard that the Eunice software ! 1576: package was sold by SRI to the Wollongong Group, a UNIX sup- ! 1577: port group in Palo Alto. Prices range from $2k (educa- ! 1578: tional) to $5k (commercial). Naturally this package is of ! 1579: interest beyond the availability of Franz Lisp. We have not ! 1580: compared this product to other similar ones, but we know ! 1581: that TWG has been distributing a working Franz opus 38. ! 1582: ! 1583: As far as alternatives to Eunice, we are aware of a ! 1584: system developed at Rice University, and another by Human ! 1585: Computing Resources (HCR) in Toronto. We have not ! 1586: evaluated either of these. ! 1587: ! 1588: 8.2. MACSYMA SOLD ! 1589: ! 1590: MIT has sold exclusive rights to MACSYMA, a large alge- ! 1591: braic manipulation system, to Symbolics, Inc. of Cambridge ! 1592: Mass. This package runs in Franz Lisp, (among other Lisps) ! 1593: We hope that soon it will again be available to educational ! 1594: institutions with VAX systems either from us or Symbolics, ! 1595: at a nominal charge. We understand that commercial licenses ! 1596: (from Symbolics) for versions of MACSYMA on PDP-10s, Lisp ! 1597: Machines, etc. will distributed at non-nominal prices and ! 1598: offered with maintenance contracts. ! 1599: ! 1600: ! 1601: ! 1602: ! 1603: ! 1604: ! 1605: ! 1606: From liz.umcp-cs@UDel-Relay Mon Nov 1 17:43:52 1982 ! 1607: Date: 29 Oct 82 12:04:24 EDT (Fri) ! 1608: From: Liz Allen <liz.umcp-cs@UDel-Relay> ! 1609: Subject: Re: Flavor system ! 1610: To: ECC.MIT-MC at Ucb-C70, FRANZ-FRIENDS at Mit-Mc ! 1611: Cc: randy.umcp-cs at UDel-Relay ! 1612: In-Reply-To: Message of 25 October 1982 16:29-EDT from ECC@MIT-MC@Berkeley ! 1613: Via: UMCP-CS; 30 Oct 82 5:40-EDT ! 1614: Status: RO ! 1615: ! 1616: Date: 25 October 1982 16:29-EDT ! 1617: From: ECC@MIT-MC@Berkeley ! 1618: Subject: Flavor system ! 1619: To: FRANZ-FRIENDS at MIT-MC ! 1620: ! 1621: Can someone give me a pointer to the Franz flavor system ! 1622: developed by U. Maryland? I am looking for information on how to ! 1623: FTP the files -- what machine, whether public, what files, etc. ! 1624: ! 1625: Since the U. of Maryland is not (yet) an Arpanet host, you can't ! 1626: FTP files directly from here. We are right now completing some ! 1627: documentation for all of our hacks -- including documentation for ! 1628: some recent improvements for our flavors system. When that ! 1629: documentation is complete, we will be ready to distribute the ! 1630: packages developed here. Besides flavors, this includes a top ! 1631: level called userexec which is based on INTERLISP's top level and ! 1632: a production system called YAPS similar to but more flexible than ! 1633: OPS5. ! 1634: ! 1635: We are supposed to become an Arpanet host in a few months... (Read ! 1636: open ended period of time.) Meanwhile, if you would like to get ! 1637: our code, mail me a tape, and I will mail it back with the code and ! 1638: documentation on it. I'd appreciate it if someone would volunteer ! 1639: to let other folks FTP the files from their machine until we do ! 1640: become an Arpanet host. My address is: ! 1641: ! 1642: Liz Allen ! 1643: Univ of Maryland ! 1644: Dept of Computer Science ! 1645: College Park MD 20783 ! 1646: (301) 454-4247 ! 1647: liz.umcp-cs@udel-relay ! 1648: ! 1649: -Liz ! 1650: ! 1651: ! 1652: ! 1653: From jkf Wed Nov 3 15:49:29 1982 ! 1654: Date: 3-Nov-82 15:48:50-PST (Wed) ! 1655: From: jkf (John Foderaro) ! 1656: Subject: lisp opus 38.40 ! 1657: Message-Id: <[email protected]> ! 1658: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82]) ! 1659: id A16460; 3-Nov-82 15:49:29-PST (Wed) ! 1660: To: local-lisp ! 1661: Status: RO ! 1662: ! 1663: putprop will now put new properties at the head of the property list. ! 1664: ! 1665: ! 1666: ! 1667: ! 1668: From ecc@UCBARPA Thu Nov 4 10:28:49 1982 ! 1669: Date: 4-Nov-82 10:19:26-PST (Thu) ! 1670: From: ecc@UCBARPA (Eric C. Cooper) ! 1671: Subject: Lisp song ! 1672: Message-Id: <[email protected]> ! 1673: Received: by UCBARPA.BERKELEY.ARPA (3.224 [10/16/82]) ! 1674: id A24537; 4-Nov-82 10:19:28-PST (Thu) ! 1675: Received: from UCBARPA.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82]) ! 1676: id A00305; 4-Nov-82 10:28:49-PST (Thu) ! 1677: To: local-lisp@kim ! 1678: Status: O ! 1679: ! 1680: [This has been forwarded from uucp through Xerox through info-lispm.] ! 1681: ! 1682: >From decvax!utzoo!utcsrgv!roderick Mon Nov 1 14:24:35 1982 ! 1683: ! 1684: Another Glitch in the Call ! 1685: ------- ------ -- --- ---- ! 1686: (Sung to the tune of a recent Pink Floyd song.) ! 1687: ! 1688: ! 1689: We don't need no indirection ! 1690: We don't need no flow control ! 1691: No data typing or declarations ! 1692: Hey! Did you leave the lists alone? ! 1693: ! 1694: Chorus: ! 1695: All in all, it's just a pure-LISP function call. ! 1696: ! 1697: We don't need no side effect-ing ! 1698: We don't need no scope control ! 1699: No global variables for execution ! 1700: Hey! Did you leave those args alone? ! 1701: ! 1702: (Chorus) ! 1703: ! 1704: We don't need no allocation ! 1705: We don't need no special nodes ! 1706: No dark bit-flipping in the functions ! 1707: Hey! Did you leave the bits alone? ! 1708: ! 1709: (Chorus) ! 1710: ! 1711: We don't need no compilation ! 1712: We don't need no load control ! 1713: No link edit for external bindings ! 1714: Hey! Did you leave that source alone? ! 1715: ! 1716: (Chorus, and repeat) ! 1717: ! 1718: From jkf Sat Nov 13 20:53:41 1982 ! 1719: Date: 13-Nov-82 20:53:16-PST (Sat) ! 1720: From: jkf (John Foderaro) ! 1721: Subject: lisp opus 38.41 ! 1722: Message-Id: <[email protected]> ! 1723: Received: by UCBKIM.BERKELEY.ARPA (3.222 [10/13/82]) ! 1724: id A00490; 13-Nov-82 20:53:41-PST (Sat) ! 1725: To: local-lisp ! 1726: Status: O ! 1727: ! 1728: added functions: ! 1729: (remq 'g_val 'l_list) - just like remove but uses eq instead of equal ! 1730: (command-line-args) - returns a list of the command line arguments ! 1731: when lisp was started. This function will return ! 1732: only those arguments typed by the user, even if the ! 1733: lisp was started with the autorun feature (liszt -r). ! 1734: (sys:gethostname) - returns the name of the machine. ! 1735: (status domain) - returns 'ucb' here. ! 1736: ! 1737: ! 1738: ! 1739: From Paul.Rosenbloom@CMU-CS-G@CMU-CS-A Sun Nov 28 08:38:06 1982 ! 1740: Mail-From: CMUFTP host CMU-CS-G received by CMU-10A at 28-Nov-82 11:48:21-EST ! 1741: Date: 28 Nov 1982 11:47:28-EST ! 1742: From: Paul.Rosenbloom at CMU-CS-G at CMU-CS-A ! 1743: Subject: (random) problems ! 1744: Status: RO ! 1745: ! 1746: I am having two problems using (random) in Franz lisp. The first problem is ! 1747: that I can't find any way to set the seed. Every time I enter lisp, the ! 1748: generator is in the same state. I have had to resort to cfasling a c ! 1749: procedure that calls srand() (as (random) seems to be defined in c by a call ! 1750: on rand()). Is there a way to do this within lisp? The other problem is ! 1751: more serious. The generator seems to generate tight cycles for (at least) ! 1752: arguments that are small powers of 2. For example, repeatedly executing ! 1753: (random 2) yields the sequence 01010101..., and (random 4) yields ! 1754: 01230123.... These sequences apparently occur no matter to what value I set ! 1755: the seed. Does anyone one know what I could be doing wrong, or have a ! 1756: working random number generator? ! 1757: ! 1758: ! 1759: From tim.unc@UDel-Relay Sun Nov 28 20:44:24 1982 ! 1760: Status: O ! 1761: ! 1762: From tim.unc@UDel-Relay Sun Nov 28 20:27:43 1982 ! 1763: Date: 28 Nov 82 22:40:14 EST (Sun) ! 1764: From: Tim Maroney <tim.unc@UDel-Relay> ! 1765: Subject: rng ! 1766: To: franz-friends at Ucb-C70 ! 1767: Via: UNC; 28 Nov 82 23:38-EST ! 1768: Status: O ! 1769: ! 1770: To the person who asked about random number generators and deficiencies ! 1771: in (random) [I can't write mail to you for some reason]: ! 1772: ! 1773: You're not doing anything wrong; that's the way the sucker works. ! 1774: One good way to get random numbers is to do the syscall that gets ! 1775: you the number of seconds since whenever-it-is, and use the mod ! 1776: function. This is especially good for getting a random one or zero, ! 1777: by using the evenp function. ! 1778: ! 1779: Tim Maroney ! 1780: tim@unc@udel-relay ! 1781: ! 1782: ! 1783: From jkf Tue Nov 30 09:21:10 1982 ! 1784: Date: 30-Nov-82 09:21:10-PST (Tue) ! 1785: From: jkf (John Foderaro) ! 1786: Subject: opus 38.42 ! 1787: Message-Id: <[email protected]> ! 1788: Received: by UCBKIM.BERKELEY.ARPA (3.255 [11/28/82]) ! 1789: id AA11699; 30-Nov-82 09:21:10-PST (Tue) ! 1790: To: local-lisp ! 1791: Status: O ! 1792: ! 1793: added: (sys:link 'oldname 'newname) that what the ln program does. ! 1794: ! 1795: changed: the order of arguments to the vset functions is now: ! 1796: (vset 'vector 'index 'value). ! 1797: ! 1798: [This shouldn't affect anyone since vectors haven't been officially ! 1799: released yet and won't be until I make one more major modification] ! 1800: ! 1801: setf now knows about vectors. You can say ! 1802: (setf (vref 'vector 'index) 'value) ! 1803: and not have to worry about the order of arguments to vset. ! 1804: ! 1805: ! 1806: ! 1807: From jkf Tue Nov 30 10:42:00 1982 ! 1808: Date: 30-Nov-82 10:42:00-PST (Tue) ! 1809: From: jkf (John Foderaro) ! 1810: Subject: Re: opus 38.42 ! 1811: Message-Id: <[email protected]> ! 1812: Received: by UCBKIM.BERKELEY.ARPA (3.255 [11/28/82]) ! 1813: id AA13143; 30-Nov-82 10:42:00-PST (Tue) ! 1814: To: jeffc, local-lisp ! 1815: In-Reply-To: Your message of 30 Nov 1982 1036-PST (Tuesday) ! 1816: Status: O ! 1817: ! 1818: It can't do symbolic links (I've only been adding system calls that I had ! 1819: a use for). ! 1820: ! 1821: setf is a generalized setq. The target can be an expression which locates ! 1822: a value. setf figures out how to store in the target. ! 1823: for example: ! 1824: ! 1825: (setf x 3) == (setq x 3) ! 1826: (setf (car x) 3) == (rplaca x 3) ! 1827: (setf (get foo 'bar) 3) == (putprop foo 3 'bar) ! 1828: ! 1829: the target must be something it has been 'taught' to understand, or it can ! 1830: be a macro, in which case setf macro-expands it and takes another look. ! 1831: ! 1832: The setf macro (and a list of targets it knows about is in ! 1833: /usr/lib/lisp/common2.l) ! 1834: ! 1835: ! 1836: ! 1837: ! 1838: From jkf@UCBKIM Wed Dec 1 09:13:23 1982 ! 1839: Date: 1-Dec-82 09:13:03-PST (Wed) ! 1840: From: jkf@UCBKIM (John Foderaro) ! 1841: Subject: Random Numbers in Franz ! 1842: Message-Id: <[email protected]> ! 1843: Received: by UCBKIM.BERKELEY.ARPA (3.255 [11/28/82]) ! 1844: id AA03615; 1-Dec-82 09:13:03-PST (Wed) ! 1845: Received: from UCBKIM.BERKELEY.ARPA by UCBVAX.BERKELEY.ARPA (3.227 [10/22/82]) ! 1846: id A18406; 1-Dec-82 09:13:23-PST (Wed) ! 1847: To: franz-friends@berkeley ! 1848: Status: RO ! 1849: ! 1850: Date: 29-Nov-82 15:56:09-PST (Mon) ! 1851: From: alice!sola!mitch ! 1852: Subject: Random Numbers in Franz ! 1853: To: alice!ucbvax!franz-friends ! 1854: ! 1855: In general, it is very bad practice to compute a random number between 0 ! 1856: and n by any expression such as (mod (random) n). In fact, Franz's ! 1857: random function does exactly that, returning the number generated by the ! 1858: C function rand(3) modulo n. This technique uses only the rightmost ! 1859: bits of successive calls to rand, and the righmost n bits of congruential ! 1860: sequences (like that returned by rand(3)) have a period of AT MOST 2**n ! 1861: (See Knuth vol.2 p. 12). So using the rightmost two bits will indeed give ! 1862: you sequences of at most period 4. (If your lisp doesn't have this ! 1863: behavior, you're not using the standard rand.) ! 1864: ! 1865: A better way to do it is to use the high order bits, by dividing the entire ! 1866: range up into n pieces and then seeing where you fall. (This method is ! 1867: biased if n is of the same order as the range, though.) ! 1868: ! 1869: The code I use is: ! 1870: ! 1871: ! 1872: (or (getd '$old-random) (putd '$old-random (getd 'random))) ! 1873: ! 1874: (defun random n ! 1875: (cond ((eq n 0) ($old-random)) ! 1876: ((fix (quotient (boole 1 ($old-random) #o 7777777777) ! 1877: (quotient #o 7777777777 (arg 1))))))) ! 1878: ! 1879: Mitch Marcus ! 1880: ! 1881: ! 1882: ! 1883: ! 1884: ! 1885: From jkf Thu Dec 2 08:04:37 1982 ! 1886: Date: 2-Dec-82 08:04:37-PST (Thu) ! 1887: From: jkf (John Foderaro) ! 1888: Subject: Franz Lisp distribution ! 1889: Message-Id: <[email protected]> ! 1890: Received: by UCBKIM.BERKELEY.ARPA (3.255 [11/28/82]) ! 1891: id AA14414; 2-Dec-82 08:04:37-PST (Thu) ! 1892: To: franz-friends, net-lang-lisp@k ! 1893: Status: O ! 1894: ! 1895: ! 1896: Franz Lisp Distribution ! 1897: ! 1898: This note describes our distribution policy for Franz Lisp. ! 1899: ! 1900: What is being distributed: ! 1901: We distribute only source code in order to keep the distribution ! 1902: small and relatively Unix independent. Makefiles are provided to ! 1903: build the entire lisp system from source, even if you don't have ! 1904: a version of lisp running already. This process takes about 3 cpu ! 1905: hours on a Vax 780. [This version for the Vax only, a 68000 version ! 1906: is being worked on. Contact ucbkim.sklower@berkeley or ! 1907: ucbkim.layer@berkeley] ! 1908: ! 1909: The following source is provided: ! 1910: lisp interpreter, ! 1911: compiler (liszt), ! 1912: cross reference program (lxref), ! 1913: lisp manual, ! 1914: and other utility programs: ! 1915: trace, step, debug, cmu library functions, (and other minor ones), ! 1916: and these packages from the MIT lisp library: ! 1917: defstruct, loop, flavors. ! 1918: [These programs are provided as a convenience to those who can't ! 1919: access the arpanet and copy them. There is no documentation for ! 1920: them in the Franz Lisp manual. The best source of documentation ! 1921: is the Lisp Machine manual (available from MIT, Symbolics ! 1922: or LMI)] ! 1923: ! 1924: Regarding Flavors: there are two implementations of flavors for ! 1925: Franz Lisp, one from MIT (contact person Richard Zippel (rz@mit-mc)) ! 1926: and one from the University of Maryland (contact person ! 1927: Liz Allen (liz.umcp-cs@udel-relay)). Neither implementation is ! 1928: exactly like flavors on the Lisp Machine (due to differences between ! 1929: Lisp Machine lisp and Franz Lisp), and the implementations differ ! 1930: from each other. We incorporated the Mit version into the ! 1931: standard distribution because the high bandwidth between here and ! 1932: MIT will insure that it keeps up to date with the current Franz. ! 1933: This is not to imply that it is the better implementation. ! 1934: We haven't had enough experience with flavors to judge. ! 1935: Those seriously interested in Flavors should contact Liz ! 1936: Allen and ask for the Tech Report on the Univ Of Maryland Flavors ! 1937: system. ! 1938: ! 1939: What is the form of the distribution: ! 1940: The files are packaged in a giant (2.1Mbyte) shell script. Running this ! 1941: shell script through 'sh' will result in a directory tree. A ReadMe file ! 1942: in the current directory will contain instructions on building the lisp ! 1943: system. The shell script is broken into a number of smaller files. ! 1944: The current distribution looks like: ! 1945: % ls ! 1946: total 2092 ! 1947: 195 opus38.40.aa 195 opus38.40.ae 195 opus38.40.ai ! 1948: 195 opus38.40.ab 195 opus38.40.af 195 opus38.40.aj ! 1949: 195 opus38.40.ac 195 opus38.40.ag 142 opus38.40.ak ! 1950: 195 opus38.40.ad 195 opus38.40.ah ! 1951: ! 1952: The '38.40' means Opus 38, minor version 40. These numbers may be different ! 1953: by the time you get your distribution. In order to extract the lisp ! 1954: files from this shell script, you need only type: ! 1955: cat * | sh ! 1956: ! 1957: ! 1958: To get a copy of the distribution: ! 1959: The distribution may be obtained either using FTP from an arpanet site, ! 1960: or on a magnetic tape through the U.S Mail. ! 1961: ! 1962: Arpanet: ! 1963: The files are stored on the ucb-c70 (NCP) arpanet host in the ! 1964: directory /users/lisp/lispuser. If you have an account on the ucb-c70, ! 1965: you are free to take FTP a copy of these files. ! 1966: If you do not have an account on the ucb-c70, send me (jkf@berkeley) a ! 1967: message and I will set up a temporary account for you. ! 1968: If you are on a TCP host, write me and we will set up an account on one ! 1969: of our Vax's for you to FTP the files. Eventually we will have an ! 1970: anonymous login on a TCP machine. ! 1971: ! 1972: Mag Tape: ! 1973: In order to get a copy of the distribution mailed to you, send a check to ! 1974: cover our tape copying and mailing costs (fees are listed below). We will ! 1975: purchase the mag tape and you are free to keep it. Please do NOT ! 1976: send us a tape. ! 1977: ! 1978: Fees: ! 1979: $50 - distribution tape mailed 3rd class ! 1980: add $10 - a copy of the Lisp Manual (we will only ! 1981: send one copy, you are free to photocopy it) ! 1982: add $7 - send tape via 1st class mail. ! 1983: ! 1984: -or- ! 1985: $15 - for just a copy of the Lisp Manual ! 1986: ! 1987: The address to send checks to is ! 1988: ! 1989: Keith Sklower ! 1990: EECS/Computer Science Division ! 1991: 524 Evans Hall ! 1992: University of California ! 1993: Berkeley, CA 94720 ! 1994: ! 1995: All checks should be made out to "Regents, University of California." ! 1996: We require pre-payment. We will not invoice or process purchase orders. ! 1997: ! 1998: ! 1999: ! 2000: Disclaimers: ! 2001: This distribution works on the latest versions of Unix running at ! 2002: Berkeley (4.1a). We can't guarantee that it will work on older ! 2003: versions (although, if you are running 4.1, it is almost certain ! 2004: that it will work, but we have not verified it). ! 2005: VMS users who are using a typical Unix compatibility package will ! 2006: probably not be able to build a lisp from this distribution unless they ! 2007: know a great deal about VMS and their compatibility package. ! 2008: At least one package (Eunice) supports Franz at this time. ! 2009: ! 2010: Redistribution: ! 2011: If you get a copy of the distribution, you are free to give it to ! 2012: other people. We appreciate being informed of new sites so they ! 2013: can be put on a mailing list (electronic and conventional). This ! 2014: list is used to announce new releases. To be put on this list, ! 2015: send U.S. Mail to Keith Sklower (address above) or to ! 2016: franz-friends-request@berkeley or ucbvax!franz-friends-request ! 2017: ! 2018: ! 2019: ! 2020: From jkf Mon Dec 6 08:50:45 1982 ! 2021: Date: 6-Dec-82 08:50:45-PST (Mon) ! 2022: From: jkf (John Foderaro) ! 2023: Subject: opus 38.43 ! 2024: Message-Id: <[email protected]> ! 2025: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2026: id AA12951; 6-Dec-82 08:50:45-PST (Mon) ! 2027: To: local-lisp ! 2028: Status: O ! 2029: ! 2030: The size of vectors is now recorded in bytes rather than longwords. ! 2031: We've imported a few more commands to deal with fclosures. ! 2032: (symeval-in-fclosure 'fclosure 'symbol) ! 2033: (set-in-fclosure 'fclosure 'symbol 'value) ! 2034: ! 2035: (let-fclosed vars function) ! 2036: ! 2037: ! 2038: ! 2039: ! 2040: From jkf Mon Dec 13 10:35:43 1982 ! 2041: Date: 13-Dec-82 10:35:43-PST (Mon) ! 2042: From: jkf (John Foderaro) ! 2043: Subject: enhancemants to trace ! 2044: Message-Id: <[email protected]> ! 2045: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2046: id AA12160; 13-Dec-82 10:35:43-PST (Mon) ! 2047: To: local-lisp ! 2048: Status: O ! 2049: ! 2050: The function 'retrace' will insure that all functions which should be ! 2051: traced are indeed traced. This will solve the problem of reloading ! 2052: a file whose functions are traced. After you load a file, you can ! 2053: type (retrace) and those functions which became untraced during the loading ! 2054: process, will be traced again. ! 2055: ! 2056: The top-level-print and top-level-read variables will now take effect ! 2057: within a trace break. ! 2058: ! 2059: ! 2060: ! 2061: ! 2062: ! 2063: From jkf Tue Dec 14 12:40:41 1982 ! 2064: Date: 14-Dec-82 12:40:41-PST (Tue) ! 2065: From: jkf (John Foderaro) ! 2066: Subject: Re: #!, exec and lisp ! 2067: Message-Id: <[email protected]> ! 2068: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2069: id AA10379; 14-Dec-82 12:40:41-PST (Tue) ! 2070: To: lime!burdvax!puder ! 2071: Cc: franz-friends ! 2072: In-Reply-To: Your message of 13-Dec-82 14:03:23-PST (Mon) ! 2073: Status: O ! 2074: ! 2075: It is easy to make #! do a zapline. If you have a recent version of ! 2076: lisp, just execute: ! 2077: ! 2078: (defsharp ! (x) (zapline)) ! 2079: ! 2080: (this could be put in your .lisprc, if you don't want to affect other ! 2081: people). The problem with adding this to Franz by default is that the ! 2082: sharpsign macro is shared by a number of lisps and few of them run under ! 2083: Unix. Therefore, few other lisps are going to want #! to be zapline. ! 2084: ! 2085: ! 2086: Regarding the -f switch: The -f switch is used to communicate between the ! 2087: bootstrap at the beginning of a fasl file and the lisp interpreter. It ! 2088: wasn't meant as a general 'fasl this file' switch for users to make use of. ! 2089: The choice of '-f' was bad, it should have been something more unique like ! 2090: '-- autorun' so that a user would be unlikely to type it. We have avoided ! 2091: assigning meanings to switches on lisp's command line because we want to give ! 2092: each user the opportunity to assign whatever meaning he wants to whatever ! 2093: switch he wants. It isn't difficult to write a program to scan the command ! 2094: line. ! 2095: ! 2096: Re: ! 2097: The (setq searchlist (cvtsearchpathtolist (getenv 'PATH))) would not be ! 2098: necessary, because the exec syscall supplies the full path name, because ! 2099: the shell has already done the path searching on the command name. The ! 2100: only place that might have to be searched is the current directory. ! 2101: ! 2102: This isn't true. (argv 0) is the command that you typed, not the full path ! 2103: name to the command. Only by prepending all the directories in the ! 2104: search list can you find the location of the command. ! 2105: ! 2106: ! 2107: ---john foderaro ! 2108: ! 2109: ! 2110: ! 2111: From jkf Mon Jan 10 15:04:02 1983 ! 2112: Date: 10-Jan-83 15:04:02-PST (Mon) ! 2113: From: jkf (John Foderaro) ! 2114: Subject: opus 38.45 ! 2115: Message-Id: <[email protected]> ! 2116: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2117: id AA19240; 10-Jan-83 15:04:02-PST (Mon) ! 2118: To: local-lisp ! 2119: Status: O ! 2120: ! 2121: showstack will again report correctly for compiled calls if the ! 2122: transfer tables are unlinked (status translink nil). ! 2123: ! 2124: ! 2125: ! 2126: From jkf Mon Jan 10 19:46:06 1983 ! 2127: Date: 10-Jan-83 19:46:06-PST (Mon) ! 2128: From: jkf (John Foderaro) ! 2129: Subject: opus 38.46 ! 2130: Message-Id: <[email protected]> ! 2131: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2132: id AA24831; 10-Jan-83 19:46:06-PST (Mon) ! 2133: To: local-lisp ! 2134: Status: O ! 2135: ! 2136: This version incorporates some fixes from mit. You shouldn't notice ! 2137: any differences but if you do, let me know. ! 2138: ! 2139: ! 2140: ! 2141: ! 2142: ! 2143: From jkf Wed Jan 12 09:03:32 1983 ! 2144: Date: 12-Jan-83 09:03:32-PST (Wed) ! 2145: From: jkf (John Foderaro) ! 2146: Subject: opus38.47 ! 2147: Message-Id: <[email protected]> ! 2148: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2149: id AA01981; 12-Jan-83 09:03:32-PST (Wed) ! 2150: To: local-lisp ! 2151: Status: O ! 2152: ! 2153: The setf macro will now handle all car and cdr forms (i.e. c{ad}+r). ! 2154: Thanks to peter norvig for this. ! 2155: ! 2156: There is a new macro called 'defvar'. It is used to declare special ! 2157: variables and optionally to give them an initial value. It is used ! 2158: at top level in a file (outside of defuns). ! 2159: ! 2160: forms: ! 2161: (defvar foo) ; declares foo to be special ! 2162: (defvar bar 3) ; declares bar to be special and when this file is read in ! 2163: ; bar will be given the value 3 if it is unbound. ! 2164: An advantage of '(defvar foo)' over '(declare (special foo))' is that if ! 2165: a file containing defvars is loaded (or fasl'ed) in during compilation, ! 2166: the variables mentioned in the defvar's will be declared special. The only ! 2167: way to have that effect with '(declare (special foo))' is to 'include' ! 2168: the file. ! 2169: ! 2170: There is a new macro, 'environment', which can be used at the beginning of ! 2171: a file to specify what sort of environment this file needs in order to be ! 2172: compiled or run. For example: ! 2173: (environment (compile eval) (files mymacros othermacros) ! 2174: (compile) (syntax maclisp)) ! 2175: ! 2176: says that when compiling or loading into the interpreter, the files ! 2177: mymacros and othermacros should be loaded (if they aren't loaded already). ! 2178: When compiling, the maclisp syntax should be used. ! 2179: The general form of 'environment' is: ! 2180: (environment when1 what1 ! 2181: when2 what2 ! 2182: ... ... ! 2183: whenN whatN) ! 2184: the when's are a subset of (eval compile load), and the symbols have the ! 2185: same meaning as they do in 'eval-when'. ! 2186: The what's are either ! 2187: (files file1 file2 ... fileN) ! 2188: insure that the named files are loaded. To see if fileX ! 2189: is loaded, it looks for a 'version' property under ! 2190: fileX's property list. Thus to prevent multiple loading, ! 2191: you should put ! 2192: (putprop 'myfile t 'version) at the end of myfile.l ! 2193: (syntax type) ! 2194: type is either maclisp, intlisp, ucilisp, franzlisp ! 2195: This sets the syntax correctly. ! 2196: ! 2197: There are additional macros to set of standard environments: ! 2198: (environment-maclisp) sets up the maclisp environment. This is what ! 2199: you would get by using the -m switch to liszt. ! 2200: ! 2201: (environment-lmlisp) sets up the lisp machine environment. This is like ! 2202: maclisp but it has additional macros. ! 2203: ! 2204: ! 2205: It is possible to add when's and what's to the specialized environments, ! 2206: e.g. ! 2207: (environment-maclisp (compile eval) (files foo bar)) ! 2208: ! 2209: ! 2210: ! 2211: ! 2212: ! 2213: ! 2214: ! 2215: From norvig Wed Jan 12 13:12:45 1983 ! 2216: To: jkf local-lisp ! 2217: Subject: defvar ! 2218: Status: O ! 2219: ! 2220: Shouldn't defvar take any number of arguments, like setq? As it is, ! 2221: (defvar a 1 b 2) sets a to 1, but ignores the other arguments. ! 2222: ! 2223: From fateman Wed Jan 12 13:23:08 1983 ! 2224: To: jkf local-lisp norvig ! 2225: Subject: Re: defvar ! 2226: Status: O ! 2227: ! 2228: I suspect the extra arguments to defvar are used in other systems for ! 2229: storage of documentation strings in appropriate places. E.g. ! 2230: (defvar dozen 12 "initially 12 except in the baker system when it is 13") ! 2231: causes some association with defvar and documentation should be put on ! 2232: a file. ! 2233: ! 2234: ! 2235: From jkf Wed Jan 12 14:25:02 1983 ! 2236: Date: 12-Jan-83 14:25:02-PST (Wed) ! 2237: From: jkf (John Foderaro) ! 2238: Subject: Re: defvar ! 2239: Message-Id: <[email protected]> ! 2240: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2241: id AA13079; 12-Jan-83 14:25:02-PST (Wed) ! 2242: To: norvig, local-lisp ! 2243: In-Reply-To: Your message of 12 Jan 1983 1311-PST (Wednesday) ! 2244: Status: O ! 2245: ! 2246: fateman is correct that there is an optional third argument for ! 2247: documentation. We don't want to add multiple arguments because defvar ! 2248: it will mean that code we write here can't be transported to ! 2249: other lisp which only expect one defvar argument. ! 2250: ! 2251: ! 2252: ! 2253: From jkf Thu Jan 13 09:49:13 1983 ! 2254: Date: 13-Jan-83 09:49:13-PST (Thu) ! 2255: From: jkf (John Foderaro) ! 2256: Subject: liszt 8.17 ! 2257: Message-Id: <[email protected]> ! 2258: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2259: id AA00331; 13-Jan-83 09:49:13-PST (Thu) ! 2260: To: local-lisp ! 2261: Status: O ! 2262: ! 2263: The vector reference functions are open coded. These are ! 2264: vref, vrefi-byte, vrefi-word, vrefi-long ! 2265: ! 2266: ! 2267: ! 2268: From G:alpines Thu Jan 13 20:31:34 1983 ! 2269: Date: 13 Jan 1983 20:24-PST ! 2270: From: alpines@G (Harry Weeks at Vax-Populi) ! 2271: Subject: Franz on 68000's ! 2272: Message-Id: <83/01/13 2024.733@Vax-Populi> ! 2273: Received: by UCBVAX.BERKELEY.ARPA (3.293 [1/9/83]) ! 2274: id AA12970; 13-Jan-83 20:28:37-PST (Thu) ! 2275: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2276: id AA14908; 13-Jan-83 20:31:34-PST (Thu) ! 2277: To: franz@BERKELEY ! 2278: Cc: franz-friends@BERKELEY ! 2279: Status: O ! 2280: ! 2281: >Date: 13 Jan 1983 20:01-PST ! 2282: From: G.alpines at Berkeley (Harry Weeks at Vax-Populi) ! 2283: Subject: Franz on 68000's. ! 2284: To: franz-friends-request@Berkeley ! 2285: Message-Id: <83/01/13 2001.733@Vax-Populi> ! 2286: ! 2287: Please put me on your mailing list for information concerning ! 2288: implementation of Franz, esp. on 68000's, but I'd like to keep ! 2289: informed generally as well. Thanks. ! 2290: ! 2291: Harry Weeks ! 2292: Bytek ! 2293: 1730 Solano Avenue ! 2294: Berkeley, CA 94707 ! 2295: ! 2296: (415) 527-1157 ! 2297: ! 2298: ! 2299: From jkf Sun Jan 16 21:22:54 1983 ! 2300: Date: 16-Jan-83 21:22:54-PST (Sun) ! 2301: From: jkf (John Foderaro) ! 2302: Subject: change to lisptags program ! 2303: Message-Id: <[email protected]> ! 2304: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2305: id AA23656; 16-Jan-83 21:22:54-PST (Sun) ! 2306: To: local-lisp ! 2307: Status: O ! 2308: ! 2309: lisptags will now surround the search string with /'s instead of ?'s ! 2310: in order to be compatible with ctags. Both types should work with vi, ! 2311: emacs people will probably have to make a minor modification to their ! 2312: tags.ml file. ! 2313: My version in ~jkf/elib/tags.ml. ! 2314: ! 2315: ! 2316: ! 2317: ! 2318: ! 2319: ! 2320: From jkf Tue Jan 18 16:43:23 1983 ! 2321: Date: 18-Jan-83 16:43:23-PST (Tue) ! 2322: From: jkf (John Foderaro) ! 2323: Subject: lisp opus 38.48, liszt 8.19 ! 2324: Message-Id: <[email protected]> ! 2325: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2326: id AA10935; 18-Jan-83 16:43:23-PST (Tue) ! 2327: To: local-lisp ! 2328: Status: O ! 2329: ! 2330: This is a long message so I'll put the most important thing first, in case ! 2331: you choose not to read the rest of the message: ! 2332: *** object files generated by liszt 8.19 will not run in any lisp ! 2333: *** older than 38.48. Object files which were generated by ! 2334: *** liszt's before 8.19 will continue to work in the new lisp. ! 2335: ! 2336: ! 2337: There were two major changes to lisp and liszt: ! 2338: 1) compiled functions will test at runtime to make sure that they ! 2339: are passed the correct number of arguments. ! 2340: ! 2341: 2) the lambda list keywords &optional, &rest and &aux are open compiled ! 2342: in an efficient manner. ! 2343: ! 2344: I'll refresh your memory on what the possible forms are for the & keywords: ! 2345: ! 2346: the formal parameter list of a def has this form ! 2347: ( required-args ! 2348: [ &optional optional-arguments ] ! 2349: [ &rest rest-argument ] ! 2350: [ &aux aux-arguments ]) ! 2351: ! 2352: as in this example which shows all possible forms: ! 2353: ! 2354: (def foo ! 2355: (lambda (a b &optional c (d 23 d-p) (dd (bar)) &rest e &aux (f 12) g) ! 2356: (compute))) ! 2357: ! 2358: ! 2359: the meaning and forms of the various parts of the formal parameter list are: ! 2360: ! 2361: required-args: a sequence of n (zero or more) symbols which will be bound ! 2362: to the first n actual arguments. ! 2363: ! 2364: optional-args: a sequence of m (zero or more) symbols which will be ! 2365: bound to the next m actual arguments if they are present, or ! 2366: to default values. ! 2367: the forms of an optional argument are: ! 2368: ! 2369: foo - bind foo to the argument if it present, otherwise bind it ! 2370: to nil ! 2371: (foo (expr)) - bind foo to the argument if it is present, otherwise ! 2372: evaluate (expr) and bind foo to the result. ! 2373: ! 2374: (foo (expr) foo-p) - bind foo to the argument if it is present, ! 2375: otherwise evaluate (expr) and bind foo to the result. ! 2376: Also, bind foo-p to t if the argument is present, otherwise ! 2377: bind foo-p to nil. foo-p will be treated like an &aux ! 2378: variable (see below) but it should NOT be declared in the ! 2379: &aux list! ! 2380: ! 2381: rest-arg : a single symbol which will be bound to a list of the rest of the ! 2382: arguments. This list is cons'ed up each time the function is called. ! 2383: ! 2384: aux-args : these args are just like arguments to let or prog within the ! 2385: function body so this & keyword isn't really necessary (but there ! 2386: are few things in lisp that really are necessary). ! 2387: ! 2388: the forms of the aux arg are: ! 2389: ! 2390: foo - bind foo to nil ! 2391: (foo (expr)) - evaluate (expr) and bind foo to the result. ! 2392: ! 2393: ! 2394: ! 2395: The compiler understands the &keywords but the interpreter does not. 'def' ! 2396: will convert a form with &keywords to a lexpr which is almost equivalent. ! 2397: The differences are: ! 2398: The interpreted form, being a lexpr, is allowed to use the 'arg' ! 2399: function. The compiled form, even with optional args, ! 2400: is not a lexpr and thus 'arg' is illegal. ! 2401: ! 2402: The order that &aux variables are lambda bound is slightly different ! 2403: between interpreted and compiled code. As long as default ! 2404: expressions reference no formal parameters after them in the ! 2405: formal parameter list, there should be no problems. ! 2406: ! 2407: The interpreted version will not check for the correct number of ! 2408: arguments. ! 2409: ! 2410: Local functions cannot have &keywords. ! 2411: ! 2412: If you have any questions on this, send me mail. This change should ! 2413: only break functions which expect a variable number of argument and ! 2414: which don't declare the fact using &optional programs. There may be, ! 2415: of course, implementation errors. If you notice anything unusual ! 2416: please let me know right away. The old compiler will be ! 2417: in /usr/ucb/oliszt for a while. ! 2418: ! 2419: ! 2420: ! 2421: ! 2422: ! 2423: ! 2424: ! 2425: ! 2426: ! 2427: From layer Thu Jan 20 01:55:55 1983 ! 2428: Date: 20-Jan-83 01:55:55-PST (Thu) ! 2429: From: layer (Kevin Layer) ! 2430: Subject: liszt 8.20 ! 2431: Message-Id: <[email protected]> ! 2432: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2433: id AA17788; 20-Jan-83 01:55:55-PST (Thu) ! 2434: To: local-lisp ! 2435: Phone: (415) 652-2405 ! 2436: Status: O ! 2437: ! 2438: There are now three new command line features for liszt: ! 2439: ! 2440: 1. -E <s-expr>, where <s-expr> will be evaluated before compilation ! 2441: starts. For example, the setting of constants can be done in this way: ! 2442: ! 2443: liszt -E '(setq foobar "***foobar-string***")' foobar.l ! 2444: ! 2445: and in the file being compiled, foobar is accessed as '#.foobar. ! 2446: ! 2447: 2. -I <include-file>, where <include-file> will be loaded (via load) ! 2448: before compilation starts. ! 2449: ! 2450: 3. A combination of the -S and -o switches will set the .s file, as in: ! 2451: ! 2452: liszt -S -o foo.vax.s foo.l ! 2453: ! 2454: where previously, the -S determined the name of the .s file (foo.s in ! 2455: the above example). ! 2456: ! 2457: ! 2458: ! 2459: From jkf Thu Jan 20 19:42:38 1983 ! 2460: Date: 20-Jan-83 19:42:38-PST (Thu) ! 2461: From: jkf (John Foderaro) ! 2462: Subject: some mods to liszt 8.20 ! 2463: Message-Id: <[email protected]> ! 2464: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2465: id AA07334; 20-Jan-83 19:42:38-PST (Thu) ! 2466: To: local-lisp ! 2467: Status: O ! 2468: ! 2469: the -E and -I flags are now -e and -i ! 2470: there may be more than one -i flag given on the command line. ! 2471: ! 2472: ! 2473: ! 2474: From fateman Thu Jan 20 20:20:31 1983 ! 2475: To: local-lisp ! 2476: Subject: fame, if not fortune ! 2477: Status: RO ! 2478: ! 2479: In the latest Scientific American, Feb. 1983, Hofstader's column ! 2480: is the first of several on the programming language "lisp". He ! 2481: mentions the particular dialect he is using .... Franz ! ! 2482: ! 2483: From wilensky Thu Jan 20 20:57:27 1983 ! 2484: Date: 20-Jan-83 20:57:27-PST (Thu) ! 2485: From: wilensky (Robert Wilensky) ! 2486: Subject: Re: fame, if not fortune ! 2487: Message-Id: <[email protected]> ! 2488: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2489: id AA08824; 20-Jan-83 20:57:27-PST (Thu) ! 2490: To: fateman, local-lisp ! 2491: In-Reply-To: Your message of 20 Jan 1983 2019-PST (Thursday) ! 2492: Status: RO ! 2493: ! 2494: ! 2495: On the other hand, being referenced by Hofstader is a dubious honor. ! 2496: ! 2497: ! 2498: From UCBKIM:jkf Fri Jan 21 08:15:04 1983 ! 2499: Date: 21-Jan-83 08:11:01-PST (Fri) ! 2500: From: UCBKIM:jkf (John Foderaro) ! 2501: Subject: test message, ignore ! 2502: Message-Id: <[email protected]> ! 2503: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2504: id AA18650; 21-Jan-83 08:11:01-PST (Fri) ! 2505: Received: from UCBKIM.BERKELEY.ARPA by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 2506: id AA24887; 21 Jan 83 08:09:27 PST (Fri) ! 2507: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2508: id AA18766; 21-Jan-83 08:15:04-PST (Fri) ! 2509: To: franz-friends@BERKELEY ! 2510: Status: O ! 2511: ! 2512: This will give our mailer a chance to tell me how many of our franz friends ! 2513: are no longer reachable. ! 2514: ! 2515: ! 2516: ! 2517: From JTSCHUDY@USC-ISIE Sat Jan 22 16:42:19 1983 ! 2518: Date: 22 Jan 1983 1634-PST ! 2519: From: JTSCHUDY@USC-ISIE ! 2520: Subject: MAILINGLIST ADDITION ! 2521: Message-Id: <[email protected]> ! 2522: Received: from USC-ISIE by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 2523: id AA01747; 22 Jan 83 16:37:17 PST (Sat) ! 2524: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2525: id AA18903; 22-Jan-83 16:42:19-PST (Sat) ! 2526: To: franz-friends@BERKELEY ! 2527: Status: O ! 2528: ! 2529: Hi! My name is Jim. I am presently attending the Naval Post Graduate ! 2530: School in Monterey California. I am in the Air Force enrolled in a ! 2531: DOD sponsored graduate degree in Command Control and Communications ! 2532: Systems Technology. ! 2533: ! 2534: i would like to be added to your mailing list. My net address is ! 2535: JTSCHUDY at ISIE. ! 2536: ! 2537: Thanks - Jim. ! 2538: ------- ! 2539: ! 2540: ! 2541: From jkf Sat Jan 22 17:38:41 1983 ! 2542: Date: 22-Jan-83 17:38:41-PST (Sat) ! 2543: From: jkf (John Foderaro) ! 2544: Subject: opus 38.49 ! 2545: Message-Id: <[email protected]> ! 2546: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2547: id AA20020; 22-Jan-83 17:38:41-PST (Sat) ! 2548: To: local-lisp ! 2549: Status: O ! 2550: ! 2551: A longstanding bug in the determination of the number of free dtpr objects ! 2552: has been found and fixed. The effect of this bug was that the function ! 2553: which is responsible for allocating more memory pages didn't allocate ! 2554: enough dtpr pages because it thought that there were a large number of ! 2555: cells free. ! 2556: ! 2557: ! 2558: ! 2559: From MCLINDEN@RUTGERS Mon Jan 24 10:33:14 1983 ! 2560: Date: 24 Jan 1983 1324-EST ! 2561: From: Sean McLinden <MCLINDEN@RUTGERS> ! 2562: Subject: Franz Lisp and floating point accelerator ! 2563: Message-Id: <[email protected]> ! 2564: Received: from RUTGERS by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 2565: id AA19602; 24 Jan 83 10:25:06 PST (Mon) ! 2566: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2567: id AA27143; 24-Jan-83 10:33:14-PST (Mon) ! 2568: To: franz-friends@UCBVAX ! 2569: Status: O ! 2570: ! 2571: ! 2572: Has anyone determined if a floating point accelerator speeds up ! 2573: Vax Franz Lisp jobs in any significant fashion? ! 2574: ! 2575: Pointers would be appreciated. ! 2576: ! 2577: Sean McLinden ! 2578: Decision Systems Lab ! 2579: ------- ! 2580: ! 2581: From mike@rand-unix Mon Jan 24 18:47:03 1983 ! 2582: Date: Monday, 24 Jan 1983 15:34-PST ! 2583: From: mike@RAND-UNIX ! 2584: Subject: emacs interface to franz? ! 2585: Message-Id: <[email protected]> ! 2586: Received: from rand-unix by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 2587: id AA00058; 24 Jan 83 16:08:36 PST (Mon) ! 2588: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2589: id AA00921; 24-Jan-83 18:47:03-PST (Mon) ! 2590: To: franz-friends@BERKELEY ! 2591: Status: O ! 2592: ! 2593: ! 2594: Does anyone have a snazzy interface to emacs for franz? ! 2595: ! 2596: Thanks, ! 2597: Michael ! 2598: ! 2599: ! 2600: From @udel-relay.ARPA,@UDel-Relay:[email protected] Tue Jan 25 16:29:19 1983 ! 2601: Date: 25 Jan 1983 9:58-EST ! 2602: From: Tim Finin <Tim.UPenn@UDel-Relay> ! 2603: Subject: emacs interface to franz? ! 2604: Message-Id: <[email protected]> ! 2605: Received: from udel-relay.ARPA by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 2606: id AA29320; 25 Jan 83 16:22:57 PST (Tue) ! 2607: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2608: id AA01561; 25-Jan-83 16:29:19-PST (Tue) ! 2609: Return-Path: <[email protected]@UDel-Relay> ! 2610: To: mike@Rand-Unix ! 2611: Cc: franz-friends@BERKELEY ! 2612: Via: UPenn; 25 Jan 83 19:21-EST ! 2613: Status: O ! 2614: ! 2615: ! 2616: We have a simple interface from Franz to Emacs, but I much prefer to go the ! 2617: other way, i.e. run Franz as a inferior job under Emacs. I believe there ! 2618: are several Emacs packages which allow one to run inferior jobs in an Emacs ! 2619: window (I have my own which is, unfortunately totally undocumented). Some of ! 2620: the benefits of this set up include: ! 2621: ! 2622: - one has all of the text editing functions available in Emacs ! 2623: - one has many lisp-based editing functions available in Emacs ! 2624: (thru mock-lisp packages like electriclisp) ! 2625: - one has a history of the session in the editing buffer ! 2626: - one has an environment which supports multiple concurrent ! 2627: processes running in seperate windows. ! 2628: - it is very easy to experiment with new interface features such as ! 2629: symbol completion and re-evaluation of previously issued commands ! 2630: ! 2631: Tim ! 2632: ! 2633: ! 2634: From CARR@UTAH-20 Fri Jan 28 08:19:08 1983 ! 2635: Date: 28 Jan 1983 0912-MST ! 2636: From: Harold Carr <CARR@UTAH-20> ! 2637: Subject: franz distribution ! 2638: Message-Id: <[email protected]> ! 2639: Received: from UTAH-20 by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 2640: id AA20646; 28 Jan 83 08:15:18 PST (Fri) ! 2641: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2642: id AA16991; 28-Jan-83 08:19:08-PST (Fri) ! 2643: To: franz-friends@UCBVAX ! 2644: Status: O ! 2645: ! 2646: What is the distribution policy? ! 2647: ! 2648: I work for a company that has opus 36 and is now currently running opus 37. ! 2649: Here at the University of Utah we are running opus 38.04. Is it OK to ! 2650: make a tape of the University's 38.04 to bring my company more up to ! 2651: date? Do I have to make it more formal by signing a transfer agreement ! 2652: or by obtaining the release directly from Berkeley? ! 2653: ! 2654: Thanks in advance, ! 2655: Harold Carr ! 2656: CARR@UTAH-20 ! 2657: ------- ! 2658: ! 2659: From UCBKIM:jkf Fri Jan 28 15:09:32 1983 ! 2660: Date: 28-Jan-83 08:34:33-PST (Fri) ! 2661: From: UCBKIM:jkf ! 2662: Subject: Re: franz distribution ! 2663: Message-Id: <[email protected]> ! 2664: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2665: id AA17319; 28-Jan-83 08:34:33-PST (Fri) ! 2666: Received: from UCBKIM.BERKELEY.ARPA by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 2667: id AA02275; 28 Jan 83 14:58:37 PST (Fri) ! 2668: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2669: id AA00402; 28-Jan-83 15:09:32-PST (Fri) ! 2670: To: CARR@UTAH-20 ! 2671: Cc: franz-friends@UCBVAX ! 2672: In-Reply-To: Your message of 28 Jan 1983 0912-MST ! 2673: Status: O ! 2674: ! 2675: Here is our current distribution policy. This differs a bit from ! 2676: the one sent out a month ago [in particular, we now have anonymous ftp] ! 2677: ! 2678: -[Fri Jan 28 08:31:45 1983 by jkf]- ! 2679: Franz Lisp Distribution ! 2680: ! 2681: This note describes our distribution policy for Franz Lisp. ! 2682: ! 2683: What is being distributed: ! 2684: We distribute only source code in order to keep the distribution ! 2685: small and relatively Unix independent. Makefiles are provided to ! 2686: build the entire lisp system from source, even if you don't have ! 2687: a version of lisp running already. This process takes about 3 cpu ! 2688: hours on a Vax 780. [This version for the Vax only, a 68000 version ! 2689: is being worked on. Contact ucbkim.sklower@berkeley or ! 2690: ucbkim.layer@berkeley] ! 2691: ! 2692: The following source is provided: ! 2693: lisp interpreter, ! 2694: compiler (liszt), ! 2695: cross reference program (lxref), ! 2696: lisp manual, ! 2697: and other utility programs: ! 2698: trace, step, debug, cmu library functions, (and other minor ones), ! 2699: and these packages from the MIT lisp library: ! 2700: defstruct, loop. ! 2701: [These programs are provided as a convenience to those who can't ! 2702: access the arpanet and copy them. There is no documentation for ! 2703: them in the Franz Lisp manual. The best source of documentation ! 2704: is the Lisp Machine manual (available from MIT, Symbolics ! 2705: or LMI)] ! 2706: ! 2707: Regarding Flavors: there are two implementations of flavors for ! 2708: Franz Lisp, one from MIT (contact person Richard Zippel (rz@mit-mc)) ! 2709: and one from the University of Maryland (contact person ! 2710: Liz Allen (liz.umcp-cs@udel-relay)). Neither implementation is ! 2711: exactly like flavors on the Lisp Machine (due to differences between ! 2712: Lisp Machine lisp and Franz Lisp), and the implementations differ ! 2713: from each other. The MIT version cannot be distributed by ! 2714: us (yet) due to licensing problems. If you have a Lisp Machine ! 2715: Source license from Symbolics, you should be able to get a copy ! 2716: from MIT. ! 2717: For a Tech Report on Maryland flavors, write to Liz Allen. ! 2718: ! 2719: What is the form of the distribution: ! 2720: The files are packaged in a giant (2.1Mbyte) shell script. Running this ! 2721: shell script through 'sh' will result in a directory tree. A ReadMe file ! 2722: in the current directory will contain instructions on building the lisp ! 2723: system. The shell script is broken into a number of smaller files. ! 2724: The current distribution looks like: ! 2725: ! 2726: total 2089 ! 2727: 489 -rw-r--r-- 1 jkf 500003 Jan 26 11:33 opus38.50.aa ! 2728: 489 -rw-r--r-- 1 jkf 500002 Jan 26 11:35 opus38.50.ab ! 2729: 489 -rw-r--r-- 1 jkf 500047 Jan 26 11:37 opus38.50.ac ! 2730: 489 -rw-r--r-- 1 jkf 500007 Jan 26 11:38 opus38.50.ad ! 2731: 133 -rw-r--r-- 1 jkf 136038 Jan 26 11:39 opus38.50.ae ! 2732: ! 2733: The '38.50' means Opus 38, minor version 50. These numbers may be different ! 2734: by the time you get your distribution. In order to extract the lisp ! 2735: files from this shell script, you need only type: ! 2736: cat * | sh ! 2737: ! 2738: ! 2739: To get a copy of the distribution: ! 2740: The distribution may be obtained either using FTP from an arpanet site, ! 2741: or on a magnetic tape through the U.S Mail. ! 2742: ! 2743: Arpanet: ! 2744: The files are stored on the arpanet host 'ucb-vax' [ if you have an out ! 2745: of date host table, it may be called 'ucb-monet' or 'ucb-ingres'. Its ! 2746: internet number is 10.2.0.78]. ! 2747: You can login as 'anonymous'. Use your name as the password. ! 2748: The files are in the subdirectory pub/lisp. ! 2749: ! 2750: For those who have accounts on ucb-vax, the full path is ~ftp/pub/lisp. ! 2751: ! 2752: Mag Tape: ! 2753: In order to get a copy of the distribution mailed to you, send a check to ! 2754: cover our tape copying and mailing costs (fees are listed below). We will ! 2755: purchase the mag tape and you are free to keep it. Please do NOT ! 2756: send us a tape. ! 2757: ! 2758: Fees: ! 2759: $50 - distribution tape mailed 3rd class ! 2760: add $10 - a copy of the Lisp Manual (we will only ! 2761: send one copy, you are free to photocopy it) ! 2762: add $7 - send tape via 1st class mail. ! 2763: ! 2764: -or- ! 2765: $15 - for just a copy of the Lisp Manual ! 2766: ! 2767: The address to send checks to is ! 2768: ! 2769: Keith Sklower ! 2770: EECS/Computer Science Division ! 2771: 524 Evans Hall ! 2772: University of California ! 2773: Berkeley, CA 94720 ! 2774: ! 2775: All checks should be made out to "Regents, University of California." ! 2776: We require pre-payment. We will not invoice or process purchase orders. ! 2777: ! 2778: ! 2779: ! 2780: Disclaimers: ! 2781: This distribution works on the latest versions of Unix running at ! 2782: Berkeley (4.1a). We can't guarantee that it will work on older ! 2783: versions (although, if you are running 4.1, it is almost certain ! 2784: that it will work, but we have not verified it). ! 2785: VMS users who are using a typical Unix compatibility package will ! 2786: probably not be able to build a lisp from this distribution unless they ! 2787: know a great deal about VMS and their compatibility package. ! 2788: At least one package (Eunice) supports Franz at this time. ! 2789: ! 2790: Redistribution: ! 2791: If you get a copy of the distribution, you are free to give it to ! 2792: other people. We appreciate being informed of new sites so they ! 2793: can be put on a mailing list (electronic and conventional). This ! 2794: list is used to announce new releases. To be put on this list, ! 2795: send U.S. Mail to Keith Sklower (address above) or to ! 2796: franz-friends-request@berkeley or ucbvax!franz-friends-request ! 2797: ! 2798: ! 2799: ! 2800: From Kim:fateman Sun Jan 30 02:12:28 1983 ! 2801: Date: 28 Jan 83 08:32:08 PST (Fri) ! 2802: From: Kim:fateman (Richard Fateman) ! 2803: Subject: Re: franz distribution ! 2804: Message-Id: <[email protected]> ! 2805: Received: by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 2806: id AA21039; 28 Jan 83 08:31:58 PST (Fri) ! 2807: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2808: id AA10132; 30-Jan-83 02:12:28-PST (Sun) ! 2809: To: CARR@UTAH-20 ! 2810: Cc: franz-friends@ucbvax ! 2811: Status: O ! 2812: ! 2813: Our policy is that you may move copies of Franz elsewhere ! 2814: without notifying us. We continue to be interested in sharing anything ! 2815: you or your company wish to provide us, in suggestions, programs, etc. ! 2816: ! 2817: ! 2818: From UCBCAD:pettengi Sun Jan 30 02:33:52 1983 ! 2819: Date: 28-Jan-83 10:54:51-PST (Fri) ! 2820: From: UCBCAD:pettengi (Rob Pettengill) ! 2821: Subject: emacs interface to franz? ! 2822: Message-Id: <[email protected]> ! 2823: Received: by UCBCAD.BERKELEY.ARPA (3.256 [12/5/82]) ! 2824: id AA26156; 28-Jan-83 10:54:51-PST (Fri) ! 2825: Received: from UCBCAD.BERKELEY.ARPA by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 2826: id AA00374; 28 Jan 83 12:53:44 PST (Fri) ! 2827: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2828: id AA10578; 30-Jan-83 02:33:52-PST (Sun) ! 2829: To: mike@rand-unix, franz-friends@ucbvax ! 2830: Cc: pettengi@UCBCAD ! 2831: Status: O ! 2832: ! 2833: While I was at TI I used a very nice interface that let one start up ! 2834: a Franz lisp inside an Emacs window. It came from SRI when we got Eunice to run ! 2835: under our VMS. Try Kashtan@SRI-AI. ! 2836: ! 2837: Rob Pettengill ! 2838: E-Systems, Dallas, Tx. ! 2839: ! 2840: From UCBKIM:jkf Sun Jan 30 02:44:27 1983 ! 2841: Date: 28-Jan-83 08:34:33-PST (Fri) ! 2842: From: UCBKIM:jkf (John Foderaro) ! 2843: Subject: Re: franz distribution ! 2844: Message-Id: <[email protected]> ! 2845: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2846: id AA17319; 28-Jan-83 08:34:33-PST (Fri) ! 2847: Received: from UCBKIM.BERKELEY.ARPA by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 2848: id AA02275; 28 Jan 83 14:58:37 PST (Fri) ! 2849: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2850: id AA10772; 30-Jan-83 02:44:27-PST (Sun) ! 2851: To: CARR@UTAH-20 ! 2852: Cc: franz-friends@UCBVAX ! 2853: In-Reply-To: Your message of 28 Jan 1983 0912-MST ! 2854: Status: RO ! 2855: ! 2856: Here is our current distribution policy. This differs a bit from ! 2857: the one sent out a month ago [in particular, we now have anonymous ftp] ! 2858: ! 2859: -[Fri Jan 28 08:31:45 1983 by jkf]- ! 2860: Franz Lisp Distribution ! 2861: ! 2862: This note describes our distribution policy for Franz Lisp. ! 2863: ! 2864: What is being distributed: ! 2865: We distribute only source code in order to keep the distribution ! 2866: small and relatively Unix independent. Makefiles are provided to ! 2867: build the entire lisp system from source, even if you don't have ! 2868: a version of lisp running already. This process takes about 3 cpu ! 2869: hours on a Vax 780. [This version for the Vax only, a 68000 version ! 2870: is being worked on. Contact ucbkim.sklower@berkeley or ! 2871: ucbkim.layer@berkeley] ! 2872: ! 2873: The following source is provided: ! 2874: lisp interpreter, ! 2875: compiler (liszt), ! 2876: cross reference program (lxref), ! 2877: lisp manual, ! 2878: and other utility programs: ! 2879: trace, step, debug, cmu library functions, (and other minor ones), ! 2880: and these packages from the MIT lisp library: ! 2881: defstruct, loop. ! 2882: [These programs are provided as a convenience to those who can't ! 2883: access the arpanet and copy them. There is no documentation for ! 2884: them in the Franz Lisp manual. The best source of documentation ! 2885: is the Lisp Machine manual (available from MIT, Symbolics ! 2886: or LMI)] ! 2887: ! 2888: Regarding Flavors: there are two implementations of flavors for ! 2889: Franz Lisp, one from MIT (contact person Richard Zippel (rz@mit-mc)) ! 2890: and one from the University of Maryland (contact person ! 2891: Liz Allen (liz.umcp-cs@udel-relay)). Neither implementation is ! 2892: exactly like flavors on the Lisp Machine (due to differences between ! 2893: Lisp Machine lisp and Franz Lisp), and the implementations differ ! 2894: from each other. The MIT version cannot be distributed by ! 2895: us (yet) due to licensing problems. If you have a Lisp Machine ! 2896: Source license from Symbolics, you should be able to get a copy ! 2897: from MIT. ! 2898: For a Tech Report on Maryland flavors, write to Liz Allen. ! 2899: ! 2900: What is the form of the distribution: ! 2901: The files are packaged in a giant (2.1Mbyte) shell script. Running this ! 2902: shell script through 'sh' will result in a directory tree. A ReadMe file ! 2903: in the current directory will contain instructions on building the lisp ! 2904: system. The shell script is broken into a number of smaller files. ! 2905: The current distribution looks like: ! 2906: ! 2907: total 2089 ! 2908: 489 -rw-r--r-- 1 jkf 500003 Jan 26 11:33 opus38.50.aa ! 2909: 489 -rw-r--r-- 1 jkf 500002 Jan 26 11:35 opus38.50.ab ! 2910: 489 -rw-r--r-- 1 jkf 500047 Jan 26 11:37 opus38.50.ac ! 2911: 489 -rw-r--r-- 1 jkf 500007 Jan 26 11:38 opus38.50.ad ! 2912: 133 -rw-r--r-- 1 jkf 136038 Jan 26 11:39 opus38.50.ae ! 2913: ! 2914: The '38.50' means Opus 38, minor version 50. These numbers may be different ! 2915: by the time you get your distribution. In order to extract the lisp ! 2916: files from this shell script, you need only type: ! 2917: cat * | sh ! 2918: ! 2919: ! 2920: To get a copy of the distribution: ! 2921: The distribution may be obtained either using FTP from an arpanet site, ! 2922: or on a magnetic tape through the U.S Mail. ! 2923: ! 2924: Arpanet: ! 2925: The files are stored on the arpanet host 'ucb-vax' [ if you have an out ! 2926: of date host table, it may be called 'ucb-monet' or 'ucb-ingres'. Its ! 2927: internet number is 10.2.0.78]. ! 2928: You can login as 'anonymous'. Use your name as the password. ! 2929: The files are in the subdirectory pub/lisp. ! 2930: ! 2931: For those who have accounts on ucb-vax, the full path is ~ftp/pub/lisp. ! 2932: ! 2933: Mag Tape: ! 2934: In order to get a copy of the distribution mailed to you, send a check to ! 2935: cover our tape copying and mailing costs (fees are listed below). We will ! 2936: purchase the mag tape and you are free to keep it. Please do NOT ! 2937: send us a tape. ! 2938: ! 2939: Fees: ! 2940: $50 - distribution tape mailed 3rd class ! 2941: add $10 - a copy of the Lisp Manual (we will only ! 2942: send one copy, you are free to photocopy it) ! 2943: add $7 - send tape via 1st class mail. ! 2944: ! 2945: -or- ! 2946: $15 - for just a copy of the Lisp Manual ! 2947: ! 2948: The address to send checks to is ! 2949: ! 2950: Keith Sklower ! 2951: EECS/Computer Science Division ! 2952: 524 Evans Hall ! 2953: University of California ! 2954: Berkeley, CA 94720 ! 2955: ! 2956: All checks should be made out to "Regents, University of California." ! 2957: We require pre-payment. We will not invoice or process purchase orders. ! 2958: ! 2959: ! 2960: ! 2961: Disclaimers: ! 2962: This distribution works on the latest versions of Unix running at ! 2963: Berkeley (4.1a). We can't guarantee that it will work on older ! 2964: versions (although, if you are running 4.1, it is almost certain ! 2965: that it will work, but we have not verified it). ! 2966: VMS users who are using a typical Unix compatibility package will ! 2967: probably not be able to build a lisp from this distribution unless they ! 2968: know a great deal about VMS and their compatibility package. ! 2969: At least one package (Eunice) supports Franz at this time. ! 2970: ! 2971: Redistribution: ! 2972: If you get a copy of the distribution, you are free to give it to ! 2973: other people. We appreciate being informed of new sites so they ! 2974: can be put on a mailing list (electronic and conventional). This ! 2975: list is used to announce new releases. To be put on this list, ! 2976: send U.S. Mail to Keith Sklower (address above) or to ! 2977: franz-friends-request@berkeley or ucbvax!franz-friends-request ! 2978: ! 2979: ! 2980: ! 2981: From Kim:fateman Mon Jan 31 19:30:20 1983 ! 2982: Date: 28 Jan 83 08:32:08 PST (Fri) ! 2983: From: Kim:fateman (Richard Fateman) ! 2984: Subject: Re: franz distribution ! 2985: Message-Id: <[email protected]> ! 2986: Received: by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 2987: id AA21039; 28 Jan 83 08:31:58 PST (Fri) ! 2988: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 2989: id AA03502; 31-Jan-83 19:30:20-PST (Mon) ! 2990: To: CARR@UTAH-20 ! 2991: Cc: franz-friends@ucbvax ! 2992: Status: O ! 2993: ! 2994: Our policy is that you may move copies of Franz elsewhere ! 2995: without notifying us. We continue to be interested in sharing anything ! 2996: you or your company wish to provide us, in suggestions, programs, etc. ! 2997: ! 2998: ! 2999: From UCBCAD:pettengi Mon Jan 31 19:55:02 1983 ! 3000: Date: 28-Jan-83 10:54:51-PST (Fri) ! 3001: From: UCBCAD:pettengi (Rob Pettengill) ! 3002: Subject: emacs interface to franz? ! 3003: Message-Id: <[email protected]> ! 3004: Received: by UCBCAD.BERKELEY.ARPA (3.256 [12/5/82]) ! 3005: id AA26156; 28-Jan-83 10:54:51-PST (Fri) ! 3006: Received: from UCBCAD.BERKELEY.ARPA by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 3007: id AA00374; 28 Jan 83 12:53:44 PST (Fri) ! 3008: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 3009: id AA03987; 31-Jan-83 19:55:02-PST (Mon) ! 3010: To: mike@rand-unix, franz-friends@ucbvax ! 3011: Cc: pettengi@UCBCAD ! 3012: Status: O ! 3013: ! 3014: While I was at TI I used a very nice interface that let one start up ! 3015: a Franz lisp inside an Emacs window. It came from SRI when we got Eunice to run ! 3016: under our VMS. Try Kashtan@SRI-AI. ! 3017: ! 3018: Rob Pettengill ! 3019: E-Systems, Dallas, Tx. ! 3020: ! 3021: From Kim:fateman Mon Jan 31 21:34:44 1983 ! 3022: Date: 28 Jan 83 08:32:08 PST (Fri) ! 3023: From: Kim:fateman (Richard Fateman) ! 3024: Subject: Re: franz distribution ! 3025: Message-Id: <[email protected]> ! 3026: Received: by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 3027: id AA21039; 28 Jan 83 08:31:58 PST (Fri) ! 3028: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 3029: id AA00642; 31-Jan-83 21:34:44-PST (Mon) ! 3030: To: CARR@UTAH-20 ! 3031: Cc: franz-friends@ucbvax ! 3032: Status: RO ! 3033: ! 3034: Our policy is that you may move copies of Franz elsewhere ! 3035: without notifying us. We continue to be interested in sharing anything ! 3036: you or your company wish to provide us, in suggestions, programs, etc. ! 3037: ! 3038: ! 3039: From UCBCAD:pettengi Mon Jan 31 22:12:30 1983 ! 3040: Date: 28-Jan-83 10:54:51-PST (Fri) ! 3041: From: UCBCAD:pettengi (Rob Pettengill) ! 3042: Subject: emacs interface to franz? ! 3043: Message-Id: <[email protected]> ! 3044: Received: by UCBCAD.BERKELEY.ARPA (3.256 [12/5/82]) ! 3045: id AA26156; 28-Jan-83 10:54:51-PST (Fri) ! 3046: Received: from UCBCAD.BERKELEY.ARPA by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 3047: id AA00374; 28 Jan 83 12:53:44 PST (Fri) ! 3048: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 3049: id AA01266; 31-Jan-83 22:12:30-PST (Mon) ! 3050: To: mike@rand-unix, franz-friends@ucbvax ! 3051: Cc: pettengi@UCBCAD ! 3052: Status: O ! 3053: ! 3054: While I was at TI I used a very nice interface that let one start up ! 3055: a Franz lisp inside an Emacs window. It came from SRI when we got Eunice to run ! 3056: under our VMS. Try Kashtan@SRI-AI. ! 3057: ! 3058: Rob Pettengill ! 3059: E-Systems, Dallas, Tx. ! 3060: ! 3061: From UCBKIM:jkf Tue Feb 1 10:35:21 1983 ! 3062: Date: 1-Feb-83 10:32:24-PST (Tue) ! 3063: From: UCBKIM:jkf (John Foderaro) ! 3064: Subject: multiple messages ! 3065: Message-Id: <[email protected]> ! 3066: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 3067: id AA00599; 1-Feb-83 10:32:24-PST (Tue) ! 3068: Received: from UCBKIM.BERKELEY.ARPA by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 3069: id AA00473; 1 Feb 83 10:32:35 PST (Tue) ! 3070: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 3071: id AA00644; 1-Feb-83 10:35:21-PST (Tue) ! 3072: To: franz-friends@ucbvax ! 3073: Status: RO ! 3074: ! 3075: I'm sorry for the multiple messages. The franz-friends mailing list is ! 3076: huge and the machine which does the mailing is crashing often. Our local ! 3077: mail wizard informs me that if it crashes while in the middle of sending ! 3078: mail it will not have a record of who it sent to before the crash. ! 3079: I hope you don't get too many copies of this message. ! 3080: ! 3081: ! 3082: ! 3083: ! 3084: ! 3085: From mike@rand-unix Wed Feb 2 05:33:01 1983 ! 3086: Date: Tuesday, 1 Feb 1983 15:06-PST ! 3087: From: mike@RAND-UNIX ! 3088: Subject: response to "emacs interface to franz?" ! 3089: Message-Id: <[email protected]> ! 3090: Received: from rand-unix by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 3091: id AA00221; 2 Feb 83 05:25:50 PST (Wed) ! 3092: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 3093: id AA24463; 2-Feb-83 05:33:01-PST (Wed) ! 3094: To: franz-friends@BERKELEY ! 3095: Cc: mike@RAND-UNIX ! 3096: Status: RO ! 3097: ! 3098: ! 3099: Here are the responses that I received to my question "What's out ! 3100: there for emacs?" ! 3101: ! 3102: ! 3103: ------- Forwarded Messages ! 3104: ! 3105: Received: From SU-SCORE by RAND-UNIX at Mon Jan 24 23:41:37 1983 ! 3106: Date: Mon 24 Jan 83 22:43:01-PST ! 3107: From: Jay Lark <[email protected]> ! 3108: Subject: Re: emacs interface to franz? ! 3109: To: [email protected] ! 3110: In-Reply-To: Your message of Mon 24 Jan 83 18:49:21-PST ! 3111: ! 3112: I'm sure you've probably received several messages similar to this one, ! 3113: but just in case... ! 3114: ! 3115: There exists the capability in Unix Emacs to run a process in its own ! 3116: buffer. Typein can be directed to the process, and output is just sent ! 3117: right to the buffer. This is an excellent way of running Lisp, because ! 3118: you get all of the nice Emacs features (paren balancing, local sexpr ! 3119: editing) at essentially no cost. I have been largely unsuccessful with ! 3120: trying to run Emacs under Lisp. ! 3121: ! 3122: The process package is part of the standard Unix Emacs distribution. ! 3123: ! 3124: Jay Lark ! 3125: ------- ! 3126: ! 3127: ! 3128: ------- Message 2 ! 3129: ! 3130: Received: From UTAH-CS by RAND-UNIX at Tue Jan 25 07:01:36 1983 ! 3131: Date: 25 Jan 1983 7:20-MST ! 3132: From: Russ Fish <utah-gr!fish@UTAH-CS> (host 10.0.0.4) ! 3133: Subject: Re: emacs interface to franz? ! 3134: To: mike@RAND-UNIX ! 3135: Cc: utah-gr!galway@UTAH-CS ! 3136: In-Reply-To: mike's message of Monday, 24 Jan 1983 15:34-PST ! 3137: ! 3138: We have been running our PSL (Portable Standard Lisp) in gemacs ! 3139: (Gosling's emacs) windows for some time. I suspect it would be a minor ! 3140: hack to convert it to Franz, but haven't done it and am not a Franz ! 3141: user. I could mail you our .ml code if you wanted to undertake ! 3142: converting it to Franz (or just using it for inspiration and hacking ! 3143: your own) and distributing it to Franz folks. ! 3144: ! 3145: It works like this: The lisp process is associated with a gemacs ! 3146: buffer/window. In that window you can carry on a normal line-by-line ! 3147: conversation, if you wish. <CR> sends the current line, (back to mark, ! 3148: which is left after the prompt) into the lisp. We mostly use the PSL ! 3149: in Rlisp syntax, which is algol-like, but this part of the code is just ! 3150: a wrapping for the new-shell function in process.ml with appropriate ! 3151: editting syntax set, so you could do the same with no work for any ! 3152: Lisp. ! 3153: ! 3154: You can send an expression, fn def, etc. from any other lisp-mode ! 3155: window with a single keypress. Echoing as input in the dialog window ! 3156: is inhibited if a prefix arg is provided, so you don't have to look at ! 3157: long exprs or fn defs again, just the lisp response. ! 3158: ! 3159: Sending multiple line exprs in response to a single prompt depends on ! 3160: the fact that PSL numbers the prompts for history, like the c-shell. A ! 3161: gemacs mlisp output filter process monitors the output for toploop ! 3162: prompts and feeds another line of input if the same prompt number comes ! 3163: back, instead of printing the prompt. ! 3164: ! 3165: The result is pretty classy. You get the full many-window gemacs ! 3166: editing environment with tags, etc. for random-access navigation and ! 3167: just send chunks of code as you change them. The extreme of usage is ! 3168: "menu" like windows which contain debugging code in clusters rather ! 3169: than sequences. You select exprs with the cursor and send them in any ! 3170: order. ! 3171: ! 3172: We also provide key fns for the common case of sending single lines to ! 3173: the toploop or single-character commands to the break-loop without ! 3174: editting them into a buffer. ! 3175: ! 3176: Best respond directly to me, since I am not on Franz-Friends. ! 3177: ! 3178: -Russ Fish (Fish@Utah-20, utah-cs!fish) ! 3179: ! 3180: ! 3181: ! 3182: ------- Message 3 ! 3183: ! 3184: Received: From UDEL-RELAY by RAND-UNIX at Tue Jan 25 18:18:55 1983 ! 3185: Return-Path: <israel.umcp-cs@UDel-Relay> ! 3186: Date: 25 Jan 83 15:13:51 EST (Tue) ! 3187: From: Bruce Israel <israel.umcp-cs@UDel-Relay> ! 3188: Subject: Re: emacs interface to franz? ! 3189: To: mike@RAND-UNIX ! 3190: In-Reply-To: Message of Monday, 24 Jan 1983 15:34-PST from mike@RAND-UNIX ! 3191: <[email protected]> ! 3192: Via: UMCP-CS; 25 Jan 83 20:45-EST ! 3193: ! 3194: We have a few franz<->emacs interfaces, but I'm not sure what you mean. ! 3195: One is the process.ml package that comes with gosling's emacs (the emacs ! 3196: that I assume you are talking about). With this package, you can run ! 3197: franz inside a window from within emacs and have the facilities of an ! 3198: editor along with lisp. The other thing we have is a local Franz ! 3199: package called the load1 package. This package was written for ! 3200: compiling flavors (like in the lisp machine; another local package) ! 3201: and has a function called vi. (vi 'lisp-function) will call the ! 3202: editor (from the environment variable VISUAL, /usr/ucb/vi is default) on the ! 3203: file which contains the definition of the lisp function, positioning ! 3204: the editor at the point in the file where the function is defined. Upon ! 3205: exiting the editor, it asks you if you want to reload the modified file. ! 3206: To edit a function from a file this way, the file must have been load1'ed ! 3207: previously so that the info on where the function is stored and what type ! 3208: it is will have been saved. Load1 will distinguish between different ! 3209: types of functions, ie. defflavors, defmethods, defmacros, defuns etc. ! 3210: and will search for the correct definition in the file. Is this what ! 3211: you mean? If you like I can send you the four or five files necessary. ! 3212: - Bruce ! 3213: ! 3214: ! 3215: ------- Message 4 ! 3216: ! 3217: Received: From CMU-CS-VLSI by RAND-UNIX at Thu Jan 27 06:53:41 1983 ! 3218: Date: 27 Jan 1983 09:44-EST ! 3219: From: Carl.Ebeling@CMU-CS-VLSI ! 3220: Subject: Re: emacs interface to franz? ! 3221: To: mike@RAND-UNIX ! 3222: Message-Id: <412526661/ce@CMU-CS-VLSI> ! 3223: In-Reply-To: mike@RAND-UNIX's bboard message of 27-Jan-83 04:14 ! 3224: ! 3225: I have an electric lisp package and process package for emacs. It ! 3226: includes 'zap-function-to-lisp' among other things. It is for ! 3227: Gosling's emacs and uses the subprocess facility. I can mail them to ! 3228: you if you like. ! 3229: Carl ! 3230: ! 3231: ! 3232: ------- End of Forwarded Messages ! 3233: ! 3234: From UCBKIM:jkf Wed Feb 2 08:19:19 1983 ! 3235: Date: 2-Feb-83 08:14:21-PST (Wed) ! 3236: From: UCBKIM:jkf (John Foderaro) ! 3237: Subject: multiple messages fixed? ! 3238: Message-Id: <[email protected]> ! 3239: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 3240: id AA25937; 2-Feb-83 08:14:21-PST (Wed) ! 3241: Received: from UCBKIM.BERKELEY.ARPA by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 3242: id AA00384; 2 Feb 83 08:10:26 PST (Wed) ! 3243: Received: by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 3244: id AA00477; 2 Feb 83 08:14:35 PST (Wed) ! 3245: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 3246: id AA26020; 2-Feb-83 08:19:19-PST (Wed) ! 3247: To: franz-friends@ucbvax ! 3248: Status: RO ! 3249: ! 3250: I've broken the franz-friends mailing list over two machines. I hope that ! 3251: this will fix the problem of mail to franz-friends crashing ucbvax every ! 3252: thirty minutes. If you get multiple copies of this message, please do not ! 3253: tell me about it, I will already know. ! 3254: ! 3255: ! 3256: ! 3257: ! 3258: From jkf Thu Feb 10 21:45:17 1983 ! 3259: Date: 10-Feb-83 21:45:17-PST (Thu) ! 3260: From: jkf (John Foderaro) ! 3261: Subject: liszt 8.21 ! 3262: Message-Id: <[email protected]> ! 3263: Received: by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 3264: id AA16021; 10-Feb-83 21:45:17-PST (Thu) ! 3265: To: local-lisp ! 3266: Status: O ! 3267: ! 3268: more functions open coded: vsize, vsize-byte, vsize-word, ! 3269: vectorp, vectorip ! 3270: ! 3271: ! 3272: ! 3273: From PSI.KROHNFELDT@UTAH-20 Fri Feb 11 15:09:11 1983 ! 3274: Date: 11 Feb 1983 1601-MST ! 3275: From: Jed Krohnfeldt <PSI.KROHNFELDT@UTAH-20> ! 3276: Subject: cfasl ! 3277: Message-Id: <[email protected]> ! 3278: Received: from UTAH-20 by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 3279: id AA07475; 11 Feb 83 15:02:05 PST (Fri) ! 3280: Received: by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 3281: id AA07565; 11 Feb 83 15:06:37 PST (Fri) ! 3282: Received: from UCBVAX.BERKELEY.ARPA by UCBKIM.BERKELEY.ARPA (3.256 [12/5/82]) ! 3283: id AA14422; 11-Feb-83 15:09:11-PST (Fri) ! 3284: To: Franz-friends@UCBVAX ! 3285: Status: O ! 3286: ! 3287: I am having trouble using cfasl in franz 38.04. I keep getting the ! 3288: message "ld: /usr/ucb/lisp : no namelist". Can anyone decipher this ! 3289: for me? Thanks... ! 3290: ------- ! 3291: ! 3292: From apm@cmu-ri-isl Mon Feb 14 07:31:54 1983 ! 3293: Date: 14 Feb 1983 10:24:21-EST ! 3294: From: Andrew.Mendler@CMU-RI-ISL ! 3295: Subject: franz lisp under5 vms 3.0 ! 3296: Message-Id: <[email protected]> ! 3297: Received: from CMU-RI-ISL by UCBVAX.ARPA (3.310/3.3) ! 3298: id AA27879; 14 Feb 83 07:31:54 PST (Mon) ! 3299: Received: by UCBKIM.ARPA (3.310/3.3) ! 3300: id AA01172; 14 Feb 83 15:50:41 PST (Mon) ! 3301: To: [email protected] ! 3302: Status: O ! 3303: ! 3304: Does anyone have a copy of Franz Lisp and the compiler that works under ! 3305: VMS version 3.0? ! 3306: ! 3307: From @udel-relay:tim.unc@UDel-Relay Mon Feb 14 02:52:18 1983 ! 3308: Date: 13 Feb 83 14:34:48 EST (Sun) ! 3309: From: Tim Maroney <tim.unc@UDel-Relay> ! 3310: Subject: cfasl: no namelist ! 3311: Return-Path: <tim.unc@UDel-Relay> ! 3312: Message-Id: <[email protected]> ! 3313: Received: from udel-relay.ARPA by UCBVAX.ARPA (3.310/3.3) ! 3314: id AA25792; 14 Feb 83 02:52:18 PST (Mon) ! 3315: Received: by UCBKIM.ARPA (3.310/3.3) ! 3316: id AA02234; 14 Feb 83 16:18:42 PST (Mon) ! 3317: To: [email protected] ! 3318: Via: UNC; 14 Feb 83 5:43-EST ! 3319: Status: O ! 3320: ! 3321: I don't seem to be able to write Jed Krohnfeldt, and this ! 3322: answer is probably of general interest anyway. The message ! 3323: "ld: no namelist" means that some well-meaning system admin ! 3324: has stripped the lisp executable file to save space; ! 3325: unfortunately, this makes the dynamic loading used by cfasl ! 3326: impossible. Lisp will have to be recompiled (groan). No Franz ! 3327: Lisp executable file should EVER be stripped. ! 3328: ! 3329: Tim Maroney ! 3330: tim.unc@udel-relay ! 3331: decvax!duke!unc!tim ! 3332: ! 3333: From Mark.Sherman@CMU-CS-A Sat Feb 12 21:38:46 1983 ! 3334: Date: 13 February 1983 0034-EST (Sunday) ! 3335: From: Mark.Sherman@CMU-CS-A ! 3336: Subject: Space and Leakage ! 3337: Message-Id: <13Feb83 003422 MS40@CMU-CS-A> ! 3338: Received: from CMU-CS-A by UCBVAX.BERKELEY.ARPA (3.300 [1/17/83]) ! 3339: id AA07842; 12 Feb 83 21:38:46 PST (Sat) ! 3340: Received: by UCBKIM.ARPA (3.310/3.3) ! 3341: id AA02341; 14 Feb 83 16:21:29 PST (Mon) ! 3342: To: franz-friends@UCB-VAX ! 3343: Status: O ! 3344: ! 3345: Can someone tell me how the maximum amount of storage that franz ! 3346: lisp uses is decided? I can force the size up to (about) 3050 ! 3347: pages (according to "ps") and then get the message "storage exhausted". ! 3348: I have been told (and have seen) other jobs get substantially more ! 3349: space; can franz get more pages as well? (I am using the cshell ! 3350: and have already used the limit command to raise my process ! 3351: size up to 32 megabytes, or so I think.) ! 3352: ! 3353: I have also been told that the garbage collector leaks, that is, ! 3354: not all of the garbage is really collected. Does anyone have good ! 3355: ideas about how much (or fast) this happens, or if there is some way ! 3356: to minimize the lost space? ! 3357: ! 3358: (Please send responses directly to me as I am not on this list.) ! 3359: -Mark Sherman (Sherman@CMU-CS-A) ! 3360: ! 3361: From @udel-relay:Mac.uvacs.Virginia@UDel-Relay Fri Feb 18 21:04:31 1983 ! 3362: Date: 18 Feb 83 12:42:40-EST (Fri) ! 3363: From: Mac.uvacs@UDel-Relay ! 3364: Subject: global nonspecial variables ! 3365: Return-Path: <Mac.uvacs.Virginia@UDel-Relay> ! 3366: Message-Id: <[email protected]> ! 3367: Received: from udel-relay.ARPA by UCBVAX.ARPA (3.312/3.5) ! 3368: id AA26020; 18 Feb 83 21:04:31 PST (Fri) ! 3369: Received: by UCBKIM.ARPA (3.310/3.5) ! 3370: id AA00656; 21 Feb 83 01:59:26 PST (Mon) ! 3371: To: [email protected] ! 3372: Via: Virginia; 18 Feb 83 23:58-EST ! 3373: Status: O ! 3374: ! 3375: Does the Liszt compiler have any notion of global variables -- ! 3376: free variables with fast access, without any rebinding? ! 3377: ! 3378: I think the MACLISP compiler has something like this for variables ! 3379: beginning "**". ! 3380: ! 3381: Alex Colvin ! 3382: ! 3383: uucp: ...decvax!duke!mcnc!ncsu!uvacs!mac ! 3384: csnet:mac@virginia ! 3385: arpa: mac.uvacs@udel-relay ! 3386: ! 3387: From jkf@UCBKIM Mon Feb 21 09:19:56 1983 ! 3388: Date: 21 Feb 83 09:19:43 PST (Mon) ! 3389: From: jkf@UCBKIM (John Foderaro) ! 3390: Subject: Re: global nonspecial variables ! 3391: Message-Id: <[email protected]> ! 3392: Received: by UCBKIM.ARPA (3.310/3.5) ! 3393: id AA02798; 21 Feb 83 09:19:43 PST (Mon) ! 3394: Received: from UCBKIM.ARPA by UCBVAX.ARPA (3.314/3.5) ! 3395: id AA13982; 21 Feb 83 09:11:52 PST (Mon) ! 3396: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.310/3.5) ! 3397: id AA02805; 21 Feb 83 09:19:56 PST (Mon) ! 3398: To: Mac.uvacs@UDel-Relay, [email protected] ! 3399: In-Reply-To: Your message of 18 Feb 83 12:42:40-EST (Fri) ! 3400: Status: O ! 3401: ! 3402: I don't understand the distinction between what you call a global variable ! 3403: and a special variable. A special variable in Franz Lisp (and any other ! 3404: shallow bound lisp) can be accessed rapidly and is only rebound if you ! 3405: put it in a lambda, prog or do variable list. ! 3406: ! 3407: ! 3408: ! 3409: From jkf@UCBKIM Fri Feb 25 08:29:01 1983 ! 3410: Date: 25 Feb 83 08:28:45 PST (Fri) ! 3411: From: jkf@UCBKIM (John Foderaro) ! 3412: Subject: research position at edinburgh ! 3413: Message-Id: <[email protected]> ! 3414: Received: by UCBKIM.ARPA (3.310/3.5) ! 3415: id AA00528; 25 Feb 83 08:28:45 PST (Fri) ! 3416: Received: from UCBKIM.ARPA by UCBVAX.ARPA (3.314/3.5) ! 3417: id AA00867; 25 Feb 83 08:18:48 PST (Fri) ! 3418: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.310/3.5) ! 3419: id AA00537; 25 Feb 83 08:29:01 PST (Fri) ! 3420: To: [email protected] ! 3421: Status: O ! 3422: ! 3423: ! 3424: DEPARTMENT OF ARTIFICIAL INTELLIGENCE ! 3425: UNIVERSITY OF EDINBURGH ! 3426: ! 3427: RESEARCH FELLOW ! 3428: ! 3429: A Research Fellowship is available within the Programming Systems Development ! 3430: Group. The post has been created specifically to provide a modern LISP system ! 3431: for the Perq computer running under ICL MicroCode UNIX, and is funded by the ! 3432: Science and Engineering Research Council. ! 3433: ! 3434: Experience in implementing systems would be advantageous, as would be a ! 3435: knowledge of LISP and C. Access will be available to an SERC DECsystem-10 ! 3436: running TOPS-10 and to a University VAX 750 running Berkeley UNIX, as well as ! 3437: to Perqs. ! 3438: ! 3439: The appointment will be made on the salary range 1B/1A, 5550 - 10670 pounds ! 3440: sterling, according to age and experience. The post is funded for a period of ! 3441: two years from the date of appointment. ! 3442: ! 3443: Further particulars of the post can be obtained from: ! 3444: ! 3445: Administrative Assistant ! 3446: Department of Artificial Intelligence ! 3447: University of Edinburgh ! 3448: Forrest Hill ! 3449: Edinburgh EH1 2QL ! 3450: SCOTLAND ! 3451: phone ! 3452: 031-667-1011 x2554 ! 3453: ! 3454: or by contacting ! 3455: ! 3456: RAE%EDXA%UCL-CS@ISID (Networks permitting) ! 3457: ! 3458: Applications should be made by March 17th, 1983. ! 3459: ! 3460: ! 3461: ! 3462: ! 3463: From layer Sat Mar 5 20:12:57 1983 ! 3464: Date: 5 Mar 83 20:12:57 PST (Sat) ! 3465: From: layer (Kevin Layer) ! 3466: Subject: process function ! 3467: Message-Id: <[email protected]> ! 3468: Received: by UCBKIM.ARPA (3.310/3.5) ! 3469: id AA18927; 5 Mar 83 20:12:57 PST (Sat) ! 3470: Phone: (415) 652-2405 ! 3471: To: local-lisp ! 3472: Status: O ! 3473: ! 3474: The process function now looks in the environment at the SHELL variable. ! 3475: If present, it will use this as the default shell to execute your command. ! 3476: If not present, csh and then sh are tried (in that order). ! 3477: ! 3478: ! 3479: From @udel-relay.ARPA:Pintzuk.UPenn.UPenn@UDel-Relay Tue Mar 8 06:04:10 1983 ! 3480: Date: 8 Mar 1983 2:32-EST ! 3481: From: Susan Pintzuk <Pintzuk.UPenn@UDel-Relay> ! 3482: Subject: lisp statistical packages ! 3483: Return-Path: <Pintzuk.UPenn.UPenn@UDel-Relay> ! 3484: Message-Id: <[email protected]> ! 3485: Received: from udel-relay.ARPA by UCBVAX.ARPA (3.322/3.14) ! 3486: id AA13004; 8 Mar 83 06:01:54 PST (Tue) ! 3487: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.310/3.5) ! 3488: id AA08297; 8 Mar 83 06:04:10 PST (Tue) ! 3489: To: [email protected] ! 3490: Via: UPenn; 8 Mar 83 3:49-EST ! 3491: Status: O ! 3492: ! 3493: do any franz-lisp packages exist which calculate mean, standard deviation, ! 3494: %n within mean +/- 1 (or 2 or 3) standard deviation(s), etc.? if so, how ! 3495: do i obtain a copy? ! 3496: ! 3497: From jkf Tue Mar 8 09:10:46 1983 ! 3498: Date: 8 Mar 83 09:10:46 PST (Tue) ! 3499: From: jkf (John Foderaro) ! 3500: Subject: opus38.56 ! 3501: Message-Id: <[email protected]> ! 3502: Received: by UCBKIM.ARPA (3.310/3.5) ! 3503: id AA09423; 8 Mar 83 09:10:46 PST (Tue) ! 3504: To: local-lisp ! 3505: Status: O ! 3506: ! 3507: If $gcprint is set to a non nil value, then just before a garbage ! 3508: collection is begun, the message 'gc:' will be printed on the tty. ! 3509: As before, after the garbage collection is finished, the statistics ! 3510: message in square brackets will be printed. ! 3511: ! 3512: ! 3513: ! 3514: From fateman Wed Mar 9 09:54:31 1983 ! 3515: Date: 9 Mar 83 09:54:31 PST (Wed) ! 3516: From: fateman (Richard Fateman) ! 3517: Subject: need a job ! 3518: Message-Id: <[email protected]> ! 3519: Received: by UCBKIM.ARPA (3.310/3.5) ! 3520: id AA14754; 9 Mar 83 09:54:31 PST (Wed) ! 3521: To: local-lisp ! 3522: Status: O ! 3523: ! 3524: porting Lisp, C, Pascal, Fortran ... etc to a Denelcorp HEP ! 3525: computer? Wanna live in Denver? There is a recruiter in ! 3526: town from Denelcor at Marriot Inn, Jim Holly. There is an ! 3527: ad posted on 5th floor bulletin board. ! 3528: ! 3529: From jkf Sat Mar 19 17:44:33 1983 ! 3530: Date: 19 Mar 83 17:44:33 PST (Sat) ! 3531: From: jkf (John Foderaro) ! 3532: Subject: liszt 8.24 ! 3533: Message-Id: <[email protected]> ! 3534: Received: by UCBKIM.ARPA (3.310/3.5) ! 3535: id AA25091; 19 Mar 83 17:44:33 PST (Sat) ! 3536: To: local-lisp ! 3537: Status: O ! 3538: ! 3539: The vax and 68k versions of liszt have been combined into one set of ! 3540: source files. This is mainly a textual change, but some functions ! 3541: in the compiler have been modified in reduce the machine dependent code. ! 3542: Be on the lookout for strange errors. ! 3543: ! 3544: ! 3545: ! 3546: From fateman Tue Mar 22 20:52:11 1983 ! 3547: Date: 22 Mar 83 20:52:11 PST (Tue) ! 3548: From: fateman (Richard Fateman) ! 3549: Subject: T Lisp ! 3550: Message-Id: <[email protected]> ! 3551: Received: by UCBKIM.ARPA (3.310/3.5) ! 3552: id AA05935; 22 Mar 83 20:52:11 PST (Tue) ! 3553: To: local-lisp ! 3554: Status: RO ! 3555: ! 3556: I have a preliminary manual for the T dialect of Lisp, created ! 3557: at Yale. It is being offered for sale by Cognitive Systems, Inc. ! 3558: for $1000/CPU (educational price). It offers features from Lisp ! 3559: and Scheme. It runs on VAX and Apollo 68000 systems. ! 3560: ! 3561: From jkf Thu Mar 24 08:29:31 1983 ! 3562: Date: 24 Mar 83 08:29:31 PST (Thu) ! 3563: From: jkf (John Foderaro) ! 3564: Subject: liszt 8.25 ! 3565: Message-Id: <[email protected]> ! 3566: Received: by UCBKIM.ARPA (3.310/3.5) ! 3567: id AA06735; 24 Mar 83 08:29:31 PST (Thu) ! 3568: To: local-lisp ! 3569: Status: O ! 3570: ! 3571: ! 3572: If you do this: ! 3573: ! 3574: liszt -x a/b/c.l -o x/y/z.o ! 3575: ! 3576: then the cross reference file will be put in x/y/z.x ! 3577: Before this version, it would have gone into a/b/c.x ! 3578: ! 3579: ! 3580: ! 3581: From jkf Thu Mar 24 15:00:37 1983 ! 3582: Date: 24 Mar 83 15:00:37 PST (Thu) ! 3583: From: jkf (John Foderaro) ! 3584: Subject: liszt 8.26 ! 3585: Message-Id: <[email protected]> ! 3586: Received: by UCBKIM.ARPA (3.310/3.5) ! 3587: id AA11144; 24 Mar 83 15:00:37 PST (Thu) ! 3588: To: local-lisp ! 3589: Status: O ! 3590: ! 3591: liszt will now pass the assembler the -V switch. This tells the assembler ! 3592: to keep its intermediate file in core rather than putting it in /tmp. ! 3593: This should make assembly slightly faster and also permit large lisp files to ! 3594: be compiled on systems with small /tmp's. ! 3595: ! 3596: ! 3597: ! 3598: From @udel-relay.ARPA:tim.unc@UDel-Relay Sat Mar 26 03:41:05 1983 ! 3599: Date: 25 Mar 83 15:03:29 EST (Fri) ! 3600: From: Tim Maroney <tim.unc@UDel-Relay> ! 3601: Subject: open coding of (function (lambda ...)) ! 3602: Return-Path: <tim.unc@UDel-Relay> ! 3603: Message-Id: <[email protected]> ! 3604: Received: from udel-relay.ARPA by UCBVAX.ARPA (3.331/3.17) ! 3605: id AB02371; 26 Mar 83 03:37:13 PST (Sat) ! 3606: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.310/3.5) ! 3607: id AA00854; 26 Mar 83 03:41:05 PST (Sat) ! 3608: To: [email protected] ! 3609: Via: UNC; 25 Mar 83 19:43-EST ! 3610: Status: O ! 3611: ! 3612: This doesn't seem to work. I'm using Liszt version 8.10, University ! 3613: of Maryland distribution. The documentation in the file "lispnews" ! 3614: is sketchy, but it seems that compiling and loading the file: ! 3615: ! 3616: (setq appsum (function (lambda (x) (apply 'sum x)))) ! 3617: ! 3618: should leave a bcd object in appsum's value, but it doesn't. It ! 3619: leaves the uncompiled lambda. Am I doing something wrong? ! 3620: ! 3621: Tim Maroney ! 3622: decvax!duke!unc!tim ! 3623: tim.unc@udel-relay ! 3624: ! 3625: From jkf@UCBKIM Sat Mar 26 08:46:44 1983 ! 3626: Date: 26 Mar 83 08:46:28 PST (Sat) ! 3627: From: jkf@UCBKIM (John Foderaro) ! 3628: Subject: Re: open coding of (function (lambda ...)) ! 3629: Message-Id: <[email protected]> ! 3630: Received: by UCBKIM.ARPA (3.310/3.5) ! 3631: id AA02453; 26 Mar 83 08:46:28 PST (Sat) ! 3632: Received: from UCBKIM.ARPA by UCBVAX.ARPA (3.331/3.17) ! 3633: id AA05012; 26 Mar 83 08:42:50 PST (Sat) ! 3634: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.310/3.5) ! 3635: id AA02462; 26 Mar 83 08:46:44 PST (Sat) ! 3636: To: tim.unc@UDel-Relay ! 3637: Cc: [email protected] ! 3638: In-Reply-To: Your message of 25 Mar 83 15:03:29 EST (Fri) ! 3639: Status: O ! 3640: ! 3641: ! 3642: Liszt only compiles functions, not literals it finds in files. ! 3643: To make this statement be compiled: ! 3644: (setq appsum (function (lambda (x) (apply 'sum x)))) ! 3645: ! 3646: you should surround it with a function defintion: ! 3647: (defun junk () ! 3648: (setq appsum (function (lambda (x) (apply 'sum x))))) ! 3649: ! 3650: ! 3651: ! 3652: From CARR@UTAH-20 Mon Apr 4 14:53:09 1983 ! 3653: Date: 4 Apr 1983 0922-MST ! 3654: From: Harold Carr <CARR@UTAH-20> ! 3655: Subject: Franz/Common lisp ! 3656: Message-Id: <[email protected]> ! 3657: Received: from UTAH-20 (utah-20.ARPA) by UCBVAX.ARPA (3.332/3.20) ! 3658: id AA07020; 4 Apr 83 09:11:40 PST (Mon) ! 3659: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.310/3.5) ! 3660: id AA01683; 4 Apr 83 14:53:09 PST (Mon) ! 3661: To: [email protected] ! 3662: Cc: KROHNFELDT@UTAH-20 ! 3663: Status: O ! 3664: ! 3665: Does anyone have any sort of Common Lisp compatibility package for Franz? ! 3666: If so, how can I obtain it? Thanks in advance. Harold Carr (CARR@UTAH-20). ! 3667: ------- ! 3668: ! 3669: From jeff@aids-unix Tue Apr 5 12:42:46 1983 ! 3670: Date: 4 Apr 1983 11:06:49 PST (Monday) ! 3671: From: Jeff Dean <jeff@aids-unix> ! 3672: Subject: knowledge representation language ! 3673: Message-Id: <[email protected]> ! 3674: Received: from aids-unix (aids-unix.ARPA) by UCBVAX.ARPA (3.332/3.20) ! 3675: id AA26557; 5 Apr 83 12:42:11 PST (Tue) ! 3676: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.310/3.5) ! 3677: id AA16443; 5 Apr 83 12:42:46 PST (Tue) ! 3678: To: [email protected] ! 3679: Status: O ! 3680: ! 3681: Does anyone have a knowledge representation language (such as FRL or ! 3682: KL-ONE) available under Franz Lisp? ! 3683: ! 3684: Jeff Dean ! 3685: arpa: jeff@aids-unix ! 3686: uucp: ...ucbvax!jeff@aids-unix ! 3687: ! 3688: ! 3689: From jkf Tue Apr 5 13:08:06 1983 ! 3690: Date: 5 Apr 83 13:08:06 PST (Tue) ! 3691: From: jkf (John Foderaro) ! 3692: Subject: lisp opus 38.57 ! 3693: Message-Id: <[email protected]> ! 3694: Received: by UCBKIM.ARPA (3.310/3.5) ! 3695: id AA16969; 5 Apr 83 13:08:06 PST (Tue) ! 3696: To: local-lisp ! 3697: Status: RO ! 3698: ! 3699: This version has a number of internal changes to make it compilable ! 3700: on 68k. If you notice it acting abnormally, let me know. ! 3701: ! 3702: ! 3703: ! 3704: From FAHLMAN@CMU-CS-C Thu Apr 7 07:50:06 1983 ! 3705: Date: Thu, 7 Apr 1983 10:46 EST ! 3706: From: Scott E. Fahlman <Fahlman@CMU-CS-C> ! 3707: Subject: Franz/Common lisp ! 3708: Message-Id: <[email protected]> ! 3709: Received: ID <FAHLMAN@CMU-CS-C>; 7 Apr 83 10:46:59 EST ! 3710: Received: from CMU-CS-C (cmu-cs-c.ARPA) by UCBVAX.ARPA (3.332/3.20) ! 3711: id AA13873; 7 Apr 83 07:49:42 PST (Thu) ! 3712: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.310/3.5) ! 3713: id AA18082; 7 Apr 83 07:50:06 PST (Thu) ! 3714: To: Harold Carr <CARR@UTAH-20> ! 3715: Cc: [email protected] ! 3716: In-Reply-To: Msg of 4 Apr 1983 11:22-EST from Harold Carr <CARR at UTAH-20> ! 3717: Status: RO ! 3718: ! 3719: ! 3720: Harold, ! 3721: ! 3722: A couple of things make it seem unlikely that anyone would have such a ! 3723: package right now. First, we don't even have a final Common Lisp manual ! 3724: yet -- Guy's next draft is due very soon, but there will be some tuning ! 3725: and hassling after that. Second, there are things in Common Lisp that ! 3726: would be very tough to fake on Franz: lexical binding, generic ! 3727: sequences, some of the hairy number types, character objects, etc. ! 3728: Common Lisp is pretty close to being a superset of Franz, so I would ! 3729: expect to see Franz compatibility packages in Common Lisp, but not vice ! 3730: versa. Third, if anyone were writing such a package, they would be ! 3731: crazy not to have arranged for access to our code that implements all of ! 3732: the hairy functions, and nobody has done this to my knowledge. ! 3733: ! 3734: My standard advice is for people to continue to code in Franz with the ! 3735: knowledge that they can easily convert their code to Common Lisp ! 3736: whenever the DEC Common Lisp is available to them. This should be a ! 3737: one-time conversion, since moving the other way after "going native" in ! 3738: Common Lisp would be very tough. ! 3739: ! 3740: If someone does pop up with a compatibility package -- even a partial ! 3741: one -- I would be interested in hearing about it. ! 3742: ! 3743: -- Scott ! 3744: ! 3745: From fateman@UCBKIM Sun Apr 10 19:52:14 1983 ! 3746: Date: 10 Apr 83 19:50:59 PST (Sun) ! 3747: From: fateman@UCBKIM (Richard Fateman) ! 3748: Subject: Re: Franz/Common lisp ! 3749: Message-Id: <[email protected]> ! 3750: Received: by UCBKIM.ARPA (3.310/3.5) ! 3751: id AA06176; 10 Apr 83 19:50:59 PST (Sun) ! 3752: Received: from UCBKIM.ARPA by UCBVAX.ARPA (3.332/3.21) ! 3753: id AA10019; 10 Apr 83 19:49:55 PST (Sun) ! 3754: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.310/3.5) ! 3755: id AA06192; 10 Apr 83 19:52:14 PST (Sun) ! 3756: To: carr@utah-20, fahlman@cmu-cs-c ! 3757: Cc: [email protected] ! 3758: Status: RO ! 3759: ! 3760: I think that a common-lisp-compatibility package written ! 3761: in Franz would not be as difficult as all that. ! 3762: ! 3763: If Common Lisp (TM of DEC?) were available on all the same ! 3764: machines at the same price, (appx. $0.) and CL were ! 3765: in fact a superset of Franz for all practical purposes, and ! 3766: with similar or better efficiency, etc. Why would anyone bother? ! 3767: ! 3768: Of course if CL does not meet all of the objectives (e.g. price, machines), ! 3769: then a CL-to-Franz "translator" might make sense. ! 3770: ! 3771: With that in mind, ! 3772: I would like to officially request a copy of the Common Lisp ! 3773: language (as implemented in CL, presumably), as soon as it ! 3774: becomes available (i.e. no later than when it is a "product" ! 3775: of DEC, and probably at "beta" test time). ! 3776: I agree fully with Scott that trying to do this with an incomplete ! 3777: language specification is unwise. ! 3778: ! 3779: I am also not making any commitment to do anything with CL at ! 3780: Berkeley, but since we are building tools for our own applications, ! 3781: and CL might be useful, we might consider an efficient merge of ! 3782: ideas. ! 3783: ! 3784: From jkf@UCBKIM Mon Apr 11 08:07:39 1983 ! 3785: Date: 11 Apr 83 06:42:43 PST (Mon) ! 3786: From: jkf@UCBKIM (John Foderaro) ! 3787: Subject: mail to this mailing list ! 3788: Message-Id: <[email protected]> ! 3789: Received: by UCBKIM.ARPA (3.310/3.5) ! 3790: id AA11378; 11 Apr 83 06:42:43 PST (Mon) ! 3791: Received: from UCBKIM.ARPA by UCBVAX.ARPA (3.332/3.21) ! 3792: id AA07288; 11 Apr 83 08:05:32 PST (Mon) ! 3793: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.310/3.5) ! 3794: id AA11949; 11 Apr 83 08:07:39 PST (Mon) ! 3795: To: [email protected] ! 3796: Status: RO ! 3797: ! 3798: I'm sorry that people who mail to this mailing list must put up with lots ! 3799: of mail errors from our local mailer. The problem is not that we have a ! 3800: lot of illegal addresses, but that over the three day period that the ! 3801: mailer tries to deliver the mail, some of the destination sites never ! 3802: respond. I think that this is due primarily to the fact that many sites ! 3803: are running new mail and networking software. Hopefully this will ! 3804: improve over time. ! 3805: john foderaro ! 3806: ! 3807: ! 3808: ! 3809: ! 3810: From jkf Fri Apr 22 09:59:09 1983 ! 3811: Date: 22 Apr 83 09:59:09 PST (Fri) ! 3812: From: jkf (John Foderaro) ! 3813: Subject: lisp opus 38.59 ! 3814: Message-Id: <[email protected]> ! 3815: Received: by UCBKIM.ARPA (3.310/3.5) ! 3816: id AA20996; 22 Apr 83 09:59:09 PST (Fri) ! 3817: To: local-lisp ! 3818: Status: RO ! 3819: ! 3820: Input like 1.2.3 and 1..2 will now be read as single symbols rather ! 3821: than two consecutive numbers. ! 3822: ! 3823: ! 3824: ! 3825: From jkf Sun May 8 00:02:54 1983 ! 3826: Date: 8 May 83 00:02:54 PDT (Sun) ! 3827: From: jkf (John Foderaro) ! 3828: Subject: opus 38.60 ! 3829: Message-Id: <[email protected]> ! 3830: Received: by UCBKIM.ARPA (3.310/3.5) ! 3831: id AA22344; 8 May 83 00:02:54 PDT (Sun) ! 3832: To: local-lisp ! 3833: Cc: rms ! 3834: Status: RO ! 3835: ! 3836: Thanks to some suggestions from rms we are now one step closer to ! 3837: full closures. fclosures will now work if called recursively. ! 3838: It is still true that the only way to make fclosures share variables ! 3839: is to use fclosure-list. ! 3840: ! 3841: symeval-in-fclosure may return the wrong value if the closure is ! 3842: 'active'. This will be fixed eventually. ! 3843: ! 3844: ! 3845: ! 3846: From mbr@nprdc Sat May 21 07:37:23 1983 ! 3847: Date: 20 May 1983 14:57:55-PDT ! 3848: From: mbr@NPRDC ! 3849: Subject: lam9.c and curses ! 3850: Message-Id: <[email protected]> ! 3851: Received: from nprdc (nprdc.ARPA) by UCBVAX.ARPA (3.341/3.29) ! 3852: id AA16172; 21 May 83 07:34:43 PDT (Sat) ! 3853: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5) ! 3854: id AA08856; 21 May 83 07:37:23 PDT (Sat) ! 3855: Reply-To: mbr <mbr@NPRDC> ! 3856: To: [email protected] ! 3857: Cc: mbr@NPRDC ! 3858: Status: O ! 3859: ! 3860: When we attempted to cfasl a file that used the curses package ! 3861: of screen control routines into Franz 38.40, we got the message ! 3862: _ospeed: /usr/libcurses.a (cr_tty.o) multiply defined. ! 3863: The apparent cause of this cryptic remark is that in lam9.c ! 3864: there is an extern variable ospeed. There are a number of ! 3865: tantalizing routines in this source file dealing with termcaps that ! 3866: are apparently not called by anyone. Are there plans for these ! 3867: routines? Does anyone use them (heaven forbid they should be ! 3868: documented!). Our current fix is to just change ospeed to ospiid ! 3869: which so far has had no dire effects, but I am interested in others ! 3870: experience. The curses stuff seems to work fine after this ! 3871: modification. ! 3872: Mark Rosenstein ! 3873: ! 3874: ! 3875: From jkf Wed May 25 12:15:54 1983 ! 3876: Date: 25 May 83 12:15:54 PDT (Wed) ! 3877: From: jkf (John Foderaro) ! 3878: Subject: opus 38.61 ! 3879: Message-Id: <[email protected]> ! 3880: Received: by UCBKIM.ARPA (3.340/3.5) ! 3881: id AA01144; 25 May 83 12:15:54 PDT (Wed) ! 3882: To: local-lisp ! 3883: Status: O ! 3884: ! 3885: symeval-in-fclosure and set-in-fclosure now work (thanks to keith). ! 3886: ! 3887: selectq is now a part of standard franz. selectq is just like ! 3888: caseq except it allows 'otherwise' as well as 't' for the ! 3889: key which means 'if nothing else matches, use this clause'. ! 3890: ! 3891: ! 3892: ! 3893: ! 3894: From cornwell@nrl-css Wed May 25 12:51:17 1983 ! 3895: Date: Wed, 25 May 83 15:14:19 EDT ! 3896: From: Mark Cornwell <cornwell@NRL-CSS> ! 3897: Subject: Franz on the Sun ! 3898: Message-Id: <[email protected]> ! 3899: Received: from nrl-css (nrl-css.ARPA) by UCBVAX.ARPA (3.341/3.29) ! 3900: id AA02600; 25 May 83 12:50:26 PDT (Wed) ! 3901: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5) ! 3902: id AA01878; 25 May 83 12:51:17 PDT (Wed) ! 3903: To: [email protected] ! 3904: Cc: cornwell@NRL-CSS ! 3905: Status: O ! 3906: ! 3907: ! 3908: Our group at NRL is planning to purchase Sun workstations. I ! 3909: currently have a substantial amount of code written in Franz Lisp that ! 3910: I want to run on the Sun. ! 3911: ! 3912: What is the status of the Berkeley group porting Franz to the Sun? ! 3913: How do I get a copy? ! 3914: ! 3915: Also, I have a few concerns about configuring a Sun to run Franz well. ! 3916: The basic desktop Sun workstation provides 1 Mbyte of physical memory. ! 3917: This can be extended to 2 Mbyte or one can add an Ethernet interface ! 3918: *but not both*. Since I am unwilling to give up my Ethernet ! 3919: interface I may be forced to run Franz in 1 Mbyte and contend with ! 3920: the added paging overhead (using a 68010 running 4.2bsd and a local disk). ! 3921: ! 3922: Has anyone out there had experience running Franz Lisp on a Sun in ! 3923: such a configuration? Can I get away without the 2 Mbyte extension? ! 3924: I think your answers would be of general interest. ! 3925: ! 3926: -- Mark (caught between a rock and a hard place?) Cornwell ! 3927: ! 3928: ! 3929: ! 3930: From baden@UCBKIM Wed May 25 13:51:39 1983 ! 3931: Date: 25 May 83 13:32:01 PDT (Wed) ! 3932: From: baden@UCBKIM (Scott B. Baden) ! 3933: Subject: Re: Franz on the Sun ! 3934: Message-Id: <[email protected]> ! 3935: Received: by UCBKIM.ARPA (3.340/3.5) ! 3936: id AA02716; 25 May 83 13:32:01 PDT (Wed) ! 3937: Received: from UCBKIM.ARPA by UCBVAX.ARPA (3.341/3.29) ! 3938: id AA03753; 25 May 83 13:50:52 PDT (Wed) ! 3939: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5) ! 3940: id AA03002; 25 May 83 13:51:39 PDT (Wed) ! 3941: To: [email protected] ! 3942: Cc: cornwell@NRL-CSS ! 3943: Status: O ! 3944: ! 3945: Which sun are you using? My office mate says that ! 3946: he has seen a sun configured with 2MB of memory AND ! 3947: an Ethernet board. ! 3948: ! 3949: From mike%Rice.Rice@Rand-Relay Fri May 27 19:51:33 1983 ! 3950: Date: Fri, 27 May 83 18:18:47 CDT ! 3951: From: Mike.Caplinger <mike.rice@Rand-Relay> ! 3952: Subject: Re: Franz on the Sun ! 3953: Return-Path: <mike%Rice.Rice@Rand-Relay> ! 3954: Message-Id: <[email protected]> ! 3955: Received: from rand-relay.ARPA by UCBVAX.ARPA (3.341/3.29) ! 3956: id AA19088; 27 May 83 19:50:15 PDT (Fri) ! 3957: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5) ! 3958: id AA02221; 27 May 83 19:51:33 PDT (Fri) ! 3959: To: [email protected] ! 3960: In-Reply-To: baden%UCBKIM's message of 25 May 83 13:32:01 PDT (Wed) ! 3961: Via: Rice; 27 May 83 19:14-PDT ! 3962: Status: RO ! 3963: ! 3964: As I type I'm bringing up the 68K version of Opus 38 (now FTPable from ! 3965: UCB-VAX) on a SUN running 4.1c. There don't seem to be any major ! 3966: problems so far, but the compiler doesn't run on a system with all the ! 3967: net servers on it because it runs out of memory. I've been told this ! 3968: is because there's a bug in 4.1c that forces it to only use 1/2 of the ! 3969: swap partition. I'm having to run standalone to compile the compiler; ! 3970: I don't yet know whether I'll be able to compile other stuff without ! 3971: this rather extreme fix. ! 3972: ! 3973: As I use the system more I will post more info to this group. ! 3974: ! 3975: From narain@rand-unix Tue May 31 10:49:00 1983 ! 3976: Date: Tuesday, 31 May 1983 10:45-PDT ! 3977: From: narain@rand-unix ! 3978: Subject: Interrupt question ! 3979: Message-Id: <[email protected]> ! 3980: Received: from rand-unix (rand-unix.ARPA) by UCBVAX.ARPA (3.341/3.29) ! 3981: id AA10893; 31 May 83 10:47:26 PDT (Tue) ! 3982: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5) ! 3983: id AA13428; 31 May 83 10:49:00 PDT (Tue) ! 3984: To: [email protected] ! 3985: Cc: narain@rand-unix ! 3986: Status: O ! 3987: ! 3988: ! 3989: Hi, I would be grateful if you could tell me what is the equivalent of ! 3990: Interlisp's control-h (followed by OK) in Franzlisp. In other words, I ! 3991: wish to interrupt a Franzlisp program, from time to time, examine its state ! 3992: and allow it to continue from the interrupted point. ! 3993: ! 3994: -- Sanjai ! 3995: ! 3996: From [email protected] Tue May 31 19:31:04 1983 ! 3997: Date: 31 May 83 17:28:35 PDT (Tue) ! 3998: From: [email protected] ! 3999: Subject: packages ! 4000: Message-Id: <[email protected]> ! 4001: Received: by LBL-CSAM.ARPA (3.320/3.21) ! 4002: id AA16451; 31 May 83 17:28:35 PDT (Tue) ! 4003: Received: by UCBVAX.ARPA (3.341/3.31) ! 4004: id AA02877; 31 May 83 19:30:00 PDT (Tue) ! 4005: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5) ! 4006: id AA22745; 31 May 83 19:31:04 PDT (Tue) ! 4007: To: [email protected] ! 4008: Status: O ! 4009: ! 4010: ! 4011: Does a version of LispMachine ``packages'' or some similar oblist partitioning ! 4012: scheme exist for franz? Having just integrated several independently coded ! 4013: modules, I think something like that would be very useful. ! 4014: -thanks ! 4015: Steve White, BAC, {uw-beaver,lbl-csam}!ssc-vax!steve ! 4016: ! 4017: ! 4018: From fateman Tue Jun 14 11:48:32 1983 ! 4019: Date: 14 Jun 83 11:48:32 PDT (Tue) ! 4020: From: fateman (Richard Fateman) ! 4021: Subject: "macsyma on a chip?" ! 4022: Message-Id: <[email protected]> ! 4023: Received: by UCBKIM.ARPA (3.340/3.5) ! 4024: id AA06756; 14 Jun 83 11:48:32 PDT (Tue) ! 4025: To: macsyma-i@mit-mc ! 4026: Cc: franz-friends ! 4027: Status: O ! 4028: ! 4029: Well, sort of. We now have Macsyma running on a Motorola 68000 - based ! 4030: system with 6 megabytes of real memory. The operating system is a ! 4031: Unisoft UNIX system, which has been ported to some large number (>65) boxes. ! 4032: The Pixel people were kind enough to lend us a machine with enough ! 4033: real memory to make virtual memory unnecessary. ! 4034: ! 4035: It takes a long time to load up, but once running, it is quite responsive, ! 4036: and appears to be about 60% of a VAX 11/780 in terms of CPU time. ! 4037: ! 4038: We have not shaken down everything, but since the source code is unchanged ! 4039: from the VAX, we expect the bugs to be limited to lisp compilation ! 4040: glitches, or differences between versions of the UNIX system. ! 4041: ! 4042: ! 4043: From jkf Wed Jun 15 10:42:05 1983 ! 4044: Date: 15 Jun 83 10:42:05 PDT (Wed) ! 4045: From: jkf (John Foderaro) ! 4046: Subject: Opus 38.62 ! 4047: Message-Id: <[email protected]> ! 4048: Received: by UCBKIM.ARPA (3.340/3.5) ! 4049: id AA20591; 15 Jun 83 10:42:05 PDT (Wed) ! 4050: To: local-lisp ! 4051: Status: O ! 4052: ! 4053: There is no longer a limit on the size of bignums, strings or ! 4054: symbol names which can be read by the reader [other than the size of ! 4055: virtual memory]. ! 4056: ! 4057: The value of lisp-library-directory will determine where cfasl finds ! 4058: its private version of the loader. ! 4059: ! 4060: (changes by sklower) ! 4061: ! 4062: ! 4063: From @CMU-CS-C:UI.TYJ@CU20D Wed Jun 15 18:22:55 1983 ! 4064: Date: 14 Jun 1983 1812-EDT ! 4065: From: Tai Jin <UI.TYJ@CU20D> ! 4066: Subject: franz mailing liszt ! 4067: Message-Id: <[email protected]> ! 4068: Received: from CMU-CS-C (cmu-cs-c.ARPA) by UCBVAX.ARPA (3.346/3.33) ! 4069: id AA16599; 14 Jun 83 15:14:36 PDT (Tue) ! 4070: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5) ! 4071: id AA28806; 15 Jun 83 18:22:55 PDT (Wed) ! 4072: To: franz-friends%berkeley@CMCSC ! 4073: Cc: ui.travis%cu20d@CMCSC, ui.tyj%cu20d@CMCSC ! 4074: Status: O ! 4075: ! 4076: ! 4077: Hi, we would like to be added to your mailing list. ! 4078: ! 4079: We are currently attempting to install FRANZ Lisp on Amdahl's Unix (UTS) ! 4080: running under VM/CMS on an IBM 4341 here at CUCCA (Columbia University Center ! 4081: for Computing Activities). ! 4082: ! 4083: Is anyone out there working on an UTS/IBM implementation? Any information will ! 4084: be greatly appreciated. ! 4085: ! 4086: ! 4087: Thanks, ! 4088: ! 4089: Tai Jin <UI.TYJ%CU20D@CMCSC> ! 4090: Travis Winfrey <UI.TRAVIS%CU20D@CMCSC> ! 4091: ------- ! 4092: ! 4093: From @CMU-CS-C:Ui.Travis@CU20D Thu Jun 16 09:47:39 1983 ! 4094: Date: 16 Jun 1983 1243-EDT ! 4095: From: Travis Lee Winfrey <Ui.Travis@CU20D> ! 4096: Subject: Porting Franz lisp to Amdahl Unix ! 4097: Message-Id: <[email protected]> ! 4098: Received: from CMU-CS-C (cmu-cs-c.ARPA) by UCBVAX.ARPA (3.346/3.33) ! 4099: id AA25470; 16 Jun 83 09:46:15 PDT (Thu) ! 4100: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5) ! 4101: id AA06352; 16 Jun 83 09:47:39 PDT (Thu) ! 4102: To: sklower%berkeley@CMCSC, kim.layer%berkeley@CMCSC ! 4103: Cc: franz-friends%berkeley@CMCSC, ui.tyj@CU20D, Ui.Travis@CU20D, ! 4104: kim.fateman%berkeley@CMCSC ! 4105: Status: O ! 4106: ! 4107: Hi, Tai Jin and I are currently attemping to bring up Franz lisp on Amdahl's ! 4108: Unix running on a IBM 4341. We are working from a copy that runs on the VAX. ! 4109: ! 4110: We would be very interested in seeing any versions that runs both on the VAX ! 4111: and some other machine, such as the 68000. We are also interested in seeing ! 4112: any documentation on other porting efforts, regardless of what machine. ! 4113: ! 4114: Thanks, ! 4115: ! 4116: Tai Jin <ui.tyj%cu20d@cmu-cs-c> ! 4117: Travis Winfrey <ui.travis%cu20d@cmu-cs-c> ! 4118: ------- ! 4119: ! 4120: From jkf Sun Jun 19 15:43:34 1983 ! 4121: Date: 19 Jun 83 15:43:34 PDT (Sun) ! 4122: From: jkf (John Foderaro) ! 4123: Subject: opus 38.63 ! 4124: Message-Id: <[email protected]> ! 4125: Received: by UCBKIM.ARPA (3.340/3.5) ! 4126: id AA19626; 19 Jun 83 15:43:34 PDT (Sun) ! 4127: To: local-lisp ! 4128: Status: O ! 4129: ! 4130: Added functions: ! 4131: (vputprop 'Vv_vector 'g_value 'g_indicator) ! 4132: (vget 'Vv_vector 'g_indicator) ! 4133: ! 4134: work just like putprop and get, but modify the vector property list. ! 4135: ! 4136: Also: ! 4137: you can determine which function is called by lisp to print a vector ! 4138: by placing the function to call on the vector's property list under ! 4139: indicator 'print'. The print function is called with two arguments: ! 4140: the vector and the port. ! 4141: ! 4142: For example: ! 4143: => (defun printv (v port) ! 4144: (patom "A vector of size " port) ! 4145: (print (vsize v) port)) ! 4146: printv ! 4147: => (setq xx (new-vector 10)) ! 4148: vector[40] ! 4149: => (vputprop xx 'printv 'print) ! 4150: printv ! 4151: => xx ! 4152: A vector of size 10 ! 4153: => ! 4154: ! 4155: ! 4156: ! 4157: From jkf Sun Jun 19 22:47:42 1983 ! 4158: Date: 19 Jun 83 22:47:42 PDT (Sun) ! 4159: From: jkf (John Foderaro) ! 4160: Subject: opus 38.64 ! 4161: Message-Id: <[email protected]> ! 4162: Received: by UCBKIM.ARPA (3.340/3.5) ! 4163: id AA23164; 19 Jun 83 22:47:42 PDT (Sun) ! 4164: To: local-lisp ! 4165: Cc: jpg@Mit-mc ! 4166: Status: O ! 4167: ! 4168: ! 4169: added the function (^ 'x_a 'x_b) which computes x_a to the x_b ! 4170: power and always returns a fixnum result (it currently wraps around ! 4171: on overflow). ! 4172: ! 4173: ! 4174: ! 4175: From JPG@MIT-MC Sun Jun 19 22:54:00 1983 ! 4176: Date: 20 June 1983 01:53 EDT ! 4177: From: Jeffrey P. Golden <JPG@MIT-MC> ! 4178: Subject: ^ ! 4179: Message-Id: <[email protected]> ! 4180: Received: from MIT-MC (mit-mc.ARPA) by UCBVAX.ARPA (3.346/3.33) ! 4181: id AA15160; 19 Jun 83 22:53:57 PDT (Sun) ! 4182: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5) ! 4183: id AA23228; 19 Jun 83 22:54:00 PDT (Sun) ! 4184: To: jkf@UCBKIM ! 4185: Cc: JPG@MIT-MC, local-lisp@UCBKIM ! 4186: Status: O ! 4187: ! 4188: Date: 19 Jun 83 22:47:42 PDT ! 4189: From: jkf%UCBKIM@Berkeley ! 4190: Subject: opus 38.64 ! 4191: To: local-lisp%UCBKIM@Berkeley ! 4192: Cc: jpg@Mit-mc ! 4193: added the function (^ 'x_a 'x_b) which computes x_a to the x_b ! 4194: power and always returns a fixnum result (it currently wraps around ! 4195: on overflow). ! 4196: The Maclisp ^ errors out in this case with the message: ! 4197: ;RESULT LARGER THAN FIXNUM - ^ ! 4198: ! 4199: ! 4200: From narain@rand-unix Mon Jun 20 22:09:31 1983 ! 4201: Date: Monday, 20 Jun 1983 22:00-PDT ! 4202: From: narain@rand-unix ! 4203: Subject: Re: Interrrupt question ! 4204: Message-Id: <[email protected]> ! 4205: Received: from rand-unix (rand-unix.ARPA) by UCBVAX.ARPA (3.346/3.33) ! 4206: id AA00276; 20 Jun 83 22:09:20 PDT (Mon) ! 4207: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5) ! 4208: id AA09633; 20 Jun 83 22:09:31 PDT (Mon) ! 4209: To: [email protected] ! 4210: Cc: narain@rand-unix ! 4211: Status: O ! 4212: ! 4213: ! 4214: TWIMC ! 4215: ----- ! 4216: ! 4217: Here is the equivalent of Interlisp's control-H followed by OK in Franzlisp: ! 4218: i.e. if you wish to interrupt a Franzlisp computation, browse around the state ! 4219: and resume computation: ! 4220: ! 4221: Hit DEL; ! 4222: Browse; ! 4223: (return t) ! 4224: ! 4225: This answer was given by Liz Allen at Maryland (liz.umcp-cs@udel-relay). ! 4226: ! 4227: -- Sanjai ! 4228: ! 4229: From Tim%UPenn.UPenn@UDel-Relay Tue Jun 21 14:52:53 1983 ! 4230: Date: Tue, 21 Jun 83 10:33 EDT ! 4231: From: Tim Finin <Tim.UPenn@UDel-Relay> ! 4232: Subject: interrupting Franz ! 4233: Return-Path: <Tim%UPenn.UPenn@UDel-Relay> ! 4234: Message-Id: <[email protected]> ! 4235: Received: from udel-relay.ARPA by UCBVAX.ARPA (3.346/3.33) ! 4236: id AA12930; 21 Jun 83 14:52:36 PDT (Tue) ! 4237: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5) ! 4238: id AA21097; 21 Jun 83 14:52:53 PDT (Tue) ! 4239: To: [email protected] ! 4240: Via: UPenn; 21 Jun 83 17:40-EDT ! 4241: Status: O ! 4242: ! 4243: ! 4244: Under VMS, one should type a ^C (control-C) rather than DEL to interrupt Franz. ! 4245: ! 4246: From jkf Sat Jun 25 13:49:37 1983 ! 4247: Date: 25 Jun 83 13:49:37 PDT (Sat) ! 4248: From: jkf (John Foderaro) ! 4249: Subject: opus 38.65 ! 4250: Message-Id: <[email protected]> ! 4251: Received: by UCBKIM.ARPA (3.340/3.5) ! 4252: id AA25527; 25 Jun 83 13:49:37 PDT (Sat) ! 4253: To: local-lisp ! 4254: Status: O ! 4255: ! 4256: If you have automatic case conversion set (i.e. (sstatus uctolc t)), ! 4257: then symbols with lower case letters will be escaped by print. ! 4258: ! 4259: ! 4260: ! 4261: From layer Tue Jul 5 00:26:29 1983 ! 4262: Date: 5 Jul 1983 0026-PDT (Tuesday) ! 4263: From: layer (Kevin Layer) ! 4264: Subject: lisp opus 38.67 ! 4265: Message-Id: <5390.30.426237985@ucbkim> ! 4266: Received: by UCBKIM.ARPA (3.340/3.5) ! 4267: id AA05911; 5 Jul 83 00:26:29 PDT (Tue) ! 4268: Phone: (415) 652-2405 ! 4269: To: local-lisp ! 4270: Cc: layer ! 4271: Status: O ! 4272: ! 4273: The function 'sortcar' has been slightly changed: if the second ! 4274: arg is nil, then the ordering function 'alphalessp' is assumed ! 4275: ('sort' does it this way). ! 4276: ! 4277: Kevin ! 4278: ! 4279: From layer Wed Jul 6 00:02:33 1983 ! 4280: Date: 6 Jul 83 00:02:33 PDT (Wed) ! 4281: From: layer (Kevin Layer) ! 4282: Subject: liszt opus 8.30 ! 4283: Message-Id: <[email protected]> ! 4284: Received: by UCBKIM.ARPA (3.340/3.5) ! 4285: id AA24776; 6 Jul 83 00:02:33 PDT (Wed) ! 4286: Phone: (415) 652-2405 ! 4287: To: local-lisp ! 4288: Cc: sklower, jkf ! 4289: Status: O ! 4290: ! 4291: All modifications should be transparent, but if there are problems ! 4292: relating to the autorun feature (-r flag), please let me know. ! 4293: ! 4294: Kevin ! 4295: ! 4296: ! 4297: ! 4298: From sklower Thu Jul 7 00:27:52 1983 ! 4299: Date: 7 Jul 83 00:27:52 PDT (Thu) ! 4300: From: sklower (Keith Sklower) ! 4301: Subject: Franz, opus38.68 ! 4302: Message-Id: <[email protected]> ! 4303: Received: by UCBKIM.ARPA (3.340/3.5) ! 4304: id AA10697; 7 Jul 83 00:27:52 PDT (Thu) ! 4305: To: local-lisp ! 4306: Status: O ! 4307: ! 4308: Franz now escapes UPPER case letters instead of lower case letters when ! 4309: (status uctolc) is enabled, so that (read (print x)) is an identity operation ! 4310: on atom printnames. Also, we made (explode) conform to what maclisp does ! 4311: with opposite-than-normal character-cases. ! 4312: ! 4313: From Ira%UPenn.UPenn@UDel-Relay Fri Jul 8 01:46:25 1983 ! 4314: Date: Thu, 7 Jul 83 22:13 EDT ! 4315: From: Ira Winston <Ira.UPenn@UDel-Relay> ! 4316: Subject: Eliza ! 4317: Return-Path: <Ira%UPenn.UPenn@UDel-Relay> ! 4318: Message-Id: <[email protected]> ! 4319: Received: from udel-relay.ARPA by UCBVAX.ARPA (3.346/3.33) ! 4320: id AA16294; 8 Jul 83 01:45:43 PDT (Fri) ! 4321: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5) ! 4322: id AA01687; 8 Jul 83 01:46:25 PDT (Fri) ! 4323: To: [email protected] ! 4324: Via: UPenn; 8 Jul 83 3:07-EDT ! 4325: Status: O ! 4326: ! 4327: Does anyone have a version of Eliza that runs under Franz Lisp? ! 4328: ! 4329: From layer Fri Jul 8 18:04:10 1983 ! 4330: Date: 8 Jul 1983 1804-PDT (Friday) ! 4331: From: layer (Kevin Layer) ! 4332: Subject: lisp opus 38.69 ! 4333: Message-Id: <7031.30.426560643@ucbkim> ! 4334: Received: by UCBKIM.ARPA (3.340/3.5) ! 4335: id AA07142; 8 Jul 83 18:04:10 PDT (Fri) ! 4336: Phone: (415) 652-2405 ! 4337: To: local-lisp ! 4338: Cc: layer ! 4339: Status: O ! 4340: ! 4341: 'setf' now knows about 'nthelem', and there are two new functions: ! 4342: ! 4343: (readdir 's_direct) ! 4344: returns a list of the contents of the directory s_direct. ! 4345: ! 4346: (dirp 's_name) ! 4347: returns s_name if s_name is a directory. This doesn't ! 4348: insure that you can read the directory, though (only ! 4349: uses stat(2)). ! 4350: ! 4351: Kevin ! 4352: ! 4353: From layer Fri Jul 8 20:57:13 1983 ! 4354: Date: 8 Jul 1983 2057-PDT (Friday) ! 4355: From: layer (Kevin Layer) ! 4356: Subject: new function readdir ! 4357: Message-Id: <465.30.426571029@ucbkim> ! 4358: Received: by UCBKIM.ARPA (3.340/3.5) ! 4359: id AA00480; 8 Jul 83 20:57:13 PDT (Fri) ! 4360: Phone: (415) 652-2405 ! 4361: To: local-lisp ! 4362: Fcc: record ! 4363: Status: O ! 4364: ! 4365: The function 'readdir' and 'dirp' should not be relied on yet, since ! 4366: they are provisional, because they are implemented with C library ! 4367: functions only available on 4.1+ systems. ! 4368: ! 4369: Kevin ! 4370: ! 4371: From Pwh%GaTech.GATech@UDel-Relay Tue Jul 12 18:08:46 1983 ! 4372: Date: 11 Jul 83 20:36:32-EDT (Mon) ! 4373: From: <pwh.gatech@UDel-Relay> ! 4374: Subject: Franz flavors? ! 4375: Return-Path: <Pwh%GaTech.GATech@UDel-Relay> ! 4376: Message-Id: <[email protected]> ! 4377: Received: from udel-relay.ARPA by UCBVAX.ARPA (3.346/3.33) ! 4378: id AA03336; 12 Jul 83 18:07:40 PDT (Tue) ! 4379: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5) ! 4380: id AA20140; 12 Jul 83 18:08:46 PDT (Tue) ! 4381: To: [email protected] ! 4382: Cc: jlk.Gatech@UDel-Relay ! 4383: Via: GATech; 12 Jul 83 2:43-EDT ! 4384: Status: O ! 4385: ! 4386: We at Ga Tech (ai group working under prof Janet Kolodner) have just gotten our ! 4387: long awaited Symbolics Lisp Machine up and running and are trying to establish ! 4388: some measure of compatability between Franz and Zeta Lisp (as appropriate). ! 4389: Janet seems to recall some mention of a flavor package for Franz. Is this ! 4390: Berkley based or can anyone provide some clues as to where to check next? ! 4391: ! 4392: Also, when is the next release of Franz scheduled and what features will it ! 4393: incorporate? ! 4394: ! 4395: If the flavor package is non-existent, we will probably be forced to develop ! 4396: one here and will, of course, be glad to pass anything useful along. ! 4397: ! 4398: phil hutto ! 4399: ! 4400: From narain@rand-unix Tue Jul 12 20:10:42 1983 ! 4401: Date: Tuesday, 12 Jul 1983 19:49-PDT ! 4402: From: narain@rand-unix ! 4403: Subject: Re: Franz flavors? ! 4404: Message-Id: <[email protected]> ! 4405: Received: from rand-unix (rand-unix.ARPA) by UCBVAX.ARPA (3.346/3.33) ! 4406: id AA05908; 12 Jul 83 20:09:41 PDT (Tue) ! 4407: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5) ! 4408: id AA21387; 12 Jul 83 20:10:42 PDT (Tue) ! 4409: To: <pwh.gatech@UDEL-RELAY> ! 4410: Cc: [email protected], jlk.Gatech@UDEL-RELAY ! 4411: In-Reply-To: Your message of 11 Jul 83 20:36:32-EDT (Mon). ! 4412: <[email protected]> ! 4413: Status: O ! 4414: ! 4415: ! 4416: We at Rand are interested in developing a set of guidelines for writing ! 4417: code that will be compatible with each of Zeta- Franz- and PSL Lisps. I ! 4418: would be grateful if you could tell us of what your experiences have been with ! 4419: making Franzlisp code work on the Symbolics machine. We would gladly share ! 4420: our own with you if you wish; incidentally we also have an IJCAI paper on a ! 4421: related issue. ! 4422: ! 4423: -- Sanjai Narain ! 4424: ! 4425: From liz.umcp-cs@UDel-Relay Wed Jul 13 00:55:26 1983 ! 4426: Date: 13 Jul 83 03:09:39 EDT (Wed) ! 4427: From: Liz Allen <liz.umcp-cs@UDel-Relay> ! 4428: Subject: Re: Franz flavors? ! 4429: Return-Path: <liz.umcp-cs@UDel-Relay> ! 4430: Message-Id: <[email protected]> ! 4431: Received: from udel-relay.ARPA by UCBVAX.ARPA (3.346/3.33) ! 4432: id AA10367; 13 Jul 83 00:54:32 PDT (Wed) ! 4433: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5) ! 4434: id AA24477; 13 Jul 83 00:55:26 PDT (Wed) ! 4435: To: pwh.gatech@UDel-Relay, [email protected] ! 4436: Cc: jlk.Gatech@UDel-Relay ! 4437: Via: UMCP-CS; 13 Jul 83 3:23-EDT ! 4438: Status: O ! 4439: ! 4440: Here at the Univ of Maryland, we do have an implementation of ! 4441: flavors in Franz Lisp and have used it successfully in several ! 4442: large systems. It doesn't contain all the features of the Lisp ! 4443: Machine Flavors, but it does implement all the major ones. It is ! 4444: also different in a few ways that are necessitated by the limitations ! 4445: of Franz Lisp (shallow binding without invisible pointers or true ! 4446: closures -- though closures may be in the very newest versions of ! 4447: Franz -- we have opus 38.26). The package uses a hashing scheme ! 4448: for looking up methods, and the function <- which is used to send ! 4449: a message to an object is written in C. Together, this makes it ! 4450: an efficient implementation. ! 4451: ! 4452: We are currently working on a new policy for distributing flavors, ! 4453: our other lisp packages and our window package. When we have worked ! 4454: it out, I will announce the details here. ! 4455: ! 4456: -Liz ! 4457: ! 4458: From @MIT-MC:mdm@cmu-ri-isl Thu Jul 14 11:07:57 1983 ! 4459: Date: 14 Jul 1983 14:03:01-EDT ! 4460: From: Malcolm.McRoberts@CMU-RI-ISL ! 4461: Subject: random numbers ! 4462: Message-Id: <[email protected]> ! 4463: Received: from MIT-MC (mit-mc.ARPA) by UCBVAX.ARPA (3.347/3.35) ! 4464: id AA05735; Thu, 14 Jul 83 11:06:45 PDT ! 4465: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5) ! 4466: id AA13687; 14 Jul 83 11:07:57 PDT (Thu) ! 4467: Apparently-To: <franz-friends@UCB-VAX> ! 4468: Status: O ! 4469: ! 4470: I am interested in obtaining a GOOD random number generator that is callable ! 4471: from Franz. My only real requirements are that it accept a seed (so that I ! 4472: can duplicate the same series), is fairly good (try doing several (random ! 4473: 4)'s in Franz and see what you get), and is of intermediate speed. If you ! 4474: know of such an animal please send me mail telling me how to get it. ! 4475: thanks ! 4476: ! 4477: ! 4478: From kanderso@bbn-vax Thu Jul 14 12:49:58 1983 ! 4479: Date: 14 Jul 1983 15:47:19 EDT (Thursday) ! 4480: From: Ken Anderson <kanderso@bbn-vax> ! 4481: Subject: Random numbers ! 4482: Message-Id: <[email protected]> ! 4483: Received: from bbn-vax (bbn-vax.ARPA) by UCBVAX.ARPA (3.347/3.35) ! 4484: id AA06936; Thu, 14 Jul 83 12:48:49 PDT ! 4485: Received: from UCBVAX.ARPA by UCBKIM.ARPA (3.340/3.5) ! 4486: id AA15607; 14 Jul 83 12:49:58 PDT (Thu) ! 4487: To: [email protected] ! 4488: Cc: Malcolm.McRoberts@CMU-RI-ISL ! 4489: Status: O ! 4490: ! 4491: Here is a random number generator i use. It seems to work fairly well, but i have ! 4492: not looked to closely at the statistics. Since it will occasionally require ! 4493: bignums, it is probably not the fastest either. I was just looking for something ! 4494: that was likely to be portable between LISP's. ! 4495: I would be very interested in hearing your evaluation of it. ! 4496: ! 4497: k ! 4498: ! 4499: ;;; RANDOM NUMBERS ! 4500: (declare (macros t)) ! 4501: (include math.h) ! 4502: ! 4503: (defvar $uniform-a 16807) ; = 7^5 ! 4504: (defvar $mersenne-prime 2147483647) ; = 2^31 - 1 ! 4505: (defvar $mersenne-prime-1 (- $mersenne-prime 1)) ! 4506: ! 4507: (defmacro with-seed (s-newseed . body) ! 4508: ; evaluates body with the seed of the random numbers set to s-newseed. ! 4509: ; the value of s-newseed is updated. Thus this is a way of ! 4510: ; Keepining several sequences of random numbers with their own seeds ! 4511: `(let (($uniform-seed ,s-newseed)) ! 4512: (prog1 (progn ,@body) ! 4513: (setq ,s-newseed $uniform-seed)))) ! 4514: ! 4515: (defun uniform-basic (previous-fixnum) ! 4516: ; -> a fixnum 0 < fixnum < 2^31 - 1 ! 4517: ; Repeated calls will generate fixnums in the range ! 4518: ; 1 -> 2^31 - 2. ! 4519: ! 4520: ; The basic idea is new = A^k * old (mod p) ! 4521: ; where A is a primitive root of p, k is not a factor of p-1 ! 4522: ; and p is a large prime. ! 4523: ! 4524: ; This is a good random number generator but is not be the fastest! ! 4525: ; On FRANZ LISP, and LISP MACHINE it will require bignums since ! 4526: ; (* $uniform-a previous-fixnum) can have 46 bits in it. Also the remainder ! 4527: ; can be done more efficiently. ! 4528: ; See: Linus Schrage, A More Portable Fortran Random Number Generator, ! 4529: ; ACM Trans. Math. Soft., V5, No. 2, p 132-138, 1979. ! 4530: (remainder (*$ $uniform-a previous-fixnum) $mersenne-prime)) ! 4531: ! 4532: (defvar $uniform-seed 53) ; 0 < fixnum < $mersenne-prime-1 ! 4533: ! 4534: (defun uniform () ! 4535: ; -> the next uniform random number in the sequence ! 4536: ; To have your own sequence, rebind $uniform-seed. ! 4537: (setq $uniform-seed (uniform-basic $uniform-seed))) ! 4538: ! 4539: (defun uniform-between (low-num high-num) ! 4540: ; -> a uniform random number, x, low-num <= x <= high-num ! 4541: ; If low-num and high-num are fixnums, a fixnum is returned. ! 4542: (cond ((not (and (fixp low-num) (fixp high-num))) ! 4543: (+$ low-num (*$ (//$ (uniform) (float $mersenne-prime-1)) ! 4544: (-$ high-num low-num)))) ! 4545: (t (+ low-num (// (uniform) ! 4546: (// $mersenne-prime-1 (max 1 (- high-num low-num -1)))))))) ! 4547: ! 4548: (defun gaussian-random-1 () ! 4549: ; -> a gaussian random variable with mean 0.0 and ! 4550: ; standard deviation 1.0. ! 4551: ; Good tails. ! 4552: (*$ (sqrt (*$ -2.0 (log (uniform-between 0.0 1.0)))) ! 4553: (sin (*$ $2pi (uniform-between 0.0 1.0))))) ! 4554: ! 4555: (defun gaussian-random (mean standard-deviation) ! 4556: (+$ mean (*$ (gaussian-random-1) standard-deviation))) ! 4557: ! 4558: ;;(defun gaussian (x) ! 4559: ;; (* (sqrt $2pi) ! 4560: ;; (exp (minus (// (square x) 2.0))))) ! 4561: ! 4562: (defun random-yes-no (fraction-yes) ! 4563: (<= (uniform-between 0.0 1.0) fraction-yes)) ! 4564: ! 4565: ! 4566: From layer Sat Jul 30 15:46:42 1983 ! 4567: Date: 30 Jul 1983 1546-PDT (Saturday) ! 4568: From: layer (Kevin Layer) ! 4569: Subject: liszt opus 8.33 ! 4570: Message-Id: <19472.30.428453197@ucbkim> ! 4571: Received: by UCBKIM.ARPA (3.340/3.5) ! 4572: id AA19498; 30 Jul 83 15:46:42 PDT (Sat) ! 4573: Phone: (415) 652-2405 ! 4574: To: local-lisp ! 4575: Status: O ! 4576: ! 4577: Vset is now open coded. There should be no visible change in the ! 4578: behaviour of vectors, except in speed (greater, that is), and ! 4579: vsize-{byte,word} work properly now. ! 4580: ! 4581: Bugs to me. ! 4582: ! 4583: Kevin ! 4584: ! 4585: From jkf Mon Aug 1 14:41:28 1983 ! 4586: Received: by ucbkim.ARPA (4.2/4.2) ! 4587: id AA03743; Mon, 1 Aug 83 14:41:28 PDT ! 4588: Date: Mon, 1 Aug 83 14:41:28 PDT ! 4589: From: jkf (John Foderaro) ! 4590: Message-Id: <[email protected]> ! 4591: To: local-lisp ! 4592: Subject: defstruct ! 4593: Status: O ! 4594: ! 4595: defstruct now understands two more types of structures: ! 4596: :vector ! 4597: :named-vector ! 4598: ! 4599: A named vector has the defstruct structure name on the vector property ! 4600: list, thus an instance of the foo structure would print as 'foo[8]'. ! 4601: ! 4602: ! 4603: :named-vector is now the default structure type (instead of :hunk). ! 4604: ! 4605: ! 4606: ! 4607: ! 4608: From jkf Tue Aug 2 15:20:04 1983 ! 4609: Received: by ucbkim.ARPA (4.2/4.2) ! 4610: id AA26686; Tue, 2 Aug 83 15:20:04 PDT ! 4611: Date: Tue, 2 Aug 83 15:20:04 PDT ! 4612: From: jkf (John Foderaro) ! 4613: Message-Id: <[email protected]> ! 4614: To: local-lisp ! 4615: Subject: lisp opus 38.70 ! 4616: Status: RO ! 4617: ! 4618: When a vector is printed, the size in square brackets will be the number ! 4619: of entries (not the number of bytes). The size printed for vectori ! 4620: objects will continue to be the number of bytes. ! 4621: ! 4622: Also, if the property of a vector is a list with the car being a non nil ! 4623: symbol, and if that list doesn't have a print property, then that ! 4624: symbol will be printed rather than 'vector' or 'vectori'. ! 4625: ! 4626: ! 4627: ! 4628: From layer Thu Aug 4 02:10:12 1983 ! 4629: Received: by ucbkim.ARPA (4.2/4.2) ! 4630: id AA11660; Thu, 4 Aug 83 02:10:12 PDT ! 4631: From: layer (Kevin Layer) ! 4632: Phone: (415) 652-2405 ! 4633: Date: 4 Aug 1983 0210-PDT (Thursday) ! 4634: Message-Id: <11649.30.428836207@ucbkim> ! 4635: To: local-lisp ! 4636: Subject: liszt opus 8.34 ! 4637: Status: RO ! 4638: ! 4639: I just installed a new compiler. For the vax, there shouldn't be ! 4640: any visible changes, though a couple of vector bugs were fixed. For ! 4641: the 68000, the vector access functions are now open coded, and the ! 4642: new one was installed on mike, rob, and chip in /usr/ucb. ! 4643: ! 4644: Kevin ! 4645: ! 4646: From FRD@SU-AI Fri Aug 5 15:57:17 1983 ! 4647: Received: from UCBVAX.ARPA by ucbkim.ARPA (4.2/4.2) ! 4648: id AA10610; Fri, 5 Aug 83 15:57:17 PDT ! 4649: Received: from SU-AI.ARPA by UCBVAX.ARPA (3.347/3.35) ! 4650: id AA10357; Fri, 5 Aug 83 15:54:22 PDT ! 4651: Message-Id: <[email protected]> ! 4652: Date: 05 Aug 83 1353 PDT ! 4653: From: Fred Lakin <FRD@SU-AI> ! 4654: Subject: Franz & SUNs ! 4655: To: franz-friends@BERKELEY ! 4656: Status: RO ! 4657: ! 4658: I am interested in connectons between Franz and SUN workstations. ! 4659: Like how far along is Franz on the SUN? Is there some package ! 4660: which allows Franz on a VAX to use a SUN as a display device? ! 4661: ! 4662: Any info on this matter would be appreciated. ! 4663: Thnaks, Fred Lakin ! 4664: ! 4665: ! 4666: From tektronix!ogcvax!metheus!tombl Sat Aug 6 09:49:57 1983 ! 4667: Received: from UCBVAX.ARPA by ucbkim.ARPA (4.2/4.2) ! 4668: id AA21229; Sat, 6 Aug 83 09:49:57 PDT ! 4669: Received: by UCBVAX.ARPA (3.347/3.35) ! 4670: id AA13549; Sat, 6 Aug 83 09:40:11 PDT ! 4671: Message-Id: <[email protected]> ! 4672: From: ogcvax!metheus!tombl ! 4673: To: ogcvax!tektronix!ucbvax!franz-friends ! 4674: Cc: ogcvax!tektronix!ucbvax!sklower ! 4675: Received: from ogcvax.uucp by tektronix ; 5 Aug 83 20:51:03 PDT ! 4676: Subject: bug in Opus 38.66 ! 4677: Date: Fri Aug 5 20:46:56 1983 ! 4678: Status: O ! 4679: ! 4680: ! 4681: A bug present in previous versions is also present in 38.66 of Franz. ! 4682: cfasl fails (in most cases) to close the file it reads from. ! 4683: Consequently, mysterious events occur when the maximum number of open ! 4684: file descriptors is reached. ! 4685: ! 4686: The fix is made in the file ffasl.c. "close(fildes)" should be ! 4687: prepended to the two return sequences from (the Unix code for) ! 4688: Lcfasl: ! 4689: ! 4690: ------------------------------------------------------------------ ! 4691: Old: 146c146 ! 4692: < {Restorestack(); return(nil);} ! 4693: --- ! 4694: Fixed: > {close(fildes); Restorestack(); return(nil);} ! 4695: 149a150 ! 4696: > close(fildes); ! 4697: ------------------------------------------------------------------ ! 4698: ! 4699: ! 4700: Tom Blenko ! 4701: Metheus Corp. ! 4702: ucbvax!tektronix!ogcvax!metheus!tombl ! 4703: allegra!ogcvax!metheus!tombl ! 4704: ! 4705: ! 4706: ! 4707: From FRD@SU-AI Sun Aug 7 12:34:43 1983 ! 4708: Received: from UCBVAX.ARPA by ucbkim.ARPA (4.2/4.2) ! 4709: id AA10610; Fri, 5 Aug 83 15:57:17 PDT ! 4710: Received: from SU-AI.ARPA by UCBVAX.ARPA (3.347/3.35) ! 4711: id AA10357; Fri, 5 Aug 83 15:54:22 PDT ! 4712: Message-Id: <[email protected]> ! 4713: Date: 05 Aug 83 1353 PDT ! 4714: From: Fred Lakin <FRD@SU-AI> ! 4715: Subject: Franz & SUNs ! 4716: To: franz-friends@BERKELEY ! 4717: Status: O ! 4718: ! 4719: I am interested in connectons between Franz and SUN workstations. ! 4720: Like how far along is Franz on the SUN? Is there some package ! 4721: which allows Franz on a VAX to use a SUN as a display device? ! 4722: ! 4723: Any info on this matter would be appreciated. ! 4724: Thnaks, Fred Lakin ! 4725: ! 4726: ! 4727: From jkf Mon Aug 8 09:06:49 1983 ! 4728: Received: by ucbkim.ARPA (4.2/4.2) ! 4729: id AA06584; Mon, 8 Aug 83 09:06:49 PDT ! 4730: Date: Mon, 8 Aug 83 09:06:49 PDT ! 4731: From: jkf (John Foderaro) ! 4732: Message-Id: <[email protected]> ! 4733: To: local-lisp ! 4734: Subject: opus 38.72 ! 4735: Status: O ! 4736: ! 4737: A bug was fixed in defmacro which caused the &protect option and ! 4738: displace-macros to interact poorly. ! 4739: ! 4740: ! 4741: ! 4742: From jkf Fri Aug 12 22:11:13 1983 ! 4743: Received: by ucbkim.ARPA (4.2/4.2) ! 4744: id AA25610; Fri, 12 Aug 83 22:11:13 PDT ! 4745: Date: Fri, 12 Aug 83 22:11:13 PDT ! 4746: From: jkf (John Foderaro) ! 4747: Message-Id: <[email protected]> ! 4748: To: local-lisp ! 4749: Subject: opus 38.73 ! 4750: Status: O ! 4751: ! 4752: 'equal' will now compare all types of vectors for equality. ! 4753: ! 4754: 'copy' will now copy all types of vectors. ! 4755: ! 4756: ! 4757: ! 4758: ! 4759: From layer Mon Aug 15 20:03:53 1983 ! 4760: Received: by ucbkim.ARPA (4.2/4.2) ! 4761: id AA03597; Mon, 15 Aug 83 20:03:53 PDT ! 4762: From: layer (Kevin Layer) ! 4763: Phone: (415) 652-2405 ! 4764: Date: 15 Aug 1983 2003-PDT (Monday) ! 4765: Message-Id: <3556.30.429851029@ucbkim> ! 4766: To: local-lisp ! 4767: Subject: liszt opus 8.35 ! 4768: Fcc: record ! 4769: Status: RO ! 4770: ! 4771: Several things have changed: ! 4772: ! 4773: 1) Bugs in the open coding of vectors have been fixed. ! 4774: ! 4775: 2) Minor re-organization of the compiler source code. ! 4776: ! 4777: 3) The routine to determine whether or not tail merging is ! 4778: possible underwent major modification. ! 4779: ! 4780: 4) Lexpr's are compiled differently, or rather the way lexpr args ! 4781: are accessed has changed. For those that want to know, here is ! 4782: the nitty gritty: ! 4783: ! 4784: Consider a the following lexpr: (defun test nargs ...). ! 4785: The arguments to the lexpr are stacked on the name stack ! 4786: (low to high number), and then nargs is stacked. The user ! 4787: is allowed to change the binding of 'nargs' to anything ! 4788: he likes, so we have to have another way to access the arguments ! 4789: on the name stack (i.e., other than an offset from nargs). ! 4790: Before, a pointer to the argument base was pushed on the ! 4791: C stack, so that indexing could be done from there. ! 4792: The addressing modes used to do this are not available ! 4793: on the MC68000 (something like *n(fp)[Rx]), so now ! 4794: nargs is pushed on the name stack twice, and the location ! 4795: of an argument can be easily calculated as an offset from nargs. ! 4796: ! 4797: In short, lots of thing changed. The SUN's should be updated ! 4798: in the next couple of days (after I test it out). Bugs to me... ! 4799: ! 4800: Kevin ! 4801: ! 4802: From jkf Mon Aug 15 23:11:08 1983 ! 4803: Received: by ucbkim.ARPA (4.2/4.2) ! 4804: id AA05928; Mon, 15 Aug 83 23:11:08 PDT ! 4805: Date: Mon, 15 Aug 83 23:11:08 PDT ! 4806: From: jkf (John Foderaro) ! 4807: Message-Id: <[email protected]> ! 4808: To: local-lisp ! 4809: Subject: opus 38.74 ! 4810: Status: O ! 4811: ! 4812: ! 4813: If a vector has a 'unique' property on it's property list, then it will ! 4814: not be copied by 'copy'. ! 4815: ! 4816: 'untrace' will now autoload /usr/lib/lisp/trace. ! 4817: ! 4818: A number of functions and macros were contributed by the bair group: ! 4819: ! 4820: ! 4821: ! 4822: ! 4823: ! 4824: ! 4825: ! 4826: ! 4827: (<= 'fx_arg1 'fx_arg2 ...) ! 4828: (<=& 'x_arg1 'x_arg2) ! 4829: ! 4830: RETURNS: t iff (> 'fx_arg1 'fx_arg2) [or (>& 'x_arg1 ! 4831: 'x_arg2)] is nil, otherwise nil. The general ! 4832: function, <=, can take more than two argu- ! 4833: ments. ! 4834: ! 4835: (>= 'fx_arg1 'fx_arg2) ! 4836: (>=& 'x_arg1 'x_arg2) ! 4837: ! 4838: RETURNS: t iff (< 'fx_arg1 'fx_arg2 ...) [or (<& ! 4839: 'x_arg1 'x_arg2)] is nil, otherwise nil. ! 4840: ! 4841: NOTE: The general function, >=, can take more than two ! 4842: arguments. ! 4843: ! 4844: (litatom 'g_arg) ! 4845: ! 4846: RETURNS: t iff g_arg is an atom, but not a number. ! 4847: ! 4848: (nequal 'g_x 'g_y) ! 4849: ! 4850: RETURNS: t iff g_x is not equal to g_y, otherwise nil. ! 4851: ! 4852: (lineread [['p_port] ['s_flag]]) ! 4853: ! 4854: RETURNS: a list consisting of s-expressions on a line ! 4855: from the port p_port (or piport if p_port is ! 4856: not given). If an s-expression (e.g., a list) ! 4857: takes more than one line, or a line terminates ! 4858: in a space or tab, then lineread continues ! 4859: reading until an expression ends at the end of ! 4860: a line. ! 4861: ! 4862: NOTE: If s_flag is t, then if the first character on a ! 4863: line is a newline, lineread performs a tyi and ! 4864: returns nil. If s_flag is nil or not present, ! 4865: lineread does a read skipping over any blank ! 4866: lines to make sure that an s-expression is actu- ! 4867: ally read. ! 4868: ! 4869: SIDE EFFECT: lineread uses read, advancing the port ! 4870: character pointer. ! 4871: ! 4872: ! 4873: ! 4874: ! 4875: ! 4876: ! 4877: ! 4878: ! 4879: 9 ! 4880: ! 4881: 9 ! 4882: ! 4883: ! 4884: ! 4885: ! 4886: ! 4887: ! 4888: ! 4889: ! 4890: ! 4891: ! 4892: (defv g_arg1 g_arg2) ! 4893: ! 4894: EQUIVALENT TO: (set g_arg1 g_arg2) ! 4895: ! 4896: (pp-form 'g_form ['p_port] ['n_lmar]) ! 4897: ! 4898: RETURNS: nil ! 4899: ! 4900: SIDE EFFECT: g_form is pretty-printed to the port ! 4901: p_port (or poport if p_port is not given). ! 4902: If pp-form is also supplied with an ! 4903: integer (n_lmar), that integer will be ! 4904: used as a left margin setting (0 is the ! 4905: default). This is the function which pp ! 4906: uses (n_lmar = 0). pp-form does not look ! 4907: for function definitions or values of ! 4908: variables, it just prints out the form it ! 4909: is given. ! 4910: ! 4911: NOTE: This is useful as a top-level-printer, c.f. top- ! 4912: level in Chapter 6. ! 4913: ! 4914: (sload 's_file1 ...) ! 4915: ! 4916: SIDE EFFECT: The files named are opened for reading and ! 4917: each form is read, optionally printed, and ! 4918: evaluated. ! 4919: ! 4920: NOTE: What sload prints is controlled by the special ! 4921: atom $sldprint. If $sldprint is t (default), ! 4922: then if a form is recognizable as a function ! 4923: definition, only the function name is printed, ! 4924: otherwise the whole form is printed. If ! 4925: $sldprint is eq to value, then the result of each ! 4926: form's evaluation will also be printed. Printing ! 4927: the forms' values can be controlled by setting ! 4928: sload-print equal to the name of the function to ! 4929: be called. sload recognizes named functions by ! 4930: looking at the sloadprintarg property of the ! 4931: function name. The value of the sloadprintarg ! 4932: property should be the argument number of the ! 4933: function name. For the standard Franz Lisp func- ! 4934: tions, the properties are already set. ! 4935: ! 4936: EXAMPLE: (defprop def 1 sloadprintarg) ; This is the ! 4937: default--declaring that ! 4938: ; the name of ! 4939: the function definition is the ! 4940: ; first argu- ! 4941: ment. ! 4942: ! 4943: ! 4944: 9 ! 4945: ! 4946: 9 ! 4947: ! 4948: ! 4949: ! 4950: ! 4951: ! 4952: ! 4953: ! 4954: ! 4955: ! 4956: ! 4957: The functions described below are an alternative ! 4958: to the gensym facility. They generate new symbols by ! 4959: attaching counter numbers to the ends of the symbols' ! 4960: names. An example follows of how the functions are ! 4961: used. ! 4962: ! 4963: ! 4964: ____________________________________________________ ! 4965: ! 4966: -> (initsym joe (john 5)) ; initializing new symbol counters ! 4967: (joe0 john5) ! 4968: -> (newsym john) ; create a new symbol ! 4969: john6 ! 4970: -> (newsym chuck) ; symbol need not be initsym'ed ! 4971: chuck0 ! 4972: -> (oldsym john) ; get current symbol ! 4973: john6 ! 4974: -> (allsym john) ; get all symbols between 0 and counter ! 4975: (john0 john1 john2 john3 john4 john5 john6) ! 4976: -> (allsym (john 5)) ; get all symbols between 5 and counter ! 4977: (john5 john6) ! 4978: -> (remsym joe (john 4)) ; remob all interned symbols ! 4979: ; associated with joe and from ! 4980: ; john4 to the current john ! 4981: ; symbol--returns symbols with symbol counters ! 4982: ; before doing remsym ! 4983: (joe0 john6) ! 4984: -> (symstat joe john) ! 4985: ((joe nil) (john 3)) ! 4986: ____________________________________________________ ! 4987: ! 4988: ! 4989: ! 4990: ! 4991: (initsym g_arg1 ...) ! 4992: ! 4993: WHERE: g_argi is a list (n_counteri s_argi) or a ! 4994: string s_argi (which is equivalent to (0 ! 4995: s_argi)). ! 4996: ! 4997: RETURNS: a list of interned identifiers using the sym- ! 4998: bol counters n_counteri, i.e., the result of ! 4999: concatenating s_argi to n_counteri. ! 5000: ! 5001: EXAMPLE: (initsym joe (john 5)) ==> (joe0 john5) ! 5002: ! 5003: NOTE: See also newsym, oldsym, allsym, remsym, and sym- ! 5004: stat functions. ! 5005: ! 5006: ! 5007: ! 5008: ! 5009: 9 ! 5010: ! 5011: 9 ! 5012: ! 5013: ! 5014: ! 5015: ! 5016: ! 5017: ! 5018: ! 5019: ! 5020: ! 5021: ! 5022: (newsym s_arg) ! 5023: ! 5024: RETURNS: an interned identifier formed by concatenating ! 5025: the name s_arg to the symbol counter for ! 5026: s_arg. The symbol counter is stored on the ! 5027: property list of s_arg under symctr. If there ! 5028: is no counter, a counter of 0 is used and ! 5029: added to the property list. Thus, a symbol ! 5030: need not be initsymed. ! 5031: ! 5032: EXAMPLE: (initsym joe (john5)) ==> (joe0 john5) ! 5033: (newsym john) ==> john6 ! 5034: (newsym joe) ==> joe1 ! 5035: ! 5036: NOTE: See also initsym, oldsym, allsym, remsym, and ! 5037: symstat functions. ! 5038: ! 5039: (oldsym s_arg) ! 5040: ! 5041: RETURNS: the identifier using the current symbol ! 5042: counter for s_arg, rather than creating a new ! 5043: identifier. If no symbol counter exists for ! 5044: s_arg, then s_arg is returned. ! 5045: ! 5046: NOTE: See also initsym, newsym, allsym, remsym, and ! 5047: symstat functions. ! 5048: ! 5049: (allsym g_arg) ! 5050: ! 5051: WHERE: g_arg is a list (s_arg n_counter) or a string ! 5052: s_arg (equivalent to (s_arg 0)). ! 5053: ! 5054: RETURNS: a list of all the created identifiers between ! 5055: n_counter and the current symbol counter for ! 5056: s_arg. ! 5057: ! 5058: EXAMPLE: (allsym john) ==> (john0 john1 john2) ! 5059: ! 5060: NOTE: See also initsym, newsym, oldsym, remsym, and ! 5061: symstat functions. ! 5062: ! 5063: (remsym g_arg1 ...) ! 5064: ! 5065: WHERE: g_argi is a list (s_argi n_counteri) or a ! 5066: string s_argi (which is equivalent to (s_argi ! 5067: 0)). ! 5068: ! 5069: RETURNS: a list of symbols s_argi with the current sym- ! 5070: bol counters. ! 5071: ! 5072: SIDE EFFECT: remsym remob's all the created identifiers ! 5073: between zero and the current symbol ! 5074: counter for s_argi. ! 5075: ! 5076: ! 5077: ! 5078: ! 5079: ! 5080: ! 5081: ! 5082: ! 5083: ! 5084: ! 5085: ! 5086: ! 5087: ! 5088: NOTE: See also initsym, newsym oldsym, allsym, and sym- ! 5089: stat functions. ! 5090: ! 5091: (symstat s_arg1 ...) ! 5092: ! 5093: RETURNS: a list of pairs consisting of (s_argi symctri) ! 5094: where symctri is s_argi's current symbol ! 5095: counter. ! 5096: ! 5097: NOTE: See also initsym, newsym, oldsym, allsym, and ! 5098: remsym functions. ! 5099: ! 5100: ! 5101: ! 5102: ! 5103: ! 5104: ! 5105: ! 5106: ! 5107: ! 5108: ! 5109: ! 5110: ! 5111: ! 5112: ! 5113: ! 5114: ! 5115: ! 5116: ! 5117: ! 5118: ! 5119: ! 5120: ! 5121: ! 5122: ! 5123: ! 5124: ! 5125: ! 5126: ! 5127: ! 5128: ! 5129: ! 5130: ! 5131: ! 5132: ! 5133: ! 5134: ! 5135: ! 5136: ! 5137: ! 5138: ! 5139: ! 5140: 9 ! 5141: ! 5142: 9 ! 5143: ! 5144: ! 5145: ! 5146: ! 5147: ! 5148: ! 5149: From jkf Thu Aug 18 19:25:45 1983 ! 5150: Received: by ucbkim.ARPA (4.2/4.2) ! 5151: id AA09885; Thu, 18 Aug 83 19:25:45 PDT ! 5152: Date: Thu, 18 Aug 83 19:25:45 PDT ! 5153: From: jkf (John Foderaro) ! 5154: Message-Id: <[email protected]> ! 5155: To: local-lisp ! 5156: Subject: opus 38.75 ! 5157: Status: O ! 5158: ! 5159: evalhook and funcallhook can now be executed without setting (*rset t) ! 5160: and (sstatus evalhook t). Although they can be executed, they won't ! 5161: have any effect unless and until (*rset t) and (sstatus evalhook t) are ! 5162: done. ! 5163: The reason for this change is that now one can turn off stepping ! 5164: by (sstatus evalhook nil) and then continue the evaluation with ! 5165: evalhook and funcallhook. ! 5166: ! 5167: Those who use the new top-level 'tpl' will notice a few new commands ! 5168: dealing with stepping when you type '?help'. These new commands ! 5169: are ?step, ?soff, and ?sc. Details of the commands are available ! 5170: using the help mechanism (e.g. '?help step'). ! 5171: ! 5172: ! 5173: ! 5174: ! 5175: From jkf Fri Aug 19 13:54:26 1983 ! 5176: Received: by ucbkim.ARPA (4.2/4.2) ! 5177: id AA20017; Fri, 19 Aug 83 13:54:26 PDT ! 5178: Date: Fri, 19 Aug 83 13:54:26 PDT ! 5179: From: jkf (John Foderaro) ! 5180: Message-Id: <[email protected]> ! 5181: To: local-lisp ! 5182: Subject: liszt 8.36 ! 5183: Status: O ! 5184: ! 5185: The compiler will now compile the form ! 5186: (*no-macroexpand* <form>) ! 5187: in a special way: if <form> is a function call, e.g. (name arg1 ...), ! 5188: then any macro properties of 'name' will be ignored for this ! 5189: invocation. This permits one to write macros which attempt ! 5190: an optimization, and if that fails, then call the standard ! 5191: function. *no-macroexpand* is not a function that can be called, ! 5192: thus forms with *no-macroexpand* are likely to be 'cmacros'. ! 5193: Here is an example: ! 5194: ! 5195: (defcmacro length (x &protect (x)) ! 5196: `(if (null ,x) ! 5197: then 0 ! 5198: elseif (null (cdr ,x)) ! 5199: then 1 ! 5200: else (*no-macroexpand* (length ,x)))) ! 5201: ! 5202: ! 5203: [in case you are wondering, the `&protect (x)' means that ! 5204: should the actual argument to 'length' be a non atom, defcmacro ! 5205: will lambda bind the value, insuring that it is only evaluated ! 5206: once] ! 5207: ! 5208: ! 5209: ! 5210: ! 5211: From layer Wed Aug 24 22:18:34 1983 ! 5212: Received: by ucbkim.ARPA (4.6/4.2) ! 5213: id AA12256; Wed, 24 Aug 83 22:18:34 PDT ! 5214: From: layer (Kevin Layer) ! 5215: Phone: (415) 652-2405 ! 5216: Date: 24 Aug 1983 2218-PDT (Wednesday) ! 5217: Message-Id: <12219.30.430636709@ucbkim> ! 5218: To: local-lisp ! 5219: Subject: liszt on kim ! 5220: Status: O ! 5221: ! 5222: The liszt that I installed on kim yesterday, compiled eq's wrong ! 5223: in some rare cases. I installed a new one this evening that fixes ! 5224: this, but if you compiled any programs with the bad one, you might ! 5225: consider re-compiling them... ! 5226: ! 5227: Kevin ! 5228: ! 5229: From fateman Thu Aug 25 13:58:59 1983 ! 5230: Received: by ucbkim.ARPA (4.6/4.2) ! 5231: id AA21033; Thu, 25 Aug 83 13:58:59 PDT ! 5232: Date: Thu, 25 Aug 83 13:58:59 PDT ! 5233: From: fateman (Richard Fateman) ! 5234: Message-Id: <[email protected]> ! 5235: To: local-lisp ! 5236: Status: O ! 5237: ! 5238: I have a copy of the latest Common Lisp manual... the Excelsior Edition. ! 5239: ! 5240: From patel@UCLA-LOCUS Tue Aug 30 21:58:38 1983 ! 5241: Received: from ucbvax.ARPA by ucbkim.ARPA (4.6/4.2) ! 5242: id AA29417; Tue, 30 Aug 83 21:58:38 PDT ! 5243: Received: from ucla-locus (ucla-locus.ARPA) by ucbvax.ARPA (4.8/4.4) ! 5244: id AA06203; Tue, 30 Aug 83 21:50:26 PDT ! 5245: Message-Id: <[email protected]> ! 5246: Date: Tue, 30 Aug 83 21:44:13 PDT ! 5247: From: Dorab Patel <patel@UCLA-LOCUS> ! 5248: To: franz-friends@BERKELEY ! 5249: Subject: bug fix for 'insert' in opus 38.50 ! 5250: Status: O ! 5251: ! 5252: The function 'insert' in Opus 38.50 does not perform as advertised in ! 5253: the manual if the last argument is non-nil (i.e. if no duplicates are allowed. ! 5254: It still insists on putting the duplicate element into the list. The ! 5255: fix is in /usr/lib/lisp/common2.l. Just change the default setting ! 5256: of the 'comparefn' to that given below instead of ! 5257: (function alphalessp). Here is an excerpt from the modified file. ! 5258: ! 5259: ! 5260: [.....] ! 5261: (def insert ! 5262: (lambda (x l comparefn nodups) ! 5263: (cond ((null l) (list x)) ! 5264: ((atom l) ! 5265: (error "an atom, can't be inserted into" l)) ! 5266: (t (cond ! 5267: ((null comparefn) (setq comparefn ! 5268: (function ! 5269: (lambda (x y) ! 5270: (or (alphalessp x y) ! 5271: (equal x y))))))) ! 5272: (prog (l1 n n1 y) ! 5273: (setq l1 l) ! 5274: (setq n (length l)) ! 5275: a (setq n1 (/ (add1 n) 2)) ! 5276: (setq y (Cnth l1 n1)) ! 5277: [..........] ! 5278: ! 5279: From jkf Sun Sep 4 09:59:01 1983 ! 5280: Received: by ucbkim.ARPA (4.6/4.2) ! 5281: id AA03721; Sun, 4 Sep 83 09:59:01 PDT ! 5282: Date: Sun, 4 Sep 83 09:59:01 PDT ! 5283: From: jkf (John Foderaro) ! 5284: Message-Id: <[email protected]> ! 5285: To: local-lisp ! 5286: Subject: opus 38.77 ! 5287: Status: O ! 5288: ! 5289: The 'error' function used to print its arguments and then call 'err' to ! 5290: cause the familar 'call to err' error. The problem with this is that ! 5291: even if you wrap your compuatation with (errset ... nil), the error message ! 5292: will still be printed. In opus 38.77, this problem has been fixed. ! 5293: ! 5294: A new function was added: ! 5295: (err-with-message 'st_message ['g_value]) ! 5296: This causes an error to be signaled with the given message. The message ! 5297: will only be printed if an '(errset ... nil)' isn't being executed. ! 5298: Normally nil is returned from an errset if an error occured. If you provide ! 5299: g_value, then it will be returned from the errset. ! 5300: [Not surprisingly, 'error' now uses 'err-with-message'] ! 5301: ! 5302: ! 5303: Also, 'error' now takes any number of arguments. In concatenates them, ! 5304: separated by spaces, and this is the error message passed to ! 5305: err-with-message. ! 5306: ! 5307: ! 5308: ! 5309: ! 5310: From narain@rand-unix Fri Sep 9 13:32:24 1983 ! 5311: Received: from ucbvax.ARPA by ucbkim.ARPA (4.6/4.2) ! 5312: id AA16481; Fri, 9 Sep 83 13:32:24 PDT ! 5313: Received: from rand-unix (rand-unix.ARPA) by ucbvax.ARPA (4.12/4.7) ! 5314: id AA11010; Fri, 9 Sep 83 13:31:58 PDT ! 5315: Message-Id: <[email protected]> ! 5316: Date: Friday, 9 Sep 1983 10:55-PDT ! 5317: To: franz-friends@BERKELEY ! 5318: Cc: narain@rand-unix ! 5319: Subject: Franzlisp Question ! 5320: From: narain@rand-unix ! 5321: Status: O ! 5322: ! 5323: ! 5324: Hello all: ! 5325: ! 5326: I would be grateful if you could answer another question regarding Franzlisp. ! 5327: How does one make Franzlisp continue from an error? For example when Lisp ! 5328: gives an error message like "x unbound variable", is it possible to ! 5329: bind x to a value and make Lisp continue from that point? Right now we have ! 5330: to start over again and it is very time consuming. ! 5331: ! 5332: -- Sanjai ! 5333: ! 5334: From [email protected] Fri Sep 9 13:46:45 1983 ! 5335: Received: from ucbvax.ARPA by ucbkim.ARPA (4.6/4.2) ! 5336: id AA16843; Fri, 9 Sep 83 13:46:45 PDT ! 5337: Received: from DEC-MARLBORO.ARPA by ucbvax.ARPA (4.12/4.7) ! 5338: id AA11248; Fri, 9 Sep 83 13:46:26 PDT ! 5339: Date: 9 Sep 1983 1427-EDT ! 5340: From: AUSTIN@DEC-MARLBORO ! 5341: To: FRANZ-FRIENDS@BERKELEY ! 5342: Subject: LIST MEMBERSHIP ! 5343: Message-Id: <"MS10(2124)+GLXLIB1(1136)" 11950297972.20.647.3882 at DEC-MARLBORO> ! 5344: Status: O ! 5345: ! 5346: PLEASE ADD ME TO FRANZ-FRIENDS@BERKELEY DISTRIBUTION. ! 5347: ! 5348: MY NAME IS TOM AUSTIN AND MY NETWORK ADDRESS IS AUSTIN@DEC-MARLBORO. ! 5349: ! 5350: THANKS! ! 5351: -------- ! 5352: ! 5353: From jkf Sat Sep 10 12:34:14 1983 ! 5354: Received: by ucbkim.ARPA (4.6/4.2) ! 5355: id AA28421; Sat, 10 Sep 83 12:34:14 PDT ! 5356: Date: Sat, 10 Sep 83 12:34:14 PDT ! 5357: From: jkf (John Foderaro) ! 5358: Message-Id: <[email protected]> ! 5359: To: local-lisp ! 5360: Subject: opus 38.78 ! 5361: Status: O ! 5362: ! 5363: The new functions contributed by the bair group dealing with symbol ! 5364: creation have been changed from fexprs to exprs (lambdas) and lexprs. ! 5365: ! 5366: The new documentation follows: ! 5367: ! 5368: ! 5369: ! 5370: ! 5371: ! 5372: ! 5373: ! 5374: The functions described below are an alternative to the ! 5375: gensym facility. They generate new symbols by attaching ! 5376: counter numbers to the ends of the symbols' names. An exam- ! 5377: ple follows of how the functions are used. ! 5378: ! 5379: ! 5380: ____________________________________________________ ! 5381: ! 5382: -> (initsym 'joe '(john 5)) ; initializing new symbol counters ! 5383: (joe0 john5) ! 5384: -> (newsym 'john) ; create a new symbol ! 5385: john6 ! 5386: -> (newsym 'chuck) ; symbol need not be initsym'ed ! 5387: chuck0 ! 5388: -> (oldsym 'john) ; get current symbol ! 5389: john6 ! 5390: -> (allsym 'john) ; get all symbols between 0 and counter ! 5391: (john0 john1 john2 john3 john4 john5 john6) ! 5392: -> (allsym '(john 5)) ; get all symbols between 5 and counter ! 5393: (john5 john6) ! 5394: -> (remsym 'joe '(john 4)) ; remob all interned symbols ! 5395: ; associated with joe and from ! 5396: ; john4 to the current john ! 5397: ; symbol--returns symbols with symbol counters ! 5398: ; before doing remsym ! 5399: (joe0 john6) ! 5400: -> (symstat 'joe 'john) ! 5401: ((joe nil) (john 3)) ! 5402: ____________________________________________________ ! 5403: ! 5404: ! 5405: ! 5406: ! 5407: (initsym 'g_arg1 ...) ! 5408: ! 5409: WHERE: g_argi is a list (n_counteri s_argi) or a ! 5410: string s_argi (which is equivalent to (0 ! 5411: s_argi)). ! 5412: ! 5413: RETURNS: a list of interned identifiers using the sym- ! 5414: bol counters n_counteri, i.e., the result of ! 5415: concatenating s_argi to n_counteri. ! 5416: ! 5417: EXAMPLE: (initsym 'joe '(john 5)) ==> (joe0 john5) ! 5418: ! 5419: NOTE: See also newsym, oldsym, allsym, remsym, and sym- ! 5420: stat functions. ! 5421: ! 5422: ! 5423: ! 5424: ! 5425: ! 5426: ! 5427: ! 5428: ! 5429: ! 5430: ! 5431: ! 5432: ! 5433: ! 5434: ! 5435: ! 5436: ! 5437: ! 5438: ! 5439: ! 5440: (newsym 's_arg) ! 5441: ! 5442: RETURNS: an interned identifier formed by concatenating ! 5443: the name s_arg to the symbol counter for ! 5444: s_arg. The symbol counter is stored on the ! 5445: property list of s_arg under symctr. If there ! 5446: is no counter, a counter of 0 is used and ! 5447: added to the property list. Thus, a symbol ! 5448: need not be initsymed. ! 5449: ! 5450: EXAMPLE: (initsym 'joe '(john5)) ==> (joe0 john5) ! 5451: (newsym 'john) ==> john6 ! 5452: (newsym 'joe) ==> joe1 ! 5453: ! 5454: NOTE: See also initsym, oldsym, allsym, remsym, and ! 5455: symstat functions. ! 5456: ! 5457: (oldsym 's_arg) ! 5458: ! 5459: RETURNS: the identifier using the current symbol ! 5460: counter for s_arg, rather than creating a new ! 5461: identifier. If no symbol counter exists for ! 5462: s_arg, then s_arg is returned. ! 5463: ! 5464: NOTE: See also initsym, newsym, allsym, remsym, and ! 5465: symstat functions. ! 5466: ! 5467: (allsym 'g_arg) ! 5468: ! 5469: WHERE: g_arg is a list (s_arg n_counter) or a string ! 5470: s_arg (equivalent to (s_arg 0)). ! 5471: ! 5472: RETURNS: a list of all the created identifiers between ! 5473: n_counter and the current symbol counter for ! 5474: s_arg. ! 5475: ! 5476: EXAMPLE: (allsym 'john) ==> (john0 john1 john2) ! 5477: ! 5478: NOTE: See also initsym, newsym, oldsym, remsym, and ! 5479: symstat functions. ! 5480: ! 5481: (remsym 'g_arg1 ...) ! 5482: ! 5483: WHERE: g_argi is a list (s_argi n_counteri) or a ! 5484: string s_argi (which is equivalent to (s_argi ! 5485: 0)). ! 5486: ! 5487: RETURNS: a list of symbols s_argi with the current sym- ! 5488: bol counters. ! 5489: ! 5490: SIDE EFFECT: remsym remob's all the created identifiers ! 5491: between zero and the current symbol ! 5492: counter for s_argi. ! 5493: ! 5494: ! 5495: ! 5496: ! 5497: ! 5498: ! 5499: ! 5500: ! 5501: ! 5502: ! 5503: ! 5504: ! 5505: ! 5506: NOTE: See also initsym, newsym oldsym, allsym, and sym- ! 5507: stat functions. ! 5508: ! 5509: (symstat 's_arg1 ...) ! 5510: ! 5511: RETURNS: a list of pairs consisting of (s_argi symctri) ! 5512: where symctri is s_argi's current symbol ! 5513: counter. ! 5514: ! 5515: NOTE: See also initsym, newsym, oldsym, allsym, and ! 5516: remsym functions. ! 5517: ! 5518: ! 5519: ! 5520: ! 5521: ! 5522: ! 5523: ! 5524: ! 5525: ! 5526: ! 5527: ! 5528: ! 5529: ! 5530: ! 5531: ! 5532: ! 5533: ! 5534: ! 5535: ! 5536: ! 5537: ! 5538: ! 5539: ! 5540: ! 5541: ! 5542: ! 5543: ! 5544: ! 5545: ! 5546: ! 5547: ! 5548: ! 5549: ! 5550: ! 5551: ! 5552: ! 5553: ! 5554: ! 5555: ! 5556: ! 5557: ! 5558: ! 5559: ! 5560: ! 5561: ! 5562: ! 5563: ! 5564: ! 5565: ! 5566: ! 5567: ! 5568: From jkf@ucbkim Wed Sep 14 08:04:14 1983 ! 5569: Received: from ucbvax.ARPA by ucbkim.ARPA (4.6/4.2) ! 5570: id AA14801; Wed, 14 Sep 83 08:04:14 PDT ! 5571: Received: from ucbkim.ARPA by ucbvax.ARPA (4.12/4.7) ! 5572: id AA04212; Wed, 14 Sep 83 08:03:58 PDT ! 5573: Received: by ucbkim.ARPA (4.6/4.2) ! 5574: id AA14786; Wed, 14 Sep 83 08:03:43 PDT ! 5575: Date: Wed, 14 Sep 83 08:03:43 PDT ! 5576: From: jkf@ucbkim (John Foderaro) ! 5577: Message-Id: <[email protected]> ! 5578: To: franz-friends@BERKELEY ! 5579: Subject: lisp distribution ! 5580: Status: O ! 5581: ! 5582: A number of you have noticed that ftp'ing the lisp distribution from ! 5583: ucb-vax can be slow at times. As a result, we've made 'ucb-arpa' the ! 5584: primary distribution machine. You can ftp from ucb-arpa using an anonymous ! 5585: login (with your name as password). The files are in the pub/lisp ! 5586: subdirectory. ! 5587: john foderaro ! 5588: ! 5589: ! 5590: ! 5591: ! 5592: From liz%umcp-cs@UDel-Relay Mon Sep 26 19:41:37 1983 ! 5593: Received: from ucbvax.ARPA by ucbkim.ARPA (4.6/4.2) ! 5594: id AA24055; Mon, 26 Sep 83 19:41:37 PDT ! 5595: Received: from udel-relay.ARPA by ucbvax.ARPA (4.12/4.7) ! 5596: id AA07367; Mon, 26 Sep 83 16:28:58 PDT ! 5597: Message-Id: <[email protected]> ! 5598: Date: 26 Sep 83 15:22:00 EDT (Mon) ! 5599: From: Liz Allen <liz%umcp-cs@UDel-Relay> ! 5600: Return-Path: <liz%umcp-cs@UDel-Relay> ! 5601: Subject: Maryland software distribution ! 5602: To: franz-friends@BERKELEY ! 5603: Via: UMCP-CS; 26 Sep 83 17:46-EDT ! 5604: Status: O ! 5605: ! 5606: This is to announce the availability of the Univ of Maryland software ! 5607: distribution. This includes source code for the following: ! 5608: ! 5609: 1. The flavors package written in Franz Lisp. This package has ! 5610: been used successfully in a number of large systems at Maryland, ! 5611: and while it does not implement all the features of Lisp Machine ! 5612: Flavors, the features present are as close to the Lisp Machine ! 5613: version as possible within the constraints of Franz Lisp. ! 5614: (Note that Maryland flavors code *can* be compiled.) ! 5615: 2. Other Maryland Franz hacks including the INTERLISP-like top ! 5616: level, the lispbreak error handling package, the for macro and ! 5617: the new loader package. ! 5618: 3. The YAPS production system written in Franz Lisp. This is ! 5619: similar to OPS5 but more flexible in the kinds of lisp expressions ! 5620: that may appear as facts and patterns (sublists are allowed ! 5621: and flavor objects are treated atomically), the variety of ! 5622: tests that may appear in the left hand sides of rules and the ! 5623: kinds of actions may appear in the right hand sides of rules. ! 5624: In addition, YAPS allows multiple data bases which are flavor ! 5625: objects and may be sent messages such as "fact" and "goal". ! 5626: 4. The windows package in the form of a C loadable library. This ! 5627: flexible package allows convenient management of multiple ! 5628: contexts on the screen and runs on ordinary character display ! 5629: terminals as well as bit-mapped displays. Included is a Franz ! 5630: lisp interface to the window library, a window shell for ! 5631: executing shell processes in windows, and a menu package (also ! 5632: a C loadable library). ! 5633: ! 5634: You should be aware of the fact that the lisp software is based on ! 5635: Franz Opus 38.26 and that we will be switching to the newer version ! 5636: of lisp that comes with Berkeley 4.2 whenever that comes out. ! 5637: ! 5638: --------------------------------------------------------------------- ! 5639: ! 5640: To obtain the Univ of Maryland distribution tape: ! 5641: ! 5642: 1. Fill in the form below, make a hard copy of it and sign it. ! 5643: 2. Make out a check to University of Maryland Foundation for $100, ! 5644: mail it and the form to: ! 5645: ! 5646: Liz Allen ! 5647: Univ of Maryland ! 5648: Dept of Computer Science ! 5649: College Park MD 20742 ! 5650: ! 5651: 3. If you need an invoice, send me mail, and I will get one to you. ! 5652: Don't forget to include your US Mail address. ! 5653: ! 5654: Upon receipt of the money, we will mail you a tape containing our ! 5655: software and the technical reports describing the software. We ! 5656: will also keep you informed of bug fixes via electronic mail. ! 5657: ! 5658: --------------------------------------------------------------------- ! 5659: ! 5660: The form to mail to us is: ! 5661: ! 5662: ! 5663: In exchange for the Maryland software tape, I certify to the ! 5664: following: ! 5665: ! 5666: a. I will not use any of the Maryland software distribution in a ! 5667: commercial product without obtaining permission from Maryland ! 5668: first. ! 5669: b. I will keep the Maryland copyright notices in the source code, ! 5670: and acknowledge the source of the software in any use I make of ! 5671: it. ! 5672: c. I will not redistribute this software to anyone without permission ! 5673: from Maryland first. ! 5674: d. I will keep Maryland informed of any bug fixes. ! 5675: e. I am the appropriate person at my site who can make guarantees a-d. ! 5676: ! 5677: Your signature, name, position, ! 5678: phone number, U.S. and electronic ! 5679: mail addresses. ! 5680: ! 5681: --------------------------------------------------------------------- ! 5682: ! 5683: If you have any questions, etc, send mail to me: ! 5684: ! 5685: -Liz Allen, U of Maryland, College Park MD ! 5686: Usenet: ...!seismo!umcp-cs!liz ! 5687: Arpanet: liz%umcp-cs@Udel-Relay ! 5688: ! 5689: ! 5690: From fateman Thu Sep 29 14:50:17 1983 ! 5691: Received: by ucbkim.ARPA (4.6/4.2) ! 5692: id AA10806; Thu, 29 Sep 83 14:50:17 PDT ! 5693: Date: Thu, 29 Sep 83 14:50:17 PDT ! 5694: From: fateman (Richard Fateman) ! 5695: Message-Id: <[email protected]> ! 5696: To: franz-friends ! 5697: Subject: survey ! 5698: Cc: fateman ! 5699: Status: O ! 5700: ! 5701: I am trying to collect some statistics on usage of Franz. ! 5702: I would like to get answers to these questions: ! 5703: (1) Your location: ! 5704: (2) The number of computers at your location (actively) running Franz: ! 5705: (3) Have you produced a locally modified manual? (y/n) ! 5706: (4) Are other Lisps in use there? (names?) ! 5707: (5) Do you use Franz for instruction? research? ! 5708: (6) Are you distributing or selling packages "on top of" Franz? ! 5709: ! 5710: (You may also send comments you wish; I will compile results and ! 5711: redistribute, so please do not respond to "franz-friends", but to me.) ! 5712: Thanks. ! 5713: ! 5714: From jkf Thu Sep 29 23:04:29 1983 ! 5715: Received: by ucbkim.ARPA (4.6/4.2) ! 5716: id AA04355; Thu, 29 Sep 83 23:04:29 PDT ! 5717: Date: Thu, 29 Sep 83 23:04:29 PDT ! 5718: From: jkf (John Foderaro) ! 5719: Message-Id: <[email protected]> ! 5720: To: local-lisp ! 5721: Subject: opus 38.80 ! 5722: Status: O ! 5723: ! 5724: Two new functions: ! 5725: ! 5726: (character-index 'st_string 'xst_char) ! 5727: ! 5728: returns the position of the character xst_char in the string ! 5729: st_string. The position of the first character is '1' ! 5730: (1-based indexing was chosen because substring also uses ! 5731: 1-based indexing). ! 5732: If the character is not in the string, nil is returned. ! 5733: ! 5734: xst_char, as its prefix implies, can either be the fixnum ! 5735: value of a character (commonly written #/x), or a symbol ! 5736: or string, in which case the first character is used. ! 5737: ! 5738: ! 5739: (sleep 'x_seconds) ! 5740: sleep for x_seconds. ! 5741: ! 5742: ! 5743: ! 5744: ! 5745: From jkf Sat Oct 1 21:42:29 1983 ! 5746: Received: by ucbkim.ARPA (4.6/4.2) ! 5747: id AA16280; Sat, 1 Oct 83 21:42:29 PDT ! 5748: Date: Sat, 1 Oct 83 21:42:29 PDT ! 5749: From: jkf (John Foderaro) ! 5750: Message-Id: <[email protected]> ! 5751: To: local-lisp ! 5752: Subject: opus 38.81 ! 5753: Status: O ! 5754: ! 5755: new function (sys:nice 'x_delta-priority) ! 5756: this increments your nice value (decrements your process priority) ! 5757: by x_delta-priority. x_delta-priority can only be negative ! 5758: if you are root, of course. ! 5759: ! 5760: ! 5761: ! 5762: ! 5763: From unmvax!gatech!pwh Tue Oct 4 08:35:04 1983 ! 5764: Received: from ucbvax.ARPA by ucbkim.ARPA (4.6/4.2) ! 5765: id AA23488; Tue, 4 Oct 83 08:35:04 PDT ! 5766: Received: by ucbvax.ARPA (4.12/4.7) ! 5767: id AA07616; Tue, 4 Oct 83 08:05:43 PDT ! 5768: From: unmvax!gatech!pwh ! 5769: Message-Id: <[email protected]> ! 5770: Date: 1 Oct 83 19:44:56-EDT (Sat) ! 5771: Original-From: <pwh@gatech> ! 5772: To: franz-friends@BERKELEY ! 5773: Subject: why a HOLE (duck) ? ! 5774: Status: RO ! 5775: ! 5776: ! 5777: Could someone explain to me what HOLE is all about in the vax dependent ! 5778: Franz code? I've scrutinized the code and read the preliminary Franz ! 5779: implementation manual too many times and still can't figure it... ! 5780: ! 5781: phil hutto ! 5782: ! 5783: ! 5784: ! 5785: ! 5786: From mbr@nprdc Sat Oct 8 15:59:38 1983 ! 5787: Received: from ucbvax.ARPA by ucbkim.ARPA (4.6/4.2) ! 5788: id AA08262; Sat, 8 Oct 83 15:59:38 PDT ! 5789: Received: from nprdc (nprdc.ARPA) by ucbvax.ARPA (4.12/4.7) ! 5790: id AA23633; Sat, 8 Oct 83 15:58:02 PDT ! 5791: Message-Id: <[email protected]> ! 5792: Date: 8 Oct 1983 15:52:17-PDT ! 5793: From: Mark Rosenstein <mbr@NPRDC> ! 5794: Reply-To: mbr@NPRDC ! 5795: To: franz-friends@BERKELEY ! 5796: Subject: bugs in liszt 8.36 ! 5797: Status: RO ! 5798: ! 5799: Problem: ! 5800: -I flag doesn't work ! 5801: Solution?? ! 5802: in file tlev.l change 'i to 'I in line 127 ! 5803: (notice that -i flag includes files and it is imposible to get ! 5804: into uci mode) ! 5805: ! 5806: Problem: ! 5807: while compiling get message: ! 5808: Undefined function called from compiled code e-sub2 ! 5809: Solution?? ! 5810: in file tlev.l change e-sub2 to e-sub in line 298 ! 5811: (I don't swear by this solution--my stuff seems to compile ok ! 5812: but no promises) ! 5813: ! 5814: From jkf Wed Oct 12 06:11:15 1983 ! 5815: Received: by ucbkim.ARPA (4.6/4.2) ! 5816: id AA29652; Wed, 12 Oct 83 06:11:15 PDT ! 5817: Date: Wed, 12 Oct 83 06:11:15 PDT ! 5818: From: John Foderaro (on an h19-u) <jkf> ! 5819: Message-Id: <[email protected]> ! 5820: To: local-lisp ! 5821: Subject: New AI language in the works ! 5822: Cc: ! 5823: Status: RO ! 5824: ! 5825: ! 5826: From: Skef Wholey <[email protected]> ! 5827: ! 5828: >From an article "Computing Women" in a shoddy little pseudo-magazine ! 5829: called "Ampersand" that was stuck inside CMU's student newspaper this ! 5830: week: ! 5831: ! 5832: Our final tip involves a different kind of research. Is a ! 5833: breakthough in computing happening right on your own ! 5834: campus? MIT and Carnegie-Mellon University, for example, ! 5835: are busy developing a brainchild called Lisp. If ! 5836: successful, Lisp may become the standard language of ! 5837: ``artificially intelligent'' computers that ``think'' ! 5838: within a limited sphere on their own. Imagine your ! 5839: marketability if you've worked with a poineer in this ! 5840: field. Skip a football game some Saturday afternoon and ! 5841: see what the Prof is doing with HIS spare time. It could ! 5842: be profitable to you. ! 5843: ! 5844: ! 5845: ! 5846: ! 5847: ! 5848: From @MIT-MC:apm@cmu-ri-isl1 Fri Oct 14 09:27:56 1983 ! 5849: Received: from ucbvax.ARPA by ucbkim.ARPA (4.6/4.2) ! 5850: id AA14501; Fri, 14 Oct 83 09:27:56 PDT ! 5851: Received: from MIT-MC (mit-mc.ARPA) by ucbvax.ARPA (4.12/4.7) ! 5852: id AA00195; Fri, 14 Oct 83 09:26:15 PDT ! 5853: Message-Id: <[email protected]> ! 5854: Date: 14 Oct 1983 12:22:28-EDT ! 5855: From: Andrew.Mendler@CMU-RI-ISL1 ! 5856: Subject: eunice version of franz ! 5857: Apparently-To: <franz-friends@UCB-VAX> ! 5858: Status: RO ! 5859: ! 5860: What is the most recent version of franz lisp that is available under eunice? ! 5861: In particular is opus38.55 available? ! 5862: ! 5863: Thanks in advance. ! 5864: ! 5865: ! 5866: From sklower Fri Oct 14 09:45:15 1983 ! 5867: Received: by ucbkim.ARPA (4.6/4.2) ! 5868: id AA14694; Fri, 14 Oct 83 09:45:15 PDT ! 5869: Date: Fri, 14 Oct 83 09:45:15 PDT ! 5870: From: sklower (Keith Sklower) ! 5871: Message-Id: <[email protected]> ! 5872: To: franz-friends ! 5873: Subject: eunice version of franz ! 5874: Status: RO ! 5875: ! 5876: We have opus38.79 working on David Kashtan's machine. The source ! 5877: is integrated with the vax-unix and 68000 versions, all available ! 5878: by anonymous ftp, or as the regular tape distribution. I have had ! 5879: one report from a eunice user that the installation didn't get past ! 5880: construction the kernel, but it could be due to insufficient quota. ! 5881: ! 5882: From jkf Sun Oct 16 16:39:35 1983 ! 5883: Received: by ucbkim.ARPA (4.6/4.2) ! 5884: id AA03935; Sun, 16 Oct 83 16:39:35 PDT ! 5885: Date: Sun, 16 Oct 83 16:39:35 PDT ! 5886: From: John Foderaro (on an aaa-60-s) <jkf> ! 5887: Message-Id: <[email protected]> ! 5888: To: local-lisp ! 5889: Subject: opus 38.82 ! 5890: Cc: ! 5891: Status: RO ! 5892: ! 5893: I'm working on a simple record (destruct-like) package. Consequently, ! 5894: I've made 'defrecord' autoload my record package. This will cause ! 5895: problems if there are people who use the name 'defrecord' as a ! 5896: non-macro function. If this will cause you problems, please speak up. ! 5897: ! 5898: ! 5899: ! 5900: From procter@UCBMIRO Mon Oct 17 08:59:02 1983 ! 5901: Received: from UCBMIRO.ARPA by ucbkim.ARPA (4.6/4.2) ! 5902: id AA01206; Mon, 17 Oct 83 08:59:02 PDT ! 5903: Date: 16 Oct 83 22:56:00 PDT (Sun) ! 5904: From: procter@UCBMIRO (Steve Procter) ! 5905: Subject: cfasl ! 5906: Message-Id: <[email protected]> ! 5907: Received: by UCBMIRO.ARPA (3.340/3.29) ! 5908: id AA01323; 16 Oct 83 22:56:00 PDT (Sun) ! 5909: To: local-lisp@ucbkim ! 5910: Status: O ! 5911: ! 5912: How are arguements passed from lisp to the C routines? ! 5913: I wrote a program which just printed the arguements passed to it, ! 5914: and when I cfasl'd it and used it, I got argc > 500000... ! 5915: ! 5916: steve procter ! 5917: procter@ucbmiro ! 5918: ! 5919: From jkf Mon Oct 17 10:08:37 1983 ! 5920: Received: by ucbkim.ARPA (4.6/4.2) ! 5921: id AA02418; Mon, 17 Oct 83 10:08:37 PDT ! 5922: Date: Mon, 17 Oct 83 10:08:37 PDT ! 5923: From: John Foderaro (on an h19-u) <jkf> ! 5924: Message-Id: <[email protected]> ! 5925: To: procter@UCBMIRO ! 5926: Subject: Re: cfasl ! 5927: Cc: local-lisp ! 5928: In-Reply-To: Your message of 16 Oct 83 22:56:00 PDT (Sun) ! 5929: Status: O ! 5930: ! 5931: Arguments are passed to C functions in the normal C way (on the stack ! 5932: not as strings on the command line). There are examples in the ! 5933: lisp manual (in the section on foreign functions). ! 5934: ! 5935: ! 5936: ! 5937: From whm.Arizona@Rand-Relay Fri Oct 28 05:44:39 1983 ! 5938: Received: from ucbvax.ARPA by ucbkim.ARPA (4.16/4.2) ! 5939: id AA20395; Fri, 28 Oct 83 05:44:39 pdt ! 5940: Received: from rand-relay.ARPA by ucbvax.ARPA (4.16/4.13) ! 5941: id AA14289; Fri, 28 Oct 83 05:43:48 pdt ! 5942: Message-Id: <[email protected]> ! 5943: Date: 28 Oct 1983 01:12:45-PST ! 5944: From: whm.arizona@Rand-Relay ! 5945: Return-Path: <whm.Arizona@Rand-Relay> ! 5946: Subject: Memory management in Franz ! 5947: Date-Sent: 28 Oct 83 01:12:42 MST (Fri) ! 5948: To: franz-friends@BERKELEY ! 5949: Via: Arizona; 28 Oct 83 2:37-PDT ! 5950: Status: O ! 5951: ! 5952: I've got a couple of questions about Franz Lisp storage management that ! 5953: I wondering if somebody "in the know" might be able to answer. I tried ! 5954: this on net.lang.lisp, but didn't get any answers. ! 5955: ! 5956: First, Franz seems to support non-relocatable data objects such as ! 5957: external functions. Are such objects managed by having two logical ! 5958: regions in managed memory, one for relocatable objects and one for ! 5959: non-relocatable objects? Such a scheme has been used in other systems ! 5960: that require garbage collection and I was wondering if Franz uses ! 5961: this or some other scheme. ! 5962: ! 5963: Second, I've heard (but not tried) that Franz allows non-relocatable ! 5964: data to be allocated via brk/sbrk. Is this true? ! 5965: ! 5966: (Actually, I suppose I'd like information on any storage management ! 5967: implementations for any languages (w/ automatic storage management) ! 5968: that allow non-relocatable data to be dynamically allocated that don't ! 5969: use the aforementioned scheme.) ! 5970: ! 5971: Thanks, ! 5972: Bill Mitchell ! 5973: whm.arizona@rand-relay ! 5974: p.s. ! 5975: I'm not on the Franz-Friends list, so if you would, please mail me ! 5976: any replies. ! 5977: ! 5978: From whm.Arizona@Rand-Relay Mon Oct 31 04:55:33 1983 ! 5979: Received: from ucbvax.ARPA by ucbkim.ARPA (4.16/4.2) ! 5980: id AA29912; Mon, 31 Oct 83 04:55:33 pst ! 5981: Received: from rand-relay.ARPA by ucbvax.ARPA (4.16/4.13) ! 5982: id AA08771; Mon, 31 Oct 83 04:54:49 pst ! 5983: Message-Id: <[email protected]> ! 5984: Date: 31 Oct 1983 00:41:38-PST ! 5985: From: whm.arizona@Rand-Relay ! 5986: Return-Path: <whm.Arizona@Rand-Relay> ! 5987: Subject: Memory management in Franz ! 5988: Date-Sent: 31 Oct 83 00:41:36 MST (Mon) ! 5989: To: franz-friends@BERKELEY ! 5990: Via: Arizona; 31 Oct 83 1:36-PST ! 5991: Status: O ! 5992: ! 5993: [My apologies if this is a repeat; I got some very wierd messages back ! 5994: from the Berkeley mailer on my first attempt to send this.] ! 5995: ! 5996: I've got a couple of questions about Franz Lisp storage management that ! 5997: I wondering if somebody "in the know" might be able to answer. I tried ! 5998: this on net.lang.lisp, but didn't get any answers. ! 5999: ! 6000: First, Franz seems to support non-relocatable data objects such as ! 6001: external functions. Are such objects managed by having two logical ! 6002: regions in managed memory, one for relocatable objects and one for ! 6003: non-relocatable objects? Such a scheme has been used in other systems ! 6004: that require garbage collection and I was wondering if Franz uses ! 6005: this or some other scheme. ! 6006: ! 6007: Second, I've heard (but not tried) that Franz allows non-relocatable ! 6008: data to be allocated via brk/sbrk. Is this true? ! 6009: ! 6010: (Actually, I suppose I'd like information on any storage management ! 6011: implementations for any languages (w/ automatic storage management) ! 6012: that allow non-relocatable data to be dynamically allocated that don't ! 6013: use the aforementioned scheme.) ! 6014: ! 6015: Thanks, ! 6016: Bill Mitchell ! 6017: whm.arizona@rand-relay ! 6018: p.s. ! 6019: I'm not on the Franz-Friends list, so if you would, please mail me ! 6020: any replies. ! 6021: ! 6022: From pjt@brl-voc Tue Nov 1 06:52:11 1983 ! 6023: Received: from ucbvax.ARPA by ucbkim.ARPA (4.16/4.13) ! 6024: id AA03145; Tue, 1 Nov 83 06:52:11 pst ! 6025: Received: from BRL-VOC (brl-voc.ARPA) by ucbvax.ARPA (4.16/4.13) ! 6026: id AA01150; Tue, 1 Nov 83 06:51:14 pst ! 6027: Message-Id: <[email protected]> ! 6028: Date: Tue, 1 Nov 83 9:44:54 EST ! 6029: From: Paul Tanenbaum <pjt@brl-voc> ! 6030: To: Ailist-requests@sri-ai, Franz-Friends@BERKELEY ! 6031: Cc: pjt@brl-voc ! 6032: Subject: mailing list ! 6033: Status: O ! 6034: ! 6035: Please cons me onto your mailing list ! 6036: Thanks, ! 6037: paul <pjt@brl-voc> ! 6038: ! 6039: ! 6040: From norvig Fri Nov 4 14:14:16 1983 ! 6041: Received: by ucbkim.ARPA (4.16/4.13) ! 6042: id AA20986; Fri, 4 Nov 83 14:14:16 pst ! 6043: Date: Fri, 4 Nov 83 14:14:16 pst ! 6044: From: norvig (Peter Norvig) ! 6045: Message-Id: <[email protected]> ! 6046: To: mills@ernie ! 6047: Subject: Graphics on Suns ! 6048: Cc: local-lisp ! 6049: Status: O ! 6050: ! 6051: I want a lisp-callable package to display trees and graphs on the suns. ! 6052: This is for showing semantic nets, and it would also be useful for showing ! 6053: how procedures call each other, like Interlisp's masterscope. Does anyone ! 6054: know of such a package? ! 6055: ! 6056: From kanderso@bbn-vax Fri Nov 4 19:55:59 1983 ! 6057: Received: from ucbvax.ARPA by ucbkim.ARPA (4.16/4.13) ! 6058: id AA26540; Fri, 4 Nov 83 19:55:59 pst ! 6059: Received: from bbn-vax (bbn-vax.ARPA) by ucbvax.ARPA (4.16/4.13) ! 6060: id AA03738; Fri, 4 Nov 83 19:55:52 pst ! 6061: Message-Id: <[email protected]> ! 6062: Date: Fri, 4 Nov 83 22:55 EST ! 6063: From: Ken Anderson <kanderso@BBN-Vax> ! 6064: Subject: Why no &keywords in local functions? ! 6065: To: franz-friends@BERKELEY ! 6066: Status: O ! 6067: ! 6068: With liszt version 8.29 (Opus 38.66 of Franz) I get the following message: ! 6069: ! 6070: ?Error: save.l: save-install: local functions can't use &keyword's save-install ! 6071: ! 6072: When compiling the function (declared as a localf): ! 6073: ! 6074: (defun save-install (thing table &aux type handler) ! 6075: ; Install thing in hash table, and recursively install its parts. ! 6076: (cond ((memq (setq type (save-type thing)) ! 6077: '(symbol number))) ; Needn't install ! 6078: (t (cond ((zerop (save-count++ thing)) ! 6079: ; Increment access count, and install parts of thing if it ! 6080: ; is being installe ! 6081: (cond ((setq handler (get type 'save-install-parts)) ! 6082: (funcall handler thing table)) ! 6083: (t (ferror "Don't Know how to save ~S~%" thing)))))))) ! 6084: ! 6085: This used to work in earlier Opuses (like 38.44). Can you explain the ! 6086: change. ! 6087: ! 6088: From norvig Tue Nov 8 01:51:03 1983 ! 6089: Received: by ucbkim.ARPA (4.16/4.13) ! 6090: id AA20986; Fri, 4 Nov 83 14:14:16 pst ! 6091: Date: Fri, 4 Nov 83 14:14:16 pst ! 6092: From: norvig (Peter Norvig) ! 6093: Message-Id: <[email protected]> ! 6094: To: mills@ernie ! 6095: Subject: Graphics on Suns ! 6096: Cc: local-lisp ! 6097: Status: O ! 6098: ! 6099: I want a lisp-callable package to display trees and graphs on the suns. ! 6100: This is for showing semantic nets, and it would also be useful for showing ! 6101: how procedures call each other, like Interlisp's masterscope. Does anyone ! 6102: know of such a package? ! 6103: ! 6104: From norvig Tue Nov 8 02:03:27 1983 ! 6105: Received: by ucbkim.ARPA (4.16/4.13) ! 6106: id AA20986; Fri, 4 Nov 83 14:14:16 pst ! 6107: Date: Fri, 4 Nov 83 14:14:16 pst ! 6108: From: norvig (Peter Norvig) ! 6109: Message-Id: <[email protected]> ! 6110: To: mills@ernie ! 6111: Subject: Graphics on Suns ! 6112: Cc: local-lisp ! 6113: Status: O ! 6114: ! 6115: I want a lisp-callable package to display trees and graphs on the suns. ! 6116: This is for showing semantic nets, and it would also be useful for showing ! 6117: how procedures call each other, like Interlisp's masterscope. Does anyone ! 6118: know of such a package? ! 6119: ! 6120: From sklower Thu Nov 17 17:03:27 1983 ! 6121: Received: by ucbkim.ARPA (4.16/4.13) ! 6122: id AA01897; Thu, 17 Nov 83 17:03:27 pst ! 6123: Date: Thu, 17 Nov 83 17:03:27 pst ! 6124: From: sklower (Keith Sklower) ! 6125: Message-Id: <[email protected]> ! 6126: To: local-lisp ! 6127: Subject: lisp sources ! 6128: Status: O ! 6129: ! 6130: Franz now resides in /usr/franz. ! 6131: ! 6132: From jkf Tue Nov 22 09:33:32 1983 ! 6133: Received: by ucbkim.ARPA (4.16/4.13) ! 6134: id AA15675; Tue, 22 Nov 83 09:33:32 pst ! 6135: Date: Tue, 22 Nov 83 09:33:32 pst ! 6136: From: John Foderaro (on an h19-u) <jkf> ! 6137: Message-Id: <[email protected]> ! 6138: To: local-lisp ! 6139: Subject: liszt 8.39 ! 6140: Cc: ! 6141: Status: O ! 6142: ! 6143: The -W switch has been added to liszt. When specified, if a compilation ! 6144: causes any warning messages to given (such as a symbol declared special), ! 6145: then the compiler will not perform the assembly and will return a non-zero ! 6146: exit status (for 'make's benefit). Liszt will continue to compile after it ! 6147: has seen a warning, even if -W is given, to permit as many warnings as ! 6148: possible to be made in each compile. ! 6149: ! 6150: ! 6151: ! 6152: ! 6153: From barry%umcp-cs@CSNet-Relay Tue Nov 22 17:14:09 1983 ! 6154: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.16/4.13) ! 6155: id AA23508; Tue, 22 Nov 83 17:14:09 pst ! 6156: Received: from csnet-cic.ARPA by UCB-VAX.ARPA (4.21/4.15) ! 6157: id AA06655; Tue, 22 Nov 83 17:13:29 pst ! 6158: Message-Id: <[email protected]> ! 6159: Date: 22 Nov 83 12:48:01 EST (Tue) ! 6160: From: Barry Perricone <barry%umcp-cs@CSNet-Relay> ! 6161: Return-Path: <barry%umcp-cs@CSNet-Relay> ! 6162: Subject: Franz for VMS ! 6163: To: franz-friends@BERKELEY ! 6164: Via: UMCP-CS; 22 Nov 83 19:25-EST ! 6165: Status: O ! 6166: ! 6167: ! 6168: I need to know if anybody has a version of Franz for the Vax series ! 6169: under VMS which includes 'liszt'. Also one which when a 'dumplisp' ! 6170: is performed will output a file which can execute as a stand-alone ! 6171: (i.e., does not need to be "restored"). I would appreciate ! 6172: any information on this matter, and if one exists information ! 6173: on how I could obtain a copy of it. ! 6174: ! 6175: Thanks in advance, ! 6176: Barry P. ! 6177: ! 6178: From alfred.ct@Rand-Relay Sat Dec 3 22:40:07 1983 ! 6179: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.16/4.13) ! 6180: id AA12594; Sat, 3 Dec 83 22:40:07 pst ! 6181: Received: from rand-relay.ARPA by UCB-VAX.ARPA (4.22/4.16) ! 6182: id AA06631; Sat, 3 Dec 83 21:43:27 pst ! 6183: Message-Id: <[email protected]> ! 6184: Date: 3 Dec 1983 11:58:11-PST ! 6185: From: alfred.ct@Rand-Relay ! 6186: Return-Path: <alfred.ct@Rand-Relay> ! 6187: Subject: Deficiency in Franz GC ! 6188: To: franz-friends@BERKELEY ! 6189: Via: ct; 3 Dec 83 12:46-PST ! 6190: Status: RO ! 6191: ! 6192: This really isn't a bug so much as a deficiency ! 6193: in the code. We are running Opus 38.26 and recently ! 6194: had need to increase the constant TTSIZE (in config.h) ! 6195: above the default 10216. It turns out that this ! 6196: breaks the garbage collector which will fail ! 6197: to completely clear the array bitmapi ! 6198: if given a TTSIZE greater 10216 (during the ! 6199: clearing out of bit maps). The offending code ! 6200: is in Talloc.c (or alloc.c, depending on your Opus). ! 6201: The old code is: ! 6202: ! 6203: /* try the movc5 to clear the bit maps */ ! 6204: /* the maximum number of bytes we can clear in one sweep is ! 6205: * 2^16 (or 1<<16 in the C lingo) ! 6206: */ ! 6207: bytestoclear = ((((int)datalim)-((int)beginsweep)) >> 9) * 16; ! 6208: if(bytestoclear > MAXCLEAR) ! 6209: { ! 6210: blzero(((int) &bitmapi[((int)beginsweep>>7)]) + MAXCLEAR, ! 6211: bytestoclear - MAXCLEAR); ! 6212: bytestoclear = MAXCLEAR; ! 6213: } ! 6214: blzero((int)&bitmapi[((int)beginsweep)>>7],bytestoclear); ! 6215: ! 6216: and the fixed version that we have been running for several weeks ! 6217: now is: ! 6218: ! 6219: /* try the movc5 to clear the bit maps */ ! 6220: /* the maximum number of bytes we can clear in one sweep is ! 6221: * 2^16 (or 1<<16 in the C lingo) ! 6222: */ ! 6223: bytestoclear = ((((int)datalim)-((int)beginsweep)) >> 9) * 16; ! 6224: {int count = 0; ! 6225: while (bytestoclear > 0) { ! 6226: if(bytestoclear > MAXCLEAR) ! 6227: { ! 6228: blzero(((int) &bitmapi[((int)beginsweep>>7)])+count*MAXCLEAR, ! 6229: MAXCLEAR); ! 6230: ++count; ! 6231: } ! 6232: else ! 6233: blzero(((int)&bitmapi[((int)beginsweep)>>7]+count*MAXCLEAR), ! 6234: bytestoclear); ! 6235: bytestoclear -= MAXCLEAR; ! 6236: } ! 6237: } ! 6238: ! 6239: The old code is still present in Opus 38.56. ! 6240: ! 6241: Alfred Correira ! 6242: Paul Robertson ! 6243: ...ucbvax!nbires!ctvax!alfred (UUCP) ! 6244: alfred.ct@Rand-Relay (CSNET) ! 6245: ! 6246: From fateman Tue Dec 13 09:11:00 1983 ! 6247: Received: by ucbkim.ARPA (4.16/4.13) ! 6248: id AA03666; Tue, 13 Dec 83 08:31:30 pst ! 6249: Date: Tue, 13 Dec 83 08:31:30 pst ! 6250: From: fateman (Richard Fateman) ! 6251: Message-Id: <[email protected]> ! 6252: To: local-lisp ! 6253: Cc: pattrsn ! 6254: Status: O ! 6255: ! 6256: I have just received a copy of the new Common Lisp Reference Manual ! 6257: (The Mary Poppins Edition ... Practically Perfect in Every Way) ! 6258: ... it is 385 pages long. ! 6259: ! 6260: From hoey@nrl-aic Wed Jan 11 12:58:53 1984 ! 6261: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.16/4.13) ! 6262: id AA06395; Wed, 11 Jan 84 12:58:53 pst ! 6263: Received: from nrl-aic (nrl-aic.ARPA) by UCB-VAX.ARPA (4.22/4.19) ! 6264: id AA03955; Wed, 11 Jan 84 12:58:55 pst ! 6265: Message-Id: <[email protected]> ! 6266: Date: 11 Jan 1984 14:43-EST ! 6267: From: Dan Hoey <hoey@NRL-AIC> ! 6268: Subject: Problems with arrays in Franz ! 6269: Apparently-To: <FRANZ-FRIENDS@berkeley> ! 6270: Status: O ! 6271: ! 6272: ! 6273: ! 6274: From hoey@nrl-aic Wed Jan 11 13:10:01 1984 ! 6275: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.16/4.13) ! 6276: id AA06529; Wed, 11 Jan 84 13:10:01 pst ! 6277: Received: from nrl-aic (nrl-aic.ARPA) by UCB-VAX.ARPA (4.22/4.19) ! 6278: id AA04150; Wed, 11 Jan 84 13:09:46 pst ! 6279: Message-Id: <[email protected]> ! 6280: Date: 11 Jan 1984 14:43-EST ! 6281: From: Dan Hoey <hoey@NRL-AIC> ! 6282: Subject: Problems with arrays in Franz ! 6283: To: FRANZ-FRIENDS@BERKELEY ! 6284: Status: O ! 6285: ! 6286: Hard to believe but it was less than two and a half years ago that ! 6287: someone was having trouble using Franz arrays... ! 6288: ! 6289: Date: 17 Jul 1981 17:06:22-PDT ! 6290: From: CSVAX.jkf at Berkeley ! 6291: To: FININ@WHARTON-10 ! 6292: cc: franz-friends at MIT-MC ! 6293: Subject: Re: ... the maclisp-style array package. ! 6294: In-reply-to: Your message of 17 Jul 1981 1347-PDT (Friday). ! 6295: ! 6296: From: FININ@WHARTON-10 ! 6297: Subject: ... the maclisp-style array package. ! 6298: ! 6299: ... ! 6300: [3] We've been having problems with the MacLisp compatable array ! 6301: package - it doesn't work! Does anyone have a debugged version? ! 6302: ! 6303: Can you be more specific? We use it in Vax Macsyma without any problems. ! 6304: Personally I feel that Maclisp arrays were invented by a madman and no new ! 6305: code should be written using them. ! 6306: ! 6307: -- john foderaro ! 6308: ! 6309: Well, I used the Maclisp array package because I didn't want to waste ! 6310: time writing my own. Instead I spent hours looking for the bug in this ! 6311: code: ! 6312: ! 6313: -> (let ((factorial (*array () () 100.))) ! 6314: (store (factorial 0) 1) ! 6315: (do ((i 1 (1+ i))) ! 6316: ((= i 100.)) ! 6317: (store (factorial i) (times i (factorial (1- i))))) ! 6318: (factorial 10.)) ! 6319: 285656 ! 6320: ! 6321: To make a long story short, this lossage is because the second argument ! 6322: to *array being nil tells the garbage collector not to scan the ! 6323: array. The factorial of ten gets tossed in the bit bucket, where it ! 6324: unfortunately looks like a fixnum. To fix the example, change the ! 6325: first line of the example to ! 6326: ! 6327: -> (let ((factorial (*array () t 100.))) ! 6328: ! 6329: To save someone else from excruciatingly wrong answers, change the ! 6330: documentation in Section 2. ! 6331: ! 6332: (*array 's_name 's_type 'x_dim1 ... 'x_dimn) ! 6333: (array s_name s_type x_dim1 ... x_dimn) ! 6334: ! 6335: WHERE: s_type may be one of t, nil, fixnum, flonum, ! 6336: fixnum-block and flonum-block. ! 6337: ... ! 6338: < In FRANZ LISP arrays of type t, nil, fix- ! 6339: < num and flonum are equivalent and the elements of ! 6340: < these arrays can be any type of lisp object. ! 6341: --- ! 6342: > In FRANZ LISP arrays of type t, fixnum, ! 6343: > and flonum are equivalent and the elements of ! 6344: > these arrays can be any type of lisp object. ! 6345: > Type nil arrays may also contain any type of lisp ! 6346: > object, but they are not marked by the garbage ! 6347: > collector (see 9.2.2) and can lose data if used ! 6348: > incorrectly. ! 6349: Fixnum-block and flonum-block arrays are res- ! 6350: tricted to fixnums and flonums respectively and ! 6351: are used mainly to communicate with foreign func- ! 6352: tions (see 8.4). ! 6353: ! 6354: Dan ! 6355: ! 6356: From hoey@nrl-aic Wed Jan 11 16:23:56 1984 ! 6357: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.16/4.13) ! 6358: id AA06395; Wed, 11 Jan 84 12:58:53 pst ! 6359: Received: from nrl-aic (nrl-aic.ARPA) by UCB-VAX.ARPA (4.22/4.19) ! 6360: id AA03955; Wed, 11 Jan 84 12:58:55 pst ! 6361: Message-Id: <[email protected]> ! 6362: Date: 11 Jan 1984 14:43-EST ! 6363: From: Dan Hoey <hoey@NRL-AIC> ! 6364: Subject: Problems with arrays in Franz ! 6365: Apparently-To: <FRANZ-FRIENDS@berkeley> ! 6366: Status: O ! 6367: ! 6368: ! 6369: ! 6370: From fateman@ucbdali Sun Jan 15 14:58:17 1984 ! 6371: Received: from ucbdali.ARPA by ucbkim.ARPA (4.16/4.13) ! 6372: id AA00458; Sun, 15 Jan 84 14:58:17 pst ! 6373: Received: by ucbdali.ARPA (4.22/4.18) ! 6374: id AA02865; Sun, 15 Jan 84 14:58:51 pst ! 6375: Date: Sun, 15 Jan 84 14:58:51 pst ! 6376: From: fateman@ucbdali (Richard Fateman) ! 6377: Message-Id: <[email protected]> ! 6378: To: franz-friends@ucbdali ! 6379: Subject: FUGUE.3 ! 6380: Status: O ! 6381: ! 6382: ! 6383: ! 6384: ! 6385: ! 6386: ! 6387: ! 6388: ! 6389: FUGUE Notes ! 6390: ! 6391: An occasional publication of the ! 6392: Franz Lisp User Group under Unix and Eunice (FUGUE) ! 6393: ! 6394: Number 3 (January, 1984) ! 6395: edited by Richard J. Fateman ! 6396: University of California ! 6397: Berkeley CA 94720 ! 6398: USA ! 6399: fateman@berkeley ! 6400: ! 6401: _1. _W_e_l_c_o_m_e! ! 6402: ! 6403: It seems about time to publish the third of these ! 6404: newsletters, since we have accumulated a number of new ! 6405: items. We would also like to relay to others such informa- ! 6406: tion as has been forwarded to us. The reports of projects at ! 6407: Berkeley (and elsewhere) may strike sympathetic chords with ! 6408: other research. ! 6409: ! 6410: _2. _N_e_w _i_m_p_l_e_m_e_n_t_a_t_i_o_n_s ! 6411: ! 6412: Franz now runs on a number of Motorola 68000 and 68010 ! 6413: systems, including DUAL, PIXEL, Apple-LISA (UNIX), and ! 6414: undoubtedly a large number of other UNISOFT Inc. UNIX ports. ! 6415: (The LISA has only a 1 megabyte address space, and hence ! 6416: cannot run the compiler. It can load cross-compiled pro- ! 6417: grams.) Non-UNISOFT UNIX systems we have Franz running on ! 6418: include the 4.2BSD" Sun Microsystems operating system. ! 6419: ! 6420: Some work is beginning on high-speed VLSI chips for ! 6421: Lisp, using the reduced instruction set technology which has ! 6422: been successfully used at UCB in the past. More information ! 6423: on this will be available in the near future. ! 6424: ! 6425: _3. _N_e_w _p_r_o_g_r_a_m_s ! 6426: ! 6427: _3._1. _V_a_x_i_m_a _a_n_d _A_l_g_e_b_r_a_i_c _M_a_n_i_p_u_l_a_t_i_o_n ! 6428: ! 6429: Macsyma runs on the 68000 workstations with sufficient ! 6430: memory both virtual and real. At least 4 megabytes of vir- ! 6431: tual is needed, but benchmarks suggest that anything less ! 6432: than 2 megabytes of real memory is painful. We recommend 4 ! 6433: or more real megabytes. The PIXEL machine with 6 megabytes ! 6434: (unpaged) is our fastest real-time Macsyma system, (CPU-time ! 6435: is about 25% longer than reported VAX-780 CPU time, but more ! 6436: to the point, CPU-time is equal to real-time). Distribution ! 6437: ____________________ ! 6438: 9 UNIX, Eunice, Franz Lisp, may be trademarks of Bell Labs, ! 6439: SRI Int'l, and Univ. of Calif. ! 6440: ! 6441: ! 6442: ! 6443: 9 ! 6444: ! 6445: ! 6446: ! 6447: ! 6448: ! 6449: ! 6450: ! 6451: ! 6452: ! 6453: ! 6454: of 68000 Macsyma will presumably be done by Symbolics, (con- ! 6455: tact RP@mit-mc, with a cc to fateman@berkeley if you are ! 6456: interested). ! 6457: ! 6458: Development of a new algebra system and user applica- ! 6459: tion modules is proceeding, and a programming language ! 6460: called Newspeak, initially implemented on top of Franz, is ! 6461: the principal vehicle. This is described in John Foderaro's ! 6462: PhD dissertation, available from the CS Division at UCB. ! 6463: (Newspeak is hierarchical, object-oriented, and strongly ! 6464: typed; is compiler-based, and should provide efficient ! 6465: access to machine resources). While the algebra code is ! 6466: progressing well, we are not yet ready to set a release date ! 6467: for the user-end of the system, tentatively named Xi. ! 6468: ! 6469: _4. _N_e_w _f_e_a_t_u_r_e_s ! 6470: ! 6471: As usual, various performance enhancements and bug ! 6472: fixes have been incorporated in versions of Franz (now on ! 6473: Opus 38.87 and the compiler, Liszt 8.39) Most changes made ! 6474: it into the recent Berkeley 4.2BSD UNIX distribution, and ! 6475: reported alterations will not be repeated here. ! 6476: ! 6477: _5. _O_t_h_e_r _L_i_s_p_s ! 6478: ! 6479: We understand that a version of PSL will be supported ! 6480: by Hewlett Packard, on its workstations, and that Common ! 6481: Lisp, from DEC will have initial field-test in January, ! 6482: 1984. We believe PSL should be available from Utah in a ! 6483: form for running on 4.2BSD VAX UNIX; similarly for "T" from ! 6484: Cognitive Systems. We believe that a Common-Lisp support ! 6485: package for Franz may be constructed, but probably not at UC ! 6486: under current funding. (see Business news below, though). ! 6487: ! 6488: _6. _W_o_r_k _i_n _P_r_o_g_r_e_s_s ! 6489: ! 6490: _6._1. _G_r_a_p_h_i_c_s ! 6491: ! 6492: Gregg Foster has constructed a graphics Franz Lisp ! 6493: which includes the full Sun Microsystems Graphics package ! 6494: for Sun-2 systems, and Keith Sklower has constructed a C- ! 6495: structure package in Franz to enable programmers to more ! 6496: easily construct arbitrary C-structures in Lisp, to pass to ! 6497: C. Various demonstration programs have been written to ! 6498: access the smooth-curve plotting capabilities, variable-size ! 6499: fonts, etc. ! 6500: ! 6501: _6._2. _I_B_M _F_r_a_n_z ! 6502: ! 6503: Still more nibbles on this one, but not yet. We heard a ! 6504: rumor of work at Columbia University. (also see the next ! 6505: item.) ! 6506: 9 ! 6507: ! 6508: 9 ! 6509: ! 6510: ! 6511: ! 6512: ! 6513: ! 6514: ! 6515: ! 6516: ! 6517: ! 6518: ! 6519: _7. _B_u_s_i_n_e_s_s _N_e_w_s ! 6520: ! 6521: _7._1. _F_r_a_n_z _I_n_c ! 6522: ! 6523: A new software company has been formed to support Franz ! 6524: and application programs, and is seeking customers in 3 ! 6525: categories: (a) manufacturers of hardware wishing to obtain ! 6526: a Lisp system and/or Lisp support; (b) software producers ! 6527: who wish to have reliable access to experts in Franz, for ! 6528: enhancement, support, training or porting of existing code. ! 6529: (c) end-users who are using Franz or applications written in ! 6530: Franz and need help in customizing, debugging, conversion to ! 6531: or from other dialects, etc. ! 6532: ! 6533: The University of California will continue to distri- ! 6534: bute Franz Lisp on its current basis, but your questions ! 6535: about support in any of these categories, or about future ! 6536: plans, can be directed to Franz Inc. Most of the principals ! 6537: at UC will be participating in this venture. Contact Franz ! 6538: Inc. via fkunze@berkeley, or (to avoid abuse of various net- ! 6539: work privileges), Fritz Kunze, President, Franz Inc., 6321 ! 6540: Thornhill Drive, Oakland, Ca 94611 (415) 339-1481. ! 6541: ! 6542: ! 6543: ! 6544: ! 6545: ! 6546: ! 6547: ! 6548: ! 6549: ! 6550: ! 6551: ! 6552: ! 6553: ! 6554: ! 6555: ! 6556: ! 6557: ! 6558: ! 6559: ! 6560: ! 6561: ! 6562: ! 6563: ! 6564: ! 6565: ! 6566: ! 6567: ! 6568: ! 6569: ! 6570: ! 6571: 9 ! 6572: ! 6573: 9 ! 6574: ! 6575: ! 6576: ! 6577: ! 6578: From cowan@AEROSPACE Thu Jan 19 09:56:25 1984 ! 6579: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.16/4.13) ! 6580: id AA14836; Thu, 19 Jan 84 09:56:25 pst ! 6581: Received: from aerospace.ARPA by UCB-VAX.ARPA (4.22/4.19) ! 6582: id AA02684; Thu, 19 Jan 84 09:55:33 pst ! 6583: Message-Id: <[email protected]> ! 6584: Date: Thu, 19 Jan 84 09:55:01 PST ! 6585: From: Ric Cowan <cowan@AEROSPACE> ! 6586: To: franz-friends@BERKELEY ! 6587: Subject: Help ! 6588: Status: O ! 6589: ! 6590: Hi, ! 6591: ! 6592: I'm starting a new project and would like to use Franz lisp. It is a large ! 6593: application that needs to: ! 6594: ! 6595: (1) Run on a VAX 11/780 under VMS. ! 6596: (2) Interface with INGRESS. ! 6597: (3) Support a menu driven interface with VT100 type terminals. ! 6598: ! 6599: Is Franz lisp a viable language to use? ! 6600: ! 6601: Thanks in advance, ! 6602: ! 6603: Ric Cowan ! 6604: ! 6605: From levitt@aids-unix Thu Jan 26 17:44:03 1984 ! 6606: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.16/4.13) ! 6607: id AA10074; Thu, 26 Jan 84 17:44:03 pst ! 6608: Received: from aids-unix (aids-unix.ARPA) by UCB-VAX.ARPA (4.22/4.19) ! 6609: id AA02121; Thu, 26 Jan 84 17:01:25 pst ! 6610: Message-Id: <[email protected]> ! 6611: Date: 26 Jan 1984 16:25:55-PST ! 6612: From: Tod Levitt <levitt@aids-unix> ! 6613: To: franz-friends@BERKELEY ! 6614: Subject: report PAM 124, "Parlez vous Franz..." by James Larus ! 6615: Cc: levitt@aids-unix ! 6616: Status: O ! 6617: ! 6618: I am trying to obtain a copy of PAM report 124 which discusses ! 6619: interfacing foreign functions to Franzlisp. Can someone please ! 6620: point me at a source for this document? Thanks... ! 6621: Tod Levitt (levitt@aids-unix) ! 6622: ! 6623: From jkf@ucbmike Fri Jan 27 08:44:54 1984 ! 6624: Received: from ucbmike.ARPA by ucbkim.ARPA (4.16/4.13) ! 6625: id AA15308; Fri, 27 Jan 84 08:44:54 pst ! 6626: Date: Fri, 27 Jan 84 08:44:40 pst ! 6627: From: John Foderaro (on an h19-u) <jkf@ucbmike> ! 6628: Message-Id: <[email protected]> ! 6629: Received: by ucbmike.ARPA (4.17/3.5) ! 6630: id AA02469; Fri, 27 Jan 84 08:44:40 pst ! 6631: To: local-lisp@kim ! 6632: Subject: lisp 38.88 ! 6633: Cc: ! 6634: Status: O ! 6635: ! 6636: The 'msg' macro now accepts the special form (T 'x_column), and it ! 6637: spaces over to that column (plus 1). ! 6638: ! 6639: -> (msg "foo" (T 10) "bar" N "baz" (T 11) "bof" N) ! 6640: foo bar ! 6641: baz bof ! 6642: nil ! 6643: -> ! 6644: ! 6645: Note that the method used to locate the column only works if nothing ! 6646: has yet been actually written on the line. Problems will occur if you drain ! 6647: the port in the middle of the line. ! 6648: ! 6649: For example: ! 6650: -> (msg "foo" D (T 10) "bar" N << here we drain after "foo" ! 6651: "foo" (T 10) "bar" N) ! 6652: foo bar << thus column 11 turns out to be column 14 ! 6653: foo bar ! 6654: nil ! 6655: -> ! 6656: ! 6657: ! 6658: From jkf@ucbmike Tue Jan 31 10:55:51 1984 ! 6659: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.16/4.13) ! 6660: id AA20759; Tue, 31 Jan 84 10:55:51 pst ! 6661: Received: from ucbmike.ARPA by UCB-VAX.ARPA (4.22/4.21) ! 6662: id AA12296; Tue, 31 Jan 84 10:51:34 pst ! 6663: Date: Tue, 31 Jan 84 10:51:33 pst ! 6664: From: John Foderaro (on an sun-e) <jkf@ucbmike> ! 6665: Message-Id: <[email protected]> ! 6666: Received: by ucbmike.ARPA (4.17/3.5) ! 6667: id AA01218; Tue, 31 Jan 84 10:51:33 pst ! 6668: To: franz-friends@BERKELEY ! 6669: Subject: LISPcraft, a book on Lisp and Franz. ! 6670: Cc: ! 6671: Status: O ! 6672: ! 6673: A new Lisp book is due out March 23rd which may be especially interesting ! 6674: to Franz Lisp users or potential Franz Lisp users. The title ! 6675: is `LISPcraft' and it was written by Robert Wilensky, a Computer Science ! 6676: professor at Berkeley who teaches AI programming courses. ! 6677: The book starts at first principles and teaches Lisp programming, and then ! 6678: goes on to Franz-specific topics such as debugging, read macros, error ! 6679: handling, and compilation. Then there are chapters on Lisp ! 6680: applications: pattern matching and databases. Finally it contains ! 6681: a complete description of all Franz functions. ! 6682: ! 6683: details: ! 6684: LISPcraft, by Robert Wilensky 385 pages, $19.95 ! 6685: publisher: W. W. Norton, 500 5th Avenue, N.Y. N.Y. 10110 ! 6686: 800-223-2584 ! 6687: ! 6688: ! 6689: ! 6690: ! 6691: From jkf@ucbmike Fri Feb 3 08:03:58 1984 ! 6692: Received: from ucbmike.ARPA by ucbkim.ARPA (4.16/4.13) ! 6693: id AA19272; Fri, 3 Feb 84 08:03:58 pst ! 6694: Date: Fri, 3 Feb 84 08:04:17 pst ! 6695: From: John Foderaro (on an h19-u) <jkf@ucbmike> ! 6696: Message-Id: <[email protected]> ! 6697: Received: by ucbmike.ARPA (4.17/3.5) ! 6698: id AA02117; Fri, 3 Feb 84 08:04:17 pst ! 6699: To: local-lisp@kim ! 6700: Subject: opus 38.89 ! 6701: Cc: ! 6702: Status: O ! 6703: ! 6704: In opus 38.88 the msg macro was extended to make (T n) put the cursor ! 6705: on column n+1. Others had extended the msg macro in a conflicting way, ! 6706: so we decided to convert over to their extensions. So forget what ! 6707: you read in the opus38.88 message, and remember this: ! 6708: (C n) go to column n. The first column on the line is column 1. ! 6709: If the cursor is beyond column n, then go to the next line ! 6710: and go to column n. ! 6711: (T m) print m tab characters ! 6712: ! 6713: ! 6714: ! 6715: ! 6716: ! 6717: From jkf Thu Feb 16 10:32:03 1984 ! 6718: Received: by ucbkim.ARPA (4.16/4.22) ! 6719: id AA16308; Thu, 16 Feb 84 10:32:03 pst ! 6720: Date: Thu, 16 Feb 84 10:32:03 pst ! 6721: From: John Foderaro (on an sun-e) <jkf> ! 6722: Message-Id: <[email protected]> ! 6723: To: local-lisp ! 6724: Subject: opus 38.90 ! 6725: Cc: ! 6726: Status: O ! 6727: ! 6728: For those of you using the 'tpl' toplevel, the new command ?fast ! 6729: will set all switches for maximum speed: ! 6730: (*rset nil) ! 6731: (sstatus translink on) ! 6732: (setq displace-macros t) ! 6733: ! 6734: ! 6735: ! 6736: From wilensky@ucbdali Wed Feb 22 09:58:43 1984 ! 6737: Received: from ucbdali.ARPA by ucbkim.ARPA (4.16/4.22) ! 6738: id AA16486; Wed, 22 Feb 84 09:58:43 pst ! 6739: Received: by ucbdali.ARPA (4.22/4.22) ! 6740: id AA06784; Wed, 22 Feb 84 09:57:21 pst ! 6741: Date: Wed, 22 Feb 84 09:57:21 pst ! 6742: From: wilensky@ucbdali (Robert Wilensky) ! 6743: Message-Id: <[email protected]> ! 6744: To: andy@aids-unix, franz-friends@ucbdali ! 6745: Subject: Re: Franz Flavors & software copyright ! 6746: In-Reply-To: Your message of 21 Feb 1984 16:29-PST ! 6747: Status: O ! 6748: ! 6749: ! 6750: Thanks for your clarification. Everything you said is consistent with my ! 6751: understanding of the situation. And you are correct in emphasizing the ! 6752: complexity of the issue. But I want to stress my main point. This is ! 6753: that the ``author'' holds the copyright. It may be unclear who the author ! 6754: is, but it is clearly NOT the university. ! 6755: ! 6756: In addition, many pieces of ``university-developed'' software have ! 6757: contributions by unfunded students, and by faculty, whose salary is not paid ! 6758: by the gov't (except maybe during the summer). Furthermore, it would seem ! 6759: to be unclear who the author is if it is, say, a student working as a gov't ! 6760: sponsored r. a. For example, the student's thesis is presumably his to ! 6761: copyright, even if the student were paid by the gov't because it was not ! 6762: part of what he was paid to do. One could argue that a concommitant program ! 6763: has the same status unless it were specifically contracted for. ! 6764: ! 6765: Let me state that my main purpose was not to promote people selling their ! 6766: code, but rather, to stop the universities from impeding its distribution. ! 6767: As far as I know, the gov't hasn't tried to prevent us from giving each ! 6768: other our software, but many universities have. Therefore, we are better ! 6769: off leaving them out of the picture entirely - legally this seems to be a ! 6770: sound position. ! 6771: ! 6772: ! 6773: From jkf@ucbmike Wed Mar 14 09:04:55 1984 ! 6774: Received: from ucbmike.ARPA by ucbkim.ARPA (4.16/4.22) ! 6775: id AA00884; Wed, 14 Mar 84 09:04:55 pst ! 6776: Date: Wed, 14 Mar 84 08:58:51 pst ! 6777: From: John Foderaro (on an h19-u) <jkf@ucbmike> ! 6778: Message-Id: <[email protected]> ! 6779: Received: by ucbmike.ARPA (4.17/3.5) ! 6780: id AA03782; Wed, 14 Mar 84 08:58:51 pst ! 6781: To: fateman@ucbdali, sklower@ucbdali, layer@ucbdali, chris@cory ! 6782: Subject: lisps running wild ! 6783: Cc: local-lisp@kim ! 6784: In-Reply-To: Your message of Tue, 13 Mar 84 21:45:25 pst ! 6785: Status: O ! 6786: ! 6787: re: ! 6788: From: chris@ucbcory (Chris Guthrie) ! 6789: We are having a good deal ! 6790: of trouble with them being left running instead of dying and killing ! 6791: the load here. ! 6792: ! 6793: The problem is that people are setting a flag in their lisp init files ! 6794: which instruct lisp to ignore 'end of file' (much like the c shell). ! 6795: If a connection is broken (ipc connection breaks or modem hangs up), then ! 6796: lisp is sent a hangup signal (which it ignores) and then a continuous ! 6797: sequence of 'end of files' which it ignores after a bit of processing. ! 6798: The solution is this: ! 6799: If you have something in your init file which instructs lisp to ignore ! 6800: end of files (such as (sstatus ignoreeof t)), then you should also ! 6801: have (signal 1 'exit) in the init file so lisp will exit upon a hangup. ! 6802: ! 6803: ! 6804: ! 6805: ! 6806: From mcgeer Wed Mar 14 09:37:45 1984 ! 6807: Received: by ucbkim.ARPA (4.16/4.22) ! 6808: id AA01437; Wed, 14 Mar 84 09:37:45 pst ! 6809: Date: Wed, 14 Mar 84 09:37:45 pst ! 6810: From: Rick McGeer (on an aaa-60-s) <mcgeer> ! 6811: Message-Id: <[email protected]> ! 6812: To: jkf@ucbmike, chris@cory, layer@ucbdali, sklower@ucbdali, fateman@ucbdali ! 6813: Subject: Re: lisps running wild ! 6814: Cc: local-lisp ! 6815: In-Reply-To: Your message of Wed, 14 Mar 84 08:58:51 pst ! 6816: Status: O ! 6817: ! 6818: John, your top level sets the ignoreeof flag. Does it also set the ! 6819: appropriate signal, or should your users do that themselves? ! 6820: ! 6821: ! 6822: From jkf@ucbmike Wed Mar 14 09:48:04 1984 ! 6823: Received: from ucbmike.ARPA by ucbkim.ARPA (4.16/4.22) ! 6824: id AA01603; Wed, 14 Mar 84 09:48:04 pst ! 6825: Date: Wed, 14 Mar 84 09:42:15 pst ! 6826: From: John Foderaro (on an h19-u) <jkf@ucbmike> ! 6827: Message-Id: <[email protected]> ! 6828: Received: by ucbmike.ARPA (4.17/3.5) ! 6829: id AA03833; Wed, 14 Mar 84 09:42:15 pst ! 6830: To: mcgeer@ucbkim, fateman@ucbdali, sklower@ucbdali, layer@ucbdali, chris@cory ! 6831: Subject: Re: lisps running wild ! 6832: Cc: local-lisp@ucbkim ! 6833: In-Reply-To: Your message of Wed, 14 Mar 84 09:37:45 pst ! 6834: Status: O ! 6835: ! 6836: Since ignoreeof is always set in the new top level, I'll make 'exit on ! 6837: hangup' the default if you use the new top level. ! 6838: ! 6839: ! 6840: ! 6841: ! 6842: From [email protected] Sat Mar 17 13:45:58 1984 ! 6843: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.22) ! 6844: id AA05623; Sat, 17 Mar 84 13:45:58 pst ! 6845: Received: from SU-AI.ARPA by UCB-VAX.ARPA (4.24/4.25) ! 6846: id AA12441; Sat, 17 Mar 84 13:47:35 pst ! 6847: Message-Id: <[email protected]> ! 6848: Date: 17 Mar 84 1347 PST ! 6849: From: Rod Brooks <[email protected]> ! 6850: Subject: Don't use Franz sortcar! ! 6851: To: franz-friends@BERKELEY ! 6852: Status: O ! 6853: ! 6854: ! 6855: Somewhat bizzarely it seems that Franz Lisp sort and sortcar have ! 6856: different time complexities. sort is good and sortcar is bad so ! 6857: I suggest you convert your sortcar's to sort's until someone sorts ! 6858: this out. The code and transcript below use both sort and sortcar ! 6859: to sort a list of length n (the list happens to start in precisely ! 6860: reverse order). A count of the number of calls to the comparison ! 6861: function is kept. The results show that sort takes n*log(n) ! 6862: comparisons while sortcar takes n*n. The problem should ! 6863: be fixable by throwing out code as there must be two sorters lurking ! 6864: in there! ! 6865: ! 6866: ;;;;;;;;;;;;;;; ! 6867: ! 6868: (defun gen (n) ! 6869: (do ((i 0 (1+ i)) ! 6870: (l () (cons (cons i ()) l))) ! 6871: ((= i n) ! 6872: l))) ! 6873: ! 6874: (defun compare (x y) ! 6875: (setq *count* (1+ *count*)) ! 6876: (< x y)) ! 6877: ! 6878: (defun compare-cars (x y) (compare (car x) (car y))) ! 6879: ! 6880: (defun count-sort (n) ! 6881: (let ((*count* 0)) ! 6882: (sort (gen n) #'compare-cars) ! 6883: *count*)) ! 6884: ! 6885: (defun count-sortcar (n) ! 6886: (let ((*count* 0)) ! 6887: (sortcar (gen n) #'compare) ! 6888: *count*)) ! 6889: ! 6890: (defun test (n) ! 6891: (let ((csort (count-sort n)) ! 6892: (csortcar (count-sortcar n))) ! 6893: (list n ! 6894: csort ! 6895: csortcar ! 6896: (/$ (float csort) (*$ (float n) (log n))) ! 6897: (/$ (float csortcar) (float (* n n)))))) ! 6898: ! 6899: ;;;;;;;;;;;;;;; ! 6900: ! 6901: Here's the transcript. The lists of 5 elements are: ! 6902: n ! 6903: compares for sort ! 6904: compares for sortcar ! 6905: compares for sort / n*log(n) ! 6906: compares for sortcar / n*n ! 6907: ! 6908: ! 6909: Franz Lisp, Opus 38 ! 6910: -> (load 'test) ! 6911: t ! 6912: -> (test 3) ! 6913: (3 3 6 0.910239226626837 0.6666666666666667) ! 6914: -> (test 100) ! 6915: (100 460 9900 0.9988773083774791 0.99) ! 6916: -> (test 200) ! 6917: (200 1020 39800 0.9625697456705496 0.995) ! 6918: -> (test 300) ! 6919: (300 1440 89700 0.8415468193831012 0.9966666666666667) ! 6920: -> (test 400) ! 6921: (400 2240 159600 0.9346629619469353 0.9975) ! 6922: -> ! 6923: ! 6924: ! 6925: From @MIT-MC:smh@MIT-EMS Wed Mar 28 06:11:15 1984 ! 6926: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.3) ! 6927: id AA06408; Wed, 28 Mar 84 06:11:15 pst ! 6928: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.25) ! 6929: id AA23759; Wed, 28 Mar 84 06:10:43 pst ! 6930: Message-Id: <[email protected]> ! 6931: Date: 28 Mar 1984 09:09:38-EST ! 6932: From: <smh@mit-ems@mit-mc> ! 6933: To: franz-friends@BERKELEY ! 6934: Subject: Fixes for setf return value problem ! 6935: Status: O ! 6936: ! 6937: As FranzFriends readers will know, my message several days ago ! 6938: generated a number of comments. The clear consensus was that setf ! 6939: should be fixed, not the documentation. This was obvious. The reason ! 6940: I didn't suggest the fix myself was that I felt it was far more ! 6941: important to preserve compatibility between Franz and the various other ! 6942: more-or-less-source-compatible Lisps (aka Common Lisps). It was my ! 6943: impression that code relying on the value returned by setf would not ! 6944: be portable. ! 6945: ! 6946: I have since learned that Common Lisp does indeed define setf to return ! 6947: the new value (its second argument), and that other implementations ! 6948: (i.e. MIT and Symbolics Lisp Machines) indeed work this way. (Mind ! 6949: you, I haven't checked this myself -- the information is second hand.) ! 6950: The fixes to setf are quite straightforward and are brief enough that I ! 6951: am including them below. For each case that the setf macro evaluates ! 6952: to a {rplaca, rplacd, rplacx} the corresponding {car, cdr, cxr} is now ! 6953: wrapped around it. The Liszt compiler seems smart enough to remove the ! 6954: extra reference if the value is ignored. ! 6955: ! 6956: The new setf functions follow. The starting version is the Opus 38.69 ! 6957: common2 identified by: ! 6958: ;; common2.l -[Fri Jul 8 17:46:13 1983 by layer]- ! 6959: (Although only two lines of setf-check-car+d were changed, the entire ! 6960: function is included because the change is difficult to locate by ! 6961: context.) I suggest these changes be made in the official sources. ! 6962: Whoever wants to install them should edit common2.l and remake the ! 6963: Franz interpreter. The Liszt compiler does not need to be changed. ! 6964: ==================== ! 6965: ! 6966: ; modified 27Mar84 SMH@MIT-EMS@MT-MC (see comment below) ! 6967: ; ! 6968: (defun setf-check-cad+r (name) ! 6969: (if (eq (getcharn name 1) #/c) ! 6970: then (let ! 6971: ((letters (nreverse (cdr (exploden name))))) ! 6972: (if (eq (car letters) #/r) ! 6973: then (do ((xx (cdr letters) (cdr xx))) ! 6974: ((null xx) ! 6975: ;; form is c{ad}+r, setf form is ! 6976: ;; (rplac<first a or d> (c<rest of a's + d's>r x)) ! 6977: (setq letters (nreverse letters)) ! 6978: (eval ! 6979: `(defsetf ,name (e v) ! 6980: ; SMH@MIT-EMS@MIT-MC ! 6981: ; added next line and matching rparen. ! 6982: (list ',(implode `(#/c ,(car letters) #/r)) ! 6983: (list ! 6984: ',(concat "rplac" (ascii (car letters))) ! 6985: (list ! 6986: ',(implode `(#/c ,@(cdr letters))) ! 6987: (cadr e)) ! 6988: v)))) ; SMH@MIT-EMS@MIT-MC ! 6989: t) ! 6990: (if (not (memq (car xx) '(#/a #/d))) ! 6991: then (return nil))))))) ! 6992: ! 6993: . . . ! 6994: ! 6995: ;--- other setf's for car's and cdr's are generated automatically ! 6996: ; ! 6997: ; modified 27Mar84 SMH@MIT-EMS@MIT-MC ! 6998: ; Now whenever setf macro expands to a rplac[adx], the corresponding c[adx]r ! 6999: ; is now wrapped around it so that setf consistently returns its second arg. ! 7000: ; The compiler is smart enough to remove the extra operation if the value ! 7001: ; is not used. ! 7002: ; ! 7003: (defsetf car (e v) `(car (rplaca ,(cadr e) ,v))) ! 7004: (defsetf caar (e v) `(car (rplaca (car ,(cadr e)) ,v))) ! 7005: (defsetf cadr (e v) `(car (rplaca (cdr ,(cadr e)) ,v))) ! 7006: (defsetf cdr (e v) `(cdr (rplacd ,(cadr e) ,v))) ! 7007: (defsetf cdar (e v) `(cdr (rplacd (car ,(cadr e)) ,v))) ! 7008: (defsetf cddr (e v) `(cdr (rplacd (cdr ,(cadr e)) ,v))) ! 7009: (defsetf cxr (e v) `(cxr ,(cadr e) (rplacx ,(cadr e) ,(caddr e) ,v))) ! 7010: ! 7011: . . . ! 7012: ! 7013: (defsetf nth (e v) `(car (rplaca (nthcdr ,(cadr e) ,(caddr e)) ,v))) ! 7014: (defsetf nthelem (e v) `(car (rplaca (nthcdr (1- ,(cadr e)) ,(caddr e)) ,v))) ! 7015: (defsetf nthcdr (e v) `(cdr (rplacd (nthcdr (1- ,(cadr e)) ,(caddr e)) ,v))) ! 7016: ! 7017: . . . ! 7018: ! 7019: ; (defsetf args (e v) `(args ,(cadr e) ,v)) ; no longer implemented? ! 7020: ! 7021: ==================== ! 7022: ! 7023: Steven Haflich ! 7024: MIT Experimental Music Studio ! 7025: (617)253-7441 ! 7026: smh@mit-ems@mit-mc ! 7027: decvax!genrad!mit-ems!smh ! 7028: ! 7029: ! 7030: From fateman@ucbdali Thu Mar 29 12:07:33 1984 ! 7031: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.3) ! 7032: id AA20323; Thu, 29 Mar 84 12:07:33 pst ! 7033: Received: from ucbdali.ARPA by UCB-VAX.ARPA (4.24/4.25) ! 7034: id AA22790; Thu, 29 Mar 84 12:07:08 pst ! 7035: Received: by ucbdali.ARPA (4.24/4.22) ! 7036: id AA04139; Thu, 29 Mar 84 12:07:10 pst ! 7037: Date: Thu, 29 Mar 84 12:07:10 pst ! 7038: From: fateman@ucbdali (Richard Fateman) ! 7039: Message-Id: <[email protected]> ! 7040: To: franz-friends@BERKELEY ! 7041: Subject: commercialization of Franz ! 7042: Status: O ! 7043: ! 7044: ! 7045: Some people may have gotten the incorrect impression that ! 7046: the University of California will cease sending out ! 7047: tapes of Franz Lisp. We intend to continue distribution ! 7048: of the latest version which is the property of UCB. This is ! 7049: currently opus 38.91. This distribution works, so far as we know, ! 7050: on SUN releases (0.4, 1.0, 1.1) and Masscomp, and VAX 4.2BSD. ! 7051: Such distributions will continue, and will continue to be unsupported. ! 7052: Although we have made reasonable efforts to provide a useful, ! 7053: portable, efficient, and complete system, we have spent too much of ! 7054: our time and our sponsors' money in answering ! 7055: questions about installation-dependent difficulties or ! 7056: (what USUALLY turns out to be non-existent) bugs. ! 7057: I might point out that many of the questions come from commercial users. ! 7058: ! 7059: Franz Inc. was formed to provide a mechanism for support, transportation ! 7060: of Franz Lisp to new architectures, enhancements, documentation, etc. ! 7061: It has the (non-exclusive) right to use, distribute, (etc) Franz Lisp, ! 7062: and intends to produce enhancements that the University does not ! 7063: have funding for. I expect that if enhancements of Franz Lisp at UCB ! 7064: are produced, these will next be made available on 4.3 BSD tapes. Earlier ! 7065: distributions of contributed software or locally produced software ! 7066: MAY occur, but cannot be promised. ! 7067: ! 7068: I expect that there will continue to be a large number of Franz Lisp ! 7069: users who are satisfied with the university distribution (on 4.2BSD) ! 7070: or on the separate tapes (e.g. after opus 38.79) that UCB is sending out. ! 7071: Others will want the enhanced, supported, version from Franz Inc. ! 7072: ! 7073: The divergence of versions, ! 7074: some of which has already occurred with local variants of older ! 7075: systems being redistributed, seems inevitable regardless of Franz Inc. ! 7076: ! 7077: I hope this clarifies UCB's position. ! 7078: ! 7079: ! 7080: ! 7081: From @MIT-MC:smh@MIT-EMS Wed Apr 4 15:44:42 1984 ! 7082: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.3) ! 7083: id AA07196; Wed, 4 Apr 84 15:44:42 pst ! 7084: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.25) ! 7085: id AA01892; Wed, 4 Apr 84 15:14:05 pst ! 7086: Message-Id: <[email protected]> ! 7087: Date: 4 Apr 1984 16:44:49-EST ! 7088: From: <smh@mit-ems@mit-mc> ! 7089: To: franz-friends@BERKELEY ! 7090: Subject: Re: recent suggested fix to setf ! 7091: Status: O ! 7092: ! 7093: There was one mistake in my recent posting with fixes for the Franz ! 7094: setf function. I said that it was not necessary to remake liszt (the ! 7095: compiler). This was wrong: code compiled with an old copy of liszt ! 7096: will not use the modified setf definitions. ! 7097: ! 7098: The fix is simply to remake liszt after the new Franz interpreter has ! 7099: been generated. ! 7100: ! 7101: Sorry about any confusion. ! 7102: ! 7103: Steve Haflich ! 7104: MIT Experimental Music Studio ! 7105: decvax!genrad!mit-ems!smh ! 7106: smh@mit-ems@mit-mc ! 7107: ! 7108: ! 7109: From [email protected] Wed Apr 18 20:37:26 1984 ! 7110: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.3) ! 7111: id AA16547; Wed, 18 Apr 84 20:37:26 pst ! 7112: Received: from RUTGERS.ARPA (rutgers.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.27) ! 7113: id AA29663; Wed, 18 Apr 84 20:36:21 pst ! 7114: Message-Id: <[email protected]> ! 7115: Date: 18 Apr 84 23:37:14 EST ! 7116: From: Sean McLinden <[email protected]> ! 7117: Subject: [Sean McLinden <[email protected]>: Re: Franz on Suns under 4.2?] ! 7118: To: franz-friends@BERKELEY ! 7119: Status: O ! 7120: ! 7121: Mail-From: MCLINDEN created at 18-Apr-84 23:33:56 ! 7122: Date: 18 Apr 84 23:33:56 EST ! 7123: From: Sean McLinden <[email protected]> ! 7124: Subject: Re: Franz on Suns under 4.2? ! 7125: To: [email protected] ! 7126: cc: [email protected] ! 7127: In-Reply-To: Message from "allegra!jdd@Berkeley (John DeTreville)" of 18 Apr 84 13:10:10 EST ! 7128: ! 7129: ! 7130: ! 7131: I must be missing something with all of this discussion of Franz ! 7132: Lisp on Suns. We have had no trouble at all running the current ! 7133: (opus 38.91?) Berkeley release on Suns and have been running Sun ! 7134: Franz Lisp for nearly a year now. ! 7135: ! 7136: The only serious problem that I can recall happened a few sub versions ! 7137: ago and was due to a logical error in the C-coded algorithm which ! 7138: determined when to garbage collect (as things would have it, it ! 7139: never did). The result was that liszt was unable to compile some ! 7140: of the lisp coded sources due to the 2 Meg/process limit imposed ! 7141: by the Sun operating system (the bug existed in the Vax version as ! 7142: well but one would only see it if the lisp image exceeded 6 megs ! 7143: which is rare for a compiler run). ! 7144: ! 7145: Perhaps you could be more explicit in describing what, exactly, ! 7146: the problem is. The people at Berkeley most probably have Suns ! 7147: and I am sure that they don't release Sun versions without testing ! 7148: them. ! 7149: ! 7150: Sean McLinden ! 7151: Decision Systems Lab ! 7152: University of Pittsburgh ! 7153: School of Medicine ! 7154: ------- ! 7155: ------- ! 7156: ! 7157: From varghese%[email protected] Fri May 25 18:47:11 1984 ! 7158: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 7159: id AA20472; Fri, 25 May 84 18:47:11 pdt ! 7160: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.27) ! 7161: id AA23631; Fri, 25 May 84 18:45:35 pdt ! 7162: Message-Id: <[email protected]> ! 7163: Received: From colostate.csnet by csnet-relay; 25 May 84 21:17 EDT ! 7164: Date: Fri, 25 May 84 13:47:24 mdt ! 7165: From: varghese%[email protected] ! 7166: Received: by csu-cs.UUCP (4.12/3.14) ! 7167: id AA11606; Fri, 25 May 84 13:47:24 mdt ! 7168: To: [email protected] ! 7169: Subject: Addition to mailing list ! 7170: ! 7171: ! 7172: ! 7173: ! 7174: Please add us to the mailing list. Since there will be more than one ! 7175: person at this site who wants to be on the mailing list we decided to ! 7176: get everything mailed to one central mailbox. ! 7177: The mailbox address for this mailing list is ! 7178: ! 7179: frnzlist@colostate ! 7180: ! 7181: Please note that this is a CSnet address. Thank you, ! 7182: ! 7183: Joe Varghese ! 7184: varghese@colostate ! 7185: ! 7186: ! 7187: From [email protected] Sun Jun 3 19:15:03 1984 ! 7188: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7189: id AA07648; Sun, 3 Jun 84 19:15:03 pdt ! 7190: Received: from CMU-CS-G.ARPA (cmu-cs-g.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.27) ! 7191: id AA24832; Sun, 3 Jun 84 19:13:42 pdt ! 7192: Date: 3 Jun 1984 22:02-EST ! 7193: From: [email protected] ! 7194: Subject: Please add my name to the list ! 7195: To: FRANZ-FRIENDS@BERKELEY ! 7196: Message-Id: <455162572/trk@CMU-CS-G> ! 7197: ! 7198: Please add my name to the FRANZ-FRIENDS list. ! 7199: -Todd K. ! 7200: ! 7201: From [email protected] Sun Jun 3 23:24:19 1984 ! 7202: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7203: id AA09575; Sun, 3 Jun 84 23:24:19 pdt ! 7204: Received: from Xerox.ARPA (xerox.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.27) ! 7205: id AA27487; Sun, 3 Jun 84 23:22:53 pdt ! 7206: Message-Id: <[email protected]> ! 7207: Received: from Semillon.ms by ArpaGateway.ms ; 03 JUN 84 23:22:56 PDT ! 7208: Date: 3 Jun 84 23:22 PDT ! 7209: From: [email protected] ! 7210: Subject: This is a test ! 7211: To: Franz-Friends@BERKELEY ! 7212: ! 7213: Sorry to bother you -- this is only a test of correct forwarding on this mailing list. ! 7214: ! 7215: ! 7216: From @MIT-MC:[email protected] Mon Jun 18 17:09:37 1984 ! 7217: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7218: id AA21265; Mon, 18 Jun 84 17:09:37 pdt ! 7219: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31) ! 7220: id AA19453; Mon, 18 Jun 84 17:07:25 pdt ! 7221: Message-Id: <[email protected]> ! 7222: Date: 18 Jun 1984 12:48:57-EDT ! 7223: From: Simon.Lowenfeld@CMU-RI-ISL1 ! 7224: Subject: old messages ! 7225: Apparently-To: <franz-friends@UCB-VAX> ! 7226: ! 7227: Is there some kind of archive for old postings? ! 7228: I am interested in the Franz/T argument ! 7229: from earlier this year. ! 7230: ! 7231: ! 7232: From [email protected] Tue Jun 19 07:36:37 1984 ! 7233: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7234: id AA01983; Tue, 19 Jun 84 07:36:37 pdt ! 7235: Received: from ARDC (ardc.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31) ! 7236: id AA01762; Tue, 19 Jun 84 07:34:31 pdt ! 7237: Message-Id: <[email protected]> ! 7238: Date: Tue, 19 Jun 84 10:31:27 EDT ! 7239: From: William K. Cadwallender (LCWSL) <[email protected]> ! 7240: To: franz-friends@BERKELEY ! 7241: Subject: Franz for VAX730 ! 7242: ! 7243: We are about to purchase a VAX730 with BSD4.2 UNIX. Has anyone out thereheard of a port of Franz, or ANY LISP to a 730? Please reply to the net or directly to wkc@ARDC. ! 7244: Bill Cadwallender (wkc@ARDC) ! 7245: ! 7246: From RZ@MIT-MC Thu Jun 21 19:26:57 1984 ! 7247: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7248: id AA08546; Thu, 21 Jun 84 19:26:57 pdt ! 7249: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31) ! 7250: id AA27996; Thu, 21 Jun 84 19:24:37 pdt ! 7251: Message-Id: <[email protected]> ! 7252: Date: 21 June 1984 22:28-EDT ! 7253: From: Richard E. Zippel <RZ@MIT-MC> ! 7254: Subject: MIT flavors ! 7255: To: franz-friends@BERKELEY ! 7256: Cc: zymelman@MITRE, smh@MIT-VAX ! 7257: In-Reply-To: Msg of 21 Jun 1984 9:19:16 EDT () from Ari Zymelman <m13676 at mitre> ! 7258: ! 7259: I am happy to report than the MIT flavor system is finally available. I ! 7260: won't try to correct the numerous bits of misinformation that have been ! 7261: spread about this other than to say that the MIT flavor system can now be ! 7262: freely distributed, if it is not used for profit, and the MIT copyrights are ! 7263: maintained in the sources. Berkeley has a copy of the most recent version ! 7264: of the code and should include it in their standard distributions shortly. ! 7265: ! 7266: ! 7267: From hoey@nrl-aic Wed Jun 27 14:24:24 1984 ! 7268: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7269: id AA19372; Wed, 27 Jun 84 14:24:24 pdt ! 7270: Received: from nrl-aic (nrl-aic.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31) ! 7271: id AA13744; Wed, 27 Jun 84 14:21:16 pdt ! 7272: Message-Id: <[email protected]> ! 7273: Date: 27 Jun 1984 16:42-EDT ! 7274: From: Dan Hoey <hoey@NRL-AIC> ! 7275: Subject: Incorrect "make fromasm" in 68k franz 38.91 ! 7276: To: franz-friends@BERKELEY ! 7277: Cc: dejong@nrl-aic, franz-bugs@BERKELEY ! 7278: ! 7279: Problem: ! 7280: The "make fromasm" option for franz installation on a 68k does not work ! 7281: as distributed. ! 7282: ! 7283: Diagnosis: ! 7284: The assembler is used to convert *.s files into *.o. But the output of ! 7285: as defaults to "a.out" and is not overridden, so no *.o files are ! 7286: produced. ! 7287: ! 7288: Fixes: ! 7289: Specify the output file in the fromasm: option in lisplib/Makefile and ! 7290: liszt/68k/Makefile. ! 7291: ! 7292: In lisplib/Makefile, and (if make copylibrary has been done) in ! 7293: /usr/lib/lisp/Makefile, change ! 7294: ! 7295: < for i in *.s; do echo $$i; ${LibDir}/as $$i; done ! 7296: ---- ! 7297: > for i in *.s; do echo $$i; \ ! 7298: > ${LibDir}/as $$i -o `basename $$i .s`.o; done ! 7299: ! 7300: In liszt/68k/Makefile, change ! 7301: ! 7302: < for i in *.s; do echo $$i; as $$i; done ! 7303: ---- ! 7304: > for i in *.s; do echo $$i; \ ! 7305: > as $$i -o `basename $$i .s`.o; done ! 7306: ! 7307: Bugs: ! 7308: 1. One version specifies ${LibDir}/as, the other uses vanilla as. I ! 7309: didn't change it, but perhaps the liszt/68k/Makefile should also ! 7310: specify ${LibDir}/as. ! 7311: ! 7312: 2. Isn't there a cleaner way of doing this? Can a ".s.o:" rule be ! 7313: specified? ! 7314: ! 7315: Dan ! 7316: ! 7317: From @MIT-MC:[email protected] Mon Jul 9 22:06:26 1984 ! 7318: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7319: id AA17486; Mon, 9 Jul 84 22:06:26 pdt ! 7320: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31) ! 7321: id AA24170; Mon, 9 Jul 84 22:05:52 pdt ! 7322: Message-Id: <[email protected]> ! 7323: Date: 9 Jul 1984 21:10:53-EDT ! 7324: From: Richard.Wallace@CMU-CS-H ! 7325: Subject: Bell quote ! 7326: Apparently-To: <franz-friends@UCB-VAX> ! 7327: ! 7328: Lisp, designed about 1960 by John McCarthy, impressed me so ! 7329: much that I included the critcal data access primitives ! 7330: in the architecture of the DEC System 10 in 1965 (still ! 7331: about the fastest Lisp computer). ! 7332: ! 7333: - C. Gordon Bell ! 7334: IEEE Computer ! 7335: June, 1984 ! 7336: ! 7337: ! 7338: ! 7339: From kanderso@bbn-vax Tue Jul 10 11:41:39 1984 ! 7340: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7341: id AA25755; Tue, 10 Jul 84 11:41:39 pdt ! 7342: Received: from bbn-vax (bbn-vax.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31) ! 7343: id AA06454; Tue, 10 Jul 84 11:29:28 pdt ! 7344: Message-Id: <[email protected]> ! 7345: Date: Tue, 10 Jul 84 14:28 EDT ! 7346: From: Ken Anderson <kanderso@bbn-vax> ! 7347: Subject: Problem compiling flavors in Opus 83.79 ! 7348: To: franz-friends@BERKELEY ! 7349: Cc: franz-composers@BERKELEY, lbagnall@bbn, jchung@bbn ! 7350: ! 7351: When trying to make flavors from the version in pub/lib on ucbkim, ! 7352: liszt complains about calling an undefined function e-sub2. Here is ! 7353: the output of my makefile. Any suggestions? ! 7354: ! 7355: liszt -a flavorm ! 7356: Compilation begins with Liszt vax version 8.36 ! 7357: source: flavorm.l, result: flavorm.o ! 7358: [fasl /usr/lib/lisp/machacks.o] ! 7359: [autoload /usr/lib/lisp/struct] ! 7360: [fasl /usr/lib/lisp/struct.o] ! 7361: flavor-plist ! 7362: flavor-init-keywords ! 7363: flavor-initable-instance-variables ! 7364: flavor-settable-instance-variables ! 7365: flavor-gettable-instance-variables ! 7366: flavor-default-handler ! 7367: flavor-which-operations ! 7368: flavor-depends-on-all ! 7369: flavor-includes ! 7370: flavor-depended-on-by ! 7371: flavor-depends-on ! 7372: flavor-method-table ! 7373: flavor-all-instance-variables ! 7374: flavor-local-instance-variables ! 7375: flavor-name ! 7376: flavor-method-hash-table ! 7377: flavor-bindings ! 7378: make-flavor ! 7379: alter-flavor ! 7380: instancep ! 7381: instancep::cmacro:g00079 ! 7382: send ! 7383: lexpr-send ! 7384: send-self ! 7385: lexpr-send-self ! 7386: g00100::send ! 7387: %Note: flavorm.l: Compilation complete ! 7388: %Note: flavorm.l: Time: Real: 0:32, CPU: 0:11.10, GC: 0:0.00 for 0 gcs ! 7389: %Note: flavorm.l: Assembly begins ! 7390: %Note: flavorm.l: Assembly completed successfully ! 7391: liszt -a flavors ! 7392: Compilation begins with Liszt vax version 8.36 ! 7393: source: flavors.l, result: flavors.o ! 7394: [fasl /usr/lib/lisp/machacks.o] ! 7395: [fasl /usr/lib/lisp/lmhacks.o] ! 7396: [fasl flavorm.o] ! 7397: defflavor ! 7398: defun-method ! 7399: [autoload /usr/lib/lisp/struct] ! 7400: [fasl /usr/lib/lisp/struct.o] ! 7401: instance-variable-boundp ! 7402: instance-flavor ! 7403: instance-flavor::cmacro:g00068 ! 7404: instance-function ! 7405: instance-function::cmacro:g00075 ! 7406: get-flavor ! 7407: instance-typep ! 7408: flavor-additional-instance-variables ! 7409: flavor-additional-instance-variables::cmacro:g00101 ! 7410: flavor-instance-variable-initializations ! 7411: flavor-instance-variable-initializations::cmacro:g00108 ! 7412: flavor-remaining-default-plist ! 7413: flavor-remaining-default-plist::cmacro:g00115 ! 7414: flavor-remaining-init-keywords ! 7415: flavor-remaining-init-keywords::cmacro:g00122 ! 7416: flavor-all-initable-instance-variables ! 7417: flavor-all-initable-instance-variables::cmacro:g00129 ! 7418: g00133::flavor ! 7419: Undefined function called from compiled code e-sub2 ! 7420: ?Error: flavors.l: : Lisp error during compilation ! 7421: make: *** Error code 1 *** ! 7422: ! 7423: From jkf@ucbmike Tue Jul 10 12:18:28 1984 ! 7424: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7425: id AA27111; Tue, 10 Jul 84 12:18:28 pdt ! 7426: Received: from ucbmike.ARPA by UCB-VAX.ARPA (4.28/4.31) ! 7427: id AA07135; Tue, 10 Jul 84 12:06:28 pdt ! 7428: Date: Tue, 10 Jul 84 12:07:07 pdt ! 7429: From: John Foderaro (on an sun) <jkf@ucbmike> ! 7430: Message-Id: <[email protected]> ! 7431: Received: by ucbmike.ARPA (4.24ucb/3.5) ! 7432: id AA03780; Tue, 10 Jul 84 12:07:07 pdt ! 7433: To: kanderso@bbn-vax, franz-friends@BERKELEY ! 7434: Subject: Re: Problem compiling flavors in Opus 83.79 ! 7435: Cc: jchung@bbn, lbagnall@bbn, franz-composers@BERKELEY ! 7436: In-Reply-To: Your message of Tue, 10 Jul 84 14:28 EDT ! 7437: ! 7438: This bug was fixed a while back, but apparently after you got your lisp ! 7439: distribution. You should get the latest lisp distribution. ! 7440: ! 7441: ! 7442: ! 7443: From @MIT-MC:[email protected] Tue Jul 10 13:29:15 1984 ! 7444: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7445: id AA28822; Tue, 10 Jul 84 13:29:15 pdt ! 7446: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31) ! 7447: id AA08350; Tue, 10 Jul 84 13:28:25 pdt ! 7448: Message-Id: <[email protected]> ! 7449: Date: 10 Jul 1984 13:46:05-EDT ! 7450: From: Suzanne.Woolf@CMU-CS-SPICE ! 7451: Subject: pretty printer ! 7452: Apparently-To: <franz-friends@UCB-VAX> ! 7453: ! 7454: Does anyone out there know of a well-documented pretty printer for lisp? A ! 7455: friend of mine needs one that can be hacked up. Franz Lisp would be ideal, ! 7456: but anything similar is fine. ! 7457: ! 7458: Please send replies to: ! 7459: Jaffe@cmu-psy-a ! 7460: ! 7461: Thanks. ! 7462: ! 7463: ! 7464: ! 7465: From @MIT-MC:smh@MIT-EMS Tue Jul 10 15:29:20 1984 ! 7466: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7467: id AA02481; Tue, 10 Jul 84 15:29:20 pdt ! 7468: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31) ! 7469: id AA10890; Tue, 10 Jul 84 15:28:30 pdt ! 7470: Message-Id: <[email protected]> ! 7471: Date: 10 Jul 1984 18:24:02-EDT ! 7472: From: <smh@mit-ems@mit-mc> ! 7473: To: franz-friends@BERKELEY, kanderso@bbnvax ! 7474: Subject: Re: Problem compiling flavors in Opus 83.79 ! 7475: ! 7476: A very quick check reveals the following suspiciousness: The function ! 7477: in flavors.l being compiled when the failure occurs is apparently: ! 7478: ! 7479: (DEFUN (FLAVOR :NAMED-STRUCTURE-INVOKE) (OPERATION &OPTIONAL SELF &REST ARGS) ! 7480: (SELECTQ OPERATION ! 7481: (:WHICH-OPERATIONS '(:PRINT-SELF :DESCRIBE)) ! 7482: (:PRINT-SELF ! 7483: (SI:PRINTING-RANDOM-OBJECT (SELF (CAR ARGS)) ! 7484: (FORMAT (CAR ARGS) "FLAVOR ~S" (FLAVOR-NAME SELF)))) ! 7485: (:DESCRIBE (DESCRIBE-FLAVOR SELF)) ! 7486: (OTHERWISE ! 7487: (FERROR NIL "~S UNKNOWN OPERATION FOR FLAVOR" OPERATION)))) ! 7488: ! 7489: This is the first appearance in the file of defun with a "function ! 7490: spec" instead of a symbol as the first argument. This is a Lisp ! 7491: Machine hack which basically means to squirrel the functional object ! 7492: away under the :NAMED-STRUCTURE-INVOKE property of the plist of FLAVOR. ! 7493: (More precisely, the first arg is the Maclisp compatability syntax for ! 7494: (:PROPERTY FLAVOR :NAMED-STRUCTURE-INVOKE) ...) ! 7495: ! 7496: Liszt could be choking as it tries to store into the ! 7497: function-definition slot of something other than a symbol. Such ! 7498: abilities of defun are not documented in Franz, and it might be that ! 7499: your defun macro in common0.l has not been extended for such usage. ! 7500: Locally it is defined as follows: ! 7501: ! 7502: ;--- defun ! 7503: ; maclisp style function defintion ! 7504: ; ! 7505: (def defun ! 7506: (macro (l) ! 7507: (prog (name type arglist body specind specnam) ! 7508: (setq name (cadr l) l (cddr l)) ! 7509: (cond ((dtpr name) ! 7510: (cond ((memq (cadr name) '(macro expr fexpr lexpr)) ! 7511: (setq l (cons (cadr name) l) ! 7512: name (car name))) ! 7513: (t (setq specnam (car name) ! 7514: specind (cadr name) ! 7515: name (concat (gensym) "::" specnam)))))) ! 7516: (cond ((null (car l)) (setq type 'lambda)) ! 7517: ((eq 'fexpr (car l)) (setq type 'nlambda l (cdr l))) ! 7518: ((eq 'expr (car l)) (setq type 'lambda l (cdr l))) ! 7519: ((eq 'macro (car l)) (setq type 'macro l (cdr l))) ! 7520: ((atom (car l)) ! 7521: (setq type 'lexpr ! 7522: l (nconc (list (list (car l))) ! 7523: (cdr l)))) ! 7524: (t (setq type 'lambda))) ! 7525: (setq body (list 'def name (cons type l))) ! 7526: (cond (specnam ! 7527: (return (list 'progn ''compile ! 7528: body ! 7529: (list 'putprop ! 7530: (list 'quote specnam) ! 7531: (list 'getd ! 7532: (list 'quote name)) ! 7533: (list 'quote specind))))) ! 7534: (t (return body)))))) ! 7535: ! 7536: You could also check by invoking liszt without arguments and then ! 7537: asking it ! 7538: (testmac '(defun (foo bar) () (hello goodbye))) ! 7539: and seeing if it properly generates ! 7540: (progn 'compile (defun ... ) (putprop ... )) ! 7541: ! 7542: On another matter, I have recently been making a number of minor ! 7543: bugfixes to the flavor and various other MIT compatibility packages. ! 7544: These files come indirecly from Maclisp or Lisp Machines, and the ports ! 7545: have generally never been exercised sufficiently to check all the ! 7546: obscure features. These fixes postdate the versions Rich Zippel ! 7547: recently transmitted to Berkeley. I will shortly distribute the ! 7548: new versions to Berkeley. ! 7549: ! 7550: Believe it or not, the flavor system really does work under Franz. ! 7551: So do hash tables, defstruct, format, etc. I use them every day. ! 7552: ! 7553: Steve Haflich, MIT Experimental Music Studio ! 7554: smh@mit-ems@mit-mc ! 7555: {decvax!genrad, ihnp4}!mit-eddie!smh ! 7556: ! 7557: ! 7558: From abar@ucbernie Tue Jul 10 23:04:16 1984 ! 7559: Received: from ucbernie.ARPA by ucbkim.ARPA (4.28/4.27) ! 7560: id AA08764; Tue, 10 Jul 84 23:04:16 pdt ! 7561: Received: by ucbernie.ARPA (4.28/4.30) ! 7562: id AA06176; Tue, 10 Jul 84 23:02:56 pdt ! 7563: Date: Tue, 10 Jul 84 23:02:56 pdt ! 7564: From: abar@ucbernie (Robert Abarbanel) ! 7565: Message-Id: <[email protected]> ! 7566: To: franz-friends@ucbernie ! 7567: Subject: &optional, &rest, &aux ! 7568: ! 7569: Any way to get these &args to work without compilation... that is, when ! 7570: a function is working interpreted? ! 7571: ! 7572: From kanderso@bbn-vax Wed Jul 11 12:25:52 1984 ! 7573: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7574: id AA17391; Wed, 11 Jul 84 12:25:52 pdt ! 7575: Received: from bbn-vax (bbn-vax.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31) ! 7576: id AA19991; Wed, 11 Jul 84 12:24:54 pdt ! 7577: Message-Id: <[email protected]> ! 7578: Date: Wed, 11 Jul 84 15:24 EDT ! 7579: From: Ken Anderson <kanderso@bbn-vax> ! 7580: Subject: bugs in hash.l and array.l ! 7581: To: franz-friends@BERKELEY ! 7582: Cc: lbagnall@bbn, jchung@bbn ! 7583: ! 7584: To get Flavors working in Opus 38.91 you will need to fix a bug in ! 7585: lisplib/hash.l. Change all occurances of "getlength" to "vsize". ! 7586: ! 7587: Although unrelated to Flavors, there are several problems with ! 7588: the functions, fillarray fillarrayarray and listarray in ! 7589: lisplib/array.l. Here is an ed script produced by diff: ! 7590: ! 7591: 285,286c ! 7592: (cond ((or (arrayp arr) ; KRA ! 7593: (and (symbolp arr) (arrayp (setq arr (getd arr)))))) ! 7594: . ! 7595: 282,283c ! 7596: (lexpr (n) ! 7597: (prog (arr size typ ret newv) ! 7598: . ! 7599: 280a ! 7600: ; KRA 83-11-2: Arrays need not be symbols. ! 7601: . ! 7602: 279c ! 7603: (replace (arrayref arrto i) (arrayref arrfrom i))) ! 7604: (return arrto)))) ; KRA ! 7605: . ! 7606: 270c ! 7607: (cond ((cdr ls) (setq ls (cdr ls))))) ! 7608: (return arr)))) ; KRA ! 7609: . ! 7610: 244a ! 7611: ; KRA 83-11-2: Fillarray and fillarrayarray should return the array! ! 7612: . ! 7613: ! 7614: From jkf@ucbmike Wed Jul 11 13:43:49 1984 ! 7615: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7616: id AA20014; Wed, 11 Jul 84 13:43:49 pdt ! 7617: Received: from ucbmike.ARPA by UCB-VAX.ARPA (4.28/4.31) ! 7618: id AA21120; Wed, 11 Jul 84 13:32:32 pdt ! 7619: Date: Wed, 11 Jul 84 13:32:52 pdt ! 7620: From: John Foderaro (on an sun) <jkf@ucbmike> ! 7621: Message-Id: <[email protected]> ! 7622: Received: by ucbmike.ARPA (4.24ucb/3.5) ! 7623: id AA05402; Wed, 11 Jul 84 13:32:52 pdt ! 7624: To: franz-friends@BERKELEY ! 7625: Subject: Re: &optional, &rest, &aux ! 7626: Cc: franz-composers@BERKELEY ! 7627: In-Reply-To: Your message of 11 Jul 1984 15:12:07-EDT ! 7628: ! 7629: The problem with the &optional and &rest was due to abar using the ! 7630: cmufile package, which redefines 'def' and doesn't look for those ! 7631: keywords. ! 7632: ! 7633: ! 7634: ! 7635: From [email protected] Wed Jul 11 20:29:28 1984 ! 7636: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7637: id AA25212; Wed, 11 Jul 84 20:29:28 pdt ! 7638: Received: from CMU-CS-G.ARPA (cmu-cs-g.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31) ! 7639: id AA28089; Wed, 11 Jul 84 20:28:27 pdt ! 7640: Reply-To: [email protected] ! 7641: Received: by cadre.UUCP (4.12/3.14) ! 7642: id AA22394; Wed, 11 Jul 84 23:22:09 edt ! 7643: Date: Wed, 11 Jul 84 23:22:09 edt ! 7644: From: cadre!sm (Sean McLinden) ! 7645: Message-Id: <[email protected]> ! 7646: To: [email protected] ! 7647: Subject: redefinition of existing flavors ! 7648: Cc: franz-friends@BERKELEY ! 7649: ! 7650: ! 7651: As distributed by Berkeley, the flavors package on Opus 38.89 ! 7652: appears to work in all cases except when a flavor is redefined ! 7653: and perform-flavor-redefinition is invoked. The problem, I ! 7654: thought, was in copy-hunk-contents, since the default structures ! 7655: (and therefore flavors), in Opus 38.89, are VECTORS, not HUNKS. ! 7656: However, modifying copy-hunk-contents to copy VECTORS did not, ! 7657: completely, fix the problem (i.e, the first modification after ! 7658: redefinition of copy-hunk-contents caused an error, the second ! 7659: worked but then describe did not work for old instances of the ! 7660: flavor). ! 7661: ! 7662: Before delving into code with which I am unfamiliar are there ! 7663: any differences between Opus 38.89 and 38.91 which might explain ! 7664: this? ! 7665: ! 7666: Sean McLinden ! 7667: Decision Systems Lab ! 7668: University of Pittsburgh ! 7669: ! 7670: ! 7671: From harrison@nrl-aic Thu Jul 12 07:15:39 1984 ! 7672: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7673: id AA28967; Thu, 12 Jul 84 07:15:39 pdt ! 7674: Received: from nrl-aic (nrl-aic.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31) ! 7675: id AA07280; Thu, 12 Jul 84 07:14:50 pdt ! 7676: Date: 12 Jul 1984 10:08-EDT ! 7677: From: Patrick Harrison <harrison@NRL-AIC> ! 7678: Subject: Lisp for Honeywell 6060 DPS-8 ! 7679: To: ailist@sri-ai ! 7680: Cc: franz-friends@BERKELEY ! 7681: Message-Id: <84/07/12 1008.550@NRL-AIC> ! 7682: ! 7683: ! 7684: Am looking for information on current versions of LISP (FranzLisp, ! 7685: MacLisp) running in a Honeywell 6060, DPS-8 environment. Would also ! 7686: like to implement OPS5 on same. Address: ! 7687: ! 7688: Dr. Patrick Harrison ! 7689: Computer Science Department ! 7690: U.S. Naval Academy ! 7691: Annapolis, Maryland 21402. ! 7692: ! 7693: Responses to above address or <harrison@nrl-aic> ! 7694: ! 7695: From @MIT-MC:mhs@MIT-HTVAX Tue Jul 17 12:45:10 1984 ! 7696: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7697: id AA00659; Tue, 17 Jul 84 12:45:10 pdt ! 7698: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31) ! 7699: id AA02214; Mon, 16 Jul 84 16:28:19 pdt ! 7700: Message-Id: <[email protected]> ! 7701: Date: 16 Jul 1984 16:32:48-EDT ! 7702: From: mhs@mit-htvax@mit-mc ! 7703: To: franz-friends@berkeley@mit-mc ! 7704: Subject: Small bug in flavors.l ! 7705: Cc: mhs@mit-htvax@mit-mc ! 7706: ! 7707: The following test demonstrates a problem with flavors.l as it is ! 7708: distributed with Release 38.91. (The "a" after the minor number indicates a ! 7709: couple of changes made locally - mostly involving preloading struct, loop and ! 7710: such. flavors.l wasn't touched.) ! 7711: ! 7712: The problem is that simple method combination doesn't work for trivial ! 7713: reasons. A fix is suggested below. As the example shows, the combined method ! 7714: for :PROGN combination is wrong. (:OR, :LIST ... all have the same problem). ! 7715: ! 7716: Franz Lisp, Opus 38.91a (with Zetalisp compatability package) ! 7717: -> (defflavor object ! 7718: (color) ! 7719: () ! 7720: :gettable-instance-variables ! 7721: :settable-instance-variables ! 7722: :initable-instance-variables ! 7723: (:method-combination (:progn :base-flavor-last :test1))) ! 7724: object ! 7725: -> (defmethod (object :test1) () ! 7726: (format t "~&object :test1~%")) ! 7727: (:method object :test1) ! 7728: -> (defflavor car ! 7729: (price) ! 7730: (object) ! 7731: :gettable-instance-variables ! 7732: :settable-instance-variables ! 7733: :initable-instance-variables) ! 7734: car ! 7735: -> (defmethod (car :test1) () ! 7736: (format t "~&car :test1~%")) ! 7737: (:method car :test1) ! 7738: -> (setq car (make-instance 'car)) ! 7739: #<car 591928> ! 7740: -> (send car ':test1) ! 7741: |Error:| eval: Undefined function :progn ! 7742: <1>: (debug) ! 7743: ! 7744: <------debug------> ! 7745: ! 7746: :bk ! 7747: ! 7748: <------debug------> <--- you are here ! 7749: (eval (debug)) ! 7750: (break-err-handler (|ER%undef| 0 t |eval: Undefined function | :progn)) ! 7751: (:progn (lexpr-funcall (function car-test1-method) .daemon-caller-args.) (lexpr-funcall (function object-test1-method) .daemon-caller-args.)) ! 7752: ((lambda (.daemon-caller-args.) .daemon-caller-args. (:progn (lexpr-funcall (function car-test1-method) .daemon-caller-args.) (lexpr-funcall (function object-test1-method) .daemon-caller-args.))) (do ((g00005 g00004 (|1-| g00005)) (g00006 () (cons (arg g00005) g00006))) ((< g00005 1) g00006))) ! 7753: , ! 7754: , ! 7755: , ! 7756: (send car (quote :test1)) ! 7757: (eval (send car (quote :test1))) ! 7758: <bottom of stack> ! 7759: ! 7760: Look at the combined method: ! 7761: ! 7762: (:progn ! 7763: (lexpr-funcall (function car-test1-method) .daemon-caller-args.) ! 7764: (lexpr-funcall (function object-test1-method) .daemon-caller-args.)) ! 7765: ! 7766: I think the problem is caused by the fact that in the older package system, ! 7767: the keyword package inherited from the global package. Thus :PROGN (in the ! 7768: keyword package) was the same atom as PROGN (in global). However, this isn't ! 7769: true in Franz. :PROGN isn't EQ to PROGN, and it shouldn't be. (The same ! 7770: problem occurs for all of the other simple method combination types too, e.g. ! 7771: :OR, :LIST ...). One possible fix is to add an alist ! 7772: (SIMPLE-METHOD-COMBINATION-TYPE-ALIST) to store the correspondence between ! 7773: :PROGN and PROGN, like so: (I just tested this code locally and it seemed to ! 7774: work.) ! 7775: ! 7776: #+franz ! 7777: (DEFCONST SIMPLE-METHOD-COMBINATION-TYPE-ALIST ! 7778: '((:PROGN . PROGN) ! 7779: (:AND . AND) ! 7780: (:OR . OR) ! 7781: (:MAX . MAX) ! 7782: (:MIN . MIN) ! 7783: (:+ . +) ! 7784: (:APPEND . APPEND) ! 7785: (:NCONC . NCONC))) ! 7786: ! 7787: (DEFUN SIMPLE-METHOD-COMBINATION (FL MAGIC-LIST-ENTRY) ! 7788: (LET ((METHODS (GET-CERTAIN-METHODS MAGIC-LIST-ENTRY NIL NIL NIL NIL)) ! 7789: (WRAPPERS-P (SPECIALLY-COMBINED-METHODS-PRESENT MAGIC-LIST-ENTRY))) ! 7790: (OR (AND (NOT WRAPPERS-P) (NULL (CDR METHODS)) (CAR METHODS)) ! 7791: (HAVE-COMBINED-METHOD FL MAGIC-LIST-ENTRY) ! 7792: (MAKE-COMBINED-METHOD FL MAGIC-LIST-ENTRY ! 7793: ;; In the old package system, :progn maps to progn trivially ! 7794: ;; via package inheritance (keyword inherits from global). ! 7795: ;; In Franz, we use an alist to implement the mapping. ! 7796: (CONS #-franz (CADR MAGIC-LIST-ENTRY) ! 7797: #+franz (CDR (ASSQ (CADR MAGIC-LIST-ENTRY) ! 7798: SIMPLE-METHOD-COMBINATION-TYPE-ALIST)) ! 7799: (MAPCAR 'METHOD-CALL ! 7800: METHODS)))))) ! 7801: ! 7802: ! 7803: From "Gladd Tom"@LLL-MFE.ARPA Wed Jul 18 10:44:03 1984 ! 7804: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7805: id AA00765; Wed, 18 Jul 84 10:44:03 pdt ! 7806: Received: from LLL-MFE.ARPA (lll-mfe.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.31) ! 7807: id AA01412; Wed, 18 Jul 84 10:42:20 pdt ! 7808: Message-Id: <[email protected]> ! 7809: Date: Wed, 18 Jul 84 10:35 PDT ! 7810: From: "Gladd Tom"@LLL-MFE.ARPA ! 7811: Subject: join list 619-453-6580 ! 7812: To: franz-friends@BERKELEY ! 7813: ! 7814: i would like to join your list. i am very interested in list in general ! 7815: and have been trying to learn it in a near vacuum (small hi-tech company ! 7816: in sandiego. i am especially interested in advanced coding techniques ! 7817: (at least beyond the standard texts). my background is theoretical ! 7818: plasma physics. i have used and am very interested in macsyma. ! 7819: my address is "gladd tom%cma"@lll-mfe.arpa ! 7820: ! 7821: From @MIT-MC:[email protected] Wed Jul 25 10:06:41 1984 ! 7822: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7823: id AA08698; Wed, 25 Jul 84 10:06:41 pdt ! 7824: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.33) ! 7825: id AA19747; Wed, 25 Jul 84 10:05:06 pdt ! 7826: Message-Id: <[email protected]> ! 7827: Date: 25 Jul 1984 12:30:25-EDT ! 7828: From: Philip.Kasprzyk@CMU-RI-ISL2 ! 7829: Subject: Lisp Speed Benchmarks ! 7830: Apparently-To: <franz-friends@UCB-VAX> ! 7831: ! 7832: ~v ! 7833: I am interested in determining the absolute speed of execution of a lisp ! 7834: system. I realize that this is a complicated task that is application ! 7835: and implementation dependant. Nevertheless I am seeking the following: ! 7836: ! 7837: 1) A "gibson mix" style benchmark for lisp based systems. ! 7838: ! 7839: 2) Any data that experienced users of lisp may have regarding performance. ! 7840: (I don't care what machine or dialect of lisp is reported) ! 7841: ! 7842: 3) Any method or program which translates a lisp program into another ! 7843: target high level language with execution speed as its objective. ! 7844: (I don't mean a normal lisp compiler) ! 7845: ! 7846: Can anyone out there help me? ! 7847: ! 7848: If so send mail to pmk@isl2. ! 7849: ! 7850: ! 7851: ! 7852: From mab@aids-unix Fri Jul 27 14:35:21 1984 ! 7853: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7854: id AA29865; Fri, 27 Jul 84 14:35:21 pdt ! 7855: Received: from aids-unix (aids-unix.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.33) ! 7856: id AA04068; Fri, 27 Jul 84 14:33:40 pdt ! 7857: Message-Id: <[email protected]> ! 7858: Date: 27 Jul 84 14:23:47 PDT (Fri) ! 7859: From: Mike Brzustowicz <mab@aids-unix> ! 7860: Subject: Benchmarks ! 7861: To: franz-friends@BERKELEY ! 7862: ! 7863: Does anyone have any small LISP programs that can be abused as benchmarks? ! 7864: (They need to be small is source only.) I need some very soon. Thanks! ! 7865: ! 7866: -Mike ! 7867: <mab@aids-unix> ! 7868: ! 7869: From [email protected] Fri Jul 27 15:15:06 1984 ! 7870: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7871: id AA01124; Fri, 27 Jul 84 15:15:06 pdt ! 7872: Received: from Xerox.ARPA (xerox.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.33) ! 7873: id AA04900; Fri, 27 Jul 84 15:13:09 pdt ! 7874: Message-Id: <[email protected]> ! 7875: Received: from Semillon.ms by ArpaGateway.ms ; 27 JUL 84 15:14:21 PDT ! 7876: Date: 27 Jul 84 15:14 PDT ! 7877: From: [email protected] ! 7878: Subject: Re: Benchmarks ! 7879: In-Reply-To: Mike Brzustowicz <[email protected]>'s message of 27 Jul ! 7880: 84 14:23:47 PDT (Fri) ! 7881: To: [email protected] ! 7882: Cc: franz-friends@BERKELEY ! 7883: ! 7884: Here's a good benchmark: ! 7885: ! 7886: (defun nilret () nil) ! 7887: ! 7888: this is a good test of how fast your lisp returns NIL. ! 7889: ! 7890: I also like ! 7891: ! 7892: (defun retjunk (x) (cond((junkp x) 'junk) ! 7893: ((cdr x) (retjunk (car x))) ! 7894: ((= (car x) 'junk) (retjunk (cons (cdr x) (cdr x)))) ! 7895: (t (retjunk (cons 'junk x)))) ! 7896: ! 7897: (defun junkp (x) (equal (reverse (explode x)) (reverse (explode ! 7898: 'junk)))) ! 7899: ! 7900: ! 7901: This benchmark measures how fast your lisp can return junk, executing ! 7902: the retjunk function. ! 7903: ! 7904: Both of the benchmarks have the adavantage that they are small and can ! 7905: be abused as benchmarks. ! 7906: ! 7907: From @USC-ECL.ARPA:BENSON@ECLD Tue Jul 31 20:02:20 1984 ! 7908: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.28/4.27) ! 7909: id AA21521; Tue, 31 Jul 84 20:02:20 pdt ! 7910: Received: from USC-ECL.ARPA (usc-ecl.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.33) ! 7911: id AA02839; Tue, 31 Jul 84 20:00:29 pdt ! 7912: Message-Id: <[email protected]> ! 7913: Received: from ECLD by ECLA with ECLnet; Tue 31 Jul 84 19:56:31-PDT ! 7914: Date: Tue 31 Jul 84 19:33:52-PDT ! 7915: From: Eric Benson <BENSON@ECLD.#ECLnet> ! 7916: Subject: Re: Lisp Speed Benchmarks ! 7917: To: [email protected] ! 7918: Cc: BENSON@ECLD.#ECLnet, Franz-Friends@BERKELEY ! 7919: In-Reply-To: Message from "Philip.Kasprzyk@CMU-RI-ISL2" of Wed 25 Jul 84 09:30:25-PDT ! 7920: ! 7921: There is a set of benchmarks which have been run on a variety of Lisp ! 7922: systems which have been compiled by Richard Gabriel at Stanford. You ! 7923: should contact Paul Wieneke (PW@SU-AI) for more information. ! 7924: ------- ! 7925: ! 7926: From narain@rand-unix Wed Aug 1 12:31:21 1984 ! 7927: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 7928: id AA00623; Wed, 1 Aug 84 12:31:21 pdt ! 7929: Received: from rand-unix.ARPA (rand-unix.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.33) ! 7930: id AA00567; Wed, 1 Aug 84 12:29:40 pdt ! 7931: Received: by rand-unix.ARPA; Wed, 1 Aug 84 11:04:30 pdt ! 7932: From: Sanjai Narain <narain@rand-unix> ! 7933: Message-Id: <[email protected]> ! 7934: Date: 01 Aug 84 11:04:25 PDT (Wed) ! 7935: To: franz-friends@BERKELEY ! 7936: Subject: Fast recompiling ! 7937: ! 7938: ! 7939: Often we have files consisting of large numbers of functions which are ! 7940: compiled. Sometimes, just one of these functions needs to be changed. It ! 7941: would be nice to recompile just this function, and copy already compiled ! 7942: functions to produce a fresh version of the compiled file. Is there any ! 7943: quick method of doing this in Franz Lisp i.e. is there an equivalent of ! 7944: Interlisp's "recompile" function. ! 7945: ! 7946: I would be grateful for your response. ! 7947: ! 7948: -- Sanjai Narain ! 7949: ! 7950: From fateman@ucbdali Wed Aug 1 13:24:30 1984 ! 7951: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 7952: id AA03438; Wed, 1 Aug 84 13:24:30 pdt ! 7953: Received: from ucbdali.ARPA by UCB-VAX.ARPA (4.28/4.33) ! 7954: id AA01542; Wed, 1 Aug 84 13:06:01 pdt ! 7955: Received: by ucbdali.ARPA (4.24/4.27) ! 7956: id AA00994; Wed, 1 Aug 84 13:07:35 pdt ! 7957: Date: Wed, 1 Aug 84 13:07:35 pdt ! 7958: From: fateman@ucbdali (Richard Fateman) ! 7959: Message-Id: <[email protected]> ! 7960: To: franz-friends@BERKELEY, narain@rand-unix ! 7961: Subject: Re: Fast recompiling ! 7962: ! 7963: This would be an interesting feature, but it is complicated by the ! 7964: possibility that the compilation environment is built up in a typical ! 7965: large Franz system, by processing the whole file. I think that the ! 7966: interlisp situation is usually simpler. ! 7967: For example, in recompiling Macsyma, sometimes a file itself or ! 7968: function definitions in it do not change at all. A "macro definition" ! 7969: file which is included in the compilation environment can, however, change ! 7970: the generated code, substantially. ! 7971: Something like UNIX's "make" might be needed. ! 7972: ! 7973: Alternatively, you can use smaller files... ! 7974: ! 7975: From jkf@ucbmike Thu Aug 2 16:10:04 1984 ! 7976: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 7977: id AA16097; Thu, 2 Aug 84 16:10:04 pdt ! 7978: Received: from ucbmike.ARPA by UCB-VAX.ARPA (4.28/4.33) ! 7979: id AA00501; Thu, 2 Aug 84 16:08:09 pdt ! 7980: Date: Thu, 2 Aug 84 16:09:45 pdt ! 7981: From: John Foderaro (on an sun) <jkf@ucbmike> ! 7982: Message-Id: <[email protected]> ! 7983: Received: by ucbmike.ARPA (4.24ucb/3.5) ! 7984: id AA01757; Thu, 2 Aug 84 16:09:45 pdt ! 7985: To: franz-friends@BERKELEY ! 7986: Subject: repeated messages ! 7987: Cc: ! 7988: ! 7989: I'm sorry about the repeated messages. Our mailing machine got a bit ! 7990: overloaded. I've modified the organization of the list to try to ! 7991: fix the problem. ! 7992: ! 7993: ! 7994: ! 7995: From NET-ORIGIN@MIT-MC Fri Aug 3 15:15:44 1984 ! 7996: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 7997: id AA26463; Fri, 3 Aug 84 15:15:44 pdt ! 7998: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.33) ! 7999: id AA04086; Fri, 3 Aug 84 15:13:41 pdt ! 8000: Received: from mit-heracles (mit-heracles.ARPA) by mit-charon (4.12/4.7) ! 8001: id AA13781; Fri, 3 Aug 84 14:32:51 edt ! 8002: Received: by mit-heracles (4.12/4.7) ! 8003: id AA20045; Fri, 3 Aug 84 14:35:30 edt ! 8004: From: yba@mit-heracles (Mark H Levine) ! 8005: Message-Id: <8408031835.AA20045@mit-heracles> ! 8006: Date: 3 Aug 1984 1435-EDT (Friday) ! 8007: To: franz-friends@BERKELEY ! 8008: Subject: Opus 37.79 building from source ! 8009: ! 8010: ! 8011: Has anyone published a fix to the bug that causes "rawlisp" to take a ! 8012: memory fault when built from vanilla 4.2bsd sources? ! 8013: ! 8014: It seems that the routine "getatom" in franz/alloc.c calls strcmp ! 8015: with "name" equal to "mod" and "aptr -> a.pname" equal to CNIL (-4). ! 8016: ! 8017: This is presumably a side effect of some other error; it still causes ! 8018: a memory fault in strcmp and prevents building from source. The sources ! 8019: have some Sept. '83 changes to the library code, but are otherwise con- ! 8020: sistent with all the 4.2 code I have seen. ! 8021: ! 8022: Got a fix handy? ! 8023: ! 8024: ! 8025: ! 8026: From liz@maryland Mon Aug 6 07:41:41 1984 ! 8027: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8028: id AA16830; Mon, 6 Aug 84 07:41:41 pdt ! 8029: Received: from maryland.ARPA (maryland.ARPA.ARPA) by UCB-VAX.ARPA (4.28/4.33) ! 8030: id AA06949; Mon, 6 Aug 84 07:39:52 pdt ! 8031: Received: by maryland.ARPA (4.12/4.7) ! 8032: id AA01505; Mon, 6 Aug 84 10:40:52 edt ! 8033: Date: Mon, 6 Aug 84 10:40:52 edt ! 8034: From: liz@maryland (Liz Allen) ! 8035: Message-Id: <[email protected]> ! 8036: To: franz-friends@BERKELEY, yba%[email protected] ! 8037: Subject: Re: Opus 37.79 building from source ! 8038: ! 8039: That sounds like an error I ran into recently -- only it was with Opus ! 8040: 38.91 and it was also because I was adding more strings to rawlisp. ! 8041: Anyway, the fix was easy and is probably worth trying. Go into ! 8042: franz/data.c and change the size of i_strbuf and make it bigger. Ours ! 8043: was 600, and I made it 1000. You'll also need to change the ! 8044: initialization for i_strbuf; I changed ours from "i_strbuf + 599" to ! 8045: "i_strbuf + 999". ! 8046: ! 8047: Hope this helps! ! 8048: ! 8049: -Liz ! 8050: ! 8051: From smotroff@bbncct Wed Aug 8 14:39:03 1984 ! 8052: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8053: id AA23393; Wed, 8 Aug 84 14:39:03 pdt ! 8054: Received: from bbncct (bbncct.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8055: id AA21105; Wed, 8 Aug 84 14:39:58 pdt ! 8056: Message-Id: <[email protected]> ! 8057: Date: Wed, 8 Aug 84 17:28:58 EDT ! 8058: From: Ira Smotroff <[email protected]> ! 8059: Subject: add me to the list ! 8060: To: franz-friends@BERKELEY ! 8061: ! 8062: please add my name to the franz-friends list ! 8063: ! 8064: ! 8065: smotroff at bbn ! 8066: ! 8067: ! 8068: From booker@nrl-aic Fri Aug 10 06:18:45 1984 ! 8069: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8070: id AA13113; Fri, 10 Aug 84 06:18:45 pdt ! 8071: Received: from nrl-aic (nrl-aic.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8072: id AA14441; Fri, 10 Aug 84 06:19:43 pdt ! 8073: Message-Id: <[email protected]> ! 8074: Date: 10 Aug 1984 09:09:24-PDT ! 8075: From: Lashon Booker <booker@NRL-AIC> ! 8076: To: franz-friends@BERKELEY ! 8077: Subject: Interlisp Compatibility Package? ! 8078: ! 8079: Has anyone written an Interlisp compatibility package ! 8080: for Franz? Thanks. ! 8081: ! 8082: Lashon Booker ! 8083: booker@nrl-aic ! 8084: ! 8085: From @MIT-MC:smh@MIT-EMS Fri Aug 10 13:14:44 1984 ! 8086: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8087: id AA01017; Fri, 10 Aug 84 13:14:44 pdt ! 8088: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8089: id AA21922; Fri, 10 Aug 84 13:15:43 pdt ! 8090: Message-Id: <[email protected]> ! 8091: Date: 10 Aug 1984 16:06:48-EDT ! 8092: From: smh@mit-ems@mit-mc ! 8093: To: franz-friends@BERKELEY ! 8094: Subject: (atom VECTOR): franz vs liszt ! 8095: ! 8096: Versions: Franz 38.91, Liszt 8.39, and probably most others. ! 8097: ! 8098: Description: ! 8099: The atom predicate operates inconsistently between compiled and ! 8100: interpreted code when passed a vector or vectori. ! 8101: ! 8102: Repeat-by: ! 8103: Create and compile a file containing the following definition: ! 8104: (defun atum(x) (atom x)) ! 8105: After loading it into the interpreter the following results can ! 8106: be obtained: ! 8107: (setq v (vector 1 2 3)) ! 8108: (atom v) ===> t ! 8109: (atum v) ===> nil ! 8110: ! 8111: Discussion: ! 8112: According to the manual, atom returns "t iff g_arg is not a list or ! 8113: hunk object." By this definition, the interpreter is correct and the ! 8114: compiler incorrect. However, one can make a strong argument that ! 8115: vectors, analogously to hunks, should not be considered atoms. ! 8116: Therefore, the both the documentation and interpreter should be ! 8117: changed. (It is doubtful very much existing code depends on this.) ! 8118: ! 8119: Suggested fix: ! 8120: Change the definition of atom section 2 of the manual to read: ! 8121: "t iff g_arg is not a list, hunk, vector, or vectori object." ! 8122: Add the following definition to franz/h/global.h, after the existing ! 8123: definition of HUNKP: ! 8124: #define HUNKORVECP(a1) ((TYPE(a1) >= 11) & (TYPE(a1) <= 19)) ! 8125: Change the definition of Latom in franz/lam1.c: ! 8126: lispval ! 8127: Latom() ! 8128: { ! 8129: register struct argent *lb = lbot; ! 8130: chkarg(1,"atom"); ! 8131: ==> if(TYPE(lb->val)==DTPR || (HUNKORVECP(lb->val))) ! 8132: return(nil); ! 8133: else ! 8134: return(tatom); ! 8135: } ! 8136: ! 8137: Alternative suggested fix: ! 8138: If franz-composers really feel that atom ought to treat hunks ! 8139: and vectors differently (sigh?), then fix the compiler instead ! 8140: of the interpreter and documentation. The most important thing ! 8141: is that interpreted and compiler do the same thing! ! 8142: In liszt/funa.l:cc-atom, add 1_18 and 1_19 to the definition ! 8143: of the mask constant. ! 8144: ! 8145: Random (constructive) flame: ! 8146: The interpreter definition above has to lookup the type of its ! 8147: argument expensively in the typetable *three* times, to wit: ! 8148: #define ATOX(a1) ((((int)(a1)) - OFFSET) >> 9) ! 8149: #define TYPE(a1) ((typetable+1)[ATOX(a1)]) ! 8150: While compiled code is admirably streamlined, the interpreter ! 8151: could be made significantly faster here and elsewhere if TYPE ! 8152: were evaluated only once and held for examination in a ! 8153: temporary. This would require a bunch more type predicate ! 8154: DEFINEs operating on TYPE values instead of object addresses. ! 8155: ! 8156: Steve Haflich ! 8157: smh%mit-ems@mit-mc ! 8158: {decvax!genrad, ihnp4!mit-eddie}!mit-ems!smh ! 8159: ! 8160: ! 8161: From [email protected] Mon Aug 13 13:25:44 1984 ! 8162: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8163: id AA03640; Mon, 13 Aug 84 13:25:44 pdt ! 8164: Received: from Xerox.ARPA (xerox.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8165: id AA05890; Mon, 13 Aug 84 13:26:52 pdt ! 8166: Message-Id: <[email protected]> ! 8167: Received: from Semillon.ms by ArpaGateway.ms ; 13 AUG 84 13:24:39 PDT ! 8168: Date: 13 Aug 84 13:24 PDT ! 8169: From: [email protected] ! 8170: Subject: Re: (atom VECTOR): franz vs liszt ! 8171: In-Reply-To: "smh@mit-ems"@MIT-MC.ARPA's message of 10 Aug 84 16:06:48 ! 8172: EDT ! 8173: To: "smh@mit-ems"@MIT-MC.ARPA ! 8174: Cc: franz-friends@BERKELEY, [email protected], [email protected] ! 8175: ! 8176: Perhaps this bug should be forwarded to BUG-LISP@MIT-MC, since the ! 8177: original design flaw is in MacLisp. The problem is that when Hunks were ! 8178: first invented, there where some who wanted them as "annotated" list ! 8179: cells (hence, they weren't ATOMs) while other wanted them as small ! 8180: VECTORs (hence there should be ATOMs). The resolution was some awful ! 8181: switch setting for whether or not to treat them as ATOMs, but I don't ! 8182: remember the default setting, nor the final results. ! 8183: ! 8184: -- JonL -- ! 8185: ! 8186: ! 8187: ! 8188: ! 8189: From ALAN@MIT-MC Mon Aug 13 17:15:11 1984 ! 8190: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8191: id AA07443; Mon, 13 Aug 84 17:15:11 pdt ! 8192: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8193: id AA10564; Mon, 13 Aug 84 17:16:03 pdt ! 8194: Message-Id: <[email protected]> ! 8195: Date: 13 August 1984 20:08-EDT ! 8196: From: Alan Bawden <ALAN@MIT-MC> ! 8197: Subject: (atom VECTOR): franz vs liszt ! 8198: To: JonL.pa@XEROX ! 8199: Cc: GSB@MIT-MC, franz-friends@BERKELEY, smh@MIT-EMS ! 8200: In-Reply-To: Msg of 13 Aug 84 13:24 PDT from JonL.pa at XEROX.ARPA ! 8201: ! 8202: Date: 13 Aug 84 13:24 PDT ! 8203: From: JonL.pa at XEROX ! 8204: ... The resolution was some awful switch setting for whether or not to ! 8205: treat them as ATOMs, but I don't remember the default setting, nor the ! 8206: final results. ! 8207: ! 8208: There are indeed a couple of switches that control various random aspects ! 8209: of hunks, but none of them have any effect on their atomic or non-atomic ! 8210: nature. Hunks are never atoms in MacLisp. Everybody agrees that this is a ! 8211: loss, but at this point it is rather deeply ingrained into things to think ! 8212: about changing it. ! 8213: ! 8214: ! 8215: From [email protected] Tue Aug 14 01:53:12 1984 ! 8216: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8217: id AA13476; Tue, 14 Aug 84 01:53:12 pdt ! 8218: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8219: id AA23091; Tue, 14 Aug 84 01:54:22 pdt ! 8220: Message-Id: <[email protected]> ! 8221: Received: From ct.csnet by csnet-relay; 14 Aug 84 4:31 EDT ! 8222: Date: 13 Aug 1984 20:46:42-PST ! 8223: From: jmiller%[email protected] ! 8224: To: franz-friends@BERKELEY ! 8225: Subject: bug in assoc ! 8226: ! 8227: The following illustrates a rather unpleasant bug in Franz's ASSOC (as ! 8228: of 38.26, anyhow). Be forewarned.... ! 8229: ! 8230: ------------------------------------------------------------------------------ ! 8231: ! 8232: 8_(setq l '((a 1) (b 2) (c 3))) ;;set up an a-list ! 8233: ((a 1) (b 2) (c 3)) ! 8234: ! 8235: 9_(setq foo 'l) ;;FOO points to the NAME of the a-list ! 8236: l ! 8237: ! 8238: 10_(setq bar 'foo) ;;BAR points to the NAME of the NAME of ! 8239: foo ;;the a-list ! 8240: ! 8241: 11_(assoc 'b l) ;;This does the right thing ! 8242: (b 2) ! 8243: ! 8244: 12_(assoc 'b foo) ;;Gag me with a mouse -- should err ! 8245: (b 2) ;;with "bad arg to <something>" ! 8246: ! 8247: 13_(assoc 'b bar) ;;Double gag me with a mouse!! ! 8248: (b 2) ! 8249: ! 8250: ------------------------------------------------------------------------ ! 8251: ! 8252: For the record, ASSQ is flawed in the same way. ! 8253: ! 8254: ! 8255: Jim Miller ! 8256: Computer Thought, Dallas ! 8257: [email protected] ! 8258: ...!convex!ctvax!jmiller ! 8259: ! 8260: From @MIT-MC:smh@MIT-EMS Tue Aug 14 07:35:27 1984 ! 8261: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8262: id AA14507; Tue, 14 Aug 84 07:35:27 pdt ! 8263: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8264: id AA26447; Tue, 14 Aug 84 07:36:36 pdt ! 8265: Message-Id: <[email protected]> ! 8266: Date: 14 Aug 1984 08:40:00-EDT ! 8267: From: smh@mit-ems@mit-mc ! 8268: To: ALAN@mit-mc, GSB@mit-mc, JonL.pa@parc-maxc ! 8269: Subject: (atom VECTOR): franz vs liszt ! 8270: Cc: franz-friends@BERKELEY ! 8271: ! 8272: Gentlemen, I think we are losing grasp on the original bug report. ! 8273: This is probably my fault for including a discourse on the philosophy ! 8274: of hunks (:-) in the bug report. ! 8275: ! 8276: Maclisp ain't gonna change about hunks, and it would be a poor idea for ! 8277: Franz to change. Anyway, the bug is with vectors. In Franz, compiled ! 8278: and interpreted code disagree whether a vector is an atom. Certainly ! 8279: no one can defend this! ! 8280: ! 8281: Maclisp doesn't *have* vectors, does it? ! 8282: ! 8283: Steve Haflich ! 8284: smh%mit-ems@mit-mc ! 8285: ! 8286: ! 8287: From mcgeer Tue Aug 14 11:03:10 1984 ! 8288: Received: by ucbkim.ARPA (4.24/4.27) ! 8289: id AA17397; Tue, 14 Aug 84 11:03:10 pdt ! 8290: Date: Tue, 14 Aug 84 11:03:10 pdt ! 8291: From: Rick McGeer (on an h19-u) <mcgeer> ! 8292: Message-Id: <[email protected]> ! 8293: Phone: (415) 236-8262 ! 8294: To: ALAN@MIT-MC, JonL.pa@XEROX ! 8295: Subject: Re: (atom VECTOR): franz vs liszt ! 8296: Cc: smh@MIT-EMS, franz-friends, GSB@MIT-MC ! 8297: In-Reply-To: Your message of 13 August 1984 20:08-EDT ! 8298: ! 8299: The predicate atom in Franz appears to be: ! 8300: ! 8301: (defun atom(foo) ! 8302: (if foo ! 8303: then (not (or (hunkp foo) (dtpr foo))) ! 8304: else t)) ! 8305: ! 8306: whereas a more natural implementation, it seems to me, is: ! 8307: ! 8308: (defun atom(foo) ! 8309: (or (symbolp foo) (numberp foo))) ! 8310: ! 8311: Since it seems to me that: ! 8312: ! 8313: (xor (vectorp foo) (hunkp foo) (dtpr foo) (atom foo) (arrayp foo)) ! 8314: ! 8315: should always be non-nil for non-nil objects. Or, better put, that vectors, ! 8316: hunks, dtprs, atoms, and arrays should partition the data space. No? ! 8317: ! 8318: Rick. ! 8319: ! 8320: ! 8321: ! 8322: From mcgeer Tue Aug 14 11:53:28 1984 ! 8323: Received: by ucbkim.ARPA (4.24/4.27) ! 8324: id AA18832; Tue, 14 Aug 84 11:53:28 pdt ! 8325: Date: Tue, 14 Aug 84 11:53:28 pdt ! 8326: From: Rick McGeer (on an h19-u) <mcgeer> ! 8327: Message-Id: <[email protected]> ! 8328: Phone: (415) 236-8262 ! 8329: To: jmiller%[email protected], franz-friends ! 8330: Subject: Re: bug in assoc ! 8331: Cc: ! 8332: In-Reply-To: Your message of 13 Aug 1984 20:46:42-PST ! 8333: ! 8334: "'Curiouser and curiouser', said Alice". I dug out the source for ! 8335: assoc (38.79), and here it is: ! 8336: ! 8337: (def assoc ! 8338: (lambda (val alist) ! 8339: (do ((al alist (cdr al))) ! 8340: ((null al) nil) ! 8341: (cond ((null (car al))) ! 8342: ((not (dtpr (car al))) ! 8343: (error "bad arg to assoc" al)) ! 8344: ((equal val (caar al)) (return (car al))))))) ! 8345: ! 8346: So nothing particularly screwy is going on here. However, when I do the ! 8347: traces (after setting up stuff the way you did), I get: ! 8348: => (assoc 'b 'l) ! 8349: 1 <Enter> assoc (b l) ! 8350: 1 <EXIT> assoc (b 2) ! 8351: (b 2) ! 8352: => (assoc 'b ''l) ! 8353: 1 <Enter> assoc (b 'l) ! 8354: Error: bad arg to assoc (quote l) ! 8355: Form: (assoc 'b ''l) ! 8356: {1} bar ! 8357: foo ! 8358: {1} (assoc 'b 'foo) ! 8359: |2 <Enter> assoc (b foo) ! 8360: |2 <EXIT> assoc (b 2) ! 8361: (b 2) ! 8362: {1} foo ! 8363: l ! 8364: {1} bar ! 8365: foo ! 8366: {1} (assoc 'b bar) ! 8367: |2 <Enter> assoc (b foo) ! 8368: |2 <EXIT> assoc (b 2) ! 8369: (b 2) ! 8370: {1} (assoc 'b ''l) ! 8371: |2 <Enter> assoc (b 'l) ! 8372: Error: bad arg to assoc (quote l) ! 8373: Form: (assoc 'b ''l) ! 8374: {2} ! 8375: ! 8376: Which is certainly *very* odd... ! 8377: ! 8378: ! 8379: From mcgeer Tue Aug 14 12:06:20 1984 ! 8380: Received: by ucbkim.ARPA (4.24/4.27) ! 8381: id AA19018; Tue, 14 Aug 84 12:06:20 pdt ! 8382: Date: Tue, 14 Aug 84 12:06:20 pdt ! 8383: From: Rick McGeer (on an h19-u) <mcgeer> ! 8384: Message-Id: <[email protected]> ! 8385: Phone: (415) 236-8262 ! 8386: To: ALAN@MIT-MC, JonL.pa@XEROX ! 8387: Subject: Re: (atom VECTOR): franz vs liszt ! 8388: Cc: smh@MIT-EMS, franz-friends, GSB@MIT-MC ! 8389: ! 8390: Sorry to anyone who's getting this twice: I can't figure out from ! 8391: the mailer error message who got it and who didn't... ! 8392: ! 8393: ! 8394: The predicate atom in Franz appears to be: ! 8395: ! 8396: (defun atom(foo) ! 8397: (if foo ! 8398: then (not (or (hunkp foo) (dtpr foo))) ! 8399: else t)) ! 8400: ! 8401: whereas a more natural implementation, it seems to me, is: ! 8402: ! 8403: (defun atom(foo) ! 8404: (or (symbolp foo) (numberp foo))) ! 8405: ! 8406: Since it seems to me that: ! 8407: ! 8408: (xor (vectorp foo) (hunkp foo) (dtpr foo) (atom foo) (arrayp foo)) ! 8409: ! 8410: should always be non-nil for non-nil objects. Or, better put, that vectors, ! 8411: hunks, dtprs, atoms, and arrays should partition the data space. No? ! 8412: ! 8413: Rick. ! 8414: ! 8415: ! 8416: ! 8417: ! 8418: ! 8419: ! 8420: From PSZ@MIT-MC Tue Aug 14 13:53:19 1984 ! 8421: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8422: id AA20310; Tue, 14 Aug 84 13:53:19 pdt ! 8423: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8424: id AA03508; Tue, 14 Aug 84 13:54:23 pdt ! 8425: Message-Id: <[email protected]> ! 8426: Date: 14 August 1984 16:37-EDT ! 8427: From: Peter Szolovits <PSZ@MIT-MC> ! 8428: Subject: on the issue of the "ATOMness" of hunks ! 8429: To: ALAN@MIT-MC ! 8430: Cc: GSB@MIT-MC, PSZ@MIT-MC, JonL.pa@XEROX, franz-friends@BERKELEY, smh@MIT-EMS ! 8431: In-Reply-To: Msg of 13 Aug 1984 20:08-EDT from Alan Bawden <ALAN> ! 8432: ! 8433: I have a small quarrel with Alan Bawden's statement that "hunks never ! 8434: being atoms in Maclisp" is a universally-agreed bug. There are indeed ! 8435: useful structures that one would like to build in Lisp that act as CONS ! 8436: cells (i.e., CAR and CDR are applicable), but that can have further ! 8437: structure. I have sorely missed such objects in Lisp Machine Lisp and ! 8438: NIL, where flavor-instances are always atomic, when I wanted to build ! 8439: Brand X (interned "list structure" and universal property lists). In ! 8440: Maclisp, I could do this using hunks, though even that was not ! 8441: completely right because I wanted to be able to disallow RPLACA and ! 8442: RPLACD while allowing CAR and CDR, and this was hard, given the hunk ! 8443: abstraction. I would, however, love to have non-atomic flavor-instances ! 8444: ! 8445: ! 8446: From @MIT-MC:smh@MIT-EMS Tue Aug 14 14:28:47 1984 ! 8447: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8448: id AA20792; Tue, 14 Aug 84 14:28:47 pdt ! 8449: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8450: id AA04288; Tue, 14 Aug 84 14:29:41 pdt ! 8451: Message-Id: <[email protected]> ! 8452: Date: 14 Aug 1984 17:13:29-EDT ! 8453: From: smh@mit-ems@mit-mc ! 8454: To: mcgeer@ucbkim@BERKELEY ! 8455: Subject: Re: bug in assoc ! 8456: Cc: franz-friends@BERKELEY, [email protected]@udel-relay@mit-mc ! 8457: ! 8458: As McGeer@ucbkim points out, the code for assoc is (in common0.l): ! 8459: ! 8460: (def assoc ! 8461: (lambda (val alist) ! 8462: (do ((al alist (cdr al))) ! 8463: ((null al) nil) ! 8464: (cond ((null (car al))) ! 8465: ((not (dtpr (car al))) ! 8466: (error "bad arg to assoc" al)) ! 8467: ((equal val (caar al)) (return (car al))))))) ! 8468: ! 8469: The reason for the reported strange behavior of assoc is as simple as ! 8470: it is obscure! First a couple hints: ! 8471: - This code is inside the executable franz interpreter and therefore ! 8472: runs compiled. ! 8473: - The same strangeness is exhibited by assq, which is C-coded inside ! 8474: the Franz kernel. ! 8475: - Both the cdr of a dtpr and the value of an atom are stored at offset ! 8476: zero within their respective structures. The car and plist ! 8477: similarly share the same offset within their structures. ! 8478: - If you try to run the above assoc definition interpreted, it will ! 8479: properly fail to work, or rather, it will complain about a bad arg ! 8480: to car. ! 8481: - Of course, c[ad]r in the interpreter carfully check their arguments; ! 8482: In the compiler, they simple indirect through pointers for maximum ! 8483: speed. ! 8484: ! 8485: Finally, in case by now it isn't absolutely clear to everyone what is ! 8486: going on, assoc is (sort of) comparing val against the plist of bar and ! 8487: subsequently foo, and then each time automagically effectively doing a ! 8488: symeval on the atom to continue scanning down the "cdr" of the alist. ! 8489: ! 8490: Moral: Although the interpreter tries pretty hard to do the dynamic ! 8491: typing and implied typechecking for which lisp is famous, type checking ! 8492: in compiled code is often a myth. Correct code only necessarily works ! 8493: correctly when given corrent arguments. ! 8494: ! 8495: Steve Haflich ! 8496: MIT Experimental Music Studio ! 8497: smh%mit-ems@mit-mc ! 8498: {decvax!genrad, ihnp4!mit-eddie}!mit-ems!smh ! 8499: ! 8500: ! 8501: From [email protected] Wed Aug 15 16:33:44 1984 ! 8502: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8503: id AA00784; Wed, 15 Aug 84 16:33:44 pdt ! 8504: Received: from Xerox.ARPA (xerox.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8505: id AA05115; Wed, 15 Aug 84 14:20:30 pdt ! 8506: Message-Id: <[email protected]> ! 8507: Received: from Semillon.ms by ArpaGateway.ms ; 15 AUG 84 14:19:35 PDT ! 8508: Date: 15 Aug 84 14:18 PDT ! 8509: From: [email protected] ! 8510: Subject: Re: (atom VECTOR): franz vs liszt ! 8511: In-Reply-To: Alan Bawden <[email protected]>'s message of 13 Aug 84 20:08 ! 8512: EDT ! 8513: To: [email protected] ! 8514: Cc: [email protected], [email protected], franz-friends@BERKELEY, ! 8515: [email protected] ! 8516: ! 8517: [Ah, confusion with Interlisp here]. ! 8518: ! 8519: I meant to say "The resolution was some awful switch setting for whether ! 8520: or not to treat them as LISTs" rather than "to treat them as ATOMs". ! 8521: The switch name is HUNKP. ! 8522: ! 8523: Interlisp's ATOM predicate is defined simply as (NOT (LISTP x)), and ! 8524: LISTP is true only of cons cells [thus (LISTP NIL) is false]. ! 8525: ! 8526: -- JonL -- ! 8527: ! 8528: ! 8529: ! 8530: From [email protected] Wed Aug 15 18:21:08 1984 ! 8531: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8532: id AA02292; Wed, 15 Aug 84 18:21:08 pdt ! 8533: Received: from Xerox.ARPA (xerox.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8534: id AA09647; Wed, 15 Aug 84 18:21:57 pdt ! 8535: Message-Id: <[email protected]> ! 8536: Received: from Semillon.ms by ArpaGateway.ms ; 15 AUG 84 18:18:31 PDT ! 8537: Date: 15 Aug 84 18:18 PDT ! 8538: From: [email protected] ! 8539: Subject: Re: bug in assoc ! 8540: In-Reply-To: "smh@mit-ems"@MIT-MC.ARPA's message of 14 Aug 84 17:13:29 ! 8541: EDT ! 8542: To: "smh@mit-ems"@MIT-MC.ARPA ! 8543: Cc: "mcgeer@ucbkim"@BERKELEY, franz-friends@BERKELEY, ! 8544: "[email protected]@udel-relay"@MIT-MC.ARPA, [email protected] ! 8545: ! 8546: Common Lisp also faces the possibility of inconsistent system code due ! 8547: to the handling of cases marked "is an error" (see Manual, sec. 1.2.4); ! 8548: that is, it is undefined as to what happens if you apply CAR to a ! 8549: non-LISTP. All portable system code should therefore certify the type ! 8550: of a datum before taking car or cdr. ASSOC (and ASSQ) from the Franz ! 8551: sources clearly doesn't check the type of the arguments before carcdring ! 8552: away on them. ! 8553: ! 8554: Well, why not "all system code should certify the type before taking ! 8555: car/cdr . . . " -- it certainly can't hurt to "signal an error" rather ! 8556: than fall into some undefined morass. ! 8557: ! 8558: -- JonL -- ! 8559: ! 8560: ! 8561: From [email protected] Wed Aug 15 19:49:22 1984 ! 8562: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8563: id AA02844; Wed, 15 Aug 84 19:49:22 pdt ! 8564: Received: from Xerox.ARPA (xerox.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8565: id AA10989; Wed, 15 Aug 84 19:50:13 pdt ! 8566: Message-Id: <[email protected]> ! 8567: Received: from Semillon.ms by ArpaGateway.ms ; 15 AUG 84 19:48:41 PDT ! 8568: Date: 15 Aug 84 15:00 PDT ! 8569: From: [email protected] ! 8570: Subject: Re: (atom VECTOR): franz vs liszt ! 8571: In-Reply-To: "smh@mit-ems"@MIT-MC.ARPA's message of 14 Aug 84 08:40:00 ! 8572: EDT ! 8573: To: "smh@mit-ems"@MIT-MC.ARPA ! 8574: Cc: [email protected], [email protected], [email protected], ! 8575: franz-friends@BERKELEY ! 8576: ! 8577: MacLisp indeed does have VECTORs, STRINGs, CLASSes, etc. in an extended ! 8578: SmallTalk-like hierarchy, but they are not in the initial system. Some ! 8579: of these used to have autoload properties, but I'm not sure about the ! 8580: state of things now. None of the extended stuff got documented in the ! 8581: 1983 MacLisp manual, mostly because of Pitman's personal preferences for ! 8582: not using the extended stuff. ! 8583: ! 8584: HUNKs are relevant, because the extended heirarchy uses the USRHUNK ! 8585: feature in order to cause system functions to "trap out" on hunks, ! 8586: thereby viewing them in an object-oriented way rather than as lists ! 8587: (Glaaaag!) or as mere simple vectors. ! 8588: ! 8589: -- JonL -- ! 8590: ! 8591: ! 8592: ! 8593: From MLY@MIT-MC Wed Aug 15 22:49:17 1984 ! 8594: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8595: id AA04730; Wed, 15 Aug 84 22:49:17 pdt ! 8596: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8597: id AA13406; Wed, 15 Aug 84 22:49:59 pdt ! 8598: Message-Id: <[email protected]> ! 8599: Date: 16 August 1984 01:49-EDT ! 8600: From: Richard Mlynarik <MLY@MIT-MC> ! 8601: Subject: on the issue of the "ATOMness" of hunks ! 8602: To: PSZ@MIT-MC ! 8603: Cc: ALAN@MIT-MC, GSB@MIT-MC, JonL.pa@XEROX, franz-friends@BERKELEY, ! 8604: smh@MIT-EMS ! 8605: In-Reply-To: Msg of 14 Aug 1984 16:37-EDT from Peter Szolovits <PSZ> ! 8606: ! 8607: From: Peter Szolovits <PSZ> ! 8608: ! 8609: I have a small quarrel with Alan Bawden's statement that "hunks never ! 8610: being atoms in Maclisp" is a universally-agreed bug. There are indeed ! 8611: useful structures that one would like to build in Lisp that act as CONS ! 8612: cells (i.e., CAR and CDR are applicable), but that can have further ! 8613: structure. I have sorely missed such objects in Lisp Machine Lisp and ! 8614: NIL, where flavor-instances are always atomic, when I wanted to build ! 8615: Brand X (interned "list structure" and universal property lists). In ! 8616: Maclisp, I could do this using hunks, though even that was not ! 8617: completely right because I wanted to be able to disallow RPLACA and ! 8618: RPLACD while allowing CAR and CDR, and this was hard, given the hunk ! 8619: abstraction. I would, however, love to have non-atomic flavor-instances ! 8620: ! 8621: The MIT lisp machine system makes some attempt to "support" this sort ! 8622: of thing, by sending :CAR, :CDR, etc messages to instances. The result ! 8623: is that you get an error about an unclaimed message, rather than one ! 8624: about an attempt to take the car of a non-nil atom. LISTP and CONSP ! 8625: both still return NIL when applied to an instance. The way to get RPLACA ! 8626: (or SETF of CAR), etc to not work is simply to not define methods for doing ! 8627: these operations... ! 8628: ! 8629: Is is not really clear to me what the value of such is, unless you get tired ! 8630: of typing too many "(SEND"'s. ! 8631: ! 8632: ! 8633: From goldfarb%[email protected] Fri Aug 17 16:44:40 1984 ! 8634: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8635: id AA00202; Fri, 17 Aug 84 16:44:40 pdt ! 8636: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8637: id AA01032; Fri, 17 Aug 84 16:45:24 pdt ! 8638: Received: From ucf.csnet by csnet-relay; 17 Aug 84 19:26 EDT ! 8639: Received: by ucf-cs.UUCP (4.12/4.7) ! 8640: id AA00852; Fri, 17 Aug 84 15:29:05 edt ! 8641: Date: Fri, 17 Aug 84 15:29:05 edt ! 8642: From: Ben Goldfarb <goldfarb%[email protected]> ! 8643: Message-Id: <[email protected]> ! 8644: To: franz-friends@BERKELEY ! 8645: Subject: ChangeLog ! 8646: ! 8647: The ReadMe file in /usr/src/cmd/ucb/lisp states that there are ChangeLog ! 8648: files in the subdirectories franz and liszt. We got no such files on ! 8649: our distribution tape (Berkeley 4.2bsd). I'd appreciate receiving copies ! 8650: of these files, along with any other documentation of differences between ! 8651: the 4.2 version and prior versions of Franz Lisp. ! 8652: ! 8653: Thanks, ! 8654: ! 8655: Ben Goldfarb ! 8656: University of Central Florida ! 8657: uucp: {duke,decvax,princeton}!ucf-cs!goldfarb ! 8658: ARPA: [email protected] ! 8659: csnet: goldfarb@ucf ! 8660: ! 8661: From [email protected] Sun Aug 26 20:48:24 1984 ! 8662: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8663: id AA11969; Sun, 26 Aug 84 20:48:24 pdt ! 8664: Received: from CORNELL.ARPA (cornell-gw.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8665: id AA18166; Sun, 26 Aug 84 20:46:52 pdt ! 8666: Received: from CORNELL-GVAX.ARPA (gvax) by CORNELL.ARPA (4.30/4.30) ! 8667: id AA16455; Sun, 26 Aug 84 23:48:12 edt ! 8668: Date: Sun, 26 Aug 84 23:45:55 edt ! 8669: From: [email protected] (Mark Bromley) ! 8670: Message-Id: <[email protected]> ! 8671: Received: by CORNELL-GVAX.ARPA (4.30/4.30) ! 8672: id AA14288; Sun, 26 Aug 84 23:45:55 edt ! 8673: To: [email protected] ! 8674: Subject: Bug in open coding of vseti in Liszt 8.36 ! 8675: ! 8676: ! 8677: If (vseti vector index expression) gets open coded by the compiler, ! 8678: the resulting value is the value of index, not the value of expression. ! 8679: This also holds for vseti-byte and vseti-word. ! 8680: ! 8681: The problem is in d_vset in vector.l. The code which builds the return ! 8682: value for immediate vectors assumes that the value of expression is in ! 8683: index-reg, but it never gets put there. ! 8684: ! 8685: One solution would be to change the lines ! 8686: ! 8687: (if g-loc ! 8688: then (if (eq type 'byte) ! 8689: ! 8690: (occuring about 3/4 of the way through d_vset) to ! 8691: (if g-loc ! 8692: then (setq temp (cadr (assq type '((byte cvtbl) ! 8693: (word cvtwl) ! 8694: (long movl))))) ! 8695: (e-write3 temp vect-val index-reg) ! 8696: ! 8697: (if (eq type 'byte) ! 8698: ! 8699: Mark Bromley ! 8700: bromley@cornell ! 8701: ! 8702: ! 8703: From forwarder@UWVAX Mon Aug 27 14:25:15 1984 ! 8704: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8705: id AA19881; Mon, 27 Aug 84 14:25:15 pdt ! 8706: Received: from wisc-rsch.arpa (wisc-rsch.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8707: id AA05251; Mon, 27 Aug 84 14:23:30 pdt ! 8708: Date: Mon, 27 Aug 84 16:26:07 cdt ! 8709: Message-Id: <[email protected]> ! 8710: Received: by wisc-rsch.arpa; Mon, 27 Aug 84 16:26:07 cdt ! 8711: To: franz-friends@BERKELEY ! 8712: Subject: FRANZ to VI and back ! 8713: Cc: [email protected] ! 8714: Sender: forwarder@UWVAX ! 8715: From: [email protected] ! 8716: ! 8717: Escuse me if this is a simple question, but i am a Unix novice. ! 8718: What is the best way to go between VI & Franz when debugging a ! 8719: program? The way I currently do it is to ctrl-Z out of Franz, ! 8720: FG to my VI process, correct my code, FG back to FRANZ, load the ! 8721: corrected code. Is there a better way (do not tell me about ! 8722: Emacs because that is not an option)? ! 8723: -thanks, david ! 8724: ! 8725: From rad@mitre-bedford Mon Aug 27 14:52:55 1984 ! 8726: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8727: id AA20435; Mon, 27 Aug 84 14:52:55 pdt ! 8728: Received: from mitre-bedford (mitre-bedford.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8729: id AA05840; Mon, 27 Aug 84 14:51:11 pdt ! 8730: Message-Id: <[email protected]> ! 8731: Date: Monday, 27 Aug 1984 17:45-EDT ! 8732: From: rad@Mitre-Bedford ! 8733: To: [email protected] ! 8734: Cc: franz-friends@BERKELEY, [email protected] ! 8735: Subject: Re: FRANZ to VI and back ! 8736: In-Reply-To: Your message of Monday, 27 Aug 1984 17:26-EDT. ! 8737: <[email protected]> ! 8738: ! 8739: ! 8740: >>Escuse me if this is a simple question, but i am a Unix novice. ! 8741: >>What is the best way to go between VI & Franz when debugging a ! 8742: >>program? The way I currently do it is to ctrl-Z out of Franz, ! 8743: >>FG to my VI process, correct my code, FG back to FRANZ, load the ! 8744: >>corrected code. Is there a better way (do not tell me about ! 8745: >>Emacs because that is not an option)? ! 8746: ! 8747: It's undocumented in the franz opus 37 manual, but may be in the opus ! 8748: 38: In franz, type (vi foo) and lisp will spin up vi. If it can't ! 8749: find the file foo, it tries for foo.l before creating a new file. If ! 8750: you invoke it as (vil foo), it will load foo back in after you exit ! 8751: from vi. There are similar functions called ex and exl. ! 8752: ! 8753: If you're using BSD4.2, you probably have opus 38. A new book is out ! 8754: called Lispcraft. It is based on franz, opus 38 in particular. You ! 8755: might want to pick that up. The old standby, Lisp, by Winston and ! 8756: Horn, documented Maclisp which is close to franz. Their new, 2nd ! 8757: edition is based on Common Lisp, however, which is different, so watch ! 8758: out! ! 8759: ! 8760: If you don't like ex or vi (say you're an ed-masochist), there are hooks ! 8761: for other editors. Put the following in the .lisprc file in your home ! 8762: directory: ! 8763: ! 8764: (def ed (nlambda (x) ! 8765: (exvi 'ed x nil))) ! 8766: (def edl (nlambda (x) ! 8767: (exvi 'ed x t))) ! 8768: ! 8769: These will give you the same function as ex/vi and exl/vil except ! 8770: using ed. These functions are found in /usr/lib/lisp/auxfns0.l (opus ! 8771: 37, anyway). ! 8772: ! 8773: Dick Dramstad ! 8774: rad@mitre-bedford ! 8775: ! 8776: ! 8777: From liz@maryland Tue Aug 28 10:17:28 1984 ! 8778: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8779: id AA28395; Tue, 28 Aug 84 10:17:28 pdt ! 8780: Received: from maryland.ARPA (maryland.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8781: id AA24861; Tue, 28 Aug 84 10:15:46 pdt ! 8782: Received: by maryland.ARPA (4.12/4.7) ! 8783: id AA20274; Tue, 28 Aug 84 10:59:06 edt ! 8784: Date: Tue, 28 Aug 84 10:59:06 edt ! 8785: From: liz@maryland (Liz Allen) ! 8786: Message-Id: <[email protected]> ! 8787: To: [email protected], rad@Mitre-Bedford ! 8788: Subject: Re: FRANZ to VI and back ! 8789: Cc: franz-friends@BERKELEY ! 8790: ! 8791: One feature of our vi functions is to ask (after returning from vi) ! 8792: whether or not you want to load the file. This gives you the freedom ! 8793: to decide later when you know if you modified the file. To implement ! 8794: this, you could change the last line of exvi from: ! 8795: ! 8796: (cond (doload (load edit_file))) ! 8797: ! 8798: to: ! 8799: ! 8800: (cond ((or doload (query "Load " edit_file "? ")) ! 8801: (load edit_file))) ! 8802: ! 8803: and define query: ! 8804: ! 8805: (defmacro (&rest prompt) ! 8806: `(progn (msg ,@prompt) (yesp (read)))) ! 8807: ! 8808: (or something like that). Exvi is defined in common1.l. ! 8809: ! 8810: Enjoy! ! 8811: ! 8812: -Liz ! 8813: ! 8814: PS You could also send me mail asking about getting our software! ! 8815: ! 8816: ! 8817: From @MIT-MC:[email protected] Wed Aug 29 08:09:14 1984 ! 8818: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8819: id AA09035; Wed, 29 Aug 84 08:09:14 pdt ! 8820: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8821: id AA15198; Wed, 29 Aug 84 08:09:05 pdt ! 8822: Message-Id: <[email protected]> ! 8823: Date: 29 Aug 1984 11:06:09-EDT ! 8824: From: Ingemar.Hulthage@CMU-RI-ISL2 ! 8825: Subject: Vector algebra ! 8826: Apparently-To: <franz-friends@UCB-VAX> ! 8827: ! 8828: ! 8829: I am writing a package of functions for vector algebra in arbitrary (finite) ! 8830: dimensions and it occured to me that I ought to post a message to find ! 8831: out if something like this is alredy available. ! 8832: ! 8833: I am looking forward to the replies ! 8834: ! 8835: ! 8836: From @MIT-MC:[email protected] Fri Aug 31 10:16:03 1984 ! 8837: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8838: id AA04497; Fri, 31 Aug 84 10:16:03 pdt ! 8839: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8840: id AA03527; Fri, 31 Aug 84 10:15:41 pdt ! 8841: Message-Id: <[email protected]> ! 8842: Date: 31 Aug 1984 13:15:27-EDT ! 8843: From: Ingemar.Hulthage@CMU-RI-ISL2 ! 8844: Subject: matrix inversion ! 8845: Apparently-To: <franz-friends@UCB-VAX> ! 8846: ! 8847: ! 8848: I need to numerically invert matrices of varying sizes and I would ! 8849: appreciate pointers to any lisp functions that can do that. ! 8850: ! 8851: ! 8852: From mccune@aids-unix Fri Aug 31 10:42:29 1984 ! 8853: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8854: id AA05060; Fri, 31 Aug 84 10:42:29 pdt ! 8855: Received: from aids-unix (aids-unix.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8856: id AA04133; Fri, 31 Aug 84 10:41:52 pdt ! 8857: Message-Id: <[email protected]> ! 8858: Date: 31 Aug 84 10:40:13 PDT (Fri) ! 8859: From: Brian McCune <mccune@aids-unix> ! 8860: Subject: Mailing list ! 8861: To: franz-friends@BERKELEY ! 8862: ! 8863: Please remove my name from franz-friends. Thanks. ! 8864: ! 8865: Brian McCune ! 8866: MCCUNE@AIDS-UNIX ! 8867: ! 8868: From ucsbcsl!dave@engrvax Tue Sep 4 11:22:20 1984 ! 8869: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8870: id AA10583; Tue, 4 Sep 84 11:22:20 pdt ! 8871: Received: by UCB-VAX.ARPA (4.24/4.33) ! 8872: id AA26490; Tue, 4 Sep 84 11:22:10 pdt ! 8873: From: ucsbcsl!dave@engrvax ! 8874: Received: from engrvax.UCSB (engrvax.ARPA) by ucsbcsl.UCSB (4.12/3.14.ucsb) ! 8875: id AA27209; Tue, 4 Sep 84 10:55:08 pdt ! 8876: Date: Tue, 4 Sep 84 10:55:52 pdt ! 8877: Message-Id: <[email protected]> ! 8878: Received: by engrvax.UCSB (4.12/3.14.ucsb) ! 8879: id AA20764; Tue, 4 Sep 84 10:55:52 pdt ! 8880: To: franz-friends@BERKELEY ! 8881: Subject: I have moved. ! 8882: ! 8883: Please change my mailing address to be 'ucsbcsl!chi!dave' from 'ucsbcsl!dave'. ! 8884: Thanks. ! 8885: ! 8886: From liz@maryland Wed Sep 5 08:34:45 1984 ! 8887: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 8888: id AA19892; Wed, 5 Sep 84 08:34:45 pdt ! 8889: Received: from maryland.ARPA (maryland.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 8890: id AA14415; Wed, 5 Sep 84 08:34:27 pdt ! 8891: Received: by maryland.ARPA (4.12/4.7) ! 8892: id AA09320; Wed, 5 Sep 84 11:33:56 edt ! 8893: Date: Wed, 5 Sep 84 11:33:56 edt ! 8894: From: liz@maryland (Liz Allen) ! 8895: Message-Id: <[email protected]> ! 8896: To: franz-friends@BERKELEY ! 8897: Subject: Maryland software ! 8898: ! 8899: I'm mailing the announcement here again since a few things have ! 8900: changed since I last sent it out here and I have had requests for ! 8901: it. Currently, we are completing the 4.2 switchover and will ! 8902: (hopefully) be starting to distribute it by the end of September. ! 8903: ! 8904: -Liz Allen ! 8905: ! 8906: ----------------------------------------------------------------- ! 8907: ! 8908: Greetings: ! 8909: ! 8910: ! 8911: This is to announce the availability of the Univ of Maryland ! 8912: software distribution. This includes source code for the follow- ! 8913: ing packages which are currently running on a VAX 11/780 under ! 8914: Berkeley UNIX(tm) 4.1: ! 8915: ! 8916: (1) The flavors package written in Franz Lisp. This package has ! 8917: been used successfully in a number of large systems at Mary- ! 8918: land, and while it does not implement all the features of ! 8919: Lisp Machine Flavors, the features present are as close to ! 8920: the Lisp Machine version as possible within the constraints ! 8921: of Franz Lisp. (Note that Maryland flavors code *can* be ! 8922: compiled.) ! 8923: ! 8924: (2) Other Maryland Franz hacks including the INTERLISP-like top ! 8925: level, the lispbreak error handling package, the for macro ! 8926: and the new loader package. ! 8927: ! 8928: (3) The YAPS production system written in Franz Lisp. This is ! 8929: similar to OPS5 but more flexible in the kinds of lisp ! 8930: expressions that may appear as facts and patterns (sublists ! 8931: are allowed and flavor objects are treated atomically), the ! 8932: variety of tests that may appear in the left hand sides of ! 8933: rules and the kinds of actions may appear in the right hand ! 8934: sides of rules. In addition, YAPS allows multiple data ! 8935: bases which are flavor objects and may be sent messages such ! 8936: as "fact" and "goal". ! 8937: ! 8938: (4) The windows package in the form of a C loadable library. ! 8939: This flexible package allows convenient management of multi- ! 8940: ple contexts on the screen and runs on ordinary character ! 8941: display terminals as well as bit-mapped displays. Included ! 8942: is a Franz lisp interface to the window library, a window ! 8943: shell for executing shell processes in windows, and a menu ! 8944: package (also a C loadable library). ! 8945: ! 8946: (5) The phone program. This is a facility to allow two or more ! 8947: users to type messages to each other in separate windows on ! 8948: a tty screen. It uses the Maryland window package and CMU's ! 8949: IPC facility. ! 8950: ! 8951: (6) The calend program, an appointment calendar maintainer. It ! 8952: uses a user file of reminding messages and dates for remind- ! 8953: ing, and can notify a user by messages printed to his termi- ! 8954: nal, sending them mail, or nagging them to get off the ter- ! 8955: minal at a certain time of day. It allows one-time only, ! 8956: weekly, biweekly, monthly, yearly and other similar methods ! 8957: for being reminded. ! 8958: ! 8959: (7) The bbd program, a multiple bulletin board system loosely ! 8960: based on the 'msgs' program. It accepts character-oriented ! 8961: commands and allows user-definable bulletin-boards. ! 8962: ! 8963: (8) Rzasm, a relocating Z80 cross-assembler. Running on the vax ! 8964: it puts out ld-style object files. Its features include, ! 8965: among others: free-form input; (very) long variable/label ! 8966: names; conditional assembly; macros (in 'm4' format); digit ! 8967: labels; global, external, common and local common declara- ! 8968: tions; data and text segments; support of the "undocumented" ! 8969: Z80 instructions (that work on high and low bytes of the ! 8970: index registers separately); expressions using C syntax; and ! 8971: string constants. ! 8972: ! 8973: (9) Zrun, a z80 microprocessor simulator. Zrun simulates the ! 8974: execution of a z80 with 64k RAM, as directed by user com- ! 8975: mands. In addition to the essential commands that cause an ! 8976: rzasm object program to be loaded and executed, there are ! 8977: commands to examine and set registers, flags, and memory ! 8978: locations, to set a breakpoint, to single-step through a ! 8979: program, to re-direct the flow of data through the z80 ! 8980: ports, etc. ! 8981: ! 8982: The distribution currently runs under Berkeley Unix 4.1, but we ! 8983: will be upgrading to 4.2 in early July and the upgrade should be ! 8984: ready for distribution in September. At that time, we will begin ! 8985: to put both the 4.1 and 4.2 sources on the distribution tape. If ! 8986: you are running 4.2 or plan to be running 4.2 in the near future, ! 8987: it is probably worth your while to wait for it. Also at that ! 8988: time, the fee for the distribution will go up from $100 to $250. ! 8989: ! 8990: We also include Franz Lisp in the distribution since it is ! 8991: easier to do that than to describe all the small changes that we ! 8992: have made to the Franz sources. For the 4.1 distribution, we ! 8993: send Franz Opus 38.26. For the 4.2 distribution, we do not yet ! 8994: know which Franz we will be mailing, but it will be whichever we ! 8995: get with our 4.2 Berkeley Unix. ! 8996: ! 8997: ! 8998: How to obtain a tape: ! 8999: ! 9000: To obtain the Univ of Maryland distribution tape: ! 9001: ! 9002: (1) Fill in the form below and sign it. Please indicate whether ! 9003: you want just the 4.1 distribution, both the 4.1 and 4.2 ! 9004: distributions or if you will be obtaining the distribution ! 9005: via a third party or via the Arpanet. ! 9006: ! 9007: (2) Make out a check to "University of Maryland Foundation" for ! 9008: $100 (US dollars) or for $250 (US dollars) if you want the ! 9009: 4.2 distribution. Mail the check and form to: ! 9010: ! 9011: Liz Allen ! 9012: Univ of Maryland ! 9013: Dept of Computer Science ! 9014: College Park MD 20742 ! 9015: ! 9016: ! 9017: (3) If you need an invoice, send me mail. Don't forget to ! 9018: include your non-electronic mailing address. ! 9019: ! 9020: Upon receipt of the money, we will mail you a tape containing our ! 9021: software and the technical reports describing the software. We ! 9022: will also keep you informed of bug fixes via electronic mail. We ! 9023: have an electronic mailing address for this kind of thing. It ! 9024: is: ! 9025: ! 9026: Usenet: ...!seismo!umcp-cs!um-software ! 9027: Arpanet: um-software@maryland ! 9028: ! 9029: Please note that bug fixes will be done only insofar they are ! 9030: consistent with the research purposes of the University of Mary- ! 9031: land. ! 9032: ! 9033: If you have any technical questions, etc, send mail to the ! 9034: above mailing list. If you have any administrative questions, ! 9035: contact Diane Miller via electronic mail: ! 9036: ! 9037: Usenet: ...!seismo!umcp-cs!despina ! 9038: Arpanet: despina@maryland ! 9039: ! 9040: or via phone at (301) 454-4251. ! 9041: ! 9042: ! 9043: Liz Allen ! 9044: ! 9045: Usenet: ...!seismo!umcp-cs!liz ! 9046: Arpanet: liz@maryland ! 9047: ! 9048: ----------------------------------------------------------------- ! 9049: ! 9050: In exchange for the Maryland software tape, I certify to the fol- ! 9051: lowing: ! 9052: ! 9053: a. I will not use any of the Maryland software distribution in ! 9054: a commercial product without obtaining permission from Mary- ! 9055: land first. ! 9056: ! 9057: b. I will keep the Maryland copyright notices in the source ! 9058: code, and acknowledge the source of the software in any use ! 9059: I make of it. ! 9060: ! 9061: c. I will not redistribute this software to anyone without per- ! 9062: mission from Maryland first. ! 9063: ! 9064: d. I will keep Maryland informed of any bug fixes. ! 9065: ! 9066: e. I understand that the software I will be receiving has been ! 9067: developed for research purposes only and may be good for ! 9068: absolutely nothing. The University of Maryland offers no ! 9069: warranties of any kind. Bug fixes will be done only insofar ! 9070: they are consistent with the research purposes of the ! 9071: University of Maryland. ! 9072: ! 9073: f. I am the appropriate person at my site who can make the ! 9074: guarantees in parts a through e. ! 9075: ! 9076: g. I would like the package indicated below: ! 9077: ! 9078: ! 9079: ___ 4.1 distribution only. I have enclosed a check for ! 9080: $100. ! 9081: ! 9082: ! 9083: ___ 4.1 and 4.2 distribution. I have enclosed a check for ! 9084: $250. I also understand that the 4.2 distribution is ! 9085: not yet ready and that there will be a delay until at ! 9086: least August or September before my tape arrives. ! 9087: ! 9088: ___ License and technical reports only. I have enclosed a ! 9089: check for $100 and will obtain the distribution from a ! 9090: site that already has the distribtution or will get it ! 9091: from Maryland via the Arpanet. (Please note specifics ! 9092: at the bottom of the form.) ! 9093: ! 9094: ! 9095: ! 9096: ! 9097: Signature: ______________________________ ! 9098: ! 9099: Name: ______________________________ ! 9100: ! 9101: Position: ______________________________ ! 9102: ! 9103: Company or Organization: ______________________________ ! 9104: ! 9105: Address: ______________________________ ! 9106: ! 9107: ______________________________ ! 9108: ! 9109: Phone number: ______________________________ ! 9110: ! 9111: Electronic mail address: ______________________________ ! 9112: ! 9113: ! 9114: From [email protected] Wed Sep 5 16:11:17 1984 ! 9115: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9116: id AA25823; Wed, 5 Sep 84 16:11:17 pdt ! 9117: Received: from CORNELL.ARPA (cornell-gw.ARPA) by UCB-VAX.ARPA (4.24/4.33) ! 9118: id AA21315; Wed, 5 Sep 84 16:10:58 pdt ! 9119: Received: from CORNELL-GVAX.ARPA (gvax) by CORNELL.ARPA (4.30/4.30) ! 9120: id AA15943; Wed, 5 Sep 84 19:11:13 edt ! 9121: Date: Wed, 5 Sep 84 19:06:27 edt ! 9122: From: [email protected] (Mark Bromley) ! 9123: Message-Id: <[email protected]> ! 9124: Received: by CORNELL-GVAX.ARPA (4.30/4.30) ! 9125: id AA19770; Wed, 5 Sep 84 19:06:27 edt ! 9126: To: franz-friends@BERKELEY ! 9127: Subject: Bug in open coding of vseti in Liszt 8.36 ! 9128: ! 9129: There is a mistake in the open coding of (vseti vector index expression). ! 9130: When the generated code is executed it returns the value of the index expression ! 9131: and not the value of expression. The problem is in d_vset in liszt/vector.l. ! 9132: The code in d_vset that generates the assembler code to compute the ! 9133: return value assumes that code has been generated to put the value of ! 9134: expression in index-reg. This assumption is false. ! 9135: ! 9136: I don't know the 68000 well enough to suggest a solution for it, but the ! 9137: following should work for the VAX. Change the lines ! 9138: ! 9139: (if g-loc ! 9140: then (if (eq type 'byte) ! 9141: ! 9142: (occuring about 3/4 of the way through d_vset) to ! 9143: ! 9144: (if g-loc ! 9145: then ! 9146: #+for-vax ! 9147: (progn ! 9148: (setq temp (cadr (assq type '((byte cvtbl) ! 9149: (word cvtwl) ! 9150: (long movl))))) ! 9151: (e-write3 temp vect-val index-reg) ! 9152: ) ! 9153: ! 9154: #+for-68k ! 9155: (comment Do the same thing for the 68k) ! 9156: ! 9157: (if (eq type 'byte) ! 9158: ! 9159: Also, what is the current Berkeley distribution policy. I tried ftp'ing ! 9160: from ucbvax, but the pub/lisp directory there is empty. I'd like to get my ! 9161: hands on a distribution that has the flavors package in it. ! 9162: ! 9163: Mark Bromley ! 9164: bromley@cornell ! 9165: ! 9166: ! 9167: ! 9168: ! 9169: From jkf@ucbmike Tue Oct 30 12:19:45 1984 ! 9170: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9171: id AA02909; Tue, 30 Oct 84 12:19:45 pst ! 9172: Received: from ucbmike.arpa by UCB-VAX.ARPA (4.24/4.31) ! 9173: id AA23363; Tue, 30 Oct 84 11:43:13 pst ! 9174: Received: by ucbmike.arpa (4.24ucb/4.33) ! 9175: id AA04265; Tue, 30 Oct 84 12:43:39 pst ! 9176: Date: Tue, 30 Oct 84 12:43:39 pst ! 9177: From: John Foderaro (on a sun) <jkf@ucbmike> ! 9178: Message-Id: <[email protected]> ! 9179: To: mrose%[email protected], franz-friends@BERKELEY ! 9180: Subject: Re: Where is franz-friends-request ! 9181: In-Reply-To: Your message of 28 Oct 84 10:04:05 EST (Sun) ! 9182: ! 9183: franz-friends-request@berkeley is valid. occasionlly the mailer tries ! 9184: to look in the alias table while it is being updated. ! 9185: ! 9186: ! 9187: ! 9188: From liz@tove Tue Oct 30 13:18:32 1984 ! 9189: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9190: id AA03406; Tue, 30 Oct 84 13:18:32 pst ! 9191: Received: from tove.ARPA (tove.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31) ! 9192: id AA24224; Tue, 30 Oct 84 12:15:01 pst ! 9193: Received: by tove.ARPA (4.12/4.7) ! 9194: id AA09504; Thu, 25 Oct 84 16:46:39 edt ! 9195: From: Liz Allen <liz@tove> ! 9196: Message-Id: <[email protected]> ! 9197: Date: 25 Oct 1984 1646-EDT (Thursday) ! 9198: To: Rene Bach <BACH@su-score> ! 9199: Cc: franz-friends@BERKELEY ! 9200: Subject: Re: A question ! 9201: In-Reply-To: Your message of Thu 25 Oct 84 09:31:09-PDT. ! 9202: <[email protected]> ! 9203: ! 9204: From: Rene Bach <BACH%[email protected]> ! 9205: ! 9206: I am new on this list and haven't seen any other messages. ! 9207: ! 9208: There isn't too much mail here. ! 9209: ! 9210: Is there a way to find out what are all the atoms which ! 9211: have been defined in Franz (a la mapatoms of INterlisp) ?? ! 9212: ! 9213: The functions (oblist) returns a list of all the atoms. ! 9214: ! 9215: -Liz ! 9216: ! 9217: From neves%[email protected] Tue Oct 30 14:38:15 1984 ! 9218: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9219: id AA04963; Tue, 30 Oct 84 14:38:15 pst ! 9220: Received: from wisc-crys.arpa (wisc-crys.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31) ! 9221: id AA27563; Tue, 30 Oct 84 14:36:12 pst ! 9222: Received: from wisc-ai.uwisc by wisc-crys.arpa; Tue, 30 Oct 84 16:35:00 cst ! 9223: Date: Tue, 30 Oct 84 16:34:59 cst ! 9224: From: neves%[email protected] (David Neves) ! 9225: Message-Id: <[email protected]> ! 9226: Received: by wisc-ai.uwisc; Tue, 30 Oct 84 16:34:59 cst ! 9227: To: franz-friends@BERKELEY ! 9228: Subject: vi/franz question ! 9229: ! 9230: This is a vi/franz question. ! 9231: I would like to use "=" in VI to indent my lisp code. When I ! 9232: type "=" in front of some lisp code I get ! 9233: No alternate filename to substitute for #0 ! 9234: How do I indent Lisp code (besides using autoindent)? ! 9235: -Thanks, David ! 9236: ! 9237: From Johnson%[email protected] Wed Oct 31 05:54:58 1984 ! 9238: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9239: id AA04156; Wed, 31 Oct 84 05:54:58 pst ! 9240: Received: from udel-relay (udel-gw.ARPA) by UCB-VAX.ARPA (4.24/4.31) ! 9241: id AA07029; Wed, 31 Oct 84 05:52:24 pst ! 9242: Message-Id: <[email protected]> ! 9243: Received: From udel-dewey.ARPA by udel-relay.ARPA id a018834 ;31 Oct 84 8:55 EST ! 9244: Date: Wed, 31 Oct 84 8:47:19 EST ! 9245: From: johnson <johnson%[email protected]> ! 9246: To: franz-friends@BERKELEY ! 9247: Cc: johnson%[email protected] ! 9248: Subject: response to lisp/vi question ! 9249: ! 9250: ! 9251: in response to: ! 9252: ! 9253: >I would like to use "=" in VI to indent my lisp code. When I ! 9254: >type "=" in front of some lisp code I get ! 9255: >No alternate filename to substitute for #0 ! 9256: >How do I indent Lisp code (besides using autoindent)? ! 9257: ! 9258: 1. When I type "=" in vi (without :set lisp) I get no response at all. ! 9259: Is it possible that you defined a macro named "=" ? ! 9260: { ! 9261: check your ~/.exrc file for a line beginning: ! 9262: :map = <something-or-other> ! 9263: } ! 9264: ! 9265: 2. Even after: ! 9266: :set lisp ! 9267: ! 9268: A single "=" does not seem to cause the correct action, however, ! 9269: two successive "="s do. ! 9270: ! 9271: to summarize: ! 9272: 1. remove any mapping of "=" from ~/.exrc ! 9273: 2. :set lisp ! 9274: 3. use "==" rather than "=" ! 9275: ! 9276: - johnson@udel-ee ! 9277: ! 9278: ! 9279: From raf%[email protected] Wed Oct 31 11:35:57 1984 ! 9280: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9281: id AA07802; Wed, 31 Oct 84 11:35:57 pst ! 9282: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.31) ! 9283: id AA13682; Wed, 31 Oct 84 11:33:13 pst ! 9284: Received: from bostonu by csnet-relay.csnet id ac00303; 31 Oct 84 14:27 EST ! 9285: Received: by csvaxa.ARPA (4.12/4.7) ! 9286: id AA14678; Wed, 31 Oct 84 13:53:18 est ! 9287: Date: Wed, 31 Oct 84 13:53:18 est ! 9288: From: Rafail Ostrovsky <raf%[email protected]> ! 9289: Message-Id: <[email protected]> ! 9290: To: FRANZ-FRIENDS%[email protected] ! 9291: Subject: MAILING LIST ! 9292: ! 9293: Hello. ! 9294: I would like to subscribe to your mailing list. ! 9295: I am a grad. student at Boston U. My address is: ! 9296: ! 9297: raf%[email protected] ! 9298: ! 9299: Thank you, -Raf ! 9300: ! 9301: From neves%[email protected] Wed Oct 31 12:40:33 1984 ! 9302: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9303: id AA09034; Wed, 31 Oct 84 12:40:33 pst ! 9304: Received: from wisc-crys.arpa (wisc-crys.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31) ! 9305: id AA15180; Wed, 31 Oct 84 12:37:38 pst ! 9306: Received: from wisc-ai.uwisc by wisc-crys.arpa; Wed, 31 Oct 84 14:35:47 cst ! 9307: Date: Wed, 31 Oct 84 14:35:55 cst ! 9308: From: neves%[email protected] (David Neves) ! 9309: Message-Id: <[email protected]> ! 9310: Received: by wisc-ai.uwisc; Wed, 31 Oct 84 14:35:55 cst ! 9311: To: franz-friends@BERKELEY ! 9312: Subject: re: Indenting lisp code in VI ! 9313: ! 9314: Thanks for the response on indenting for Franz. It seems as though ! 9315: our systems people do not use Lisp and so have set up everyone's ! 9316: .exrc file to map = to something else. Your site might be doing the ! 9317: same thing to this or other VI/Lisp features! Stop them now. ! 9318: ! 9319: From @MIT-MC:[email protected] Wed Oct 31 17:37:36 1984 ! 9320: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9321: id AA14939; Wed, 31 Oct 84 17:37:36 pst ! 9322: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31) ! 9323: id AA02960; Wed, 31 Oct 84 17:14:37 pst ! 9324: Message-Id: <[email protected]> ! 9325: Date: 31 Oct 84 20:08:41 EST ! 9326: From: Ingemar.Hulthage@CMU-RI-ISL2 ! 9327: Subject: Floating point division ! 9328: To: BBoard.Maintainer@CMU-CS-A ! 9329: ! 9330: ! 9331: Is there a pre-defined function in Franz Lisp that never uses integer ! 9332: division when it differs from floating point division ? Obviously it is easy ! 9333: to write (quotient (float a) b) or to write a function/macro with the same ! 9334: effect. However, since Franz does a good job of dealing with different kinds ! 9335: of numbers in other cases, it is inconvenient and inefficient if such a ! 9336: function is not available in the system. ! 9337: ! 9338: ! 9339: From eng20201%[email protected] Thu Nov 1 16:02:58 1984 ! 9340: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9341: id AA05698; Thu, 1 Nov 84 16:02:58 pst ! 9342: Received: from WISCVM.ARPA (wiscvm.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31) ! 9343: id AA08850; Thu, 1 Nov 84 16:00:19 pst ! 9344: Message-Id: <[email protected]> ! 9345: Received: from [email protected] by WISCVM.ARPA on 11/01/84 at ! 9346: 18:00:40 CST ! 9347: Date: 1-Nov-84 18:58:53 EST ! 9348: From: John Sutter <eng20201%[email protected]> ! 9349: Subject: Pretty typer ! 9350: To: franz-friends@BERKELEY ! 9351: Cc: eng20201%[email protected] ! 9352: ! 9353: ----- ! 9354: ! 9355: Does anyone know of a pretty typer for Franz Lisp?.. ! 9356: ! 9357: If you do, please reply to me directly. ! 9358: ! 9359: Thanks ! 9360: ! 9361: ---- John ! 9362: ! 9363: ----- ! 9364: ! 9365: From holtz%carleton.cdn%[email protected] Sun Nov 4 14:39:06 1984 ! 9366: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9367: id AA03203; Sun, 4 Nov 84 14:39:06 pst ! 9368: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.31) ! 9369: id AA04466; Sun, 4 Nov 84 14:36:25 pst ! 9370: Received: from ubc by csnet-relay.csnet id a004399; 4 Nov 84 15:43 EST ! 9371: Date: Sun, 4 Nov 84 12:37:03 pst ! 9372: Received: by ubc-ean.UUCP id AA17658; Sun, 4 Nov 84 12:37:03 pst ! 9373: From: Neal Holtz <holtz%carleton.cdn%[email protected]> ! 9374: To: franz-friends%[email protected] ! 9375: Mmdf-Warning: Parse error in preceding line at CSNET-RELAY.ARPA ! 9376: Message-Id: 133:[email protected] ! 9377: Subject: Franz on Apollos (or, Fritz Kunze, where are you?) ! 9378: ! 9379: Sorry to send this to the newsgroup, but if Fritz (or anyone else, ! 9380: for that matter) can tell me anything about the possibility of ! 9381: having Franz run on Apollo workstations (under AEGIS) in the ! 9382: near future, I would be most appreciative. ! 9383: ! 9384: ! 9385: From holtz%carleton.cdn%[email protected] Sun Nov 4 14:39:20 1984 ! 9386: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9387: id AA03212; Sun, 4 Nov 84 14:39:20 pst ! 9388: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.31) ! 9389: id AA04473; Sun, 4 Nov 84 14:36:37 pst ! 9390: Received: from ubc by csnet-relay.csnet id a004408; 4 Nov 84 15:45 EST ! 9391: Date: Sun, 4 Nov 84 12:37:03 pst ! 9392: Received: by ubc-ean.UUCP id AA17658; Sun, 4 Nov 84 12:37:03 pst ! 9393: From: Neal Holtz <holtz%carleton.cdn%[email protected]> ! 9394: To: franz-friends%[email protected] ! 9395: Mmdf-Warning: Parse error in preceding line at CSNET-RELAY.ARPA ! 9396: Message-Id: 133:[email protected] ! 9397: Subject: Franz on Apollos (or, Fritz Kunze, where are you?) ! 9398: ! 9399: Sorry to send this to the newsgroup, but if Fritz (or anyone else, ! 9400: for that matter) can tell me anything about the possibility of ! 9401: having Franz run on Apollo workstations (under AEGIS) in the ! 9402: near future, I would be most appreciative. ! 9403: ! 9404: ! 9405: From fkunze%ucbopal.CC%[email protected] Sun Nov 4 23:25:12 1984 ! 9406: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9407: id AA03125; Sun, 4 Nov 84 23:25:12 pst ! 9408: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.31) ! 9409: id AA04781; Sun, 4 Nov 84 23:22:27 pst ! 9410: Received: from ucb-vax.arpa by csnet-relay.arpa id a006482; 5 Nov 84 2:21 EST ! 9411: Received: from ucbjade.CC.Berkeley.ARPA (ucbjade.ARPA) by UCB-VAX.ARPA (4.24/4.31) ! 9412: id AA04236; Sun, 4 Nov 84 22:58:35 pst ! 9413: Received: from ucbopal.CC.Berkeley.ARPA (ucbopal.ARPA) ! 9414: by ucbjade.CC.Berkeley.ARPA (4.17/4.27.2) ! 9415: id AA14292; Sun, 4 Nov 84 22:59:18 pst ! 9416: Received: by ucbopal.CC.Berkeley.ARPA (4.17/4.28) ! 9417: id AA03601; Sun, 4 Nov 84 22:59:26 pst ! 9418: Date: Sun, 4 Nov 84 22:59:26 pst ! 9419: From: Fritz Kunze <fkunze%ucbopal.CC%[email protected]> ! 9420: Message-Id: <[email protected]> ! 9421: To: franz-friends%ucb-vax.arpa%[email protected], ! 9422: holtz%carleton.cdn%ubc.csnet%[email protected] ! 9423: Subject: Re: Franz on Apollos (or, Fritz Kunze, where are you?) ! 9424: ! 9425: We are working on an Apollo port right now. Due to some ! 9426: non-standard features in the Apollo operating system, ! 9427: the port is requiring far more time than we originally ! 9428: anticipated. We are very close to a working interpreter, ! 9429: but the compiler will require more time. Are you interested ! 9430: in the Interpreter first? ! 9431: ---Fritz Kunze ! 9432: Franz Inc. ! 9433: 2920 Domingo, suite 203 ! 9434: Berkeley, CA 94705 ! 9435: (415) 540-1224 ! 9436: ! 9437: ! 9438: ! 9439: From abrams@mitre Mon Nov 5 11:41:38 1984 ! 9440: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9441: id AA08762; Mon, 5 Nov 84 11:41:38 pst ! 9442: Received: from mitre (mitre.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31) ! 9443: id AA06184; Mon, 5 Nov 84 11:38:18 pst ! 9444: Message-Id: <[email protected]> ! 9445: Date: 5 Nov 1984 14:17:36 EST (Monday) ! 9446: From: Marshall Abrams <abrams@mitre> ! 9447: Subject: Call for papers: Expert Systems Symposium ! 9448: To: add1:@mitre ! 9449: Cc: abrams@mitre ! 9450: ! 9451: Call for Papers ! 9452: ! 9453: Expert Systems in Government Conference ! 9454: ! 9455: October 23-25, 1985 ! 9456: ! 9457: THE CONFERENCE objective is to allow the developers and implementers ! 9458: of expert systems in goverenment agencies to exchange information and ! 9459: ideas first hand for the purpose of improving the quality of ! 9460: existing and future expert systems in the government sector. ! 9461: Artificial Intelligence (AI) has recently been maturing so rapidly ! 9462: that interest in each of its various facets, e.g., robotics, vision, ! 9463: natural language, supercomputing, and expert systems, has acquired ! 9464: an increasing following and cadre of practitioners. ! 9465: ! 9466: PAPERS are solicited which discuss the subject of the conference. ! 9467: Original research, analysis and approaches for defining expert ! 9468: systems issues and problems such as those identified in the ! 9469: anticipated session topics, methodological approaches for analyzing ! 9470: the scope and nature of expert system issues, and potential ! 9471: solutions are of particular interest. Completed papers are to be no ! 9472: longer than 20 pages including graphics and are due 1 May 1985. ! 9473: Four copies of papers are to be sent to: ! 9474: ! 9475: Dr. Kamal Karna, Program Chairman ! 9476: MITRE Corporation W852 ! 9477: 1820 Dolley Madison Boulevard ! 9478: McLean, Virginia 22102 ! 9479: Phone (703) 883-5866 ! 9480: ARPANET: Karna @ Mitre ! 9481: ! 9482: Notification of acceptance and manuscript preparation instructions ! 9483: will be provided by 20 May 1985. ! 9484: ! 9485: THE CONFERENCE is sponsored by the IEEE Computer Society and The ! 9486: MITRE Corporation in cooperation with The Association for Computing ! 9487: Machinery, The american Association for Artificial Intelligence and ! 9488: The American Institute of Aeronautics and Astronautics National ! 9489: Capital Section. This conference will offer high quality technical ! 9490: exchange and published proceedings. ! 9491: ! 9492: It will be held at Tyson's Westpark Hotel, Tysons Corner, McLean, ! 9493: VA, suburban Washington, D.C. ! 9494: ! 9495: ! 9496: TOPICS OF INTEREST ! 9497: ! 9498: The topics of interest include the expert systems in the following ! 9499: applications domains (but are not limited to): ! 9500: ! 9501: 1. Professional: Accounting, Consulting, Engineering, ! 9502: Finance, Instruction, Law, Marketing, ! 9503: Management, Medicine ! 9504: Systems, Intelligent DBMS ! 9505: ! 9506: 2. Office Automation: Text Understanding, Intelligent ! 9507: ! 9508: 3. Command & Control: Intelligence Analysis, Planning, ! 9509: Targeting, Communications, Air Traffic ! 9510: Control ! 9511: ! 9512: 4. Exploration: Space, Prospecting, Mineral, Oil ! 9513: ! 9514: Archeology ! 9515: ! 9516: 5. Weapon Systems: Adaptive Control, Electronic Warfare, ! 9517: Star Wars, Target Identification ! 9518: ! 9519: 6. System Engineering: Requirements, Preliminary Design, ! 9520: Critical Design, Testing, and QA ! 9521: ! 9522: 7. Equipment: Design Monitoring, Control, Diagnosis, ! 9523: Maintenance, Repair, Instruction ! 9524: ! 9525: 8. Project Management: Planning, Scheduling, Control ! 9526: ! 9527: 9. Flexible Automation: Factory and Plan Automation ! 9528: ! 9529: 10. Software: Automatic Programming, Specifications, ! 9530: Design, Production, Maintenance and ! 9531: Verification and Validation ! 9532: ! 9533: 11. Architecture: Single, Multiple, Distributed Problem ! 9534: Solving Tools ! 9535: ! 9536: 12. Imagery: Photo Interpretation, Mapping, etc. ! 9537: ! 9538: 13. Education: Concept Formation, Tutoring, Testing, ! 9539: Diagnosis, Learning ! 9540: ! 9541: 14. Entertainment and Intelligent Games, Investment and ! 9542: Expert Advice Giving: Finances, Retirement, Purchasing, ! 9543: Shopping, Intelligent Information ! 9544: Retrieval ! 9545: ! 9546: ! 9547: ! 9548: From decvax!utzoo!dciem!nrcaero!clan.carleton!holtz Mon Nov 5 17:32:56 1984 ! 9549: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9550: id AA14064; Mon, 5 Nov 84 17:32:56 pst ! 9551: Received: by UCB-VAX.ARPA (4.24/4.39) ! 9552: id AA14362; Mon, 5 Nov 84 17:30:11 pst ! 9553: Return-Path: <decvax!utzoo!dciem!nrcaero!clan.carleton!holtz> ! 9554: Received: by decvax.UUCP (4.12/1.0) ! 9555: id AA28321; Mon, 5 Nov 84 16:46:11 est ! 9556: Date: Sun, 4 Nov 84 21:23:59 est ! 9557: From: Neal Holtz <decvax!carleton!clan.carleton!holtz@clan.> ! 9558: Message-Id: <8411050223.AA07104@clan. UUCP> ! 9559: Received: by clan. UUCP (4.12/3.14) ! 9560: id AA07104; Sun, 4 Nov 84 21:23:59 est ! 9561: To: nrcaero!dciem!utzoo!decvax!ucbvax!franz-friends ! 9562: Subject: Franz on Apollos (or -- Fritz Kunze, where are you?) ! 9563: ! 9564: Sorry to send this to the newsgroup, but if Fritz (or anyone else, ! 9565: for that matter) can tell me anything about the possibility of ! 9566: having Franz run on Apollo workstations (under AEGIS) in the ! 9567: near future, I would be most appreciative. ! 9568: ! 9569: ! 9570: ! 9571: ! 9572: ! 9573: ! 9574: ! 9575: From [email protected] Tue Nov 6 16:15:33 1984 ! 9576: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9577: id AA25403; Tue, 6 Nov 84 16:15:33 pst ! 9578: Received: from SCRC-STONY-BROOK.ARPA (scrc-stony-brook.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31) ! 9579: id AA06061; Tue, 6 Nov 84 16:12:18 pst ! 9580: Message-Id: <[email protected]> ! 9581: Received: from CHAGRIN by SCRC-STONY-BROOK via CHAOS with CHAOS-MAIL id 122057; Tue 6-Nov-84 19:13:41-EST ! 9582: Date: Tue, 6 Nov 84 19:11 EST ! 9583: From: Richard Brenner <[email protected]> ! 9584: Subject: Job Opportunities ! 9585: To: maple-sys@BERKELEY, symalg%rand-unix.arpa%[email protected], ! 9586: franz-friends@BERKELEY ! 9587: In-Reply-To: The message of 6 Nov 84 15:51-EST from Richard Pavelle <RP at SCRC-TENEX> ! 9588: ! 9589: ! 9590: Symbolics, Inc. of Cambridge is the acknowledged leader in the field of ! 9591: Symbolic Processing, offering the premier LISP-based Symbolic Processor ! 9592: for advanced problem-solving applications. We are a fast-growing, ! 9593: high-tech company with new, modern facilities right in Cambridge. Recent ! 9594: expansion has created opportunities for the following experienced ! 9595: professionals: ! 9596: ! 9597: ! 9598: Member of Technical Staff ! 9599: ! 9600: You will assist with maintenance and enhancement of MACSYMA, a large ! 9601: Computer Algebra System written in LISP and used by engineers and ! 9602: scientists for performing symbolic computations. Immediate projects ! 9603: could include design and implementation of tools for conversion to ! 9604: Common LISP, improving modularity, modernizing the user interface, ! 9605: improving performance, and design and implementation of new mathematical ! 9606: packages based on the latest available algorithms. Work will be ! 9607: performed on all versions of MACSYMA using Symbolics 3600 Family Lisp ! 9608: Machines. A strong background in mathematics and Lisp programming is ! 9609: preferred. Experience with MACSYMA is desirable. ! 9610: ! 9611: ! 9612: Technical Sales Support Engineer ! 9613: ! 9614: You will provide technical support to our internal sales staff, to ! 9615: customers and to prospective customers. Responsibilities include ! 9616: assistance at demonstration sites, installations on several kinds of ! 9617: machines, and a full range of customer support activities. This could ! 9618: include design, development and delivery of a trainging course for ! 9619: MACSYMA users. Qualified applicants will have experience with a ! 9620: high-level language, preferably MACSYMA. Good written and verbal ! 9621: communication skills and prior software project involvement are desired. ! 9622: B.S. degree or equivalent and 2 years experience preferred. ! 9623: ! 9624: ! 9625: Qualified candidates should send their resume,in strict confidence, ! 9626: including salary history, to Gina Setteducati, Personnel Supervisor, ! 9627: Symbolics, Inc., 11 Cambridge Center, Cambridge, MA 02142. An equal ! 9628: opportunity employer. ! 9629: ! 9630: ! 9631: From [email protected] Wed Nov 7 19:52:19 1984 ! 9632: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9633: id AA08630; Wed, 7 Nov 84 19:52:19 pst ! 9634: Received: from uw-beaver.arpa (uw-beaver.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31) ! 9635: id AA05368; Wed, 7 Nov 84 18:51:47 pst ! 9636: Received: by uw-beaver.arpa (4.12/2.2) ! 9637: id AA00936; Wed, 7 Nov 84 17:50:03 pst ! 9638: Return-Path: <ssc-vax!steve> ! 9639: Received: by ssc-vax (4.12/4.7) ! 9640: id AA06915; Wed, 7 Nov 84 17:24:40 pst ! 9641: Date: Wed, 7 Nov 84 17:24:40 pst ! 9642: From: [email protected] (Steve White) ! 9643: Message-Id: <8411080124.AA06915@ssc-vax> ! 9644: To: uw-beaver!franz-friends@BERKELEY ! 9645: Subject: readtable within fasl ! 9646: ! 9647: ! 9648: In "fasl.c" before the literals are read back out of the object file, ! 9649: the readtable is rebound to the 'standard-readtable'. This short-circuits ! 9650: any type of character macro expansion. Does anyone known a workaround ! 9651: for this? In NIL you can specify the readtable associated with the object ! 9652: code, I guess I'm wondering how to mimic this behavior in franz? ! 9653: thanks ! 9654: steve white ! 9655: (ssc-vax!steve@uw-beaver) ! 9656: ! 9657: From @MIT-MC:smh@MIT-EDDIE Thu Nov 8 07:49:13 1984 ! 9658: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9659: id AA12925; Thu, 8 Nov 84 07:49:13 pst ! 9660: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31) ! 9661: id AA17112; Thu, 8 Nov 84 07:46:31 pst ! 9662: Message-Id: <[email protected]> ! 9663: Received: by mit-eddie.Mit-chaos.Arpa id AA20888; Thu, 8 Nov 84 10:33:41 est ! 9664: Date: Thu, 8 Nov 84 10:33:41 est ! 9665: From: Steven M. Haflich <smh@mit-eddie> ! 9666: To: franz-friends@BERKELEY ! 9667: Subject: Re: readtable within fasl ! 9668: ! 9669: I too was bothered by fasl's insistence on using the standard readtable ! 9670: to process literals in liszt-compiled files until I realized the reason ! 9671: for this limitation: ! 9672: ! 9673: All source input to liszt is processed by `read' -- that is, the ! 9674: compiler reads only forms, never ascii strings. In order to place a ! 9675: literal form in an object file, liszt must essentially convert the form ! 9676: back into ASCII via `print'. (Actually, a somewhat modified version ! 9677: which knows how to wrap an assembler `.asciz' directive around the ! 9678: printed representation of the form, etc.) Unfortunately, liszt can make ! 9679: no easy assumption about what strange readtable is likely to be active ! 9680: at load time, so the only sane choice is to use the standard readtable. ! 9681: ! 9682: In other words, you shouldn't think of literal forms stored in a fasl ! 9683: object file as external (ASCII) representation of lisp data. Rather, ! 9684: liszt/fasl use ASCII as a convenient "position-independent" encoding of ! 9685: a form which has already been processed by read at compile time. This ! 9686: is entirely analogous to what traditional compilers and assemblers do ! 9687: with numeric constants represented in ASCII inside a program, except ! 9688: their compiler-to-loader data format uses the native binary number ! 9689: representation of the object machine. ! 9690: ! 9691: One could argue that this isn't really a limitation provided one is ! 9692: willing and able to provide the desired readtable at compile time. ! 9693: Usually this isn't a problem, although I once I had a macro which wanted ! 9694: to insert into a form a particular uninterned symbol which (obviously) ! 9695: couldn't even exist until execution time. I was forced to wrap the form ! 9696: inside another function which would accomplish the substitution at load ! 9697: time. ! 9698: ! 9699: There is no reason liszt could not be made to copy ASCII forms into the ! 9700: fasl file without read->print translation, but this would require ! 9701: changes to the compiler and to fasl format, things not to be done ! 9702: lightly. If you *really* need the facility, and don't need to read huge ! 9703: volumes of data, you could include ASCII forms inside a fasl file by ! 9704: encoding them as lisp strings, and seeing that they get processed by an ! 9705: appropriate function at load time, something like: ! 9706: ! 9707: (defun strange-read (str) ! 9708: (let ((readtable strange-readtable)) ! 9709: (readlist (explodec str)))) ! 9710: ! 9711: Then you can do things like: ! 9712: (setq foo (strange-read ") a b )c d( e (") ! 9713: ! 9714: [What? You don't like my readtable with the parens reversed?] The ! 9715: invocation of `strange-read' can, of course, be conveniently macrofied. ! 9716: If appropriate, automatic printing of literal strings can also be ! 9717: performed by compile time macros. You will have to deal with the ! 9718: problem of escaping quotes inside these forms, and you might want to ! 9719: enable string garbage collection if you do a lot of this sort of thing. ! 9720: ! 9721: I know it's ugly, but... ! 9722: ! 9723: Steve Haflich ! 9724: ! 9725: ! 9726: From @MIT-MC:smh@MIT-EDDIE Thu Nov 8 12:17:02 1984 ! 9727: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9728: id AA15294; Thu, 8 Nov 84 12:17:02 pst ! 9729: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31) ! 9730: id AA22393; Thu, 8 Nov 84 11:59:13 pst ! 9731: Message-Id: <[email protected]> ! 9732: Received: by mit-eddie.Mit-chaos.Arpa id AA21531; Thu, 8 Nov 84 12:51:14 est ! 9733: Date: Thu, 8 Nov 84 12:51:14 est ! 9734: From: Steven M. Haflich <smh@mit-eddie> ! 9735: To: franz-friends@BERKELEY ! 9736: Subject: Re: Re: readtable within fasl ! 9737: ! 9738: There was a typo in my previous mailing. The function "explodec" ! 9739: should have been "exploden". ! 9740: ! 9741: ! 9742: From [email protected] Thu Nov 8 14:24:38 1984 ! 9743: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9744: id AA16474; Thu, 8 Nov 84 14:24:38 pst ! 9745: Received: from SU-SCORE.ARPA (su-score.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31) ! 9746: id AA25584; Thu, 8 Nov 84 14:22:00 pst ! 9747: Message-Id: <[email protected]> ! 9748: Date: Thu 8 Nov 84 14:21:16-PST ! 9749: From: Rene Bach <[email protected]> ! 9750: Subject: printing delayed in Eunice ! 9751: To: franz-friends@BERKELEY ! 9752: Cc: [email protected] ! 9753: ! 9754: It appears that printing gets delayed in Eunice. What I mean by that ! 9755: is that I have a print statement which should indicate that the system ! 9756: is progressing. However, the system is chugging along, nothing shows ! 9757: for a long while and then the printing happens ALL at ONCE ! As if the ! 9758: output was buffered and go printed when something else needed to be ! 9759: printed. ! 9760: ! 9761: As anyone run across this before ? Is there a flag one needs to set ? ! 9762: ! 9763: Has it to do with Eunice ? What I am printing is just an atom and a ", ". ! 9764: When I print longer stuff, no buffering is noticed. ! 9765: ! 9766: Thanks ! 9767: Rene ! 9768: ------- ! 9769: ! 9770: From [email protected] Thu Nov 8 16:34:36 1984 ! 9771: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9772: id AA17894; Thu, 8 Nov 84 16:34:36 pst ! 9773: Received: from Xerox.ARPA (xerox.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.31) ! 9774: id AA27172; Thu, 8 Nov 84 15:30:06 pst ! 9775: Message-Id: <[email protected]> ! 9776: Received: from Burger.ms by ArpaGateway.ms ; 08 NOV 84 15:29:24 PST ! 9777: Date: 8 Nov 84 15:22 PST ! 9778: From: [email protected] ! 9779: Subject: Re: readtable within fasl ! 9780: In-Reply-To: Steven M. Haflich <[email protected]>'s message of Thu, 8 ! 9781: Nov 84 10:33:41 est ! 9782: To: [email protected] ! 9783: Cc: franz-friends@BERKELEY ! 9784: ! 9785: The problems with a user-tailorable READ is one of the reasons why, over ! 9786: 12 years ago, we chose a format for MacLisp's FASL files that is ! 9787: somewhat akin to a position-independent list encoding. (But in fact, it ! 9788: was primarily for speed that the READ-oriented option was abandoned). ! 9789: ! 9790: However, there was still the need to introduce load-time evaluation, in ! 9791: order to create structures that can't be known even faintly at compile ! 9792: time; there is an "internal" marker, accessible to the MacLisp user as a ! 9793: global variable (named SQUID, I believe), so that the portions of a ! 9794: structure that need to be eval'd at load time could be marked. E.g. ! 9795: (FOO 3 '(SOME (DEEPLY NESTING (LIST IN #,LISPSYSTEMDATE)))) ! 9796: and the #, signals a spot for load-time evaluation, even though the ! 9797: overall structure is essentally a QUOTE form. ! 9798: ! 9799: One needn't imagine that #, is the only client of this "internal" marker ! 9800: -- it provides the way to get all but the trivial datatypes into ! 9801: quotified structures; for example, I may have an input syntax for ! 9802: arrays, but still PRINT won't put them out (MacLisp PRINT won't, at ! 9803: least), and certainly not every conceivable datatype needs a special ! 9804: encoding for the FASL file format; merely a LIST, which is viewed as a ! 9805: general program by EVAL, is satisfactory to create any createable ! 9806: datatype instance. ! 9807: ! 9808: Interlisp too has a loadtime evaluation construct, but it may only ! 9809: replace a QUOTE -- not some sub-piece of data underneath a QUOTE, such ! 9810: as indicated by the #, above. A primary reason for this limitation is ! 9811: the similarity of Interlisp's and Franz's compiler output formats -- ! 9812: basically an ascii string to which READ is applied. MacLisp's loader ! 9813: is indeed quite more complex, but it results in a space savings for the ! 9814: FASL files and a considerable time savings when loading them. ! 9815: ! 9816: -- Jon L White -- ! 9817: ! 9818: ! 9819: ! 9820: From @MIT-MC:[email protected] Fri Nov 9 12:09:40 1984 ! 9821: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9822: id AA26238; Fri, 9 Nov 84 12:09:40 pst ! 9823: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 9824: id AA04311; Fri, 9 Nov 84 12:06:51 pst ! 9825: Message-Id: <[email protected]> ! 9826: Date: 9 Nov 84 14:02:29 EST ! 9827: From: Nancy.Skooglund@CMU-RI-ISL3 ! 9828: Subject: opening file for output, append ! 9829: To: BBoard.Maintainer@CMU-CS-A ! 9830: ! 9831: Does anyone know how to open a file for output in Franz lisp and ! 9832: @i(append) to that file? The function "outfile" always deletes the old ! 9833: version first. ! 9834: ! 9835: Thanks, ! 9836: Nancy Skooglund ! 9837: ! 9838: ! 9839: From @MIT-MC:[email protected] Sun Nov 11 11:57:03 1984 ! 9840: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9841: id AA16052; Sun, 11 Nov 84 11:57:03 pst ! 9842: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 9843: id AA15747; Sun, 11 Nov 84 11:54:17 pst ! 9844: Message-Id: <[email protected]> ! 9845: Date: 11 Nov 84 00:15:49 EST ! 9846: From: David.Yaskin@CMU-CS-H ! 9847: Subject: Franz Question ! 9848: To: BBoard.Maintainer@CMU-CS-A ! 9849: ! 9850: ! 9851: How does one change the depth and length of list returned from functions. ! 9852: While using CMULisp it keeps returning & instead of my list. ! 9853: ! 9854: David Yaskin ( day@h) ! 9855: ! 9856: ! 9857: From Johnson%[email protected] Sun Nov 11 19:11:37 1984 ! 9858: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9859: id AA19376; Sun, 11 Nov 84 19:11:37 pst ! 9860: Received: from udel-relay (udel-gw.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 9861: id AA21463; Sun, 11 Nov 84 19:08:46 pst ! 9862: Message-Id: <[email protected]> ! 9863: Received: From udel-dewey.ARPA by udel-relay.ARPA id a010044 ! 9864: ;11 Nov 84 22:09 EST ! 9865: Date: Sun, 11 Nov 84 22:07:41 EST ! 9866: From: johnson <johnson%[email protected]> ! 9867: To: [email protected] ! 9868: Cc: franz-friends@BERKELEY, johnson%[email protected] ! 9869: Subject: Re: Franz Question ! 9870: ! 9871: -------------------- for franz ----------------------------- ! 9872: In franz lisp, 'prinlevel' is a variable controlling the ! 9873: depth to which the top-level is to print lists, 'prinlength' ! 9874: controls how many elements of a list are printed by the ! 9875: top-level. For either variable, a value of 'nil' represents ! 9876: infinite depth or length. ! 9877: ! 9878: If franz is printing expressions as '&' then ! 9879: prinlevel has a value of 0. ! 9880: ! 9881: you should ! 9882: (setq prinlevel nil) ! 9883: to print lists of arbitrary depth. ! 9884: (see Appendix B of the Franz manual) ! 9885: ! 9886: ---------------- for CMU -------------------- ! 9887: ! 9888: In CMULisp, tlprint does the top-level printing, and this is ! 9889: defined, (in, at least the 2 systems that I use) as: ! 9890: ! 9891: '(lambda (x) (printlev x 4)) ! 9892: ! 9893: if your functions always return &, then perhaps someone has defined ! 9894: it as '(lambda (x) (printlev x 0)) ! 9895: ! 9896: if you want to change it you may either: ! 9897: 1. (sstatus translink nil) ! 9898: (defun tlprint (x) (printlev x <some-large-number>)) ! 9899: ! 9900: OR, the solution I prefer: ! 9901: ! 9902: 2. (load 'toplevel) ; unnecessary in some installations. ! 9903: (defun tlprint (x) (top-print x)) ! 9904: ! 9905: causing 'prinlevel' and 'prinlength' to have ! 9906: the effect described above for the franz system. ! 9907: ! 9908: NB: the tempting solution: ! 9909: (defun tlprint (x) (printlev x prinlevel)) ! 9910: FAILS in the case that prinlevel is nil ! 9911: ! 9912: ! 9913: -johnson@udel-ee ! 9914: ! 9915: From Johnson%[email protected] Sun Nov 11 19:31:52 1984 ! 9916: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9917: id AA19491; Sun, 11 Nov 84 19:31:52 pst ! 9918: Received: from udel-relay (udel-gw.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 9919: id AA21770; Sun, 11 Nov 84 19:29:03 pst ! 9920: Message-Id: <[email protected]> ! 9921: Received: From udel-dewey.ARPA by udel-relay.ARPA id a010257 ! 9922: ;11 Nov 84 22:29 EST ! 9923: Date: Sun, 11 Nov 84 22:21:49 EST ! 9924: From: johnson <johnson%[email protected]> ! 9925: To: [email protected] ! 9926: Cc: franz-friends@BERKELEY, johnson%[email protected] ! 9927: Subject: Re: opening file for output, append ! 9928: ! 9929: In later versions of franz, 'outfile' takes a second argument; ! 9930: to open a file for appending: ! 9931: ! 9932: (setq portname (outfile '<filename> 'a)) ! 9933: ! 9934: {try: ! 9935: (help outfile) ! 9936: for a full description.} ! 9937: ! 9938: If this does not work on your version, I have a hack that associates a port ! 9939: with ANY open file descriptor, but it uses 4.x system calls, - so don't ! 9940: request it unless the you can't use the new 'outfile' function. ! 9941: ! 9942: -johnson@udel-ee ! 9943: ! 9944: ! 9945: From @MIT-MC:[email protected] Mon Nov 12 06:45:39 1984 ! 9946: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9947: id AA22731; Mon, 12 Nov 84 06:45:39 pst ! 9948: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 9949: id AA01316; Mon, 12 Nov 84 06:42:54 pst ! 9950: Message-Id: <[email protected]> ! 9951: Date: 12 Nov 84 09:34:14 EST ! 9952: From: Nancy.Skooglund@CMU-RI-ISL1 ! 9953: Subject: append to file answer found ! 9954: To: BBoard.Maintainer@CMU-CS-A ! 9955: ! 9956: Thanks to all who responded to my Franz lisp question about opening a ! 9957: file for output and appending to it. Here's how it works: ! 9958: ! 9959: (outfile '<filename> 'a) ! 9960: ! 9961: 'a may be replaced by any symbol or string whose name begins with a. ! 9962: ! 9963: Nancy ! 9964: ! 9965: ! 9966: From [email protected] Tue Nov 13 04:26:24 1984 ! 9967: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 9968: id AA04324; Tue, 13 Nov 84 04:26:24 pst ! 9969: Received: from ucbjade.CC.Berkeley.ARPA (ucbjade.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 9970: id AA20746; Tue, 13 Nov 84 04:25:59 pst ! 9971: Received: from wisdom.BITNET ! 9972: by ucbjade.CC.Berkeley.ARPA (4.17/4.27.5) ! 9973: id AA10274; Tue, 13 Nov 84 04:24:53 pst ! 9974: Received: by wisdom.BITNET (4.12/4.7) ! 9975: id AA01997; Tue, 13 Nov 84 11:29:45 -0200 ! 9976: Date: Tue, 13 Nov 84 11:29:45 -0200 ! 9977: From: [email protected] (Jacob Levy) ! 9978: Message-Id: <[email protected]> ! 9979: To: [email protected] ! 9980: Subject: Announcement of new Lisp for UN*X 4.x VAXen ! 9981: ! 9982: I don't know if this is the appropriate place for this announcement, but ! 9983: here goes anyway :- ! 9984: ! 9985: ! 9986: YLISP, a Coroutine-based Lisp System for VAXen. ! 9987: -=============================================- ! 9988: ! 9989: A friend of mine, Yitzhak Dimitrovski, and myself, wrote a Lisp ! 9990: system for UN*X 4.x systems on VAXen. It has the following features :- ! 9991: ! 9992: o - Coroutines and closures. The system uses these to implement ! 9993: the user-interface, single-stepping and error-handling. It's ! 9994: easy to write a scheduler and time-share YLISP between two or ! 9995: more user programs. ! 9996: o - Multiple-dimension arrays. ! 9997: o - Multiple name spaces (oblists) arranged in a tree hierarchy. ! 9998: This is similar to the Lisp Machine facility. ! 9999: o - Defstruct structure definition package. ! 10000: o - Flavors object-oriented programming tools. ! 10001: o - User-extensible evaluator (it is possible to (re)define the ! 10002: actions of 'eval', 'apply' and 'print' relative to all user- ! 10003: and pre-defined types). ! 10004: o - Integer arithmetic. No floating-point, sorry. don't think that ! 10005: that's really necessary, but *could* be hacked. No BIGNUMs ! 10006: either. ! 10007: o - Good user-interface with history, sophisticated error handling ! 10008: and function-call and variable-assignment tracing facilities. ! 10009: o - Extensive library of ported and user-contributed programs,such ! 10010: as a variant of the Interlisp structure editor, 'loop' macro, ! 10011: 'mlisp' Pascal-like embedded language, etc. ! 10012: o - Compiler that generates efficient native assembler code for ! 10013: the VAXen. The compiler is provided as a separate program,due ! 10014: to size considerations. The compiler is written entirely in ! 10015: Lisp, of course. ! 10016: o - Extensive online documentation, as well as a 400-page manual ! 10017: describing the whole system from a programmer's point of view. ! 10018: ! 10019: The system is named 'YLISP', and was written for 4.1 when we were ! 10020: students at the Hebrew University at Jerusalem. Since then, Yitzhak has ! 10021: left for the US and is currently a Ph.D. student in Prof. Schwartz's ! 10022: Supercomputer group at Courant. I have continued to develop the system on ! 10023: my own, and have ported it to UN*X 4.2. ! 10024: ! 10025: I am looking for a site that is willing to handle the distribution ! 10026: of this software from the US, by letting one FTP it from their computer. ! 10027: Alternatively, I am also willing to supply people with magtapes of YLISP, ! 10028: for the cost of the tape and handling charges (about 70$ a piece). If you ! 10029: are interested, please respond by electronic mail to one of the addresses ! 10030: given below. I will be ready to start distributing the system in two ! 10031: weeks' time. ! 10032: ! 10033: Rusty Red (AKA Jacob Levy) ! 10034: ! 10035: BITNET: jaakov@wisdom ! 10036: CSNET and ARPA: jaakov%[email protected] ! 10037: UUCP: (if all else fails..) ..!decvax!humus!wisdom!jaakov ! 10038: ! 10039: ! 10040: ! 10041: ! 10042: From [email protected] Tue Nov 13 06:20:04 1984 ! 10043: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10044: id AA04848; Tue, 13 Nov 84 06:20:04 pst ! 10045: Received: from uw-beaver.arpa (uw-beaver.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 10046: id AA05430; Mon, 12 Nov 84 15:45:22 pst ! 10047: Received: by uw-beaver.arpa (4.12/2.2) ! 10048: id AA28549; Mon, 12 Nov 84 15:43:15 pst ! 10049: Return-Path: <[email protected]> ! 10050: Received: by ssc-vax (4.12/4.7) ! 10051: id AA03520; Mon, 12 Nov 84 09:58:10 pst ! 10052: Date: Mon, 12 Nov 84 09:58:10 pst ! 10053: From: [email protected] (Steve White) ! 10054: Message-Id: <8411121758.AA03520@ssc-vax> ! 10055: To: uw-beaver!JonL.pa@XEROX, uw-beaver!smh@mit-eddie ! 10056: Subject: Re: readtable within fasl ! 10057: Cc: uw-beaver!franz-friends@BERKELEY ! 10058: ! 10059: My problem was a bit simplier then the general case you mention. In MRS ! 10060: a 'variable' is really a reader-macro ($) that at read time assigns a special ! 10061: value to each variable-base-name. Basically it does a ! 10062: (set (implode `(|$| . ,(explodec name))) 'bl). ! 10063: for side-effects of marking the symbol as a variable. When compiling files ! 10064: containing MRS code the compiler would execute the call inside its environment, ! 10065: placing the *unbound* literals (as .asciz) in the object file to be READ ! 10066: in at load time... so MRS would get the symbols and treat them as symbols ! 10067: not variables. ! 10068: ! 10069: The only reason i mention this is that the workaround used might be useful ! 10070: for others seeking side effects within macros etc. ! 10071: My workaround (h.a.c.k) was to use a special variable ! 10072: liszt-eof-forms ! 10073: as a queue of the above SET forms and to provide a different macro expansion ! 10074: for compile-time. So ! 10075: ! 10076: (setsyntax '|$| 'macro ! 10077: #'(lambda nil (let ((varname (implode `(|$| ,@(explodec (read)))))) ! 10078: (addq `(setq ,varname 'bl) liszt-eof-forms) ! 10079: varname))) ;; return variable name to liszt! ! 10080: ! 10081: [where ADDQ does the correct thing if the variable has already been seen], ! 10082: adds the following to the object file ! 10083: .asciz "$xyz" ! 10084: .asciz "(setq $xyz 'bl)" ! 10085: which basically works (don't gag!) ! 10086: steve white ! 10087: ! 10088: YAP -- (yet another problem) : does anyone at MIT have a list of fixes ! 10089: to franz 38.91 to make the zeta-lisp environment work :-) I started fixing ! 10090: a few things but it looks like something that might MIT may have already ! 10091: done. ((or any plans to put NIL under UNIX? 8-) )) ! 10092: ! 10093: From [email protected] Thu Nov 15 18:09:13 1984 ! 10094: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10095: id AA12102; Thu, 15 Nov 84 18:09:13 pst ! 10096: Received: by UCB-VAX.ARPA (4.24/4.39) ! 10097: id AA11658; Thu, 15 Nov 84 18:09:11 pst ! 10098: Received: from ucscd.UCSC (ucscd.ARPA) by ucscc.UCSC (4.12/4.7) ! 10099: id AA23553; Thu, 15 Nov 84 10:48:02 pst ! 10100: Received: by ucscd.UCSC (4.12/4.7) ! 10101: id AA04900; Thu, 15 Nov 84 10:45:19 pst ! 10102: Date: Thu, 15 Nov 84 10:45:19 pst ! 10103: From: [email protected] (05550000) ! 10104: Message-Id: <[email protected]> ! 10105: To: [email protected] ! 10106: Subject: mailing list name change ! 10107: ! 10108: ! 10109: Please stop sending to ! 10110: ucscc!figgy ! 10111: ! 10112: instead add ! 10113: ucbvax!ucscc!lispers ! 10114: ! 10115: Thank you. ! 10116: ! 10117: From [email protected] Thu Nov 15 20:51:49 1984 ! 10118: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10119: id AA13810; Thu, 15 Nov 84 20:51:49 pst ! 10120: Received: from ucbjade.CC.Berkeley.ARPA (ucbjade.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 10121: id AA14507; Thu, 15 Nov 84 20:51:52 pst ! 10122: Received: from ucbruby.CC.Berkeley.ARPA (ucbruby.ARPA) ! 10123: by ucbjade.CC.Berkeley.ARPA (4.18/4.27.5) ! 10124: id AA01653; Thu, 15 Nov 84 20:51:05 pst ! 10125: Received: by ucbruby.CC.Berkeley.ARPA (4.18/4.27.6) ! 10126: id AA02961; Thu, 15 Nov 84 20:50:39 pst ! 10127: Date: Thu, 15 Nov 84 20:50:39 pst ! 10128: From: [email protected] (Harry Weeks) ! 10129: Message-Id: <[email protected]> ! 10130: To: franz-friends@BERKELEY ! 10131: Subject: Lisp implementation details. ! 10132: ! 10133: Are there any technical reports or memoranda available which ! 10134: describe the internal workings of Franz? ! 10135: -- Harry ! 10136: ! 10137: From @MIT-MC:[email protected] Wed Nov 28 11:32:50 1984 ! 10138: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10139: id AA15208; Wed, 28 Nov 84 11:32:50 pst ! 10140: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 10141: id AA14658; Wed, 28 Nov 84 11:32:04 pst ! 10142: Message-Id: <[email protected]> ! 10143: Date: 28 Nov 84 14:24:42 EST ! 10144: From: Timothy.Glavin@CMU-CS-CAD ! 10145: Subject: cmulisp docs ! 10146: To: BBoard.Maintainer@CMU-CS-A ! 10147: ! 10148: Does anyone know the location of on-line documentation for ! 10149: cmulisp. If not, is there a source for hard copy documentation? ! 10150: I have the Foderaro Franz Lisp Manual, I only looking for info ! 10151: on the CMU ideosyncracies. ! 10152: -- Tim (tg@cad) ! 10153: ! 10154: ! 10155: From smith@nrl-aic Fri Nov 30 09:17:53 1984 ! 10156: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10157: id AA15087; Fri, 30 Nov 84 09:17:53 pst ! 10158: Received: from nrl-aic (nrl-aic.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 10159: id AA24282; Fri, 30 Nov 84 09:15:33 pst ! 10160: Date: 30 Nov 1984 11:50-EST ! 10161: From: Russ Smith <[email protected]> ! 10162: Subject: bugs using flavors (and more) ! 10163: To: franz-friends@BERKELEY ! 10164: Message-Id: <470681409/smith@nrl-aic> ! 10165: ! 10166: I recently installed opus 38.91 on our VAX780 under 4.2BSD. The ! 10167: installation went smoothly. The files used for the installation appear ! 10168: to be the most recent available from ucbkim. This includes the flavors ! 10169: stuff with appropriate modifications (for example, fixing hash.l to use ! 10170: "vsize" instead of "getlength" on a vector). The flavors stuff I scarfed ! 10171: TODAY was dated October 2nd I believe. Anyway, I tried out some things ! 10172: with flavors and, in particular, with "describe"...with the ! 10173: following result (done with "script"): ! 10174: ============================================================================= ! 10175: % lisp ! 10176: Franz Lisp, Opus 38.91 ! 10177: -> (defflavor ob () () :settable-instance-variables) ! 10178: [autoload /usr/lib/lisp/flavors] ! 10179: [fasl /usr/lib/lisp/flavors.o] ! 10180: [fasl /usr/lib/lisp/machacks.o] ! 10181: [fasl /usr/lib/lisp/lmhacks.o] ! 10182: [fasl /usr/lib/lisp/flavorm.o] ! 10183: [fasl /usr/lib/lisp/vanilla.o] ! 10184: ob ! 10185: -> (describe 'ob) ! 10186: [autoload /usr/lib/lisp/describe] ! 10187: [fasl /usr/lib/lisp/describe.o] ! 10188: ! 10189: ob has property flavor: flavor[17] ! 10190: Error: Undefined function called from compiled code defstruct-description-name ! 10191: <1>: (exit) ! 10192: ============================================================================= ! 10193: [Well, "defstruct-description-name" is used all over the ! 10194: "/usr/lib/lisp/struct.l" set of functions...apparently mostly with no ! 10195: arguments...which, I think, is wrong. One fix made by SMH to "describe.l" ! 10196: replaced a call on this macro with one with an argument. But that's NOT this ! 10197: problem anyway.] ! 10198: ! 10199: (1) Is there a known fix to get the "describe", or anything else that ! 10200: uses the "defstruct-description-name" macro, working correctly? ! 10201: ! 10202: (2) Could it be that some sort of extended "defflavor" would load in an ! 10203: appropriate file which on-the-fly defines this macro? That is, ! 10204: did I do TOO simple a "defflavor"? [For example, doing: ! 10205: ! 10206: (load '/usr/pub/lisp/struct.l) ! 10207: ! 10208: allows one to "(pp defstruct-description-name)" showing that ! 10209: it requires an argument...without the "load" it is undefined.] ! 10210: ! 10211: (3) Could the copy of the ftpable (???) opus38.91 files we have be out ! 10212: of date (seem to be from around June 84)? ! 10213: ! 10214: Any help would be much appreciated. We are attempting to develop ! 10215: some stuff for use on both an LMI Lisp Machine and the VAX. This has ! 10216: thrown the proverbial wrench into the work(s)... ! 10217: ! 10218: Russ <Smith@nrl-aic> ! 10219: Navy Center for Applied Research in Artificial Intelligence (whew!) ! 10220: ! 10221: From [email protected] Sat Dec 1 15:40:10 1984 ! 10222: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10223: id AA04698; Sat, 1 Dec 84 15:40:10 pst ! 10224: Received: from RUTGERS.ARPA (rutgers-gw.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 10225: id AA03439; Sat, 1 Dec 84 14:28:56 pst ! 10226: Message-Id: <[email protected]> ! 10227: Date: 30 Nov 84 22:45:59 EST ! 10228: From: Sean McLinden <[email protected]> ! 10229: Subject: Re: bugs using flavors (and more) ! 10230: To: [email protected], franz-friends@BERKELEY ! 10231: Cc: [email protected] ! 10232: In-Reply-To: Message from "Russ Smith <[email protected]>" of 30 Nov 84 11:50:00 EST ! 10233: ! 10234: ! 10235: There is a bug in the way that describe is compiled according to the ! 10236: makefile. Basically the problem is that defstruct-description-name ! 10237: is a macro which is NOT compiled so that when you fasl the compiled ! 10238: version of struct (as you are compiling describe), you don't get ! 10239: the proper definition for defstruct-description-name. ! 10240: ! 10241: You can either 1). load struct.l when compiling describe.l or ! 10242: 2). (declare (macros t)) in struct.l and recompile. ! 10243: ! 10244: Sean McLinden ! 10245: Decision Systems Laboratory ! 10246: ------- ! 10247: ! 10248: From sridhar%[email protected] Sat Dec 1 17:03:50 1984 ! 10249: Received: from ucbernie.ARPA by ucbkim.ARPA (4.24/4.27) ! 10250: id AA06036; Sat, 1 Dec 84 16:55:15 pst ! 10251: Received: from csnet-relay (csnet-pdn-gw.ARPA) by ucbernie.ARPA (4.24/4.38) ! 10252: id AA08322; Sat, 1 Dec 84 16:50:50 pst ! 10253: Message-Id: <[email protected]> ! 10254: Received: from wsu by csnet-relay.csnet id a012949; 1 Dec 84 19:41 EST ! 10255: Date: Sat, 1 Dec 84 12:47 PST ! 10256: From: "S. Sridhar" <sridhar%[email protected]> ! 10257: To: [email protected] ! 10258: Cc: sridhar%[email protected] ! 10259: Subject: Documentation pblms. ! 10260: ! 10261: Hi, ! 10262: I am an ardent Franz hack here at Wash. St. Univ, Pullman. ! 10263: I need some specific info on Franz Lisp. ! 10264: ! 10265: There is no documentation on 'Structures' in the Franz Lisp manual, that ! 10266: we have here. (This is dated June 1983. The version we have is Opus 38.69, ! 10267: June 1983). Specifically I need documentaion on all the macros related to ! 10268: the use of structures like defstruct. I know for sure that these macros ! 10269: are available on our system, but I am having problems on their usage. The ! 10270: on-line documentation does not give any help either. Maybe you have an ! 10271: updated version of the Franz Lisp manual. Can you help around, please ? ! 10272: ! 10273: As another instance, functions relating to hashtables are available here ! 10274: but there is no documentation for it. ! 10275: ! 10276: Thanks. ! 10277: ! 10278: Sridhar ! 10279: ------ ! 10280: ! 10281: From smith@nrl-aic Mon Dec 3 12:17:10 1984 ! 10282: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10283: id AA04104; Mon, 3 Dec 84 12:17:10 pst ! 10284: Received: from nrl-aic (nrl-aic.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 10285: id AA16806; Mon, 3 Dec 84 12:14:27 pst ! 10286: Date: 3 Dec 1984 06:36-EST ! 10287: From: Russ Smith <[email protected]> ! 10288: Subject: followup to "flavors bugs (and more)" ! 10289: To: franz-friends@BERKELEY ! 10290: Message-Id: <470921820/smith@nrl-aic> ! 10291: ! 10292: This is a followup to a previous note I sent requesting help with fixing ! 10293: Opus 38.91 of Franz and Flavors running on a Vax780 under 4.2BSD. ! 10294: ! 10295: First, I want to thank the many people who had helpful suggestions on ! 10296: what may have been going wrong. Given the small amount of information I ! 10297: provided on the problem, some of them were remarkably relevant. ! 10298: ! 10299: The problem had to do with certain functions such as "describe" going ! 10300: south when invoked on a FLAVOR object. The solution was (at least) two ! 10301: fold. One, which I alluded to in the previous note, had to do with the ! 10302: distributed file "hash.l" containing invalid calls on the intrinsic ! 10303: "getlength" function with a vector argument. These calls had to be ! 10304: changed to "vsize" instead (actually "getlength" could probably have ! 10305: been redefined to allow vectors...). Whatever, that solved that part. ! 10306: ! 10307: The second solution had to do with how WE at NCARAI were installing ! 10308: Franz. We have a set of directories for "local" software into which ! 10309: we wanted to put the "new" Franz. As such, I went through all the ! 10310: "Makefile"s and changed default directories for such things as the ! 10311: libraries and objects, etc. While doing this, it was noted that certain ! 10312: files in the "lisplib" directory had hard-coded the default names for, for ! 10313: example, the library. Since our library was not in the same place as ! 10314: this default, these lines were "commented out" (with an "exit")...with ! 10315: the result that the Franz and Liszt installations did not go as smoothly ! 10316: as I thought. It turns out that these lines also should be changed to ! 10317: reflect the appropriate directory. They are in the files "buildlisp.l", ! 10318: "common1.l", and "fix.l" in the lisplib directory (possibly others exist as ! 10319: well). The pertinent lines read something like: ! 10320: ! 10321: (or (boundp 'default-library-directory) ! 10322: (setq default-library-directory '/usr/lib/lisp)) ! 10323: ! 10324: During the installation (done on a CRT) I was doing something else. Thus ! 10325: when the mods made (namely changing the "setq" call above into an "exit") ! 10326: were invoked, I didn't notice later that a number of things which SHOULD have ! 10327: happened didn't (they'd gone off the screen...). Needless to say, this ! 10328: caused all sorts of bizarre inconsistencies (especially since our last ! 10329: installation DID use the default directories...). ! 10330: ! 10331: Anyway, notes for the future: ! 10332: ! 10333: (1) If ftp'ing Franz from ucbkim be sure to get the stuff in the ! 10334: "flavors" directory as well. This contains a new "hash.l" ! 10335: modified by SMH to use "vsize" rather than "getlength". ! 10336: ! 10337: (2) If not using the default directories for the installation, ! 10338: change the names in the above files as well to reflect the ! 10339: appropriate place(s)...sigh. ! 10340: ! 10341: Yours (with an apparently working Franz+flavors), ! 10342: ! 10343: Russ <Smith@nrl-aic> ! 10344: Navy Center for Applied Research in Artificial Intelligence (whew!) ! 10345: ! 10346: From @MIT-MC:smh@MIT-EDDIE Tue Dec 4 12:49:49 1984 ! 10347: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10348: id AA20917; Tue, 4 Dec 84 12:49:49 pst ! 10349: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 10350: id AA24636; Tue, 4 Dec 84 12:13:23 pst ! 10351: Message-Id: <[email protected]> ! 10352: Received: by mit-eddie.Mit-chaos.Arpa id AA19371; Tue, 4 Dec 84 14:50:26 est ! 10353: Date: Tue, 4 Dec 84 14:50:26 est ! 10354: From: Steven M. Haflich <smh@mit-eddie> ! 10355: To: franz-friends@BERKELEY ! 10356: Subject: the *real* flavor sources (etc.) ! 10357: ! 10358: For some time I have been using and maintaining enhanced versions of the ! 10359: several Franz lisplib modules which implement various Lisp Machine ! 10360: compatibilities, most notably, the FLAVOR system and FORMAT output. ! 10361: jkf@berkeley has authorized me to announce public availability of these ! 10362: files via anonymous ftp from UCBKIM. These seven files are compatible ! 10363: with Opus 38.91, but supersede the versions in the 39.91 distribution. ! 10364: There are a number of bugfixes and new features. ! 10365: ! 10366: UCBKIM supports FTP with login "anonymous" and any password. The ! 10367: files are: ! 10368: ~anonymous/pub/flavors/Makefile ! 10369: flavors.l ! 10370: flavorm.l ! 10371: vanilla.l ! 10372: hash.l ! 10373: describe.l ! 10374: format.l ! 10375: ! 10376: The changes are too many to describe in detail. Many of the FLAVOR ! 10377: system changes are for compatibility with changes to Franz, although a ! 10378: few non-working or missing features (but not all) have been bludgeoned ! 10379: into functionality. In particular, wrappers work. The FORMAT module ! 10380: fixes a number of format directives which apparently never worked. ! 10381: However, some of the hairier ones are known still to be defective. ! 10382: ! 10383: This "completely unsupported" software is graciously being made ! 10384: available to all takers without any promises whatever: there is no ! 10385: promise of correctness, and no promise of support. Also, the sources ! 10386: total 160K and unsuitable for uucp distribution, and I don't have time ! 10387: to deal with tape requests [sorry]. ! 10388: ! 10389: The above notwithstanding, I am as eager as anyone for additional ! 10390: improvements to the code. Anyone with additional bugfixes is encouraged ! 10391: to communicate to me, and I will try to integrate the code. I will try ! 10392: to respond to bug reports, but it may be a rather low priority business. ! 10393: ! 10394: Steve Haflich ! 10395: MIT Experimental Music Studio ! 10396: ARPA: smh@mit-eddie@mit-mc ! 10397: UUCP: {ihnp4, decvax!genrad}!mit-eddie!smh ! 10398: ! 10399: ! 10400: From @MIT-MC:smh@MIT-EDDIE Tue Dec 4 19:32:49 1984 ! 10401: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10402: id AA26327; Tue, 4 Dec 84 19:32:49 pst ! 10403: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 10404: id AA26237; Tue, 4 Dec 84 13:26:17 pst ! 10405: Message-Id: <[email protected]> ! 10406: Received: by mit-eddie.Mit-chaos.Arpa id AA20260; Tue, 4 Dec 84 15:44:20 est ! 10407: Date: Tue, 4 Dec 84 15:44:20 est ! 10408: From: Steven M. Haflich <smh@mit-eddie> ! 10409: To: franz-friends@BERKELEY ! 10410: Subject: fix for describe.l ! 10411: Cc: MCLINDEN@RUTGERS@MIT-MC, smith@nrl-aic@mit-mc ! 10412: ! 10413: Previous postings have correctly identified the problem (which was fixed ! 10414: long ago in the versions announced today). The best fix is to change ! 10415: the (environment-lmlisp) invocation near the beginning of describe.l to ! 10416: read as follows, then recompile it: ! 10417: ! 10418: (environment-lmlisp (compile eval) (files struct flavorm)) ! 10419: ! 10420: The struct and flavorm modules do not need to be around when the ! 10421: compiled describe code is executed, so omitting load from the eval-when ! 10422: saves some unnecessary fasl's. Describe, by the way, is useful even ! 10423: when flavors and defstructs are not being used. For instance, it will ! 10424: report the source module in which a compiled function lives. ! 10425: ! 10426: Steve Haflich ! 10427: smh@mit-eddie@mit-mc ! 10428: {ihnp4, decvax!genrad}!mit-eddie!smh ! 10429: ! 10430: ! 10431: From @MIT-MC:smh@MIT-EDDIE Tue Dec 4 22:49:05 1984 ! 10432: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10433: id AA29026; Tue, 4 Dec 84 22:49:05 pst ! 10434: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 10435: id AA05974; Tue, 4 Dec 84 20:50:44 pst ! 10436: Message-Id: <[email protected]> ! 10437: Received: by mit-eddie.Mit-chaos.Arpa id AA24308; Tue, 4 Dec 84 23:50:01 est ! 10438: Date: Tue, 4 Dec 84 23:50:01 est ! 10439: From: Steven M. Haflich <smh@mit-eddie> ! 10440: To: franz-friends@BERKELEY ! 10441: Subject: Franz documentation for MIT LM code ! 10442: Cc: sridhar%wsu.csnet@csnet-relay ! 10443: ! 10444: Sorry to report that there really is no official documentation for the ! 10445: several Franz lisplib modules which implement a measure of compatibility ! 10446: with Zetalisp, the dialect running on MIT Lisp Machines (and, more or ! 10447: less, on Symbolics and LMI machines). The Franz source code was adapted ! 10448: from the MIT Lisp machine code several years ago; there is still ! 10449: approximate compatibility, although new features and certain semantic ! 10450: subtleties have diverged. Driven partially by natural evolution and ! 10451: partially by the standardization efforts of Common Lisp, Lisp Machine ! 10452: compatibility is something of a moving target. ! 10453: ! 10454: But do not despair; there are two standardly available sources for ! 10455: documentation. Reading them will give a very usable idea about the ! 10456: packages. Unfortunately, a few unimplemented features and semantic ! 10457: differences will have to be discovered by experimentation or examination ! 10458: of the source code. (What do you want for free? :-) ! 10459: ! 10460: (1) If you have available a MIT Lisp Machine Manual, the sections on ! 10461: defstruct, flavors, format, hash, and loop output are still reasonable ! 10462: approximations of documentation for the Franz versions. Incidentally, ! 10463: the `Blue' MIT Lisp Machine Manual circa 1981 corresponds most closely ! 10464: with the Franz inplementation, although a few more recent features have ! 10465: been retrofitted. If available, Symbolics documentation is probably ! 10466: only very slightly less good -- the older, the better. ! 10467: ! 10468: (2) For defstruct, hash, and format the Guy Steele <Common Lisp: The ! 10469: Language>, published by Digital Press (a branch of DEC), is usefully ! 10470: close to the existing Franz code. Again, experimentation and ! 10471: examination of the source code will resolve the details. Unfortunately, ! 10472: Flavors and the loop macro are not (yet) part of the Common Lisp ! 10473: specification, and may well be very different when they are. ! 10474: ! 10475: Unofficially, there is another even better hope. The MIT Athena project ! 10476: will be `releasing' these packages into their standard Franz system this ! 10477: in another month or two. They are commencing a quick effort to edit ! 10478: Lisp Machine documentation into proper format for inclusion as ! 10479: appendixes in the Franz manual. If at all possible, I will attempt to ! 10480: get the results publically distributed. (Translation: My assistance is ! 10481: essential to this documentation, so I am in position to insist they be ! 10482: `reasonable' about it...) But no promises just yet. ! 10483: ! 10484: Steve Haflich ! 10485: MIT ! 10486: ! 10487: ! 10488: From [email protected] Thu Dec 6 13:53:03 1984 ! 10489: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10490: id AA03880; Thu, 6 Dec 84 13:53:03 pst ! 10491: Received: from ucbjade.CC.Berkeley.ARPA (ucbjade.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 10492: id AA27039; Thu, 6 Dec 84 11:43:13 pst ! 10493: Received: from CUNYVM.BITNET ! 10494: by ucbjade.CC.Berkeley.ARPA (4.19/4.30) ! 10495: id AA27252; Thu, 6 Dec 84 11:44:10 pst ! 10496: Message-Id: <[email protected]> ! 10497: Received: by CUNYVM id 8508; Thu, 06 Dec 84 14:41:26 EST ! 10498: Date: Thu, 6 Dec 84 14:39 EST ! 10499: From: Henry Nussbacher <[email protected]> ! 10500: To: <[email protected]>, <franz-friends@BERKELEY>, ! 10501: <ailist-request@sri-ai>, <[email protected]>, ! 10502: <[email protected]>, <[email protected]> ! 10503: ! 10504: Can you please register the following user to your lists: ! 10505: arpalist%cunyvm.BITNET ! 10506: ! 10507: Thank you, ! 10508: Henry Nussbacher ! 10509: BITNET Network Information Center ! 10510: ! 10511: From [email protected] Thu Dec 6 18:20:03 1984 ! 10512: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10513: id AA07782; Thu, 6 Dec 84 18:20:03 pst ! 10514: Received: from rice.ARPA (rice.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 10515: id AA05141; Thu, 6 Dec 84 17:55:14 pst ! 10516: Received: from thule by rice.ARPA (AA02673); Thu, 6 Dec 84 19:41:33 CST ! 10517: Received: by thule (AA02845); Thu, 6 Dec 84 19:38:53 cst ! 10518: Date: Thu, 6 Dec 84 19:38:53 cst ! 10519: From: Mike Caplinger <[email protected]> ! 10520: Message-Id: <8412070138.AA02845@thule> ! 10521: To: franz-friends@BERKELEY ! 10522: Subject: bug in 68k Opus 38.91 arrays ! 10523: ! 10524: In 68k Opus 38.91, the expression ! 10525: (array foo flonum-block 4 4) ! 10526: generates an "Error: IMPROPER USE OF SET". ! 10527: ! 10528: On the VAX, in Opus 38.79, this worked fine. What's happening? ! 10529: ! 10530: (I am on a Sun, compiled with sun_4_2.) ! 10531: ! 10532: - Mike ! 10533: ! 10534: From @MIT-MULTICS.ARPA:[email protected] Sat Dec 8 05:42:09 1984 ! 10535: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10536: id AA25844; Sat, 8 Dec 84 05:42:09 pst ! 10537: Received: from MIT-MULTICS.ARPA (mit-multics.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 10538: id AA22892; Sat, 8 Dec 84 05:39:47 pst ! 10539: Received: from VANDERBILT.MAILNET by MIT-MULTICS.ARPA with Mailnet id <[email protected]>; 08 Dec 1984 08:36:56 est ! 10540: Date: 06 Dec 84 15:26 CDT ! 10541: From: David_Linn%[email protected] ! 10542: Reply-To: David_Linn%[email protected] ! 10543: To: "franz-friends"@BERKELEY ! 10544: Subject: FranzLISP on the S9000 ! 10545: Message-Id: <30788@VUCCG1COM> ! 10546: In-Reply-To: <30731@VUCCG1COM> ! 10547: ! 10548: The AI Group at Vanderbilt would like to join the franz-friends ! 10549: mailing list. We have version 38.87 running on the IBM Inruments ! 10550: S9000 under CSOS 1.1, a very non-UNIX opsys. Both interpreter ! 10551: and compiler are working and a farily large general-purpose ! 10552: expert system tool set written on a VAX is up and running. ! 10553: ! 10554: ! 10555: ! 10556: From [email protected] Mon Dec 10 12:06:53 1984 ! 10557: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10558: id AA18655; Mon, 10 Dec 84 12:06:53 pst ! 10559: Received: from USC-ECLC.ARPA (usc-eclc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 10560: id AA04397; Mon, 10 Dec 84 12:04:27 pst ! 10561: Message-Id: <[email protected]> ! 10562: Date: Mon 10 Dec 84 12:03:06-PST ! 10563: From: [email protected] ! 10564: Subject: array - space ! 10565: To: franz-friends@BERKELEY ! 10566: Cc: [email protected] ! 10567: ! 10568: ! 10569: I am working with images stored as fixnum arrays (with delta =1 i.e. four ! 10570: pixels packed into a word) aux as unmarked arrays. (I am on a VAX under ! 10571: Eunice). How do I deallocate the array-space once I am done with it? ! 10572: (I use small-segment to allocate space for the array). ! 10573: ! 10574: Also I would appreciate any pointers of how to speed up programs with ! 10575: nested do loops (order of 512x512 x(5 x 5) itterations). ! 10576: ! 10577: Thanks, ! 10578: ! 10579: -Rakesh Mohan. ! 10580: ------- ! 10581: ! 10582: From [email protected] Mon Dec 10 15:37:50 1984 ! 10583: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10584: id AA20942; Mon, 10 Dec 84 15:37:50 pst ! 10585: Received: from rice.ARPA (rice.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 10586: id AA08450; Mon, 10 Dec 84 15:35:12 pst ! 10587: Received: from iapetus by rice.ARPA (AA26746); Mon, 10 Dec 84 17:28:43 CST ! 10588: Received: by iapetus (AA16942); Mon, 10 Dec 84 17:29:45 CST ! 10589: Date: Mon, 10 Dec 84 17:29:45 CST ! 10590: From: Mike Caplinger <[email protected]> ! 10591: Message-Id: <8412102329.AA16942@iapetus> ! 10592: To: franz-friends@BERKELEY ! 10593: Subject: gensym and the compiler ! 10594: ! 10595: How does one get code like the following: ! 10596: ! 10597: ; construct an identity transformation matrix. ! 10598: (defun tm-new () ! 10599: (let ((name (gensym))) ! 10600: (*array name 'flonum-block 4 4) ! 10601: (do i 0 (1+ i) (= i 4) (store (name i i) 1.0)) ! 10602: name) ! 10603: ) ! 10604: ! 10605: to work under the compiler? Compiled, this refuses to believe ! 10606: in the existence of name. ! 10607: ! 10608: Do I need to declare it as a lambda? Is there a way to declare arrays? ! 10609: ! 10610: - Mike ! 10611: ! 10612: From jkf@ucbmike Mon Dec 10 16:03:40 1984 ! 10613: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10614: id AA21396; Mon, 10 Dec 84 16:03:40 pst ! 10615: Received: from ucbmike.arpa by UCB-VAX.ARPA (4.24/4.39) ! 10616: id AA08955; Mon, 10 Dec 84 16:01:22 pst ! 10617: Received: by ucbmike.arpa (4.24ucb/4.33) ! 10618: id AA06150; Mon, 10 Dec 84 16:04:09 pst ! 10619: Date: Mon, 10 Dec 84 16:04:09 pst ! 10620: From: John Foderaro (on a sun) <jkf@ucbmike> ! 10621: Message-Id: <[email protected]> ! 10622: To: [email protected], franz-friends@BERKELEY ! 10623: Subject: Re: array - space ! 10624: Cc: [email protected] ! 10625: In-Reply-To: Your message of Mon 10 Dec 84 12:03:06-PST ! 10626: ! 10627: You would be better off using immediate vectors (vectori) which ! 10628: are garbage collected. Items allocated with small-segment aren't ! 10629: gc'ed. ! 10630: ! 10631: ! 10632: ! 10633: ! 10634: From jkf@ucbmike Mon Dec 10 17:08:13 1984 ! 10635: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10636: id AA22000; Mon, 10 Dec 84 17:08:13 pst ! 10637: Received: from ucbmike.arpa by UCB-VAX.ARPA (4.24/4.39) ! 10638: id AA10131; Mon, 10 Dec 84 17:05:36 pst ! 10639: Received: by ucbmike.arpa (4.24ucb/4.33) ! 10640: id AA06315; Mon, 10 Dec 84 17:08:19 pst ! 10641: Date: Mon, 10 Dec 84 17:08:19 pst ! 10642: From: John Foderaro (on a sun) <jkf@ucbmike> ! 10643: Message-Id: <[email protected]> ! 10644: To: [email protected], franz-friends@BERKELEY ! 10645: Subject: Re: array - space ! 10646: Cc: [email protected] ! 10647: In-Reply-To: Your message of Mon 10 Dec 84 12:03:06-PST ! 10648: ! 10649: One small correction: small-segment space is garbage collected and ! 10650: reclaimed, but only as individual elements: adjacent free elements are ! 10651: not combined. Vectors are different: adjacent free vectors are combined ! 10652: into larger vectors. ! 10653: ! 10654: ! 10655: ! 10656: From @MIT-MC:smh@MIT-EDDIE Mon Dec 10 19:02:52 1984 ! 10657: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10658: id AA23540; Mon, 10 Dec 84 19:02:52 pst ! 10659: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.39) ! 10660: id AA11754; Mon, 10 Dec 84 18:21:17 pst ! 10661: Message-Id: <[email protected]> ! 10662: Received: by mit-eddie.Mit-chaos.Arpa id AA03264; Mon, 10 Dec 84 21:20:04 est ! 10663: Date: Mon, 10 Dec 84 21:20:04 est ! 10664: From: Steven M. Haflich <smh@mit-eddie> ! 10665: To: franz-friends@BERKELEY ! 10666: Subject: re: gensym and the compiler ! 10667: ! 10668: <Mike@rice> wants to know how to make this function work: ! 10669: ! 10670: ; construct an identity transformation matrix. ! 10671: (defun tm-new () ! 10672: (let ((name (gensym))) ! 10673: (*array name 'flonum-block 4 4) ! 10674: (do i 0 (1+ i) (= i 4) (store (name i i) 1.0)) ! 10675: name) ! 10676: ) ! 10677: ! 10678: The problem is that send is a macro (see lisplib/array.l), and at ! 10679: compile time it is impossible for it to determine exactly the "data ! 10680: type" of name. Therefore, it expands the function to: ! 10681: ! 10682: (defun tm-new () ! 10683: (let ((name (gensym))) ! 10684: (*array name 'flonum-block 4 4) ! 10685: (do i 0 (1+ i) (= i 4) (name 1.0 i i)) ! 10686: name) ! 10687: ) ! 10688: ! 10689: Essentially, it just assumes 'name is a symbol which has an array in its ! 10690: function binding, or else which symevals (possibly recursively) to ! 10691: something that is either an array, or a symbol with an array in its ! 10692: function binding. When the compiler compiles the expansion, it assumes ! 10693: that it wants to call the function-binding of name, not the ! 10694: function-binding of symeval of name. In the interpreter it happens to ! 10695: work because eval of a list in the interpreter (but not the compiler) is ! 10696: defined to repetitively evaluate the car of the list until it finds a ! 10697: recognizable function or array. (See chapter 4.) But note!! If 'name ! 10698: also has a function binding, the interpreter will find it instead of the ! 10699: array! ! 10700: ! 10701: What you really want to do, then, is this: ! 10702: ! 10703: (defun tm-new () ! 10704: (let ((name (gensym))) ! 10705: (*array name 'flonum-block 4 4) ! 10706: (do i 0 (1+ i) (= i 4) (funcall name 1.0 i i)) ! 10707: name) ! 10708: ) ! 10709: ! 10710: This guarantees that name gets symevaled once before the interpreter ! 10711: checks for function bindings, which also does the right thing in ! 10712: compiled code. Unfortunately, you will have to write this out by hand. ! 10713: I don't see any way that the send macro can be fixed. If it always ! 10714: returned the extra funcall, then this simple case wouldn't work ! 10715: compiled: ! 10716: ! 10717: (array foo ...) ! 10718: (store foo ...) ! 10719: ! 10720: Did anyone follow any of this? ! 10721: ! 10722: ! 10723: From [email protected] Tue Dec 11 20:05:09 1984 ! 10724: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10725: id AA06334; Tue, 11 Dec 84 20:05:09 pst ! 10726: Received: from SUMEX-AIM.ARPA (sumex-aim.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.40) ! 10727: id AA15218; Tue, 11 Dec 84 20:03:46 pst ! 10728: Message-Id: <[email protected]> ! 10729: Date: Tue 11 Dec 84 20:04:16-PST ! 10730: From: Rene Bach <[email protected]> ! 10731: Subject: Porting FRANZ to other OS running C ? ! 10732: To: franz-friends@BERKELEY ! 10733: ! 10734: I am interested in finding out if someone has ported FRANZ to some ! 10735: other OS than UNIX. A friend of mine is interested in running a LISP ! 10736: under VMS at no cost. He has C on his machine. ! 10737: Is this feasible, how much work is involved ? ! 10738: ! 10739: What about porting FRANZ to some UNIX look alike ? How much work is ! 10740: involved ? ! 10741: ! 10742: Thanks for any leads ! 10743: Rene ! 10744: ------- ! 10745: ! 10746: From [email protected] Tue Dec 11 20:44:19 1984 ! 10747: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10748: id AA06672; Tue, 11 Dec 84 20:44:19 pst ! 10749: Received: from RUTGERS.ARPA (rutgers-gw.ARPA) by UCB-VAX.ARPA (4.24/4.40) ! 10750: id AA16044; Tue, 11 Dec 84 20:42:36 pst ! 10751: Message-Id: <[email protected]> ! 10752: Date: 11 Dec 84 23:41:49 EST ! 10753: From: Sean McLinden <[email protected]> ! 10754: Subject: Re: Franz documentation for MIT LM code ! 10755: To: smh%[email protected], franz-friends@BERKELEY ! 10756: Cc: sridhar%[email protected], [email protected] ! 10757: In-Reply-To: Message from "Steven M. Haflich <smh@mit-eddie>" of 4 Dec 84 23:50:01 EST ! 10758: ! 10759: ! 10760: ! 10761: Regarding the documentation for Franz Lisp and the MIT/Lisp Machine ! 10762: compatibility packages: ! 10763: ! 10764: Another option exists for those who might be interested. We at Decision ! 10765: Systems Lab have been using a modified version of Opus 38.89 which in- ! 10766: cludes the defstruct and flavors code already described. It also in- ! 10767: cludes an Interlisp compatibility package which allows Interlisp ! 10768: records as well as most of the CLISP forms (these are actually very ! 10769: easily simulated with LOOP but we chose a strategy which is more ! 10770: in keeping with the Interlisp implementation of CLISP involving ! 10771: hashed definitions for CLISP forms. ! 10772: ! 10773: The modified Lisp has all of the up-to-date flavors code and an ! 10774: edited version of the manual which describes the format, defstruct, ! 10775: and CLISP packages (borrowing heavily from the Laser edition of ! 10776: the Common Lisp manual by Guy Steele). It also includes a re-organization ! 10777: of much of the older manual into a more coherent form, and a number ! 10778: of examples of more difficult concepts. ! 10779: ! 10780: If there is any interest I can make this publicly available. It would ! 10781: be of little value to simply have the additional chapter since it ! 10782: refers, heavily, to material in other sections. Also, flavors is not, ! 10783: yet included, since the status of flavors in Franz was uncertain up ! 10784: to a few months ago. ! 10785: ! 10786: For those interested, I will not be prepared to answer requests before ! 10787: Christmas but after that I'll be around and can handle almost anything. ! 10788: ! 10789: Sean McLinden ! 10790: Decision Systems Laboratory ! 10791: University of Pittsburgh ! 10792: ! 10793: ------- ! 10794: ! 10795: From @MIT-MC:ZZZ.RLK@MIT-OZ Wed Dec 12 21:51:39 1984 ! 10796: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10797: id AA08208; Wed, 12 Dec 84 21:51:39 pst ! 10798: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.40) ! 10799: id AA07258; Wed, 12 Dec 84 21:03:56 pst ! 10800: Message-Id: <[email protected]> ! 10801: Date: Wednesday, 12 December 1984, 19:53-EST ! 10802: From: Robert L. Krawitz <ZZZ.RLK@MIT-OZ> ! 10803: Reply-To: rlk%mit-eecs at mit-mc.arpa ! 10804: To: franz-friends@BERKELEY ! 10805: ! 10806: Hi. ! 10807: ! 10808: I'm writing a term paper on the procedure call in various languages, ! 10809: perhaps on various languages on the VAX, perhaps just on the procedure ! 10810: call in various dialects of Lisp on the Vax. ! 10811: ! 10812: Could someone mail me some info on this subject (i. e. the calling ! 10813: conventions, how/if the Vax procedure call instructions are used, etc.) ! 10814: quickly, as this is the last week of classes and I don't want to take ! 10815: too long on this paper. Thanks. ! 10816: ! 10817: Robert^Z ! 10818: ! 10819: From psm@mitre-bedford Mon Dec 17 09:05:35 1984 ! 10820: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10821: id AA20993; Mon, 17 Dec 84 09:05:35 pst ! 10822: Received: from mitre-bedford (mitre-bedford.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.40) ! 10823: id AA19421; Mon, 17 Dec 84 09:04:32 pst ! 10824: Message-Id: <[email protected]> ! 10825: Date: 17 Dec 1984 11:56:37-EST ! 10826: From: psm@Mitre-Bedford ! 10827: To: franz-friends@BERKELEY ! 10828: Subject: Please add me to your mailing list. ! 10829: Cc: psm@Mitre-Bedford ! 10830: ! 10831: Hi, ! 10832: ! 10833: Would you please add me to your mailing list/ user's group. ! 10834: (I hope this is the right place to make the request & it's not ! 10835: franz-friends-request or something like that. Sorry for the ! 10836: inconvenience if it is.) ! 10837: ! 10838: Peter Mager ! 10839: (psm@mitre-bedford) ! 10840: ! 10841: From jkf@ucbmike Mon Dec 17 13:01:48 1984 ! 10842: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10843: id AA00901; Mon, 17 Dec 84 13:01:48 pst ! 10844: Received: from ucbmike.arpa by UCB-VAX.ARPA (4.24/4.40) ! 10845: id AA24456; Mon, 17 Dec 84 13:00:55 pst ! 10846: Received: by ucbmike.arpa (4.24ucb/4.33) ! 10847: id AA15009; Mon, 17 Dec 84 13:03:16 pst ! 10848: Date: Mon, 17 Dec 84 13:03:16 pst ! 10849: From: John Foderaro (on a sun) <jkf@ucbmike> ! 10850: Message-Id: <[email protected]> ! 10851: To: psm@Mitre-Bedford, franz-friends@BERKELEY ! 10852: Subject: Re: Please add me to your mailing list. ! 10853: Cc: psm@Mitre-Bedford ! 10854: In-Reply-To: Your message of 17 Dec 1984 11:56:37-EST ! 10855: ! 10856: I've added you to franz-friends. ! 10857: ! 10858: ! 10859: ! 10860: From jkf@ucbmike Mon Dec 17 13:06:53 1984 ! 10861: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10862: id AA01005; Mon, 17 Dec 84 13:06:53 pst ! 10863: Received: from ucbmike.arpa by UCB-VAX.ARPA (4.24/4.40) ! 10864: id AA24568; Mon, 17 Dec 84 13:05:59 pst ! 10865: Received: by ucbmike.arpa (4.24ucb/4.33) ! 10866: id AA15044; Mon, 17 Dec 84 13:08:10 pst ! 10867: Date: Mon, 17 Dec 84 13:08:10 pst ! 10868: From: John Foderaro (on a sun) <jkf@ucbmike> ! 10869: Message-Id: <[email protected]> ! 10870: To: franz-friends@BERKELEY ! 10871: Subject: I'll be away ! 10872: Cc: ! 10873: ! 10874: ! 10875: For the new few weeks I'll be unable to handle franz-friends requests. ! 10876: ! 10877: Happy Holidays to all of you. ! 10878: ! 10879: john foderaro ! 10880: ! 10881: ! 10882: ! 10883: ! 10884: From @MIT-MC:[email protected] Mon Dec 17 13:08:08 1984 ! 10885: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10886: id AA01035; Mon, 17 Dec 84 13:08:08 pst ! 10887: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.40) ! 10888: id AA24610; Mon, 17 Dec 84 13:07:10 pst ! 10889: Message-Id: <[email protected]> ! 10890: Date: 17 Dec 84 16:02:13 EST ! 10891: From: Wilson.Harvey@CMU-CS-IUS ! 10892: Subject: appending to files in lisp? ! 10893: To: BBoard.Maintainer@CMU-CS-A ! 10894: ! 10895: ! 10896: Does anyone have a function that will allow them to append to a file? I ! 10897: need to open a file and write some data to it then, at a later time, reopen ! 10898: the same file and add some more data to it. The only things that I could ! 10899: find in Franz were "infile" and "outfile", and "outfile" truncates the file ! 10900: when called. It would be nice if the function would create the file if it ! 10901: didn't already exist, but that is not necessary. ! 10902: ! 10903: Thanks. --Wilson ! 10904: ! 10905: P.S. I tried writing a C-function to handle this, but I didn't have any luck ! 10906: passing the FILE pointer back into Franz. It didn't recognize the pointer ! 10907: as a port, and I don't know how to set it straight. ! 10908: ! 10909: ! 10910: From [email protected] Mon Dec 17 13:31:59 1984 ! 10911: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10912: id AA01357; Mon, 17 Dec 84 13:31:59 pst ! 10913: Received: from ARDC (ardc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.40) ! 10914: id AA25405; Mon, 17 Dec 84 13:30:56 pst ! 10915: Message-Id: <[email protected]> ! 10916: Date: Mon, 17 Dec 84 16:23:16 EST ! 10917: From: William K. Cadwallender (LCWSL) <[email protected]> ! 10918: To: franz-friends@BERKELEY ! 10919: Subject: Please change my ID ! 10920: ! 10921: The computer people here at ARDC have changed my ID: I was wkc@ARDC, I am ! 10922: now cadwall@ARDC. Please update the franz-friends mailer accordingly. ! 10923: Thanks, ! 10924: Bill Cadwallender ! 10925: (now cadwall@ARDC) ! 10926: ! 10927: From liz@tove Tue Dec 18 12:19:24 1984 ! 10928: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10929: id AA00302; Tue, 18 Dec 84 12:19:24 pst ! 10930: Received: from tove.ARPA (tove.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.40) ! 10931: id AA04349; Tue, 18 Dec 84 11:54:53 pst ! 10932: Received: by tove.ARPA (4.12/4.7) ! 10933: id AA26165; Tue, 18 Dec 84 14:54:41 est ! 10934: From: Liz Allen <liz@tove> ! 10935: Message-Id: <[email protected]> ! 10936: Date: 18 Dec 1984 1454-EST (Tuesday) ! 10937: To: Wilson.Harvey@CMU-CS-IUS ! 10938: Cc: franz-friends@BERKELEY ! 10939: Subject: Re: appending to files in lisp? ! 10940: In-Reply-To: Your message of 17 Dec 84 16:02:13 EST. ! 10941: <[email protected]> ! 10942: ! 10943: To append to a file, use the outfile function's second argument: ! 10944: ! 10945: (setq oport (outfile '<filename> 'append)) ! 10946: ! 10947: This is discussed in the documentation for outfile in the Franz Lisp ! 10948: Manual. ! 10949: ! 10950: -Liz ! 10951: ! 10952: From @MIT-MC:[email protected] Tue Dec 18 16:46:44 1984 ! 10953: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10954: id AA02563; Tue, 18 Dec 84 16:46:44 pst ! 10955: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.40) ! 10956: id AA10079; Tue, 18 Dec 84 16:15:50 pst ! 10957: Message-Id: <[email protected]> ! 10958: Date: 17 Dec 84 23:04:24 EST ! 10959: From: Wilson.Harvey@CMU-CS-IUS ! 10960: Subject: appendfile question answered ! 10961: To: BBoard.Maintainer@CMU-CS-A ! 10962: ! 10963: ! 10964: Wow, was that an easy question. All the responces were equally simple (use ! 10965: "fileopen" with mode = a, or use "outfile" with the extra argument ! 10966: "append"). ! 10967: ! 10968: I must have an outdated copy of the manual because I could find none of ! 10969: these "features" documented. A hearty "Thank you" to all who responded. ! 10970: ! 10971: Wilson ! 10972: ! 10973: ! 10974: From [email protected] Wed Jan 2 03:00:04 1985 ! 10975: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 10976: id AA08140; Wed, 2 Jan 85 03:00:04 pst ! 10977: Received: from udel-dewey (udel-dewey.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.40) ! 10978: id AA01144; Wed, 2 Jan 85 02:51:04 pst ! 10979: Message-Id: <[email protected]> ! 10980: Received: From localhost.DELAWARE by udel-dewey.DELAWARE id a029713 ! 10981: ;2 Jan 85 5:57 EST ! 10982: To: franz-friends@BERKELEY ! 10983: Cc: johnson@udel-dewey ! 10984: Subject: franz on 68k-based systems? (esp NCR tower) ! 10985: Date: 02 Jan 85 05:57:37 EST (Wed) ! 10986: From: johnson <johnson@udel-dewey> ! 10987: ! 10988: ! 10989: Has anyone out there had experience using franz (or similar lisps) ! 10990: on an NCR tower or tower XP? (or any other 68k-based unix system ?) ! 10991: ! 10992: I am interested in answers to these questions: ! 10993: ! 10994: 1. What version of (franz) lisp are you using. ! 10995: ! 10996: 2. Are there any special problems you've discovered in this system? ! 10997: ! 10998: 3. How does this system perform? (compared to franz on a VAX 11/70, ! 10999: assuming you have had experience with both) ! 11000: ! 11001: 4. Where did you obtain your version of (franz) lisp and how? ! 11002: (what media, what cost, under what terms or license?) ! 11003: ! 11004: thanks in advance, ! 11005: johnson@udel-ee ! 11006: ! 11007: From sridhar%[email protected] Thu Jan 24 00:31:15 1985 ! 11008: Received: from ucbernie.ARPA by ucbkim.ARPA (4.24/4.27) ! 11009: id AA12825; Thu, 24 Jan 85 00:31:15 pst ! 11010: Received: from csnet-relay (csnet-pdn-gw.ARPA) by ucbernie.ARPA (4.24/4.40) ! 11011: id AA15268; Thu, 24 Jan 85 00:31:03 pst ! 11012: Message-Id: <[email protected]> ! 11013: Received: from wsu by csnet-relay.csnet id a006053; 24 Jan 85 3:16 EST ! 11014: Date: Wed, 23 Jan 85 21:50 PST ! 11015: From: "S. Sridhar" <sridhar%[email protected]> ! 11016: To: cross%[email protected] ! 11017: Cc: [email protected] ! 11018: Subject: pretty printing ! 11019: ! 11020: Is there any way I can pretty-print Franz lisp function (or files) with all ! 11021: the comments in tact. Right now when I use the built in pp, it pretty prints ! 11022: and strips off all comments. I mean is there any built-in function that does ! 11023: this. Thanks. ! 11024: ! 11025: Sridhar (sridhar@wsu) ! 11026: ! 11027: From [email protected] Thu Jan 24 05:33:59 1985 ! 11028: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 11029: id AA14557; Thu, 24 Jan 85 05:33:59 pst ! 11030: Received: from BRL-VOC (brl-voc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.41) ! 11031: id AA00666; Thu, 24 Jan 85 05:16:27 pst ! 11032: Message-Id: <[email protected]> ! 11033: Date: Thu, 24 Jan 85 7:59:46 EST ! 11034: From: "Ferd Brundick (VLD/LTTB)" <[email protected]> ! 11035: To: "S. Sridhar" <sridhar%[email protected]> ! 11036: Cc: Franz-Friends@BERKELEY ! 11037: Subject: Re: pretty printing ! 11038: ! 11039: Haah, ! 11040: ! 11041: Franz's (read) function trashes all comments on input. [Which means ! 11042: you can document your data files.] You have to pretty-print the ! 11043: original code before Franz gets it. I don't know of any stand-alone ! 11044: programs to do this (surely someone has written one). I use ! 11045: Berkeley's "vi" editor because it has a lisp mode; all input is ! 11046: automatically pretty-printed if you say ! 11047: :set ai lisp ! 11048: (ai stands for autoindent) ! 11049: Another way is to execute the vi "=" command while in lisp mode. All ! 11050: of this is documented in the vi manual. Hope this helps. ! 11051: ! 11052: dsw, fferd ! 11053: Fred S. Brundick ! 11054: USABRL, APG, MD. ! 11055: <fsbrn@brl-voc> ! 11056: ! 11057: From @MIT-MC:smh@MIT-EMS Thu Jan 24 06:01:33 1985 ! 11058: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 11059: id AA14651; Thu, 24 Jan 85 06:01:33 pst ! 11060: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.41) ! 11061: id AA00458; Thu, 24 Jan 85 06:00:41 pst ! 11062: Message-Id: <[email protected]> ! 11063: Received: by mit-ems.Mit-chaos.Arpa id AA25956; Thu, 24 Jan 85 08:59:42 est ! 11064: Date: Thu, 24 Jan 85 08:59:42 est ! 11065: From: Steven Haflich <smh@mit-ems> ! 11066: To: franz-friends@BERKELEY, sridhar%wsu.csnet@csnet-relay ! 11067: Subject: Re: pretty printing ! 11068: ! 11069: Since comments are not part of a Lisp form returned by `read', clearly ! 11070: no pretty-print function can do what you want. Certainly a far more ! 11071: complicated pretty-printer could be written which would be passed an ! 11072: ascii file to read and which would somehow preserve comments inside the ! 11073: form in order to regurgitate them during formatting. The problem has ! 11074: several complications, however, such as how to handle ascii Lisp text ! 11075: with conditionalized inclusions (`#+' constructions)... ! 11076: ! 11077: Instead, what you want is probably provided the Lisp-mode `grind' ! 11078: facilities available in several popular text editors -- in particular, ! 11079: EMACS. (I know CCA EMACS works, and believe Gosling EMACS does also.) ! 11080: In these editors a couple keystrokes will specify a region of text and ! 11081: apply one of several Lisp-indentation algorithms to it. They almost ! 11082: always indent in reasonable ways, and attempt to do reasonable things ! 11083: with comments, at least. The ones with which I am familiar will *not*, ! 11084: however, adjust line length length by moving either comment or Lisp ! 11085: text from line to line. This is not a great problem for normal ! 11086: human-typed text, such as programs, since one tends not to type ! 11087: absurdly long lines. ! 11088: ! 11089: ! 11090: From peck@sri-spam Wed Feb 6 12:01:17 1985 ! 11091: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 11092: id AA28782; Wed, 6 Feb 85 12:01:17 pst ! 11093: Received: from sri-spam.ARPA (sri-spam.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.41) ! 11094: id AA04441; Wed, 6 Feb 85 12:00:09 pst ! 11095: Received: from localhost.ARPA by sri-spam.ARPA (4.22/4.16) ! 11096: id AA08198; Wed, 6 Feb 85 12:00:05 pst ! 11097: Message-Id: <[email protected]> ! 11098: Date: 06 Feb 85 11:59:58 PST (Wed) ! 11099: To: ailist-request@sri-ai, franz-friends@BERKELEY ! 11100: Subject: AI, Lisp, Graphics on SUN computers? ! 11101: From: peck@sri-spam ! 11102: ! 11103: I would like to here from anyone using SUN computers ! 11104: who can supply answers or comments on any of these issues: ! 11105: Is Franz the only (best) lisp available? ! 11106: Has anyone used the Maryland Flavors to create useful tools/extensions? ! 11107: Any support for sun graphics (windows, menus,etc) a la Interlisp-D? ! 11108: Any differential reports of Prolog (Quintus) vs Lisp ? ! 11109: Any obvious alternative to SUN? (vendor in same class (Tektronix?)) ! 11110: Worst or hidden problems, pitfalls, gotcha's, etc. ! 11111: > Can real AI development (even applications) be supported on SUN's? < ! 11112: ! 11113: From kessler%utah-orion@utah-cs Wed Feb 6 15:58:12 1985 ! 11114: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 11115: id AA03031; Wed, 6 Feb 85 15:58:12 pst ! 11116: Received: from utah-cs.ARPA (utah-gateway.ARPA) by UCB-VAX.ARPA (4.24/4.41) ! 11117: id AA06871; Wed, 6 Feb 85 13:46:19 pst ! 11118: Received: from utah-orion.ARPA by utah-cs.ARPA (4.42/4.40.1) ! 11119: id AA03096; Wed, 6 Feb 85 14:37:05 MST ! 11120: Received: by utah-orion.ARPA (4.42/4.40.1) ! 11121: id AA10406; Wed, 6 Feb 85 14:36:22 MST ! 11122: Date: Wed, 6 Feb 85 14:36:22 MST ! 11123: From: kessler%utah-orion@utah-cs (Robert Kessler) ! 11124: Message-Id: <[email protected]> ! 11125: To: [email protected] ! 11126: Cc: [email protected], franz-friends@BERKELEY ! 11127: Subject: Re: AI, Lisp, Graphics on SUN computers? (Long Message) ! 11128: In-Reply-To: Your message of 06 Feb 85 11:59:58 PST (Wed). ! 11129: <[email protected]> ! 11130: ! 11131: ! 11132: > I would like to here from anyone using SUN computers ! 11133: > who can supply answers or comments on any of these issues: ! 11134: > Is Franz the only (best) lisp available? ! 11135: We have finally finished porting Portable Standard LISP (PSL) to yet ! 11136: another machine. This time it is now running on the SUN. Initial ! 11137: timing measurements indicate that its speed is somewhere between a ! 11138: Vax 750 and 780 (all running PSL), and about twice as fast as Franz running ! 11139: the REDUCE algebra system test on Suns. We are now running the Gabriel ! 11140: benchmarks to discover where it fits in the set. For more details ! 11141: see the announcement at the end of this message. ! 11142: > Has anyone used the Maryland Flavors to create useful tools/extensions? ! 11143: PSL provides support for a simple flavors package that seems quite ! 11144: useful. However, the current version has no inheritance. ! 11145: > Any support for sun graphics (windows, menus,etc) a la Interlisp-D? ! 11146: We have oload working which allows you to call externally compiled ! 11147: routines (like other c sources). So the interface should be easy to ! 11148: add (but we haven't done it). ! 11149: > Any differential reports of Prolog (Quintus) vs Lisp ? ! 11150: None that I know of. ! 11151: > Any obvious alternative to SUN? (vendor in same class (Tektronix?)) ! 11152: PSL also runs on Apollo's and HP Series 200 (both 68K based machines). ! 11153: We have also ported a simple "educational" version to the 128K ! 11154: Macintosh which is used in a beginning programming class. We plan on ! 11155: moving at least the Standard LISP subset and compiler to the 512K mac ! 11156: (so if you want to go really cheap...... :-) ) ! 11157: > Worst or hidden problems, pitfalls, gotcha's, etc. ! 11158: We had a lot of problems with the Sun port. Some were hardware ! 11159: related, others were differences between Unix 4.2 on the Sun and on the ! 11160: Vax. After we get some more experience using PSL on the machine, maybe ! 11161: we could report more. ! 11162: > > Can real AI development (even applications) be supported on SUN's? < ! 11163: I think so, as long as you can get one with enough memory. Some of our ! 11164: applications running on HP 9836's (which doesn't have virtual memory) ! 11165: really fly (better than a 780 in speed). So, memory is really a key to ! 11166: a fast machine. ! 11167: > ! 11168: Bob. ! 11169: ! 11170: PSL 3.2 for the SUN Workstation ! 11171: ! 11172: We are pleased to announce that Portable Standard LISP (PSL) version ! 11173: 3.2 is now available for the Sun workstation. PSL is about the power, ! 11174: speed and flavor of Franz LISP or MACLISP, with growing influence ! 11175: from Common LISP. It is recognized as an efficient and portable ! 11176: LISP implementation with many more capabilities than described in ! 11177: the 1979 Standard LISP Report. PSL's main strength is its ! 11178: portability across many different systems, including: Vax BSD ! 11179: Unix, Vax VMS, Extended Addressing DecSystem-20 Tops-20, Apollo ! 11180: DOMAIN Aegis, and HP Series 200. A version for the IBM-370 is in ! 11181: beta test and two Cray versions are being used on an experimental ! 11182: basis. Since PSL generates very efficient code, it is an ideal ! 11183: delivery vehicle for LISP based applications (we can also provide PSL ! 11184: reseller licenses for binary only and source distributions). ! 11185: ! 11186: PSL is distributed for the various systems with executables, all ! 11187: sources, an approximately 500 page manual and release notes. The ! 11188: release notes describe how to install the system and how to rebuild ! 11189: the various modules. We are charging $750 for the Sun version of ! 11190: PSL for Commercial Site licenses. Non-profit institutions and all ! 11191: other versions of PSL will not be charged a license fee. We are also ! 11192: charging a $250 tape distribution fee for each system. ! 11193: ! 11194: PSL is in heavy use at Utah, and by collaborators at Hewlett-Packard, ! 11195: Rand, Stanford, Columbia and over 250 other sites. Many existing ! 11196: programs and applications have been adapted to PSL including ! 11197: Hearn's REDUCE computer algebra system and GLISP, Novak's object ! 11198: oriented LISP dialect. These are available from Hearn and Novak. ! 11199: ! 11200: To obtain a copy of the license and order form, please send a NET ! 11201: message or letter with your US MAIL address to: ! 11202: ! 11203: Utah Symbolic Computation Group Secretary ! 11204: University of Utah - Dept. of Computer Science ! 11205: 3160 Merrill Engineering Building ! 11206: Salt Lake City, Utah 84112 ! 11207: ! 11208: ARPANET: CRUSE@UTAH-20 ! 11209: USENET: utah-cs!cruse ! 11210: ! 11211: From cas@cvl Thu Feb 21 11:40:59 1985 ! 11212: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 11213: id AA17380; Thu, 21 Feb 85 11:40:59 pst ! 11214: Received: from cvl.ARPA (cvl.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.41) ! 11215: id AA23930; Thu, 21 Feb 85 11:33:27 pst ! 11216: Received: by cvl.ARPA (4.12/4.7) ! 11217: id AA09421; Thu, 21 Feb 85 14:38:26 est ! 11218: Date: Thu, 21 Feb 85 14:38:26 est ! 11219: From: cas@cvl (Cliff Shaffer) ! 11220: Message-Id: <[email protected]> ! 11221: To: franz-friends@BERKELEY ! 11222: Subject: database system request ! 11223: ! 11224: ! 11225: Does anybody know of a database system written in FRANZ or easily ! 11226: compatible with FRANZ? We have written a lot of software for a ! 11227: geographic information system, and may want to redo the section which ! 11228: handles random bits of information associated with polygons or points ! 11229: stored in a map. Right now we store this information as a property ! 11230: list on an atom associated with the polygon or point in question. This ! 11231: becomes very inefficient when we want to find all such atoms with ! 11232: a particular value for some arbitrary property. Equally importantly, ! 11233: there is very little relationship between the set of properties associated ! 11234: with each polygon or point, so a system storing a fixed length record ! 11235: for each polygon, with fields for each piece of information, would not work. ! 11236: Any suggestions? ! 11237: Cliff Shaffer ! 11238: cas@cvl ! 11239: ! 11240: From layer@ucbdali Thu Feb 21 12:54:14 1985 ! 11241: Received: from ucbdali.ARPA by ucbkim.ARPA (4.24/4.27) ! 11242: id AA18356; Thu, 21 Feb 85 12:54:14 pst ! 11243: Received: by ucbdali.ARPA (4.24/4.40) ! 11244: id AA16858; Thu, 21 Feb 85 12:53:47 pst ! 11245: Date: Thu, 21 Feb 85 12:53:47 pst ! 11246: From: layer@ucbdali (Kevin Layer) ! 11247: Message-Id: <[email protected]> ! 11248: Phone: (415) 652-2405 ! 11249: To: cas@cvl, franz-friends@kim ! 11250: Subject: Re: database system request ! 11251: ! 11252: You could use the dbm library, as supplied by UNIX (/usr/lib/libdbm.a), ! 11253: via cfasl and getaddress. ! 11254: ! 11255: Kevin ! 11256: ! 11257: ! 11258: From freemant%[email protected] Mon Feb 25 04:50:50 1985 ! 11259: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 11260: id AA20175; Mon, 25 Feb 85 04:50:50 pst ! 11261: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.41) ! 11262: id AA24603; Mon, 25 Feb 85 04:43:20 pst ! 11263: Date: Mon, 25 Feb 85 04:43:17 pst ! 11264: Message-Id: <[email protected]> ! 11265: Received: from rpi by csnet-relay.csnet id a012112; 25 Feb 85 7:24 EST ! 11266: From: freemant%[email protected] ! 11267: To: franz-friends@BERKELEY ! 11268: ! 11269: Hello! Our version of lxref didn't work right when it was passed the -a ! 11270: option, so I fixed it. Someone may want to use the -a option on lxref one ! 11271: of these days, so I am mailing you my fixes in hopes that you will ! 11272: distribute them. ! 11273: ! 11274: Things are kind of chaotic around here, so I am not sure that I was working ! 11275: with the most current version of lxref. Make sure that your current version ! 11276: of lxref matches the code that I changed before you edit in my changes. ! 11277: ! 11278: The origional definition of the function process-annotate-file left files ! 11279: open. Because the lisp interpreter can only have a finite number of files ! 11280: open at once, this caused lxref to bomb when it was given a large job to do. ! 11281: To fix this, I changed the definition of process-annotate-file from: ! 11282: ! 11283: (defun process-annotate-file (filename) ! 11284: (let (sourcep outp) ! 11285: ; make sure file exists and write annotate file as a ! 11286: ; file with the prefix #, ! 11287: (if (null (errset (setq sourcep (infile filename)))) ! 11288: then (msg "will ignore that file " N) ! 11289: else ; will write to file.A (erasing the final l) ! 11290: (let ((filen (concat "#," filename))) ! 11291: (setq outp (outfile filen)) ! 11292: (anno-it sourcep outp) ! 11293: (close outp) ! 11294: ; now mv the original filename to #dfilename ! 11295: ; and the annotated file to the original file ! 11296: (let ((oldcopy (concat "#." filename))) ! 11297: (if (null (errset ! 11298: (progn (if (probef oldcopy) ! 11299: then (sys:unlink oldcopy)) ! 11300: (sys:link filename oldcopy) ! 11301: (sys:unlink filename) ! 11302: (sys:link filen filename) ! 11303: (sys:unlink filen)))) ! 11304: then (msg "An error occured while mving files around " ! 11305: N ! 11306: "files possibly affected " ! 11307: filename oldcopy filen))))))) ! 11308: ! 11309: to: ! 11310: ! 11311: (defun process-annotate-file (filename) ! 11312: (let (sourcep outp) ! 11313: ; make sure file exists and write annotate file as a ! 11314: ; file with the prefix #, ! 11315: (if (null (errset (setq sourcep (infile filename)))) ! 11316: then (msg "will ignore that file " N) ! 11317: else ; will write to file.A (erasing the final l) ! 11318: (let ((filen (concat "#," filename))) ! 11319: (setq outp (outfile filen)) ! 11320: (anno-it sourcep outp) ! 11321: (close outp) ! 11322: (close sourcep) ! 11323: ; now mv the original filename to #dfilename ! 11324: ; and the annotated file to the original file ! 11325: (let ((oldcopy (concat "#." filename))) ! 11326: (if (null (errset ! 11327: (progn (if (probef oldcopy) ! 11328: then (sys:unlink oldcopy)) ! 11329: (sys:link filename oldcopy) ! 11330: (sys:unlink filename) ! 11331: (sys:link filen filename) ! 11332: (sys:unlink filen)))) ! 11333: then (msg "An error occured while mving files around " ! 11334: N ! 11335: "files possibly affected " ! 11336: filename oldcopy filen))))))) ! 11337: ! 11338: Note that the only change is the insertion of one close statement. ! 11339: ! 11340: The other bug I found was that find-func miserably failed to do its job ! 11341: right. The origional version of the function looked like this: ! 11342: ! 11343: (defun find-func (buf) ! 11344: ; first locate first space or tab ! 11345: (do ((i 1 (1+ i)) ! 11346: (max (cxr 0 buf)) ! 11347: (die)) ! 11348: ((or (setq die (not (<& i max))) ! 11349: (memq (cxr i buf) '(#\space #\tab))) ! 11350: (if die ! 11351: then nil ; can find it, so give up ! 11352: else ; find first non blank ! 11353: (do ((ii i (1+ ii))) ! 11354: ((or (setq die (not (<& ii max))) ! 11355: (not (memq (cxr ii buf) '(#\space #\tab)))) ! 11356: (if (or die (eq (cxr ii buf) #\lpar)) ! 11357: then nil ! 11358: else ; fid first sep or left paren ! 11359: (do ((iii (1+ ii) (1+ iii))) ! 11360: ((or (not (<& iii max)) ! 11361: (memq (cxr iii buf) ! 11362: '(#\space #\tab #\lpar))) ! 11363: (implode-fun buf ii (1- iii))))))))))) ! 11364: ! 11365: Not unsurprisingly, this code didn't work. I discarded it and rewrote the ! 11366: function in a much simpler fashion: ! 11367: ! 11368: (defun find-func (buf) ! 11369: (let ((i 1) ! 11370: (max (cxr 0 buf)) ! 11371: (result nil)) ! 11372: (loop until (or (greaterp i max) (memq (cxr i buf) '(#\space #\tab))) ! 11373: do (setq i (+ i 1))) ! 11374: (loop while (and (not (greaterp i max)) ! 11375: (memq (cxr i buf) '(#\space #\tab))) do ! 11376: (setq i (+ i 1))) ! 11377: (loop until (or (greaterp i max) ! 11378: (memq (cxr i buf) ! 11379: '(#\space #\tab #.(getcharn '|(| 1)))) do ! 11380: (setq result (cons (cxr i buf) result)) ! 11381: (setq i (+ i 1))) ! 11382: (if result then (implode (reverse result)) else nil))) ! 11383: ! 11384: The error in the origional definition of find-func caused the -a option to ! 11385: always do nothing. It is surprising that no one caught the fact that the -a ! 11386: option was useless earlier. (However, I am not sure that the source that I ! 11387: was looking at came from your tape, so perhaps it isn't your fault.) In any ! 11388: case, my version works. ! 11389: ! 11390: Bye! ! 11391: Tim Freeman ! 11392: freemant@rpi ! 11393: ! 11394: From bane@gymble Wed Feb 27 12:20:08 1985 ! 11395: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 11396: id AA19926; Wed, 27 Feb 85 12:20:08 pst ! 11397: Received: from gymble.ARPA (gymble.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 11398: id AA13078; Wed, 27 Feb 85 12:12:21 pst ! 11399: Received: by gymble.ARPA (4.12/4.7) ! 11400: id AA25775; Wed, 27 Feb 85 15:17:32 est ! 11401: Date: Wed, 27 Feb 85 15:17:32 est ! 11402: From: John R. Bane <bane@gymble> ! 11403: Message-Id: <[email protected]> ! 11404: To: franz-friends@BERKELEY ! 11405: Subject: symeval 'feature' ! 11406: ! 11407: I've just finished a half-hour "It works interpreted but not compiled" ! 11408: debugging session with a user who was new to compiling Franz, and I have a ! 11409: complaint. The function 'symeval' works misleadingly differently interpreted ! 11410: and compiled. ! 11411: ! 11412: Compiled symeval open-codes into a symbol value-cell reference. This ! 11413: is fine. Interpreted symeval is implemented as a pointer to 'eval'. This ! 11414: loses because something like (symeval '(+ 1 2)) is not an error interpreted, ! 11415: and it should be because it turns into the worst kind of bug when compiled, ! 11416: since it'll return some random pointer from cons node space. ! 11417: ! 11418: This 'feature' was observed in Opus 38.91. ! 11419: ! 11420: From [email protected] Thu Feb 28 11:37:06 1985 ! 11421: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 11422: id AA04105; Thu, 28 Feb 85 11:37:06 pst ! 11423: Received: from wisc-ai.arpa (wisc-ai.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 11424: id AA08982; Thu, 28 Feb 85 11:29:20 pst ! 11425: Date: Thu, 28 Feb 85 13:34:20 cst ! 11426: From: [email protected] (David Neves) ! 11427: Message-Id: <[email protected]> ! 11428: Received: by wisc-ai.arpa; Thu, 28 Feb 85 13:34:20 cst ! 11429: To: franz-friends@BERKELEY ! 11430: Subject: franz to vi & back ! 11431: ! 11432: We have a heavily loaded vax on which we run our Lisp classes. It ! 11433: seems to me that we could lessen the load by not having VI start ! 11434: up anew every time the student does a VIL in Franz. ! 11435: ! 11436: It would be nice to have two processes, one Lisp and the other VI. ! 11437: There would be a function (like VIL) in Franz that would start up ! 11438: a VI process if there wasn't one and if there was a VI process just ! 11439: goto it. When the student is finished editing the file he/she would ! 11440: hit a key that would save out the file and return to Lisp (without ! 11441: killing the VI process). I believe that Gosling Emacs had something ! 11442: like this, only more sophisticated. ! 11443: ! 11444: My questions. Has anyone done this for Franz & VI? Would this help ! 11445: the load average on a VAX? If no one has done it, would it be difficult ! 11446: to do? ! 11447: -Thanks, David ! 11448: ! 11449: From moore.losangel%[email protected] Thu Feb 28 16:20:09 1985 ! 11450: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 11451: id AA08882; Thu, 28 Feb 85 16:20:09 pst ! 11452: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 11453: id AA05586; Thu, 28 Feb 85 16:12:12 pst ! 11454: Message-Id: <[email protected]> ! 11455: Received: from ibm-sj by csnet-relay.csnet id ac15203; 28 Feb 85 19:11 EST ! 11456: Date: Thu, 28 Feb 85 15:34:11 PST ! 11457: From: Jim moore <moore.losangel%[email protected]> ! 11458: To: [email protected], franz-friends@BERKELEY ! 11459: Subject: Can/does Franz exist on PC/IX or VM/IX? ! 11460: ! 11461: I am looking for a high quality LISP to run under PC(VM)/IX. ! 11462: ! 11463: Is Franzlisp the one? Who & How? ! 11464: ! 11465: If not, which? ! 11466: ! 11467: Thanks in advance -- Jim Moore ! 11468: ! 11469: (MOORE.LOSANGEL@IBM) ! 11470: ! 11471: p.s. pls reply directly since I'm not on this list. ! 11472: ! 11473: ! 11474: From [email protected] Fri Mar 1 04:29:27 1985 ! 11475: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 11476: id AA17511; Fri, 1 Mar 85 04:29:27 pst ! 11477: Received: from udel-dewey (udel-dewey.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 11478: id AA18449; Fri, 1 Mar 85 04:21:31 pst ! 11479: Message-Id: <[email protected]> ! 11480: Received: From localhost.DELAWARE by udel-dewey.DELAWARE id a009017 ! 11481: ;1 Mar 85 7:18 EST ! 11482: To: David Neves <[email protected]> ! 11483: Cc: franz-friends@BERKELEY, johnson@udel-dewey ! 11484: Subject: Re: franz to vi & back ! 11485: In-Reply-To: Your message of Thu, 28 Feb 85 13:34:20 cst. ! 11486: <[email protected]> ! 11487: Date: 01 Mar 85 07:18:11 EST (Fri) ! 11488: From: johnson@udel-dewey ! 11489: ! 11490: ! 11491: Subject: franz to vi & back ! 11492: ! 11493: > We have a heavily loaded vax on which we run our Lisp classes. It ! 11494: > seems to me that we could lessen the load by not having VI start ! 11495: > up anew every time the student does a VIL in Franz. ! 11496: > ! 11497: > It would be nice to have two processes, one Lisp and the other VI. ! 11498: > There would be a function (like VIL) in Franz that would start up ! 11499: > a VI process if there wasn't one and if there was a VI process just ! 11500: > goto it. When the student is finished editing the file he/she would ! 11501: > hit a key that would save out the file and return to Lisp (without ! 11502: > killing the VI process). I believe that Gosling Emacs had something ! 11503: > like this, only more sophisticated. ! 11504: > ! 11505: > My questions. Has anyone done this for Franz & VI? Would this help ! 11506: > the load average on a VAX? If no one has done it, would it be difficult ! 11507: > to do? ! 11508: > ! 11509: ! 11510: I have developed something similar to what you describe, for franz ! 11511: running under bsd4.2 ! 11512: ! 11513: It was moderately difficult at the time, but I was just learning to ! 11514: exploit job control. ! 11515: ! 11516: in this system, the user invokes: ! 11517: (vif foo) ! 11518: to edit the function foo. ! 11519: ! 11520: when he is finished editing, he saves the current buffer by: ! 11521: :w ! 11522: then exits the editor by pressing: ! 11523: ^Z [NOT wq!!] ! 11524: ! 11525: (getting users o use ^Z rather than wq is the biggest difficulty) ! 11526: ! 11527: the function is the read from a temporary file which is created ! 11528: by vif. ! 11529: ! 11530: if the user later wishes to modify the SAME function [often the case] ! 11531: he simply invokes: ! 11532: (vif) ! 11533: - and is returned to the [stopped] editing session EXACTLY where ! 11534: he left it. ! 11535: [ providing some motivation for putting up with ^Z ] ! 11536: ! 11537: ! 11538: The system people around here aren't too adventurous, so the only people ! 11539: who use this system are my friends and myself, so I can't say what effect ! 11540: it has on the load, [but it can only help] ! 11541: ! 11542: one problem: files in /tmp may accumulate, as there is no way to force ! 11543: a user to clean up all editing sessions before exiting lisp. ! 11544: [but that is what /tmp is for!] you might warn your system people ! 11545: to remove all VIF files that are over 2days old, or something like that. ! 11546: ! 11547: ! 11548: note: this package knows about changes made by [cmu]edit, and may ! 11549: be simplified if you are using a system where cmuedit is unavailable. ! 11550: ! 11551: ! 11552: NOTE!!!!!! ! 11553: Neither the University of Delaware ! 11554: nor Apperson H. Johnson ! 11555: relinquishes any rightts toi this software. ! 11556: ! 11557: Please do NOT transfer the software without written permission ! 11558: from both The University of Delaware and Apperson H. Johnson. ! 11559: ! 11560: ! 11561: ********************************************************** ! 11562: setting up the system: ! 11563: ! 11564: Script started on Fri Mar 1 06:49:30 1985 ! 11565: % make jced ! 11566: cc -c jced.c ! 11567: cc -c eroar.c ! 11568: ld -o jcedmod.o -r jced.o eroar.o ! 11569: % lisp ! 11570: Franz Lisp, Opus 38.79 ! 11571: -> [load 'vif] ! 11572: [load vif.l] ! 11573: /usr/lib/lisp/nld -N -x -A /usr/ucb/lisp -T 95800 jcedmod.o -e _jced_ -o /tmp/Li8788.0 -lc ! 11574: t ! 11575: -> [dumplisp newlisp] ! 11576: nil ! 11577: -> (exit) ! 11578: script done on Fri Mar 1 06:51:45 1985 ! 11579: ******************************************************************* ! 11580: ! 11581: "newlisp" is now the lisp to use - you can put it in some directory ! 11582: in youtr student's path ! 11583: ---------- here is vif.l -------------------------------- ! 11584: (setq sccid "#(@)vif.l V1.1 johnson@udel 10/13/84") ! 11585: (eval-when (compile) ! 11586: (msg "vif doen't work compiled!!!\\ "N) (exit)) ! 11587: (declare (localf sccid)) ! 11588: ; ! 11589: ; uses job-control to allow ^Z from 'vi' to return to inside of ! 11590: ; Lisp function ! 11591: ; ! 11592: ! 11593: ! 11594: ; ::vif:: ! 11595: ; ! 11596: ; Usage: (vif [<function-name>]) ! 11597: ; returns: t if function is loaded without errors, nil otherwise ! 11598: ; side-effect: starts vi with temporary file, ! 11599: ; ! 11600: ; does NOT REMOVE FILE UNLESS SUCCESSFUL LOAD HAS BEEN MADE ! 11601: ; AND user has "quit" the editor ! 11602: ; ! 11603: ; - allows ~instantaneous return to file being edited if ! 11604: ; vi has been exited by ^Z (or whatever the susp character is, [see stty.1]) ! 11605: ; ! 11606: ; NOTE: file and vi session may stay "LIVE" even between invocations!!! ! 11607: ; eg: ! 11608: ; ! 11609: ; (def jnk '(lambda (x) "i am jnk")) ! 11610: ; ! 11611: ; (vif jnk) ! 11612: ; --> vi session, followed by :w, and then ^Z ! 11613: ; t ! 11614: ; followed by : ! 11615: ; (vif jnk ) ! 11616: ; or: ! 11617: ; (vif) ! 11618: ; --> INSTANTLY returns to former vi session !! ! 11619: ; ! 11620: ; ! 11621: ; ! 11622: (declare (special *jced_lastf* *jced_lastc* %changes)) ! 11623: ! 11624: (def vif ! 11625: (nlambda (fn) ! 11626: (prog (res tf er ppflag) ! 11627: (cond ! 11628: (fn ! 11629: (cond ! 11630: ((or (not (boundp '*jced_lastf*)) ! 11631: (neq *jced_lastf* (car fn))) ! 11632: (setq ppflag t) ! 11633: (setq *jced_lastf* (car fn)))))) ! 11634: (cond ((boundp '*jced_lastf*) ! 11635: (setq tf ! 11636: (substring (concat '/tmp/VF ! 11637: (concat (syscall 20) ! 11638: (concat '_ ! 11639: *jced_lastf*))) ! 11640: 1)) ! 11641: (cond ! 11642: ((and (boundp '%changes) ! 11643: (memq *jced_lastf* %changes) ! 11644: (or (not (boundp '*jced_lastc*)) ! 11645: (neq *jced_lastc* (memq *jced_lastf* %changes)))) ! 11646: (setq ppflag t))) ! 11647: (cond ! 11648: (ppflag ! 11649: (eval (list 'pp (list 'F tf) *jced_lastf*))))) ! 11650: (t (msg "vif: edit what ??" N) (return nil))) ! 11651: lp (setq res (jced_ tf "")) ! 11652: (setq er nil) ! 11653: (setq ER%all '(lambda (x) ! 11654: (setq er t)) ! 11655: ) ! 11656: (cond ! 11657: ((not (probef tf)) ! 11658: (msg "vif: cannot find " tf) ! 11659: (cond ! 11660: ((eq res 1) ! 11661: (msg " want to return to the editor? {y/n} ") ! 11662: (cond ((eq (read) 'y) (go lp))) ! 11663: (return nil))) ! 11664: (msg " sorry." N) ! 11665: (makunbound '*jced_lastf*) ! 11666: (return t))) ! 11667: (errset (load tf)) ! 11668: (cond ! 11669: ((boundp '%changes) ! 11670: (setq *jced_lastc* (memq *jced_lastf* %changes)))) ! 11671: (cond ! 11672: (er (msg "vif: want to fix " *jced_lastf* "? {y/n} ") ! 11673: (cond ((eq (read) 'y) (go lp))))) ! 11674: (cond ((eq res 0) ! 11675: (makunbound '*jced_lastf*) ! 11676: (syscall 10 tf) ! 11677: (return t)) ! 11678: (t (return nil)))))) ! 11679: ! 11680: ! 11681: ; ! 11682: ; include modules written in C ! 11683: (cfasl 'jcedmod.o '_jced_ 'jced_ "integer-function") ! 11684: ! 11685: ; initialization string for jced ! 11686: (jced_ ":se lisp ! 11687: " "edinit") ! 11688: ! 11689: ; editor to use ! 11690: (jced_ "/usr/ucb/vi" "editor") ! 11691: ! 11692: --------------- ------- jced.c --------------- ! 11693: static char sccid[] = "@(#)jced.c 1.1 johnson@udel 11/2/84"; ! 11694: ! 11695: #include <signal.h> ! 11696: #include <sgtty.h> ! 11697: #include <errno.h> ! 11698: #include <sys/wait.h> ! 11699: #include <sys/types.h> ! 11700: #include <sys/stat.h> ! 11701: #include <sys/file.h> ! 11702: #include <stdio.h> ! 11703: ! 11704: #define streq(s1,s2) (0 == strcmp(s1,s2)) ! 11705: #define file_exist(FN) (0 == access(FN,F_OK)) ! 11706: static int chpgrp, pgrp; ! 11707: static union wait status; ! 11708: static struct stat st0,st1; ! 11709: static struct sigvec sv1 = { SIG_IGN, 0, 0}; ! 11710: static struct sigvec sv0; ! 11711: ! 11712: static char curname[128]; ! 11713: static char ed_buf[] = "/usr/ucb/vi"; ! 11714: static char init_buf[] = ""; ! 11715: static char myname_buf[] = "jced_"; ! 11716: static char *editor = ed_buf; ! 11717: static char *edinit = init_buf; ! 11718: static char *myname = myname_buf; ! 11719: ! 11720: /* ::jced_:: ! 11721: * ! 11722: * Usage: (jced_ "filename" "") ! 11723: * ! 11724: * jced_ is a job-control editor ! 11725: * ! 11726: * - starts an editor session with "filename" ! 11727: * (or resumes it if there is a 'living' session with that file) ! 11728: * - returns 1 if the session remains alive, 0 if the session is over ! 11729: * ! 11730: * NOTE: if the SECOND argument is not the EMPTY string, ! 11731: * then the following special calls may apply: ! 11732: * ! 11733: * (jced_ "/usr/ucb/vi" "editor") ! 11734: * - causes jced to use /usr/ucb/vi as the editor (this is the default) ! 11735: * ! 11736: * : (jced_ ":se bla" "edinit") ! 11737: * - causes jced cause the editor to pretend that the user typed ":se bla" ! 11738: * every time the editor is invoked (the default is "") ! 11739: * ! 11740: * : (jced_ "jced_" "myname") ! 11741: * - causes jced to use the name "jced_" in its prompts and messages ! 11742: * (this is the default) ! 11743: * ! 11744: */ ! 11745: int ! 11746: jced_(fname,cmd) ! 11747: char *fname, *cmd; ! 11748: { ! 11749: union wait status; ! 11750: char resp[2]; ! 11751: ! 11752: ! 11753: if (*cmd) { ! 11754: if (streq(cmd,"editor")) newstring(&editor,fname); ! 11755: else if (streq(cmd,"edinit")) newstring(&edinit,fname); ! 11756: else if (streq(cmd,"myname")) newstring(&myname,fname); ! 11757: else fprintf(stderr,"%s: %s is an unknown command",myname,cmd); ! 11758: return(0); ! 11759: } ! 11760: ! 11761: if (*curname) { ! 11762: if (*fname && !streq(fname,curname)) { ! 11763: if (file_exist(curname)) ! 11764: eroar(unlink(curname),0,"unlink %",curname); ! 11765: kvil_(); ! 11766: strcpy(curname,fname); ! 11767: begin_vi(); resume_vi(); ! 11768: } else { ! 11769: /* ! 11770: * if file has been modified elsewhere, ! 11771: * new editing session is needed ! 11772: */ ! 11773: if (file_exist(curname)) { ! 11774: eroar(stat(curname,&st1),0,"stat"); ! 11775: if(st0.st_mtime != st1.st_mtime) { ! 11776: kvil_(); strcpy(curname,fname); begin_vi(); ! 11777: } ! 11778: } ! 11779: resume_vi(); ! 11780: } ! 11781: } else if (*fname) { ! 11782: strcpy(curname,fname); ! 11783: begin_vi(); resume_vi(); ! 11784: } else ! 11785: return(0); ! 11786: ! 11787: return((*curname) ? 1 : 0); ! 11788: } ! 11789: ! 11790: /* to be called when a function is modified elsewhwre */ ! 11791: kvil_() ! 11792: { ! 11793: eroar(killpg(chpgrp,SIGKILL),0,"killpg %d",chpgrp); ! 11794: wait3(&status,WUNTRACED,0); ! 11795: curname[0] = '\0'; ! 11796: } ! 11797: ! 11798: static ! 11799: begin_vi() ! 11800: { ! 11801: if (chpgrp = fork()) { ! 11802: pgrp = getpgrp(0); ! 11803: eroar(setpgrp(chpgrp,chpgrp),0,"setpgrp"); ! 11804: } else { ! 11805: fakeinput(edinit); ! 11806: execlp(editor,editor,curname,0); ! 11807: fprintf(stderr,"%s: exec of %s failed\n",myname,editor); ! 11808: } ! 11809: } ! 11810: ! 11811: ! 11812: static ! 11813: resume_vi() ! 11814: { ! 11815: char dum[2]; ! 11816: ! 11817: for (;;) { ! 11818: eroar(sigvec(SIGTTOU,&sv1,&sv0),0,"sigvec -IGN TTOU"); ! 11819: eroar(ioctl(0,TIOCSPGRP,&chpgrp),0,"SPGRP chpgrp"); ! 11820: if (file_exist(curname)) ! 11821: eroar(stat(curname,&st1),0,"stat"); ! 11822: else ! 11823: st1.st_mtime = 0; ! 11824: killpg(chpgrp,SIGCONT); ! 11825: wait3(&status,WUNTRACED,0); ! 11826: eroar(ioctl(0,TIOCSPGRP,&pgrp),0,"ioctl SPGRP pid"); ! 11827: eroar(sigvec(SIGTTOU,&sv0,0),0,"sigvec -DFL TTOU"); ! 11828: if (file_exist(curname)) ! 11829: eroar(stat(curname,&st0),0,"stat"); ! 11830: else ! 11831: st0.st_mtime = st1.st_mtime; ! 11832: ! 11833: if(!status.w_status) { ! 11834: curname[0] = '\0'; break; ! 11835: } ! 11836: if(st0.st_mtime == st1.st_mtime) { ! 11837: fprintf(stderr,"%s: %s was not modified, try again? {y/n} ", ! 11838: myname, curname); ! 11839: if (1 == scanf("%1s",dum) && dum[0] == 'n') break; ! 11840: } else ! 11841: break; ! 11842: } ! 11843: } ! 11844: ! 11845: static ! 11846: fakeinput(s) ! 11847: char *s; ! 11848: { ! 11849: int i; ! 11850: /* pretend s was typed at the terminal */ ! 11851: for(i=0;s[i]; ++i) ! 11852: ioctl(0,TIOCSTI,s+i); ! 11853: } ! 11854: ! 11855: static ! 11856: newstring(sptr,s) ! 11857: char **sptr, *s; ! 11858: { ! 11859: char *s2, *malloc(); ! 11860: ! 11861: if (NULL == (s2 = malloc(1 + strlen(s)))) { ! 11862: fprintf(stderr,"%s: malloc failed\n",myname); ! 11863: } else { ! 11864: strcpy(s2,s); ! 11865: *sptr = s2; ! 11866: } ! 11867: } ! 11868: ! 11869: --------------------------- eroar.c -------------------- ! 11870: ! 11871: static char sccid[] = "@(#)eroar.c 1.0 johnson@udel 10/13/84"; ! 11872: ! 11873: /* ::eroar.c:: ! 11874: * ! 11875: * error reporter-handler for faulty system function calls ! 11876: * ! 11877: * Usage: eroar( <system-call>, <exit-code>, <printf-pattern>, ! 11878: * <printf-arg>, <printf-arg>, ...... ); ! 11879: * ! 11880: * behavior: ! 11881: * if the system call is successful, returns (1) immediately ! 11882: * else ! 11883: * prints out the error message (from the printf pattern) ! 11884: * and prints an error explanation ! 11885: * if exit-code is non-zero, exits with that code ! 11886: * else returns (0) ! 11887: */ ! 11888: ! 11889: ! 11890: #include <errno.h> ! 11891: #include <stdio.h> ! 11892: #define ERR_BUFMAX 128 ! 11893: ! 11894: extern int sys_nerr, errno; ! 11895: extern char *sys_errlist[]; ! 11896: ! 11897: eroar(expr,code,s,p1,p2,p3,p4,p5,p6,p7,p8,p9) ! 11898: int expr,code; char *s; ! 11899: { ! 11900: static char errbuf[ERR_BUFMAX]; ! 11901: if (-1 != expr) return(1); ! 11902: fprintf(stderr,s,p1,p2,p3,p4,p5,p6,p7,p8,p9); ! 11903: fprintf(stderr,": %s\n", ! 11904: (0 < errno && errno < sys_nerr) ? ! 11905: sys_errlist[errno] : "UNKNOWN ERROR"); ! 11906: if (code) exit(code); ! 11907: return(0); ! 11908: } ! 11909: ! 11910: ----------------- makefile ----------------------- ! 11911: ! 11912: jced : jcedmod.o ! 11913: ! 11914: jcedmod.o : jced.o eroar.o ! 11915: ld -o jcedmod.o -r jced.o eroar.o ! 11916: ------------------------------------------------------- ! 11917: ! 11918: ... (share a little joke with the world) ... ! 11919: ! 11920: net: johnson@udel-ee ! 11921: usmail: Apperson H. Johnson ! 11922: 618 Lehigh Rd. apt S11 ! 11923: Newark, De. 19711 ! 11924: -------------------------------------------------------- ! 11925: ! 11926: From jshaver@apg-3 Fri Mar 1 13:37:57 1985 ! 11927: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 11928: id AA22358; Fri, 1 Mar 85 13:21:35 pst ! 11929: Received: from apg-3 (apg-3.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 11930: id AA28355; Fri, 1 Mar 85 13:13:39 pst ! 11931: Message-Id: <[email protected]> ! 11932: Date: 1 Mar 1985 16:15:48 EST (Friday) ! 11933: From: John Shaver STEEP-TM-AC 879-7602 <jshaver@apg-3> ! 11934: Subject: Vax availability ! 11935: To: franz-friends@BERKELEY ! 11936: Cc: jshaver@apg-3 ! 11937: ! 11938: Is Franz Lisp available for the VAX? Please respond directly to me, as I am ! 11939: not on the list. Please add me to the list. ! 11940: ! 11941: Thank you. ! 11942: This is an Otrona Attache 1200 bps ! 11943: ! 11944: ! 11945: John ! 11946: ! 11947: ! 11948: From jshaver@apg-3 Mon Mar 4 06:10:51 1985 ! 11949: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 11950: id AA11236; Mon, 4 Mar 85 06:10:51 pst ! 11951: Received: from apg-3 (apg-3.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 11952: id AA03832; Mon, 4 Mar 85 06:05:00 pst ! 11953: Message-Id: <[email protected]> ! 11954: Date: 4 Mar 1985 9:09:27 EST (Monday) ! 11955: From: John Shaver STEEP-TM-AC 879-7602 <jshaver@apg-3> ! 11956: Subject: Returned mail: User unknown ! 11957: To: franz-friends@BERKELEY ! 11958: Cc: jshaver@apg-3 ! 11959: ! 11960: ! 11961: ----BEGINNING OF FORWARDED MESSAGES---- ! 11962: Received: from ucbkim.ARPA by UCB-VAX.ARPA (4.24/4.42) ! 11963: id AA28859; Fri, 1 Mar 85 13:34:56 pst ! 11964: Received: by ucbkim.ARPA (4.24/4.27) ! 11965: id AA00121; Fri, 1 Mar 85 13:37:57 pst ! 11966: Date: 1 Mar 1985 16:15:48 EST (Friday) ! 11967: From: MAILER-DAEMON%ucbkim@Berkeley (Mail Delivery Subsystem) ! 11968: Subject: Returned mail: User unknown ! 11969: Message-Id: <[email protected]> ! 11970: To: <jshaver@apg-3> ! 11971: ! 11972: ----- Transcript of session follows ----- ! 11973: >>> RCPT To:<[email protected]> ! 11974: <<< 550 <[email protected]>... User unknown ! 11975: 550 franz-friends-3@ucbmike... User unknown ! 11976: >>> RCPT To:<[email protected]> ! 11977: <<< 550 <[email protected]>... User unknown ! 11978: 550 franz-friends-score@ucbmike... User unknown ! 11979: ! 11980: ----- Unsent message follows ----- ! 11981: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 11982: id AA22358; Fri, 1 Mar 85 13:21:35 pst ! 11983: Received: from apg-3 (apg-3.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 11984: id AA28355; Fri, 1 Mar 85 13:13:39 pst ! 11985: Message-Id: <[email protected]> ! 11986: Date: 1 Mar 1985 16:15:48 EST (Friday) ! 11987: From: John Shaver STEEP-TM-AC 879-7602 <jshaver@apg-3> ! 11988: Subject: Vax availability ! 11989: To: franz-friends@BERKELEY ! 11990: Cc: jshaver@apg-3 ! 11991: ! 11992: Is Franz Lisp available for the VAX? Please respond directly to me, as I am ! 11993: not on the list. Please add me to the list. ! 11994: ! 11995: Thank you. ! 11996: This is an Otrona Attache 1200 bps ! 11997: ! 11998: ! 11999: John ! 12000: ! 12001: ! 12002: ----END OF FORWARDED MESSAGES---- ! 12003: Is it something I'm doing? ! 12004: ! 12005: ! 12006: From jshaver@apg-3 Mon Mar 4 06:16:15 1985 ! 12007: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 12008: id AA11275; Mon, 4 Mar 85 06:16:15 pst ! 12009: Received: from apg-3 (apg-3.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 12010: id AA03880; Mon, 4 Mar 85 06:10:25 pst ! 12011: Message-Id: <[email protected]> ! 12012: Date: 4 Mar 1985 9:10:31 EST (Monday) ! 12013: From: John Shaver STEEP-TM-AC 879-7602 <jshaver@apg-3> ! 12014: Subject: mail request failure ! 12015: To: franz-friends@BERKELEY ! 12016: Cc: jshaver@apg-3 ! 12017: ! 12018: ! 12019: ----BEGINNING OF FORWARDED MESSAGES---- ! 12020: Received: from CMU-CS-A.ARPA (cmu-cs-a.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 12021: id AA29648; Fri, 1 Mar 85 14:05:23 pst ! 12022: Message-Id: <[email protected]> ! 12023: Date: 1 Mar 85 17:8:8 EST ! 12024: From: Mailer <[email protected]> ! 12025: To: <@BERKELEY:jshaver@apg-3> ! 12026: Reply-To: Gripe <[email protected]> ! 12027: Subject: mail request failure ! 12028: ! 12029: ----- Transcript of session follows ----- ! 12030: ! 12031: Mail being sent from disk area [N900AR0M] ! 12032: *NMail 1 Mar 85 17:06:02 EST;@UCB-VAX.ARPA:jshaver@apg-3;927920.QED[n900ar0m];mark.stevenson@cmua ! 12033: 1 Mar 85 17:8:8 EST ! 12034: ?%No such person as 'mark.stevenson' at CMU-CS-A. ! 12035: ! 12036: ! 12037: ----- Unsent message follows ----- ! 12038: Received: from UCB-VAX.ARPA by CMU-CS-A.ARPA; 1 Mar 85 17:05:57 EST ! 12039: Received: from ucbkim.ARPA by UCB-VAX.ARPA (4.24/4.42) ! 12040: id AA28701; Fri, 1 Mar 85 13:30:28 pst ! 12041: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 12042: id AA22358; Fri, 1 Mar 85 13:21:35 pst ! 12043: Received: from apg-3 (apg-3.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 12044: id AA28355; Fri, 1 Mar 85 13:13:39 pst ! 12045: Message-Id: <[email protected]> ! 12046: Date: 1 Mar 1985 16:15:48 EST (Friday) ! 12047: From: John Shaver STEEP-TM-AC 879-7602 <jshaver@apg-3> ! 12048: Subject: Vax availability ! 12049: To: franz-friends@Berkeley ! 12050: Cc: jshaver@apg-3 ! 12051: ! 12052: Is Franz Lisp available for the VAX? Please respond directly to me, as I am ! 12053: not on the list. Please add me to the list. ! 12054: ! 12055: Thank you. ! 12056: This is an Otrona Attache 1200 bps ! 12057: ! 12058: ! 12059: John ! 12060: ! 12061: ! 12062: ! 12063: ----END OF FORWARDED MESSAGES---- ! 12064: Try a return address of RREINER@Simtel20. They forward everything to me. ! 12065: ! 12066: ! 12067: From [email protected] Tue Mar 5 08:17:28 1985 ! 12068: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 12069: id AA00161; Tue, 5 Mar 85 08:17:28 pst ! 12070: Received: from BRL-VOC (brl-voc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 12071: id AA09879; Tue, 5 Mar 85 08:11:28 pst ! 12072: Message-Id: <[email protected]> ! 12073: Date: Tue, 5 Mar 85 11:13:21 EST ! 12074: From: "Ferd Brundick (VLD/LTTB)" <[email protected]> ! 12075: To: Franz-Friends@BERKELEY ! 12076: Cc: Meself <[email protected]> ! 12077: Subject: Trace bug ! 12078: ! 12079: Haah, ! 12080: ! 12081: We recently installed some revisions to our 4.2 BSD system, and the ! 12082: Joseph Lister package is apparently broken. Since our system ! 12083: administrators don't use Franz, I poked around in the file trace.l. ! 12084: An error run is shown below: ! 12085: ! 12086: -> (getsyntax '\;) ! 12087: vsplicing-macro ! 12088: -> (trace intersect) ! 12089: [autoload /usr/lib/lisp/trace] ! 12090: [load /usr/lib/lisp/trace.l] ! 12091: [load /usr/lib/lisp/charmac.l] ! 12092: Error: Unbound Variable: ;; ! 12093: <1>: (getsyntax '\;) ! 12094: vcharacter ! 12095: ! 12096: The trace code that is executing is: ! 12097: ! 12098: (eval-when (eval) ! 12099: (setq old-read-table-trace readtable) ! 12100: (setq readtable (makereadtable t)) ! 12101: (setq old-uctolc-value (status uctolc)) ! 12102: (sstatus uctolc nil) ; turn off case conversion ! 12103: (load 'charmac) ! 12104: (setsyntax '\; 'macro 'zapline) ! 12105: ) ! 12106: ! 12107: What I think is happening is that the readtable is being clobbered by ! 12108: the (makereadtable t) line. The file charmac.l starts off with a ! 12109: comment line, but the definition of ';' has changed in the readtable. ! 12110: I copied trace.l and reversed the last 2 lines so ';' is macro'd to ! 12111: zapline BEFORE charmac.l is loaded. I can then load trace.l and ! 12112: (trace) functions with no trouble. ! 12113: ! 12114: My question is: Why did I have to reverse those lines ?? (trace) used ! 12115: to work fine. Is there a problem with (makereadtable) that I need to ! 12116: fix ?? We are running Opus 38.79. ! 12117: ! 12118: dsw, fferd ! 12119: Fred S. Brundick ! 12120: USABRL, APG, MD. ! 12121: <fsbrn@brl-voc> ! 12122: ! 12123: "Me ears are on the wrong side of me 'ead." ! 12124: ! 12125: From [email protected] Tue Mar 5 14:55:27 1985 ! 12126: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 12127: id AA00189; Tue, 5 Mar 85 14:55:27 pst ! 12128: Received: from BRL-VOC (brl-voc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 12129: id AA16643; Tue, 5 Mar 85 13:15:11 pst ! 12130: Message-Id: <[email protected]> ! 12131: Date: Tue, 5 Mar 85 16:14:14 EST ! 12132: From: "Ferd Brundick (VLD/LTTB)" <[email protected]> ! 12133: To: Franz-Friends@BERKELEY ! 12134: Cc: Ferd Brundick <[email protected]>, [email protected] ! 12135: Subject: Re: Trace bug ! 12136: ! 12137: Haah, ! 12138: ! 12139: >>Why aren't you loading the compiled version of trace? ! 12140: >>Would that help? ! 12141: ! 12142: That was the what the person who stumbled onto the bug said. (I don't ! 12143: use the trace package myself because everything works the first time ! 12144: :-). I don't see how that would matter because compiled code is just ! 12145: as wrong; it just bombs faster. Besides, my slightly obsolete Franz ! 12146: manual says "the trace package ... usually in the file ! 12147: /usr/lib/lisp/trace.l". I'm just wondering why the file doesn't work ! 12148: any more when it used to. I'd rather fix the problem permanently ! 12149: instead of patching around it. ! 12150: ! 12151: dsw, fferd ! 12152: Fred S. Brundick ! 12153: USABRL, APG, MD. ! 12154: <fsbrn@brl-voc> ! 12155: ! 12156: "I think I pulled a muscle in me ear." ! 12157: ! 12158: From [email protected] Tue Mar 19 16:50:09 1985 ! 12159: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 12160: id AA22357; Tue, 19 Mar 85 16:50:09 pst ! 12161: Received: from MIT-HTVAX.ARPA (mit-htvax.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 12162: id AA05308; Tue, 19 Mar 85 11:49:40 pst ! 12163: Received: by MIT-HTVAX.ARPA (4.12/4.7) ! 12164: id AA21434; Tue, 19 Mar 85 14:50:20 est ! 12165: Date: Tue, 19 Mar 85 14:50:20 est ! 12166: From: Walter Hamscher <[email protected]> ! 12167: Message-Id: <[email protected]> ! 12168: To: Franz-Friends@BERKELEY ! 12169: Subject: Franz -> Common Lisp ? ! 12170: ! 12171: Reply-to: [email protected] ! 12172: ! 12173: Is there a common lisp that runs on 4.2 BSD? Seems to ! 12174: me this is a vacuum that many folks must be trying to fill. ! 12175: ! 12176: I am wondering: ! 12177: ! 12178: (1) Who's working on one? ! 12179: ! 12180: <<None of the following answers win brownie points: ! 12181: (a) DEC. Their Unix common lisp is only for in-house use. ! 12182: (b) CCA. Ain't ready yet. ! 12183: (c) David Betz (XLISP 1.4). Currently only a small subset. ! 12184: (d) NIL. No Unix implementation planned.>> ! 12185: ! 12186: (2) Is there a common lisp compatability package for franz? ! 12187: ! 12188: <<Unlikely, I know. Still, how much of common ! 12189: lisp already exists in compatability packages, ! 12190: e.g. Lexical scoping :-), Packages, Keyword ! 12191: arguments, Pathnames, Bit-arrays?>> ! 12192: ! 12193: (3) Are folks at UCB thinking of spinning off a common ! 12194: lisp from the existing franz implementation? ! 12195: ! 12196: <<Also unlikely but surely the thought has occurred.>> ! 12197: ! 12198: All answers and pointers appreciated. ! 12199: ! 12200: Thanks, ! 12201: Walter Hamscher ! 12202: ! 12203: From shebs@utah-cs Wed Mar 20 17:27:57 1985 ! 12204: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 12205: id AA08685; Wed, 20 Mar 85 17:27:57 pst ! 12206: Received: from utah-cs.ARPA (utah-gateway.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 12207: id AA11992; Wed, 20 Mar 85 16:51:20 pst ! 12208: Received: by utah-cs.ARPA (4.42/4.40.2) ! 12209: id AA01825; Wed, 20 Mar 85 17:48:26 MST ! 12210: Date: Wed, 20 Mar 85 17:48:26 MST ! 12211: From: shebs@utah-cs (Stanley Shebs) ! 12212: Message-Id: <[email protected]> ! 12213: To: Franz-Friends@BERKELEY, [email protected] ! 12214: Subject: Re: Franz -> Common Lisp ? ! 12215: ! 12216: We have several versions of compatibility stuff for PSL (and it ! 12217: would work under Franz without much change). We're trying to ! 12218: get CL while retaining the speed of PSL, so we haven't yet ! 12219: embarked on a full standalone CL... ! 12220: ! 12221: stan shebs ! 12222: ! 12223: From [email protected] Thu Mar 21 11:05:39 1985 ! 12224: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 12225: id AA18463; Thu, 21 Mar 85 11:05:39 pst ! 12226: Received: from ucla-locus.arpa (ucla-locus.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 12227: id AA12504; Thu, 21 Mar 85 10:37:45 pst ! 12228: Date: Thu, 21 Mar 85 10:35:28 PST ! 12229: From: Ingrid Zukerman <[email protected]> ! 12230: To: franz-friends@BERKELEY ! 12231: Subject: setq command changes code ! 12232: Message-Id: <[email protected]> ! 12233: ! 12234: I have the following problems: ! 12235: 1. After performing the command (setq x (list ... )), I noticed that ! 12236: the code in the function that initializes x was also changed to the ! 12237: new value. After consulting with my guru, he pointed out that this ! 12238: might be due to a sharing pattern I am not aware of, or to the way ! 12239: in which assignments are performed (e.g., by passing a pointer). ! 12240: I wasn't able to find this information, so my question is were I ! 12241: could find it in order to avoid such occurrences in the future. Of ! 12242: course, if somebody up there is terribly curious and wants to look ! 12243: at a transcript of the session, I'll be very appreciative. ! 12244: 2. The most updated copy we have of Franz is Opus 38.5. I hear that it ! 12245: is now Opus 38.91. What should I do in order to get an updated copy? ! 12246: Please don't advise me to contact the person in charge, because this ! 12247: person (who no longer wishes to be in charge) told me to contact you. ! 12248: Thanks very much. ! 12249: --Ingrid ! 12250: ! 12251: From franz!schlafly Mon Mar 25 18:03:33 1985 ! 12252: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 12253: id AA20019; Mon, 25 Mar 85 18:03:33 pst ! 12254: Received: from ucbkim.ARPA by UCB-VAX.ARPA (4.24/4.42) ! 12255: id AA21825; Mon, 25 Mar 85 17:57:20 pst ! 12256: Received: by ucbkim.ARPA (4.24/4.27) ! 12257: id AA20010; Mon, 25 Mar 85 18:03:19 pst ! 12258: Received: by franz.uucp (1.2/3.14) ! 12259: id AA00961; Mon, 25 Mar 85 17:36:52 pst ! 12260: Date: Mon, 25 Mar 85 17:36:52 pst ! 12261: From: franz!schlafly (Roger Schlafly) ! 12262: Message-Id: <[email protected]> ! 12263: To: franz-friends@BERKELEY ! 12264: Subject: programs written in Franz Lisp ! 12265: ! 12266: ! 12267: I am compiling a list of expert systems and expert ! 12268: system building tools which are written in Franz Lisp. ! 12269: ! 12270: I would appreciate it if people would send me: ! 12271: (1) The name of each such program. ! 12272: (2) A brief description of what it does. ! 12273: (3) Whether it is available to the public. ! 12274: (4) An electronic address for obtaining more information. ! 12275: ! 12276: I will then make this list available to anyone who requests it. ! 12277: ! 12278: Roger Schlafly ! 12279: ucbvax!franz!schlafly ! 12280: ! 12281: ! 12282: From franz!schlafly Mon Mar 25 20:02:47 1985 ! 12283: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 12284: id AA21162; Mon, 25 Mar 85 20:02:47 pst ! 12285: Received: from ucbkim.ARPA by UCB-VAX.ARPA (4.24/4.42) ! 12286: id AA23786; Mon, 25 Mar 85 19:56:37 pst ! 12287: Received: by ucbkim.ARPA (4.24/4.27) ! 12288: id AA21150; Mon, 25 Mar 85 20:02:36 pst ! 12289: Received: by franz.uucp (1.2/3.14) ! 12290: id AA01276; Mon, 25 Mar 85 19:37:31 pst ! 12291: Date: Mon, 25 Mar 85 19:37:31 pst ! 12292: From: franz!schlafly (Roger Schlafly) ! 12293: Message-Id: <[email protected]> ! 12294: To: franz-friends@BERKELEY ! 12295: Subject: programs written in Franz Lisp ! 12296: ! 12297: ! 12298: I am compiling a list of expert systems and expert ! 12299: system building tools which are written in Franz Lisp. ! 12300: ! 12301: I would appreciate it if people would send me: ! 12302: (1) The name of each such program. ! 12303: (2) A brief description of what it does. ! 12304: (3) Whether it is available to the public. ! 12305: (4) An electronic address for obtaining more information. ! 12306: ! 12307: I will then make this list available to anyone who requests it. ! 12308: ! 12309: Roger Schlafly ! 12310: ucbvax!franz!schlafly ! 12311: ! 12312: ! 12313: From carter%[email protected] Tue Mar 26 12:52:24 1985 ! 12314: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 12315: id AA00886; Tue, 26 Mar 85 12:52:24 pst ! 12316: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 12317: id AA11893; Tue, 26 Mar 85 12:46:01 pst ! 12318: Received: from ubc by csnet-relay.csnet id a017378; 26 Mar 85 15:03 EST ! 12319: Received: from ubc-vision.UUCP by ubc.csnet id AA04906; Tue, 26 Mar 85 12:01:03 pst ! 12320: Date: Tue, 26 Mar 85 12:00:43 pst ! 12321: From: Alan Carter <carter%[email protected]> ! 12322: Message-Id: <[email protected]> ! 12323: Received: by ubc-vision.UUCP id AA09422; Tue, 26 Mar 85 12:00:43 pst ! 12324: To: franz-friends@BERKELEY ! 12325: Subject: Lisp interface to C functions ! 12326: ! 12327: ! 12328: ! 12329: Does anyone know if there is a problem with calling malloc and free from ! 12330: C functions which are called by Franz ? ! 12331: ! 12332: ! 12333: Alan Carter ! 12334: [email protected] ! 12335: ! 12336: From mcgeer Tue Mar 26 16:06:57 1985 ! 12337: Received: by ucbkim.ARPA (4.24/4.27) ! 12338: id AA03620; Tue, 26 Mar 85 16:06:57 pst ! 12339: Date: Tue, 26 Mar 85 16:06:57 pst ! 12340: From: Rick McGeer (on an aaa-60-s) <mcgeer> ! 12341: Message-Id: <[email protected]> ! 12342: To: prolog@ernie, franz-friends ! 12343: Subject: Lisp is faster than Prolog? ! 12344: Cc: ! 12345: ! 12346: A number of articles in recent IEEE Spectra have discussed Silicon ! 12347: Compilation in Prolog, and concluded with a statement to the effect: for ! 12348: performance reasons, we will go to Lisp for a production version. ! 12349: ! 12350: Is Lisp really faster than Prolog? I used to think so. Some time ! 12351: ago, I wrote a Prolog interpreter in Lisp: after several versions, I gave ! 12352: up, because I couldn't make my Prolog fast. Its best speed was 100 LIPS ! 12353: through the append loop on a 780, or about 7% of the speed of C-Prolog (1500 ! 12354: LIPS, according to the literature. ! 12355: ! 12356: Then it occured to me that I could not expect my Prolog to run ! 12357: faster than an equivalent function coded in Lisp. I coded the function, and ! 12358: the result was the following: ! 12359: ! 12360: (def my-append ! 12361: (lambda (x y) ! 12362: (cond (x (cons (car x) (my-append (cdr x) y))) ! 12363: (t y)))) ! 12364: ! 12365: it can be seen that the time of the computation is invariant with respect to ! 12366: the second argument. Hence, for all the tests to be mentioned, the second ! 12367: argument is '(1 2 3 4 5). ! 12368: ! 12369: I ran the program on the lists consisting of the first 100, 250, and ! 12370: 300 integers. The results were the following: ! 12371: ! 12372: list length ticks (60/sec) LIPS equivalent ! 12373: 100 14 429 ! 12374: 250 29 517 ! 12375: 300 34 529 ! 12376: ! 12377: Or about one-third the published speed of of the same function in CProlog on ! 12378: a 780. I then wondered how the native Franz append would do. This function ! 12379: is compiled, and is optimized for tail recursion, so the experiment is not ! 12380: really fair to CProlog. In any case: ! 12381: ! 12382: list length ticks LIPS equivalent ! 12383: 100 3 2000 ! 12384: 250 8 1875 ! 12385: 300 10 1800 ! 12386: ! 12387: I don't know what this proves, but I know what it doesn't prove. The Lisp ! 12388: used, by the way, was Franz version 38.96 on a Vax 11/780 at the University ! 12389: of California at Berkeley. Despite numerous queries to Edinburgh, we still ! 12390: don't have a version of C-Prolog for comparative measurement here, so I ! 12391: can't personally vouch for the 1500 LIPS claim. ! 12392: ! 12393: Rick. ! 12394: ! 12395: ! 12396: From chris@maryland Tue Mar 26 16:18:52 1985 ! 12397: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 12398: id AA03876; Tue, 26 Mar 85 16:18:52 pst ! 12399: Received: from maryland.ARPA (maryland.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 12400: id AA16580; Tue, 26 Mar 85 16:12:34 pst ! 12401: Received: by maryland.ARPA (4.12/4.7) ! 12402: id AA23203; Tue, 26 Mar 85 19:17:28 est ! 12403: Date: Tue, 26 Mar 85 19:17:28 est ! 12404: From: Chris Torek <chris@maryland> ! 12405: Message-Id: <[email protected]> ! 12406: To: carter%[email protected] ! 12407: Subject: Re: Lisp interface to C functions ! 12408: Cc: franz-friends@BERKELEY ! 12409: ! 12410: I believe that there were. In U of M Franz, we stuck in a version of ! 12411: malloc and free that uses the Lisp allocator to get unGCable memory, ! 12412: and a host of problems with the window library went away ... (the ! 12413: window library uses malloc & free quite, er, freely :-) ). ! 12414: ! 12415: Chris ! 12416: ! 12417: From narain@rand-unix Tue Mar 26 18:17:38 1985 ! 12418: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 12419: id AA06939; Tue, 26 Mar 85 18:17:38 pst ! 12420: Received: from rand-unix.ARPA (rand-unix.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 12421: id AA18369; Tue, 26 Mar 85 17:39:36 pst ! 12422: Received: by rand-unix.ARPA; Tue, 26 Mar 85 17:33:48 pst ! 12423: From: Sanjai Narain <narain@rand-unix> ! 12424: Message-Id: <[email protected]> ! 12425: Date: 26 Mar 85 17:33:41 PST (Tue) ! 12426: To: Rick McGeer <mcgeer@ucbkim> ! 12427: Cc: prolog@ernie, franz-friends@ucbkim, narain@rand-unix ! 12428: Subject: Re: Lisp is faster than Prolog? ! 12429: In-Reply-To: Your message of Tue, 26 Mar 85 16:06:57 pst. ! 12430: <[email protected]> ! 12431: ! 12432: ! 12433: Your first comparison of Prolog and Lisp is not very meaningful. You are ! 12434: comparing a Prolog implemented in Lisp with a Lisp implemented in C. ! 12435: Perhaps you could try to compare Lisp in Lisp with Prolog in Lisp. ! 12436: ! 12437: In a certain sense, your comparison of Franzlisp and C-Prolog infact ! 12438: indicates the superiority of C-Prolog. C-Prolog can be used to do append ! 12439: and all other functional programming at almost the speed of FranzLisp. ! 12440: However, in C-Prolog, you can do also do deduction, searching, pattern ! 12441: matching and a lot of other AI-stuff at the same speed. To do these in ! 12442: Franzlisp you must write Lisp functions and suffer the loss in speed ! 12443: associated with simulating functionality in a high-level language. ! 12444: ! 12445: -- Sanjai ! 12446: ! 12447: From mcgeer Tue Mar 26 18:30:58 1985 ! 12448: Received: by ucbkim.ARPA (4.24/4.27) ! 12449: id AA07153; Tue, 26 Mar 85 18:30:58 pst ! 12450: Date: Tue, 26 Mar 85 18:30:58 pst ! 12451: From: Rick McGeer (on an aaa-60-s) <mcgeer> ! 12452: Message-Id: <[email protected]> ! 12453: To: narain@rand-unix ! 12454: Subject: Re: Lisp is faster than Prolog? ! 12455: Cc: narain@rand-unix, franz-friends, prolog@ernie ! 12456: In-Reply-To: Your message of 26 Mar 85 17:33:41 PST (Tue) ! 12457: ! 12458: ! 12459: You misunderstood my message. Prolog-in-Lisp really isn't under ! 12460: examination: the only reason I brought it up was that it provided the ! 12461: original motivation for the experiment (I wanted to determine a limit on the ! 12462: speed I could expect out of my Prolog, reasoning that it could not possibly ! 12463: be faster than native-coded Lisp.) ! 12464: ! 12465: The rest of your letter is essentially correct: the figures imply ! 12466: that CProlog is at least as fast as Franz, since the relevant test is ! 12467: interpreted code in each language (i.e., the first set of figures). ! 12468: However, this should not imply that I believe that Prolog is a "better" ! 12469: language than Lisp (I don't want to get into *that* debate), or imply ! 12470: that Lisp has no advantages over Prolog. Lisp may have real advantages over ! 12471: Prolog, but there is no reason to believe that speed is one of them. ! 12472: ! 12473: Rick. ! 12474: ! 12475: ! 12476: From hilfingr@ucbrenoir Wed Mar 27 01:06:00 1985 ! 12477: Received: from ucbrenoir.ARPA by ucbkim.ARPA (4.24/4.27) ! 12478: id AA11390; Wed, 27 Mar 85 01:06:00 pst ! 12479: Received: by ucbrenoir.ARPA (4.24/4.42) ! 12480: id AA03594; Wed, 27 Mar 85 01:07:16 pst ! 12481: Date: Wed, 27 Mar 85 01:07:16 pst ! 12482: From: hilfingr@ucbrenoir (Paul Hilfinger) ! 12483: Message-Id: <[email protected]> ! 12484: To: mcgeer@ucbkim, narain@rand-unix ! 12485: Subject: Re: Lisp is faster than Prolog? A personal plea ! 12486: Cc: prolog@ernie, franz-friends@ucbkim ! 12487: In-Reply-To: Your message of 26 Mar 85 17:33:41PST ! 12488: ! 12489: ! 12490: Please, please, please stop trying to compare the performance of Lisp and ! 12491: Prolog by considering micro-benchmarks! Even in languages that are ! 12492: essentially "the same" (from my perspective as a semanticist/language ! 12493: designer or from the perspective of a Prolog programmer, FORTRAN, Pascal, ! 12494: Modula 2, and Ada are all the same); such benchmarks are imperfect guides. ! 12495: When comparing Lisp and Prolog, where the programs one might write to do a ! 12496: particular problem might be radically different in strategy, anything that ! 12497: compares the performance of tiny programs conveys almost no useful ! 12498: information. ! 12499: ! 12500: Please, please, please, PLEASE don't try to compare Prolog with Lisp (etc.) ! 12501: using LIPS as a part of the measure! In comparing Prolog implementations, I ! 12502: suppose LIPS might be of some interest, but when comparing Lisp with Prolog, ! 12503: they don't help at all. The reason is simple: if Lisp is not suited for ! 12504: doing logical inferences (in the Prolog sense) quickly, then the good Lisp ! 12505: programmer simply does not formulate his solution using logical inferences. ! 12506: (Patient: Doctor! Doctor! It hurts when I do this. Doctor: Well, then don't ! 12507: do that.) It's like saying that my APL implementation, which uses lazy ! 12508: evaluation and a bit of cleverness to compute ! 12509: ! 12510: +/ ,((iota n) o.= iota n) x A +.x B ! 12511: ! 12512: (the trace of the matrix product of nxn matrices A and B, I think) in time ! 12513: O(n^2) instead of O(n^3), is "faster" than my FORTRAN implementation, which ! 12514: requires time O(n^3) to do a direct transcription of this algorithm ! 12515: (actually forming the full matrix product). ! 12516: ! 12517: I think it wrong to say ! 12518: ! 12519: "To do [deduction, searching, pattern matching and other AI-stuff] in ! 12520: Franzlisp you must write Lisp functions and suffer the loss in speed ! 12521: associated with simulating functionality in a high-level language." ! 12522: ! 12523: because one DOESN'T use simulation if one wants speed, but instead goes ! 12524: after an entirely different kind of solution (I won't argue that this ! 12525: solution is "just as easy" as the Prolog solution; there are certainly many ! 12526: instances in which Prolog solutions are simpler, and I haven't the foggiest ! 12527: notion what the story is for large systems.) ! 12528: ! 12529: * * * ! 12530: ! 12531: Finally, a question. I was struck by Sanjai Narain's comment: ! 12532: ! 12533: "However, in C-Prolog, you can do also do deduction, searching, ! 12534: pattern matching and a lot of other AI-stuff at the same speed." ! 12535: ! 12536: I notice that the Prolog digest is full of interesting puzzles whose ! 12537: solution involves search. But are these representative? I think pattern ! 12538: matching is certainly a big part of any Prolog program, but do deduction and ! 12539: searching really form a big part of actual Prolog applications in practice? ! 12540: ! 12541: I recall an article by Drew McDermott called the "The Prolog Phenonmenon" ! 12542: that appeared (I think) in SIGArt at some point, maybe July '82. He asked ! 12543: why it was that Prolog had not died out, as had PLANNER, which also ! 12544: purported to support searching et al. He said some things on what he liked ! 12545: and disliked about Prolog, and then made the following comment (emphasis ! 12546: mine): ! 12547: ! 12548: "The Europeans went in a different direction [from the Americans ! 12549: in reaction to the problems of PLANNER-like languages]. What ! 12550: they liked best about logic was its variable-binding machinery. ! 12551: Their attitude towards backtracking has been simply that it is a ! 12552: programmer's duty to remember that his program will be executed ! 12553: backward as well as forward, that his programs must correct bad ! 12554: guesses as well as exploit good ones. If the backwards ! 12555: execution blows up, he must debug his program, not rewrite the ! 12556: interpreter [the American approach], just as with more prosaic ! 12557: kinds of infinite loops. Once this burden was shifted away ! 12558: from the language implementer and onto the programmer, the ! 12559: logical [!] next step was to freeze the interpreter design ! 12560: and make it as efficient as possible. THE RESULT IS A ! 12561: PROGRAMMING LANGUAGE, NOT A PROBLEM SOLVER OR THEOREM PROVER; ! 12562: it doesn't compete with NOAH, but with Lisp. And it's my ! 12563: impression that it competes pretty well. ! 12564: ! 12565: "The effect is to reverse the usual images of the American ! 12566: and European computer scientists. In this case, the Americans ! 12567: have pursued impractical theoretical studies, while the ! 12568: Europeans have bummed the hell out of a hack." ! 12569: ! 12570: (By "backward execution," he is referring to backtracking, I believe). To ! 12571: put this another way, one doesn't use Prolog's backtracking to do AI-style ! 12572: (i.e., very large) search, but rather to do very local and carefully- ! 12573: controlled "search," in the sense of "search this list (tree, ....) for an ! 12574: element equal to this one" or "try all permutations of this tiny set for one ! 12575: that satisfies P." Likewise, one doesn't use it to do what an AI ! 12576: investigator would call "deduction." One CAN convince the Prolog machinery ! 12577: to do more general AI-style searching efficiently, but only at the expense ! 12578: of vastly obscuring the original clear, simple, declarative form of the ! 12579: program. ! 12580: ! 12581: Not being a real Prolog hacker (yet) I don't really know how accurate this ! 12582: view is, and would appreciate some reaction (preferably semi-quantitative). ! 12583: ! 12584: ! 12585: ! 12586: From franz!jkf Wed Mar 27 08:03:25 1985 ! 12587: Received: by ucbkim.ARPA (4.24/4.27) ! 12588: id AA13270; Wed, 27 Mar 85 08:03:25 pst ! 12589: Received: by franz.uucp (1.2/3.14) ! 12590: id AA06162; Wed, 27 Mar 85 07:59:36 pst ! 12591: Date: Wed, 27 Mar 85 07:59:36 pst ! 12592: From: franz!jkf (John Foderaro) ! 12593: Message-Id: <[email protected]> ! 12594: To: [email protected], [email protected], [email protected] ! 12595: Subject: Re: Lisp is faster than Prolog? A personal plea ! 12596: Cc: [email protected], prolog@ernie ! 12597: In-Reply-To: Your message of Wed, 27 Mar 85 01:07:16 pst ! 12598: ! 12599: While I find the discussion of Prolog vrs Lisp interesting, please do don't ! 12600: include franz-friends in on the discussion. When the mailing list has ! 12601: strayed off the topic of Franz Lisp in the past, I've gotten inundated with ! 12602: complaints. Thanks. ! 12603: John Foderaro ! 12604: ! 12605: ! 12606: ! 12607: ! 12608: From mcgeer Wed Mar 27 10:22:15 1985 ! 12609: Received: by ucbkim.ARPA (4.24/4.27) ! 12610: id AA15354; Wed, 27 Mar 85 10:22:15 pst ! 12611: Date: Wed, 27 Mar 85 10:22:15 pst ! 12612: From: Rick McGeer (on an aaa-60-s) <mcgeer> ! 12613: Message-Id: <[email protected]> ! 12614: To: hilfingr@ucbrenoir, narain@rand-unix ! 12615: Subject: Re: Lisp is faster than Prolog? A personal plea ! 12616: Cc: franz-friends, prolog@ernie ! 12617: In-Reply-To: Your message of Wed, 27 Mar 85 01:07:16 pst ! 12618: ! 12619: Good point, Paul, but I think you're missing something. First you ! 12620: plead with us not to use micro-benchmarks, then you point out (correctly) ! 12621: that the strategy that one would use to write a program in Lisp instead of ! 12622: Prolog can often differ. I would think that the implication from the latter ! 12623: observation is that large programs are fundamentally incomparable, and I ! 12624: think that that is probably correct. ! 12625: ! 12626: So if you deny us micro-benchmarks, then we can not measure the ! 12627: relative performance of these languages at all (or, more precisely, the ! 12628: standard implementations of these languages on the 11/780). Hence we might ! 12629: as well accept the statements "Prolog is faster than Lisp" or "Lisp is faster ! 12630: than Prolog" or "Lisp is faster than assembler" as essentially meaningless ! 12631: statements, since we can't quantify any of them. ! 12632: ! 12633: Let me sputter out making one final point. LIPS is not all that ! 12634: bad a measure. Perhaps if we called it "cycles through the append loop" or ! 12635: "function calls per second" (essentially identical statements) I think most ! 12636: people would agree that this is a fair measure of the performance of any ! 12637: Lisp. After all, Lisp does nothing other than call functions and manipulate ! 12638: lists. ! 12639: ! 12640: I'm certainly not going to take issue with the rest of your letter, ! 12641: which is really more directed at Sanjai's claims than mine, and walks rather ! 12642: closer to debates on programming style than any sane man should dare to go. ! 12643: ! 12644: ! 12645: I remain, sir, ! 12646: ! 12647: Y'r obedient servant, ! 12648: ! 12649: Rick McGeer. ! 12650: ! 12651: ! 12652: From jeffr@sri-spam Fri Mar 29 16:22:50 1985 ! 12653: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 12654: id AA09984; Fri, 29 Mar 85 16:22:50 pst ! 12655: Received: from sri-spam.ARPA (sri-spam.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 12656: id AA04718; Fri, 29 Mar 85 16:16:10 pst ! 12657: Received: from localhost.ARPA by sri-spam.ARPA (4.22/4.16) ! 12658: id AA29100; Fri, 29 Mar 85 16:22:32 pst ! 12659: Message-Id: <[email protected]> ! 12660: Date: 29 Mar 85 16:22:30 PST (Fri) ! 12661: To: franz-friends@BERKELEY ! 12662: Subject: Problems Forking Around ! 12663: From: jeffr@sri-spam ! 12664: ! 12665: I am having problems getting child processes forked from Franz to exit ! 12666: cleanly. If I execute a simple forking function, such as ! 12667: ! 12668: (defun fork_test () ! 12669: (prog (pid) ! 12670: (cond ((setq pid (fork)) (return pid))) ! 12671: (exit) ! 12672: ] ! 12673: ! 12674: from the Franz interpreter, a zombie process is created which doesn't exit ! 12675: until I exit the interpreter. The same result holds when fork_test is ! 12676: called from a compiled Franz daemon which is not associated with a tty. ! 12677: ! 12678: It's Friday and I'm out of ideas; any you have, even if only speculation, ! 12679: would be greatly appreciated. ! 12680: ! 12681: - Jeff Rininger ! 12682: SRI International ! 12683: ! 12684: From larus@ucbdali Fri Mar 29 16:50:22 1985 ! 12685: Received: from ucbdali.ARPA by ucbkim.ARPA (4.24/4.27) ! 12686: id AA10643; Fri, 29 Mar 85 16:50:22 pst ! 12687: Received: by ucbdali.ARPA (4.24/4.42) ! 12688: id AA04603; Fri, 29 Mar 85 16:50:11 pst ! 12689: Message-Id: <[email protected]> ! 12690: To: [email protected] ! 12691: Cc: franz-friends@ucbdali ! 12692: Subject: Re: Problems Forking Around ! 12693: In-Reply-To: Your message of 29 Mar 85 16:22:30 PST (Fri). ! 12694: <[email protected]> ! 12695: Date: 29 Mar 85 16:50:02 PST (Fri) ! 12696: From: larus@ucbdali ! 12697: ! 12698: This is a not-very-well-known bug/feature of Franz/Unix. Try adding a ! 12699: (wait) call in the main routine and the zombies will go away. ! 12700: ! 12701: /Jim ! 12702: ! 12703: From [email protected] Fri Mar 29 18:23:00 1985 ! 12704: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 12705: id AA11898; Fri, 29 Mar 85 18:23:00 pst ! 12706: Received: from ucbjade.CC.Berkeley.ARPA (ucbjade.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 12707: id AA07034; Fri, 29 Mar 85 18:16:19 pst ! 12708: Received: from ucbruby.CC.Berkeley.ARPA (ucbruby.ARPA) ! 12709: by ucbjade.CC.Berkeley.ARPA (4.19/4.34.1) ! 12710: id AA11566; Fri, 29 Mar 85 18:22:39 pst ! 12711: Received: by ucbruby.CC.Berkeley.ARPA (4.19/4.34.1) ! 12712: id AA10320; Fri, 29 Mar 85 18:21:53 pst ! 12713: Date: Fri, 29 Mar 85 18:21:53 pst ! 12714: From: [email protected] (Harry Weeks) ! 12715: Message-Id: <[email protected]> ! 12716: To: jeffr@sri-spam ! 12717: Subject: Re: Problems Forking Around ! 12718: Cc: franz-friends@BERKELEY ! 12719: ! 12720: It is a characteristic of Unix that processes do not really die ! 12721: until they are waited for. Your `zombie' process will not die ! 12722: until you (wait) for it. The (wait) function returns the dotted ! 12723: pair (pid . status). Thus the following examples will spawn ! 12724: children that immediately die. ! 12725: --Harry ! 12726: ! 12727: In simplest terms: ! 12728: ! 12729: (def beget ! 12730: (lambda nil ! 12731: (cond ((fork) (wait)) ! 12732: (t (exit 0))))) ! 12733: ! 12734: In more realistic terms: ! 12735: ! 12736: (def beget ! 12737: (lambda nil ! 12738: (prog (child) ! 12739: (setq child (fork)) ! 12740: (cond ((null child) ! 12741: ; child branch: (fork) evaluated to nil ! 12742: (exit 0)) ! 12743: ((> child 0) ! 12744: ; parent branch: (fork) evaluated to pid ! 12745: (princ "Begot ") ! 12746: (princ child) ! 12747: (princ ".") ! 12748: (terpri) ! 12749: (return (beget:wait child))) ! 12750: ((< child 0) ! 12751: ; error branch ! 12752: (princ "Birth pain.") ! 12753: (terpri) ! 12754: (return child)) ! 12755: (t ! 12756: ; impossible branch ! 12757: (princ "Impossible pain.") ! 12758: (terpri) ! 12759: (return -1)))))) ! 12760: (def beget:wait ! 12761: (lambda (child) ! 12762: (prog (pvec) ! 12763: (setq pvec (wait)) ! 12764: (cond ((= (car pvec) child) ! 12765: ; child we are waiting for died ! 12766: (return (cdr pvec))) ! 12767: ((< (car pvec) 0) ! 12768: ; error ! 12769: (princ "Wait error.") ! 12770: (terpri) ! 12771: (return (car pvec))) ! 12772: (t ! 12773: ; another child died, keep waiting for ours ! 12774: (return (beget:wait child))))))) ! 12775: ! 12776: From carter%[email protected] Tue Apr 2 16:48:37 1985 ! 12777: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 12778: id AA15047; Tue, 2 Apr 85 16:48:37 pst ! 12779: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 12780: id AA26876; Tue, 2 Apr 85 16:48:19 pst ! 12781: Received: from ubc by csnet-relay.csnet id a008974; 2 Apr 85 19:35 EST ! 12782: Received: from ubc-vision.UUCP by ubc.csnet id AA06552; Tue, 2 Apr 85 16:28:06 pst ! 12783: Date: Tue, 2 Apr 85 16:27:59 pst ! 12784: From: Alan Carter <carter%[email protected]> ! 12785: Message-Id: <[email protected]> ! 12786: Received: by ubc-vision.UUCP id AA14795; Tue, 2 Apr 85 16:27:59 pst ! 12787: To: franz-friends@BERKELEY ! 12788: Subject: C interface ! 12789: ! 12790: Does anyone know if it is OK to call malloc and free from C functions ! 12791: called by lisp? ! 12792: -- Alan Carter ! 12793: [email protected] ! 12794: ! 12795: From dennis%[email protected] Wed Apr 3 19:05:09 1985 ! 12796: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 12797: id AA09023; Wed, 3 Apr 85 19:05:09 pst ! 12798: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 12799: id AA24595; Wed, 3 Apr 85 19:04:50 pst ! 12800: Message-Id: <[email protected]> ! 12801: Received: from boulder by csnet-relay.csnet id af16243; 3 Apr 85 21:51 EST ! 12802: Received: by boulder.UCBOULDER (4.30/4.7) ! 12803: id AA10745; Wed, 3 Apr 85 09:58:09 mst ! 12804: Date: Wed, 3 Apr 85 09:58:09 mst ! 12805: From: Dennis Heimbigner <dennis%[email protected]> ! 12806: To: carter%[email protected], franz-friends@BERKELEY ! 12807: Subject: Re: C interface ! 12808: ! 12809: If I recall correctly, the pre-4.2 malloc did not appear to work ! 12810: with franz because it assumed that it had control ! 12811: of all of free memory. The malloc for 4.2 uses a buddy ! 12812: system and should not care if, for example, franz ! 12813: has pre-empted pieces of virtual memory for its own use. ! 12814: On the other side, franz only looks at the memory ! 12815: it gets from sbrk, so it doesn't care about malloc'd ! 12816: areas of virtual memory. ! 12817: .lp ! 12818: More to the point, I have been using malloc inside ! 12819: cfasl'd code and have not yet seen a problem. ! 12820: ! 12821: Dennis Heimbigner ! 12822: dennis.boulder@csnet-relay. ! 12823: ! 12824: ! 12825: From @seismo.ARPA:[email protected] Fri Apr 5 01:13:08 1985 ! 12826: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 12827: id AA27833; Fri, 5 Apr 85 01:13:08 pst ! 12828: Received: from seismo.ARPA (css-ring-gw.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 12829: id AA25779; Fri, 5 Apr 85 01:12:50 pst ! 12830: Return-Path: <[email protected]> ! 12831: Received: from prlb2.UUCP by seismo.ARPA with UUCP; Fri, 5 Apr 85 04:12:31 EST ! 12832: Received: by prlb2.UUCP (4.12/4.7) ! 12833: id AA01128; Fri, 5 Apr 85 10:36:51 -0200 ! 12834: Date: Fri, 5 Apr 85 10:36:51 -0200 ! 12835: From: [email protected] (Marc Vauclair) ! 12836: Message-Id: <[email protected]> ! 12837: To: franz-friends@BERKELEY ! 12838: Subject: Profiling options in Franz Lisp. Opus 38.91. UoM Var. 3.5. ! 12839: ! 12840: Does anyone know how to set up profiling in Franz Lisp ? ! 12841: We have Franz Lisp of University of Maryland : Opus 38.91, UoM Variation 3.5. ! 12842: ! 12843: I have already made the following modifications : ! 12844: ! 12845: 1) as stated in the makefile : ../franz/vax/Makefile I have removed the # ! 12846: in : ! 12847: ------------------------------------------------------------------------------ ! 12848: ProfFlag = # -XP ! 12849: ProfFlag2 = # -DPROF ! 12850: ------------------------------------------------------------------------------ ! 12851: ! 12852: giving : ! 12853: ! 12854: ------------------------------------------------------------------------------ ! 12855: ProfFlag = -XP ! 12856: ProfFlag2 = -DPROF ! 12857: ------------------------------------------------------------------------------ ! 12858: ! 12859: 2) I've changed in ../franz/vax/Makefile the line : ! 12860: ! 12861: ------------------------------------------------------------------------------ ! 12862: /lib/cpp $< -I../h |\ ! 12863: ------------------------------------------------------------------------------ ! 12864: ! 12865: to : ! 12866: ! 12867: ------------------------------------------------------------------------------ ! 12868: /lib/cpp ${ProfFlag2} $< -I../h |\ ! 12869: ------------------------------------------------------------------------------ ! 12870: ! 12871: 3) I've changed in ../franz/vax/Makefile/qfuncl.c the lines : ! 12872: ! 12873: ------------------------------------------------------------------------------ ! 12874: #ifdef PROF ! 12875: .set indx,0 ! 12876: #define Profile \ ! 12877: movab prbuf+indx,r0 \ ! 12878: .set indx,indx+4 \ ! 12879: jsb mcount ! 12880: #define Profile2 \ ! 12881: movl r0,r5 \ ! 12882: Profile \ ! 12883: movl r5,r0 ! 12884: #else ! 12885: #define Profile ! 12886: #define Profile2 ! 12887: #endif ! 12888: ------------------------------------------------------------------------------ ! 12889: ! 12890: to : ! 12891: ! 12892: ------------------------------------------------------------------------------ ! 12893: #ifdef PROF ! 12894: .set indx,0 ! 12895: #define Profile \ ! 12896: movab prbuf+indx,r0 ; \ ! 12897: .set indx,indx+4 ; \ ! 12898: jsb mcount ! 12899: #define Profile2 \ ! 12900: movl r0,r5 ; \ ! 12901: Profile ; \ ! 12902: movl r5,r0 ! 12903: #else ! 12904: #define Profile ! 12905: #define Profile2 ! 12906: #endif ! 12907: ------------------------------------------------------------------------------ ! 12908: ! 12909: After all these modifications, we have the following error message when ! 12910: making it slow : ! 12911: ! 12912: ------------------------------------------------------------------------------ ! 12913: ld -x -o rawlisp -e start ../low.o ../lowaux.o crt0.o ../alloc.o ../data.o bigmath.o qfuncl.o vax.o ../lisp.o ../eval.o ../eval2.o ../inits.o ../io.o ../error.o ../sysat.o ../lam1.o ../lam2.o ../lam3.o ../lam4.o ../lam5.o ../lam6.o ../lam7.o ../lam8.o ! 12914: ! 12915: ! 12916: ../lam9.o ../lamr.o ../lamp.o ../fex1.o ../fex2.o ../fex3.o ../fex4.o ../fexr.o ../fpipe.o ../subbig.o ../pbignum.o ../divbig.o ../ffasl.o ../fasl.o ../trace.o ../evalf.o ../frame.o ../lamgc.o ../lamuom.o ../hash.o -lm -lc -ltermlib ! 12917: mcount: ld:/lib/libc.a(mon.o): multiply defined ! 12918: *** Error code 2 ! 12919: ! 12920: Stop. ! 12921: *** Error code 1 ! 12922: ! 12923: Stop. ! 12924: ------------------------------------------------------------------------------ ! 12925: ! 12926: From franz!schlafly Fri Apr 5 11:19:37 1985 ! 12927: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 12928: id AA02221; Fri, 5 Apr 85 11:19:37 pst ! 12929: Received: from ucbkim.ARPA by UCB-VAX.ARPA (4.24/4.42) ! 12930: id AA04091; Fri, 5 Apr 85 11:18:48 pst ! 12931: Received: by ucbkim.ARPA (4.24/4.27) ! 12932: id AA02177; Fri, 5 Apr 85 11:18:45 pst ! 12933: Received: by franz.uucp (1.2/3.14) ! 12934: id AA00261; Fri, 5 Apr 85 10:37:18 pst ! 12935: Date: Fri, 5 Apr 85 10:37:18 pst ! 12936: From: franz!schlafly (Roger Schlafly) ! 12937: Message-Id: <[email protected]> ! 12938: To: franz-friends@BERKELEY ! 12939: Subject: Franz Lisp applications ! 12940: ! 12941: ! 12942: ! 12943: Here is my list of Franz Lisp applications. Enough people ! 12944: requested copies that I am sending it to all franz-friends. ! 12945: If anyone sees any notable omissions, please send me a ! 12946: message and I will augment the list. ! 12947: ! 12948: Roger Schlafly ! 12949: ucbvax!franz!schlafly ! 12950: ! 12951: ============================================================ ! 12952: ! 12953: ! 12954: ! 12955: AI and Expert System Tools and Applications ! 12956: Developed or Running under Franz Lisp ! 12957: ! 12958: ! 12959: ! 12960: + OPS-5 ! 12961: A rule based environment for developing expert systems. ! 12962: Available from Franz Inc. with Franz LISP at no charge, or ! 12963: at no charge from Carnegie Mellon University. ! 12964: ! 12965: Computer Science Department, Carnegie Mellon University, ! 12966: Schenley Park, Pittsburgh PA 15213. (412) 578-2592 ! 12967: ! 12968: + Flavors ! 12969: An object oriented extension of Lisp, developed at MIT and ! 12970: the University of Maryland. Used on the Symbolics Lisp ! 12971: machines. Available from Franz Inc. at no charge to pur- ! 12972: chasers of Franz Lisp. ! 12973: ! 12974: + DUCK ! 12975: DUCK is an expert systems development environment. ! 12976: ! 12977: Available from Smart Systems Technology, 6870 Elm St. ! 12978: McLean, VA. 22101 (703) 448-8562. ! 12979: ! 12980: + Boyer-Moore Theorem Prover ! 12981: Available from Prof. Robert Boyer, University of Texas, Aus- ! 12982: tin. Computer Science Department, 3-28 Painter Hall, ! 12983: University of Texas, Austin, Texas 78712. (512) 471-7316 ! 12984: ! 12985: + GLISP ! 12986: GLISP is a high-level language which is based on Lisp and is ! 12987: compiled into Lisp. It was developed at the University of ! 12988: Texas at Austin by Prof. Gordon Novak. Object-centered pro- ! 12989: gramming is supported. Message interpretations can be ! 12990: looked up at compile time to produce efficient code. A ! 12991: window-based editor, GEV, is available to inspect and edit ! 12992: data according to its data structure description. GLISP is ! 12993: available from Franz Inc. at no charge to purchasers of ! 12994: Franz Lisp, or from the University of Texas at Austin, Prof. ! 12995: Gordon Novak, Computer Science Department, 3-28 Painter ! 12996: Hall, University of Texas, Austin, Texas 78712. (512) 471- ! 12997: 7316 ! 12998: ! 12999: + FRL ! 13000: A frame representation language for AI development. ! 13001: ! 13002: Available from Steven Rosenberg, Hewlett Packard (415) 857 ! 13003: 5902 ! 13004: ! 13005: + MRS ! 13006: A logic based knowledge representation system. Available ! 13007: from Stanford University. ! 13008: ! 13009: Attention: Pattie McCabe SUMEX Computing Facility, Stanford ! 13010: University Medical Center, Room TB105, Stanford, California ! 13011: 94305, (415) 497-5141 ! 13012: ! 13013: + Macsyma ! 13014: Developed at MIT, Macsyma is a program that carries out sym- ! 13015: bolic computation. It will solve all those integrals you ! 13016: learned about in your calculus class, as well as systems of ! 13017: differential equations and other mathematical problems. ! 13018: ! 13019: + Reduce ! 13020: Reduce is similar to Macsyma. It was developed at the ! 13021: University of Utah. Computer Science Department, 3160 Mer- ! 13022: rill Engineering Bldg. Salt Lake City, Utah 84112. (801) ! 13023: 484-7651 Ext 205 ! 13024: ! 13025: + XCON ! 13026: Digital Equipment's famous expert system, written in OPS-5, ! 13027: originally ran on top of Franz Lisp. XCON configures com- ! 13028: puters before shipment. ! 13029: ! 13030: + ACE ! 13031: Automatic Cable Expertise : A knowledge based expert system ! 13032: that provides trouble-shooting and diagnostic reports for ! 13033: telephone company managers. Developed by Stolfo, Vesonder ! 13034: and others at AT&T Bell Labs. For details see "The Fifth ! 13035: Generation Challenge" Proceedings ACM '84 Annual Conference. ! 13036: ! 13037: + Slang ! 13038: A circuit design and analysis tool. It has been used to ! 13039: design several integrated circuits at U.C. Berkeley. A ! 13040: detailed description is in the masters thesis of Korbin Van ! 13041: Dyke at U.C. Berkeley. ! 13042: ! 13043: Available from: Industrial Liason Program, EECS Department, ! 13044: University of California, Berkeley CA 94720 (415) 642-0253 ! 13045: ! 13046: + Lyra ! 13047: A VLSI design rule checker. A description is in the masters ! 13048: thesis of Michael Arnold at U.C. Berkeley. ! 13049: ! 13050: + Pearl ! 13051: A database and AI representation language written in Franz ! 13052: Lisp. Available from Franz Inc. at no charge to purchasers ! 13053: of Franz Lisp. ! 13054: ! 13055: + YAPS ! 13056: Yet Another Production System. Developed by Liz Allen at ! 13057: the University of Maryland. A forward driven production ! 13058: rule system similar to OPS-5, but with added flexibility. ! 13059: YAPS supports objects in facts, and defines an object that ! 13060: is a complete production system, so you can have more than ! 13061: one expert around at a time. See "YAPS: A Production System ! 13062: Meets Object" by Liz Allen in AAAI-83 for more information. ! 13063: YAPS is available at nominal cost from the Universtiy of ! 13064: Maryland. The license fee is $100 for BSD 4.1, $250 for ! 13065: 4.2. It's also Arpanet FTP'able for $100 for either ver- ! 13066: sion. Contact Bob Bane on Arpanet at bane@maryland or on ! 13067: Usenet at ...seismo!umcp-cs!bane or contact Liz Allen at ! 13068: [email protected] or seismo!umcp-cs!liz . ! 13069: ! 13070: + GENIE ! 13071: GENeric Inference Engine. An expert system development ! 13072: tool. Written by John Dumer, Tim Hanratty, Paul Tanenbaum, ! 13073: and Fred S. Brundick. For more information contact: Fred S. ! 13074: Brundick, ! 13075: ! 13076: + The Berkeley UNIX Consultant ! 13077: An expert System incorporating a natural language interface ! 13078: which answers questions about UNIX. Under development at ! 13079: U.C. Berkeley. USABRL, APG, MD. <fsbrn@brl-voc> ! 13080: ! 13081: + ROSS and SWIRL ! 13082: ROSS is an object-oriented language developed for building ! 13083: knowledge based simulations. SWIRL is a program written in ! 13084: ROSS that embeds knowledge about defensive and offensive air ! 13085: battle strategies. Developed by Narain, McArthur and Klahr ! 13086: at The Rand Corporation, 1700 Main Street, Santa Monica CA ! 13087: 90406. These systems were implemented in various LISP ! 13088: environments including Franz LISP. A comparison of hte ! 13089: various environments in terms of CPU usage, real-time usage ! 13090: and user aids can be found in an article by the above in the ! 13091: proceedings of the 1983 International Joint Conference on ! 13092: Artificial Intelligence, Karlsruhe, W. Germany. ! 13093: ! 13094: From liz@tove Sat Apr 6 09:35:22 1985 ! 13095: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 13096: id AA13697; Sat, 6 Apr 85 09:35:22 pst ! 13097: Received: from tove.ARPA (tove.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.42) ! 13098: id AA24792; Sat, 6 Apr 85 09:35:09 pst ! 13099: Received: by tove.ARPA (4.12/4.7) ! 13100: id AA10092; Sat, 6 Apr 85 12:36:17 est ! 13101: Message-Id: <[email protected]> ! 13102: To: franz!schlafly@BERKELEY (Roger Schlafly) ! 13103: Cc: franz-friends@BERKELEY ! 13104: Subject: Re: Franz Lisp applications ! 13105: In-Reply-To: Your message of Fri, 5 Apr 85 10:37:18 pst. ! 13106: <[email protected]> ! 13107: Date: 06 Apr 85 12:36:04 EST (Sat) ! 13108: From: Liz Allen <liz@tove> ! 13109: ! 13110: A correction to one of the entries. ! 13111: ! 13112: From: franz!schlafly@Berkeley (Roger Schlafly) ! 13113: ! 13114: + Flavors ! 13115: An object oriented extension of Lisp, developed at MIT and ! 13116: the University of Maryland. Used on the Symbolics Lisp ! 13117: machines. Available from Franz Inc. at no charge to pur- ! 13118: chasers of Franz Lisp. ! 13119: ! 13120: Actually, there are two implmentations of flavors available for ! 13121: Franz; one written at MIT and the other at Univ of Maryland. Franz ! 13122: Inc distributes the one from MIT and we (at UofM) distribute our ! 13123: version as part of the Maryland software distribution (which includes ! 13124: Franz 38.91). For more information about getting our distribution, ! 13125: contact Bob Bane [email protected] or seismo!umcp-cs!bane. ! 13126: ! 13127: -Liz ! 13128: ! 13129: ! 13130: From wfi%[email protected] Tue Apr 9 02:28:37 1985 ! 13131: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 13132: id AA07208; Tue, 9 Apr 85 02:28:37 pst ! 13133: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.45) ! 13134: id AA14376; Tue, 9 Apr 85 02:27:14 pst ! 13135: Message-Id: <[email protected]> ! 13136: Received: from ucsc by csnet-relay.csnet id ad14837; 9 Apr 85 5:28 EST ! 13137: Received: by vger.UCSC (4.12/4.7) ! 13138: id AA27515; Mon, 8 Apr 85 14:09:04 pst ! 13139: Date: Mon, 8 Apr 85 14:09:04 pst ! 13140: From: wfi <@csnet-relay.arpa,@ucsc.CSNET:[email protected] (Wayne F. Iba)> ! 13141: To: franz-friends@BERKELEY ! 13142: Subject: franz profiling ! 13143: Cc: [email protected] ! 13144: ! 13145: ! 13146: There is a short note in the documentation of liszt that "if the lisp ! 13147: system is built with profiling", then using the -p option will allow ! 13148: use of the UNIX prof command etc. ! 13149: ! 13150: Can someone explain how to rebuild (if necessary) our lisp system ! 13151: accordingly? ! 13152: ! 13153: Thanks ! 13154: --wayne (wfi%ucsc.csnet) ! 13155: ! 13156: ! 13157: From klahr@rand-unix Tue Apr 9 10:03:37 1985 ! 13158: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 13159: id AA09758; Tue, 9 Apr 85 10:03:37 pst ! 13160: Received: from rand-unix.ARPA (rand-unix.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.45) ! 13161: id AA20618; Tue, 9 Apr 85 10:02:11 pst ! 13162: Received: by rand-unix.ARPA; Tue, 9 Apr 85 09:41:46 pst ! 13163: From: Phil Klahr <klahr@rand-unix> ! 13164: Message-Id: <[email protected]> ! 13165: Date: 09 Apr 85 09:41:40 PST (Tue) ! 13166: To: FRANZ-FRIENDS@BERKELEY ! 13167: Cc: randvax!klahr ! 13168: Subject: IJCAI-85 Registration -- Please post ! 13169: ! 13170: ! 13171: The International Joint Conference on Artificial Intelligence will be ! 13172: meeting in Los Angeles (at UCLA) August 18-23, 1985. Conference ! 13173: brochures (including registration information) have already been mailed ! 13174: out. If you have not received one, or would like extras, contact ! 13175: ! 13176: IJCAI-85 ! 13177: c/o AAAI ! 13178: 445 Burgess Drive ! 13179: Menlo Park, CA 94025 ! 13180: 415-328-3123 or 415-321-1118 ! 13181: ! 13182: Registration will be limited to 5,000 people. Based on early projections, ! 13183: up to 7,000 people may wish to attend, so early registration is highly ! 13184: encouraged (if not necessary). ! 13185: ! 13186: As a bonus, early registrants will receive a substantial reduction in ! 13187: registration costs. Through June 28, registration fees are $175 ($80 for ! 13188: students); for registrations received after June 28 but prior to July 26, ! 13189: fees will be $225 ($100 for students); and for on-site registration (if ! 13190: available), fees will be $275 ($125 for students). Substantial reductions ! 13191: for early tutorial registrations are also in effect. ! 13192: ! 13193: Further information on the technical conference, the tutorials, the ! 13194: exhibition, and housing can be found in the conference brochure. ! 13195: ! 13196: From jeffr@sri-spam Tue Apr 9 16:38:17 1985 ! 13197: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 13198: id AA00472; Tue, 9 Apr 85 16:38:17 pst ! 13199: Received: from sri-spam.ARPA (sri-spam.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.45) ! 13200: id AA29765; Tue, 9 Apr 85 16:36:41 pst ! 13201: Received: by sri-spam.ARPA (4.22/4.16) ! 13202: id AA05175; Tue, 9 Apr 85 16:37:20 pst ! 13203: Date: Tue, 9 Apr 85 16:37:20 pst ! 13204: From: jeffr@sri-spam (Jeff Rininger) ! 13205: Message-Id: <[email protected]> ! 13206: To: franz-friends@BERKELEY ! 13207: ! 13208: Does anyone know of (or have) a Franz function that returns a character ! 13209: corresponding to a given fixnum representation, but without the pesky ! 13210: symbol delimiters that `ascii' returns ? ! 13211: ! 13212: From g_keaton%[email protected] Sat Apr 13 23:33:19 1985 ! 13213: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 13214: id AA22504; Sat, 13 Apr 85 23:33:19 pst ! 13215: Received: from csnet-relay (csnet-pdn-gw.ARPA) by UCB-VAX.ARPA (4.24/4.45) ! 13216: id AA13927; Sat, 13 Apr 85 23:32:05 pst ! 13217: Message-Id: <[email protected]> ! 13218: Received: from scarolina by csnet-relay.csnet id a013785; 14 Apr 85 2:36 EST ! 13219: Date: Fri, 12 Apr 85 13:01 EST ! 13220: From: Bonnell <g_keaton%[email protected]> ! 13221: To: FRANZ-FRIENDS@BERKELEY ! 13222: Subject: Problems with *process. ! 13223: ! 13224: I am attempting to have a Lisp process talk to a C process using ! 13225: Lisp's *process function. This function works fine with system commands ! 13226: such as 'ls' but fails when the C process is a typical user program. ! 13227: I hope someone has run into similar difficulties and can provide some ! 13228: enlightenment. We are using a set Sun workstations running Berkley Unix. ! 13229: The same problem also occurs on our VAX. ! 13230: ! 13231: Thanks, ! 13232: Gar Keaton ! 13233: ! 13234: From narain@rand-unix Mon Apr 15 11:33:17 1985 ! 13235: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 13236: id AA08082; Mon, 15 Apr 85 11:33:17 pst ! 13237: Received: from rand-unix.ARPA (rand-unix.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.45) ! 13238: id AA08871; Mon, 15 Apr 85 11:31:51 pst ! 13239: Received: by rand-unix.ARPA; Mon, 15 Apr 85 11:29:44 pst ! 13240: From: Sanjai Narain <narain@rand-unix> ! 13241: Message-Id: <[email protected]> ! 13242: Date: 15 Apr 85 11:29:40 PST (Mon) ! 13243: To: Bonnell <g_keaton%[email protected]> ! 13244: Cc: FRANZ-FRIENDS@BERKELEY, narain@rand-unix ! 13245: Subject: Re: Problems with *process. ! 13246: In-Reply-To: Your message of Fri, 12 Apr 85 13:01 EST. ! 13247: <[email protected]> ! 13248: ! 13249: ! 13250: I once set up a link between Franzlisp and C-Prolog using process instead of ! 13251: *process and it worked fine. It was on Vax 11/780, but it was most probably ! 13252: on an earlier version of Unix, rather than 4.2bsd. ! 13253: ! 13254: -- Sanjai Narain ! 13255: ! 13256: From chin@ucbdali Sat Apr 20 11:50:19 1985 ! 13257: Received: from ucbdali.ARPA by ucbkim.ARPA (4.24/4.27) ! 13258: id AA03799; Sat, 20 Apr 85 11:50:19 pst ! 13259: Received: by ucbdali.ARPA (4.24/4.45) ! 13260: id AA08585; Sat, 20 Apr 85 11:50:12 pst ! 13261: Date: Sat, 20 Apr 85 11:50:12 pst ! 13262: From: chin@ucbdali (David N. Chin) ! 13263: Message-Id: <[email protected]> ! 13264: To: franz-friends@ucbdali ! 13265: Subject: profiling ! 13266: ! 13267: Does anyone have a profiling package for FRANZ that provides execution ! 13268: time statistics? The prof.l package in the lisplib only provides call ! 13269: frequency statistics, and the liszt -p option only works if lisp was ! 13270: created with profiling (not to mention that you would have to recompile ! 13271: all your code to use it). ! 13272: ! 13273: Thanks in advance, ! 13274: David Chin ! 13275: chin@BERKELEY ! 13276: ucbvax!chin ! 13277: ! 13278: From [email protected] Sun Apr 21 14:13:02 1985 ! 13279: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.27) ! 13280: id AA17063; Sun, 21 Apr 85 14:13:02 pst ! 13281: Received: from mit-eddie.ARPA (mit-eddie.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.45) ! 13282: id AA03920; Sun, 21 Apr 85 14:11:39 pst ! 13283: Received: by mit-eddie.ARPA (4.12/4.8) id AA03273; Sun, 21 Apr 85 17:11:05 est ! 13284: Date: Sun, 21 Apr 85 17:11:05 est ! 13285: From: Steven M. Haflich <[email protected]> ! 13286: Message-Id: <[email protected]> ! 13287: To: franz-friends@BERKELEY ! 13288: Subject: Gnu EMACS customization for Lisp ! 13289: ! 13290: Lisp hackers who use Gnu EMACS might want to try this useful ! 13291: customization. It emulates the standard keybinding of CCA EMACS ! 13292: that makes C-Z (i.e. control-Z) a prefix which both CONTROL- and ! 13293: META-izes to the following keystroke. This is particularly useful ! 13294: for Lisp because most of the special Lisp editing commands are bound ! 13295: to ESC CONTROL characters. ! 13296: ! 13297: This text can be placed in the personal .emacs file in your home ! 13298: directory. The suspend-emacs function previously run by C-Z is ! 13299: still available as either C-X C-Z or C-Z C-Z . ! 13300: ! 13301: But first: The two "^Z" strings in the text below have been sanitized ! 13302: to pass through mailers and, as mailed, contain a two character ! 13303: sequence representing CONTROL-Z to humans. You will have to edit ! 13304: them to contain the single literal character C-Z, which can be typed ! 13305: in EMACS via the two-keystroke sequence: C-Q C-Z . ! 13306: ! 13307: ====================================== ! 13308: (defun c-m-prefix () ! 13309: "Apply both META and CONTROL to the next command character" ! 13310: (interactive) ! 13311: (command-execute ! 13312: (lookup-key esc-map (char-to-string (logand 31 (read-char)))))) ! 13313: ! 13314: (define-key global-map "^Z" 'c-m-prefix) ! 13315: (define-key esc-map "^Z" 'suspend-emacs) ! 13316: ! 13317: From @MIT-MC:[email protected] Tue Apr 23 17:48:24 1985 ! 13318: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.46) ! 13319: id AA18909; Tue, 23 Apr 85 17:48:24 pst ! 13320: Received: from MIT-MC (mit-mc.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.46) ! 13321: id AA10636; Tue, 23 Apr 85 17:46:11 pst ! 13322: Message-Id: <[email protected]> ! 13323: Received: from CMU-CS-IUS.ARPA by MIT-MC.ARPA; 22 APR 85 12:13:41 EST ! 13324: Date: 22 Apr 85 12:05:53 EST ! 13325: From: Wilson.Harvey@CMU-CS-IUS ! 13326: Subject: #ifdef for liszt? ! 13327: To: BBoard.Maintainer@CMU-CS-A ! 13328: ! 13329: ! 13330: Is there anything for the lisp compiler akin to the "#ifdef" statement ! 13331: for the C compiler? Can anyone point me to something similar? ! 13332: Thanks. -- Wilson ! 13333: ! 13334: ! 13335: ! 13336: From liz@tove Wed Apr 24 12:02:32 1985 ! 13337: Received: from UCB-VAX.ARPA (ucbvax.ARPA) by ucbkim.ARPA (4.24/4.46) ! 13338: id AA01778; Wed, 24 Apr 85 12:02:32 pst ! 13339: Received: from tove.ARPA (tove.ARPA.ARPA) by UCB-VAX.ARPA (4.24/4.46) ! 13340: id AA02711; Wed, 24 Apr 85 12:00:04 pst ! 13341: Received: by tove.ARPA (4.12/4.7) ! 13342: id AA15012; Wed, 24 Apr 85 15:00:27 est ! 13343: Message-Id: <[email protected]> ! 13344: To: Wilson.Harvey@cmu-cs-ius ! 13345: Cc: franz-friends@BERKELEY ! 13346: Subject: Re: #ifdef for liszt? ! 13347: In-Reply-To: Your message of 22 Apr 85 12:05:53 EST. ! 13348: <[email protected]> ! 13349: Date: 24 Apr 85 15:00:16 EST (Wed) ! 13350: From: Liz Allen <liz@tove> ! 13351: ! 13352: From: Wilson.Harvey@CMU-CS-IUS ! 13353: ! 13354: Is there anything for the lisp compiler akin to the "#ifdef" statement ! 13355: for the C compiler? Can anyone point me to something similar? ! 13356: Thanks. -- Wilson ! 13357: ! 13358: The reader has built into it a switch that works in both liszt and ! 13359: lisp. You can tell lisp whether or not to read an expression by ! 13360: putting before that expression something like: ! 13361: ! 13362: #+feature ! 13363: #-feature ! 13364: #+(or feature ...) ! 13365: #+(and feature ...) ! 13366: ! 13367: where feature is on iff it is on the "(status features)" list (which ! 13368: can be modified). Thus you can do something like this: ! 13369: ! 13370: #-uomlisp (defun morerecent (file1 file2) ...) ! 13371: ! 13372: since uomlisp is turned only in Franz's that contain all our hacks and ! 13373: morerecent happens to already be defined in our stuff. If you look at ! 13374: the liszt code, you'll see lots of "#+vax"'s and "#+68k"'s where the ! 13375: code needs to be different, eg: ! 13376: ! 13377: (defun cc-foo (x y z) ! 13378: (bar #+vax vax-arg ! 13379: #+68k 68k-arg) ! 13380: ...) ! 13381: ! 13382: It can be quite convenient especially when you have two lisps that are ! 13383: almost the same, you can maintain just one source containing these ! 13384: things whenever the sources for the different lisps must be different. ! 13385: ! 13386: I know this stuff is documented in the code in charmac.l; I can't ! 13387: remember right now if it is documented in the Franz reference manual ! 13388: and I don't have it with me right now to check. ! 13389: ! 13390: ! 13391: Hope this helps. ! 13392: ! 13393: -Liz ! 13394:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.