Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!sundc!pitstop!sun!amdcad!ames!ucbcad!ucbvax!rainbow-warrior.UUCP!lnz From: lnz@rainbow-warrior.UUCP (Leonard Zubkoff) Newsgroups: comp.sys.apollo Subject: Lisp on the Apollo Message-ID: <8709301713.AA00495@rainbow-warrior.lucid.com> Date: Wed, 30-Sep-87 13:13:20 EDT Article-I.D.: rainbow-.8709301713.AA00495 Posted: Wed Sep 30 13:13:20 1987 Date-Received: Sun, 4-Oct-87 22:47:10 EDT References: <708@uoregon.UUCP> Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 32 Note: LUCID, Incorporated provides DOMAIN/CommonLISP to Apollo Computer. While LUCID is happy to answer questions concerning DOMAIN/CommonLISP, you can also contact Apollo with regards to CommonLISP related questions. The ability to call DOMAIN Library functions from DOMAIN/CommonLISP is provided through the Foreign Function Interface, documented in the DOMAIN/CommonLISP User's Guide. In addition to the documentation, online copies are provided of demonstration programs that use the DOMAIN Display Manager (PAD library) and Graphics Primitives Resource (GPR library) library calls. The demonstration programs can be found in the directory "/sys/common_lisp/demos". Of particular interest is the file "apollo-windows.lisp", which provides straightforward interfaces to many of the PAD and GPR calls. It should be easy for you to augment this file as needed for your application. In addition, functions are provided to construct a CommonLISP stream from DOMAIN stream identifiers/file descriptors, and for extracting the underlying stream identifiers from a CommonLISP stream. To say that Pascal, FORTRAN, and C have "hooks" into the Display Manager is misleading. Any program that uses a particular DOMAIN Library call, be the program written in Pascal, FORTRAN, C, or CommonLISP, goes through exactly the same entry point into the DOMAIN library. What differs is the mechanism for telling the language how to access the library calls and data types. For Pascal and C, insert files are provided by APOLLO that define the data types and exported entry points into the DOMAIN libraries. For CommonLISP, demonstration programs are provided, but must often be augmented by the user based on the Pascal insert files (the Foreign Function Interface was designed to make it easy to mechanically translate from Pascal insert files to CommonLISP foreign type and function declarations). For FORTRAN, much of the work of calling library functions must be done manually, since FORTRAN does not have any extensibility in its type system. Leonard Zubkoff