[armedbear-cvs] r13628 - trunk/abcl/doc/manual
mevenson at common-lisp.net
mevenson at common-lisp.net
Thu Oct 13 05:05:20 UTC 2011
Author: mevenson
Date: Wed Oct 12 22:05:20 2011
New Revision: 13628
Log:
Adjustments to voice and presentation in the manual.
Modified:
trunk/abcl/doc/manual/abcl.tex
Modified: trunk/abcl/doc/manual/abcl.tex
==============================================================================
--- trunk/abcl/doc/manual/abcl.tex Wed Oct 12 22:05:05 2011 (r13627)
+++ trunk/abcl/doc/manual/abcl.tex Wed Oct 12 22:05:20 2011 (r13628)
@@ -5,7 +5,7 @@
\begin{document}
\title{A Manual for Armed Bear Common Lisp}
-\date{October 2, 2011}
+\date{October 13, 2011}
\author{Mark~Evenson, Erik~Huelsmann, Alessio~Stalla, Ville~Voutilainen}
\maketitle
@@ -21,12 +21,12 @@
\chapter{Running}
-ABCL is packaged as a single jar file usually named either
+\textsc{ABCL} is packaged as a single jar file usually named either
``abcl.jar'' or something like``abcl-0.28.0.jar'' if you are using a
versioned package from your system vendor. This byte archive can be
executed under the control of a suitable JVM by using the ``-jar''
option to parse the manifest, and select the named class
-(org.armedbear.lisp.Main) for excution:
+(\code{org.armedbear.lisp.Main}) for excution:
\begin{listing-shell}
cmd$ java -jar abcl.jar
@@ -46,7 +46,7 @@
\section{Options}
-ABCL supports the following options:
+ABCL supports the following command line options:
\begin{verbatim}
--help
@@ -87,11 +87,10 @@
\chapter{Conformance}
\section{ANSI Common Lisp}
-ABCL is currently a non-conforming ANSI Common Lisp implementation due
+\textsc{ABCL} is currently a non-conforming ANSI Common Lisp implementation due
to the following issues:
\begin{itemize}
- \item Missing statement of conformance in accompanying documentation
\item The generic function signatures of the DOCUMENTATION symbol do
not match the CLHS.
\end{itemize}
@@ -100,7 +99,7 @@
implementation. Any other behavior should be reported as a bug.
\section{Contemporary Common Lisp}
-In addition to ANSI conformance, ABCL strives to implement features
+In addition to ANSI conformance, \textsc{ABCL} strives to implement features
expected of a contemporary Common Lisp.
\begin{itemize}
\item Incomplete (A)MOP
@@ -123,26 +122,29 @@
\section{Lisp to Java}
-ABCL offers a number of mechanisms to interact with Java from
-its lisp environment. It allows calling methods (and static methods) of
-Java objects, manipulation of fields and static fields and construction
-of new Java objects.
-
-When calling Java routines, some values will automatically be converted
-by the FFI from Lisp values to Java values. These conversions typically
-apply to strings, integers and floats. Other values need to be converted
-to their Java equivalents by the programmer before calling the Java
-object method. Java values returned to Lisp are also generally converted
-back to their Lisp counterparts. Some operators make an exception to this
-rule and do not perform any conversion; those are the ``raw'' counterparts
-of certain FFI functions and are recognizable by their name ending with
-\code{-RAW}.
+\textsc{ABCL} offers a number of mechanisms to interact with Java from its
+Lisp environment. It allows calling both instance and static methods
+of Java objects, manipulation of instance and static fields on Java
+objects, and construction of new Java objects.
+
+When calling Java routines, some values will automatically be
+converted by the FFI \footnote{FFI stands for Foreign Function
+ Interface which is the term of art which describes how a Lisp
+ implementation encapsulates invocation in other languages.} from
+Lisp values to Java values. These conversions typically apply to
+strings, integers and floats. Other values need to be converted to
+their Java equivalents by the programmer before calling the Java
+object method. Java values returned to Lisp are also generally
+converted back to their Lisp counterparts. Some operators make an
+exception to this rule and do not perform any conversion; those are
+the ``raw'' counterparts of certain FFI functions and are recognizable
+by their name ending with \code{-RAW}.
\subsection{Lowlevel Java API}
There's a higher level Java API defined in the
\ref{topic:Higher level Java API: JSS}(JSS package) which is available
-in the contrib/ directory. This package is described later in this
+in the \code{contrib/} directory. This package is described later in this
document. This section covers the lower level API directly available
after evaluating \code{(require 'JAVA)}.
@@ -189,10 +191,12 @@
\subsubsection{Dynamic dispatch: caveats}
-Dynamic dispatch is performed by using the Java reflection API. Generally
-it works fine, but there are corner cases where the API does not correctly
-reflect all the details involved in calling a Java method. An example is
-the following Java code:
+Dynamic dispatch is performed by using the Java reflection
+API \footnote{The Java reflection API is found in the
+ \code{java.lang.reflect} package}. Generally the dispatch works
+fine, but there are corner cases where the API does not correctly
+reflect all the details involved in calling a Java method. An example
+is the following Java code:
\begin{listing-java}
ZipFile jar = new ZipFile("/path/to/some.jar");
@@ -201,7 +205,7 @@
method.invoke(els);
\end{listing-java}
-even though the method \code{hasMoreElements} is public in \code{Enumeration},
+even though the method \code{hasMoreElements()} is public in \code{Enumeration},
the above code fails with
\begin{listing-java}
@@ -227,7 +231,7 @@
except that the dynamic dispatch part is not shown.
-To avoid such pitfalls, all Java objects in ABCL carry an extra
+To avoid such pitfalls, all Java objects in \textsc{ABCL} carry an extra
field representing the ``intended class'' of the object. That is the class
that is used first by \code{JAVA:JCALL} and similar to resolve methods;
the actual class of the object is only tried if the method is not found
More information about the armedbear-cvs
mailing list