Ignore:
Timestamp:
06/16/11 05:53:00 (10 years ago)
Author:
Mark Evenson
Message:

Start outlining highlights of Lisp's interactions with Java.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/doc/manual/abcl.tex

    r13331 r13334  
     1% TODO
     2%   1.  Create mechanism for swigging DocString and Lisp docs into
     3%       sections.
     4
     5
    16\documentclass[10pt]{article}
    27
     
    1116\begin{document}
    1217\title{A Manual for Armed Bear Common Lisp}
    13 \date{June 15, 2011}
     18\date{June 16, 2011}
    1419\author{Mark Evenson, Erik Huelsmann, Alessio Stallo, Ville Voutilainen}
    1520
     
    3944\subsection{Lisp to Java}
    4045
     46ABCL offers a number of mechanisms to manipulate Java libraries from
     47Lisp.
     48
     49\begin{itemize}
     50\item Java values are accessible as objects of type JAVA:JAVA-OBJECT.
     51\item The Java FFI presents a Lisp package (JAVA) with many useful
     52  symbols for manipulating the artifacts of executation on the JVM,
     53  including creation of new objects (JAVA:JNEW, JAVA:JMETHOD), the
     54  introspection of values (JAVA:JFIELD), the execution of methods
     55  (JAVA:JCALL, JAVA:JCALL-RAW, JAVA:JSTATIC)
     56\item The JSS package (JSS) in contrib introduces a convenient macro
     57  syntax (JSS:SHARPSIGN_HASH_DOUBLQUOTE_MACRO) for accessing Java
     58  methods, and additional convenience funtions.
     59\item Java classes and libraries may be dynamically added to the
     60  classpath at runtime (JAVA:ADD-TO-CLASSPATH).
     61\end{itemize}
     62
    4163\subsection{Lisp from Java}
     64
     65Manipulation of the Lisp API is currently lacking a stable interface,
     66so what is documented here is subject to change. 
     67
     68\begin{itemize}
     69\item All Lisp values are descendents of LispObject.java
     70\item Lisp symbols are accessible via either directly referening the
     71  Symbol.java instance or by dynamically introspecting the
     72  corresponding Package.java instance.
     73\item The Lisp dynamic envrionment may be saved via
     74  LispThread.bindSpecial(BINDING) and restored via
     75  LispThread.resetSpecialBindings(mark).
     76\item Functions may be executed by invocation of the
     77  Function.execute(args [...])
     78\end{itemize}
    4279
    4380\subsection{JAVA}
Note: See TracChangeset for help on using the changeset viewer.