[armedbear-cvs] r13334 - trunk/abcl/doc/manual
mevenson at common-lisp.net
mevenson at common-lisp.net
Thu Jun 16 05:53:01 UTC 2011
Author: mevenson
Date: Wed Jun 15 22:53:00 2011
New Revision: 13334
Log:
Start outlining highlights of Lisp's interactions with Java.
Modified:
trunk/abcl/doc/manual/abcl.tex
Modified: trunk/abcl/doc/manual/abcl.tex
==============================================================================
--- trunk/abcl/doc/manual/abcl.tex Wed Jun 15 22:25:43 2011 (r13333)
+++ trunk/abcl/doc/manual/abcl.tex Wed Jun 15 22:53:00 2011 (r13334)
@@ -1,3 +1,8 @@
+% TODO
+% 1. Create mechanism for swigging DocString and Lisp docs into
+% sections.
+
+
\documentclass[10pt]{article}
\usepackage{color,hyperref}
@@ -10,7 +15,7 @@
\begin{document}
\title{A Manual for Armed Bear Common Lisp}
-\date{June 15, 2011}
+\date{June 16, 2011}
\author{Mark Evenson, Erik Huelsmann, Alessio Stallo, Ville Voutilainen}
\section{Introduction}
@@ -38,8 +43,40 @@
\subsection{Lisp to Java}
+ABCL offers a number of mechanisms to manipulate Java libraries from
+Lisp.
+
+\begin{itemize}
+\item Java values are accessible as objects of type JAVA:JAVA-OBJECT.
+\item The Java FFI presents a Lisp package (JAVA) with many useful
+ symbols for manipulating the artifacts of executation on the JVM,
+ including creation of new objects (JAVA:JNEW, JAVA:JMETHOD), the
+ introspection of values (JAVA:JFIELD), the execution of methods
+ (JAVA:JCALL, JAVA:JCALL-RAW, JAVA:JSTATIC)
+\item The JSS package (JSS) in contrib introduces a convenient macro
+ syntax (JSS:SHARPSIGN_HASH_DOUBLQUOTE_MACRO) for accessing Java
+ methods, and additional convenience funtions.
+\item Java classes and libraries may be dynamically added to the
+ classpath at runtime (JAVA:ADD-TO-CLASSPATH).
+\end{itemize}
+
\subsection{Lisp from Java}
+Manipulation of the Lisp API is currently lacking a stable interface,
+so what is documented here is subject to change.
+
+\begin{itemize}
+\item All Lisp values are descendents of LispObject.java
+\item Lisp symbols are accessible via either directly referening the
+ Symbol.java instance or by dynamically introspecting the
+ corresponding Package.java instance.
+\item The Lisp dynamic envrionment may be saved via
+ LispThread.bindSpecial(BINDING) and restored via
+ LispThread.resetSpecialBindings(mark).
+\item Functions may be executed by invocation of the
+ Function.execute(args [...])
+\end{itemize}
+
\subsection{JAVA}
% include autogen docs for the JAVA package.
More information about the armedbear-cvs
mailing list