[comp.sys.apollo] Lisp on the Apollo

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