gjc@paradigm.com (05/29/90)
Remember the good old days of "Applications Wars" at MIT? At one time the proponents of various lisp-like languages would prove something by writing a commonly used system program in their language. e.g. the MAILER on the MIT-DM machine was written in MDL. and I remember FTP client on the MIT-LCS tops-20 machine being replaced with one written in CLU at some point. Of course the most used program of all: Zork, the super-hairy adventure game, which was written in MDL. John Kulp wrote a bitmap conversion driver for a Gould electrostatic plotter in Maclisp. It handled various fonts and line drawings rather better than the Xerox Laser printer. But boy could that thing suck down a KL-10. When MIT-MC was short of memory the thing was a son of a bitch to have around. Later on (post golden age one might say), the its INQUIR database program was rewritten in Maclisp (used to be assembler). The program that controlled the constance-ii mirror fusion experiment, drew the graphs, analyzed the data, etc, was written in PDP-10 Maclisp. A network interface subroutine package was used in that one, as the actually data collection was done using realtime assembler coded stuff on pdp-11's. (The same package probably also drove the gould printer). Obviously I'm leaving out a lot of research programs, expert systems such as OWL, parsers, GLS's Scheme compiler (rabbit), etc. -gjc
carroll@cs.uiuc.edu (Alan M. Carroll) (10/31/90)
A very basic question from a non-expert Lisper: What is the best way to have a macro expand to more than 1 top-level form in CommonLisp? Right now I use something like `(progn form1 form2 ...), but I worry that since the forms aren't actually at the top level in the file, they might not be processed/compiled/etc. correctly. What I want to accomplish is to have macros that set up read/writers in CLOS automatically (I have large numbers of almost identical ones, only the class name / slot names change). Thanks!
halvers@betelgeuse.crd.ge.com (Pete Halverson) (10/31/90)
In article <1990Oct30.225047.17818@ux1.cso.uiuc.edu> Alan M. Carroll writes: >What is the best way to have a macro expand to more than 1 top-level form in >CommonLisp? Right now I use something like `(progn form1 form2 ...), but I >worry that since the forms aren't actually at the top level in the file, >they might not be processed/compiled/etc. correctly. Using progn is the accepted way to handle macros with multiple forms. In CLtL.1, Steele said that "if a progn form appears at a top level, then all forms within that progn are considered by the compiler to be top-level forms". Furthermore, in the latest version, apparently "compilers must handle defining forms properly in *all* situations, not just top-level contexts" [emphasis added]. -- =============================================================================== Pete Halverson INET: halverson@crd.ge.com GE Corporate R&D Center UUCP: uunet!crd.ge.com!halverson Schenectady, NY "Money for nuthin' and your MIPS for free"
masinter@parc.xerox.com (Larry Masinter) (11/01/90)
>Using progn is the accepted way to handle macros with multiple forms. In >CLtL.1, Steele said that "if a progn form appears at a top level, then all >forms within that progn are considered by the compiler to be top-level >forms". Furthermore, in the latest version, apparently "compilers must >handle defining forms properly in *all* situations, not just top-level >contexts" [emphasis added]. There's still a distinction between top level and not, however. The following is fine: (progn (defmacro pair (x y) `(cons ,x ,y)) (defun get-pair (x y) (pair x y))) (get-pair 1 2) => '(1 . 2) but (defun definem () (defmacro pair (x y) `(cons ,x ,y)) (defun get-pair (x y) (pair x y))) (definem) (get-pair) is an error in a file to be compiled, since "Users must ensure that the body of the macro is evaluable at compile time if it is referenced within the file being compiled." Writing down what works and doesn't was painful. -- Larry Masinter (masinter@parc.xerox.com) Xerox Palo Alto Research Center (PARC) 3333 Coyote Hill Road; Palo Alto, CA USA 94304 Fax: (415) 494-4333
Jenny.Rowland@levels.sait.edu.au (05/27/91)
can someone help me with information about parallel Lisps - how to get, cost etc. e.g. *Lisp, QLisp, MultiLisp, EuLisp, LindaLisp Jenny Rowland Jenny.rowland@sait.edu.au University of South Australia