kath@uoregon.UUCP (kathleen freeman) (09/28/87)
hello, I am new to Apollos and would like to write a program that takes advantage of Domain Manager facilities e.g. creating windows. From the documentation I have, it seems that Pascal, Fortran, and C have hooks into the Domain Manager. However, I would like to program in Lisp (CommonLisp). Does anyone know if any Lisp can take advantage of Domain Manager functions? Thank you.
lnz@rainbow-warrior.UUCP (Leonard Zubkoff) (09/30/87)
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