[armedbear-cvs] r13728 - branches/1.0.x/abcl/doc/manual

mevenson at common-lisp.net mevenson at common-lisp.net
Mon Jan 9 08:38:54 UTC 2012


Author: mevenson
Date: Mon Jan  9 00:38:52 2012
New Revision: 13728

Log:
Backport changes to manual en masse.

Added:
   branches/1.0.x/abcl/doc/manual/README.markdown
      - copied unchanged from r13727, trunk/abcl/doc/manual/README.markdown
   branches/1.0.x/abcl/doc/manual/grovel.lisp
      - copied unchanged from r13727, trunk/abcl/doc/manual/grovel.lisp
Modified:
   branches/1.0.x/abcl/doc/manual/abcl.sty
   branches/1.0.x/abcl/doc/manual/abcl.tex
   branches/1.0.x/abcl/doc/manual/extensions.tex
   branches/1.0.x/abcl/doc/manual/java.tex
   branches/1.0.x/abcl/doc/manual/threads.tex

Copied: branches/1.0.x/abcl/doc/manual/README.markdown (from r13727, trunk/abcl/doc/manual/README.markdown)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/1.0.x/abcl/doc/manual/README.markdown	Mon Jan  9 00:38:52 2012	(r13728, copy of r13727, trunk/abcl/doc/manual/README.markdown)
@@ -0,0 +1,6 @@
+ABCL User Manual
+================
+
+With a suitable TexLive installed, to build simply issue:
+
+    cmd$ pdflatex abcl.tex && makeindex abcl && pdflatex abcl.tex

Modified: branches/1.0.x/abcl/doc/manual/abcl.sty
==============================================================================
--- branches/1.0.x/abcl/doc/manual/abcl.sty	Sat Jan  7 15:09:30 2012	(r13727)
+++ branches/1.0.x/abcl/doc/manual/abcl.sty	Mon Jan  9 00:38:52 2012	(r13728)
@@ -34,4 +34,12 @@
 
 \usepackage{verbatim}
 
+%% For setting margins in docstrings
+\usepackage{changepage}
+
+\usepackage{makeidx}
+
+\makeindex
+
 \ProvidesPackage{abcl}
+

Modified: branches/1.0.x/abcl/doc/manual/abcl.tex
==============================================================================
--- branches/1.0.x/abcl/doc/manual/abcl.tex	Sat Jan  7 15:09:30 2012	(r13727)
+++ branches/1.0.x/abcl/doc/manual/abcl.tex	Mon Jan  9 00:38:52 2012	(r13728)
@@ -5,8 +5,8 @@
 
 \begin{document}
 \title{A Manual for Armed Bear Common Lisp}
-\date{October 21, 2011}
-\author{Mark~Evenson, Erik~Huelsmann, Alessio~Stalla, Ville~Voutilainen}
+\date{January 5, 2012}
+\author{Mark~Evenson, Erik~H\"{u}lsmann, Alessio~Stalla, Ville~Voutilainen}
 
 \maketitle
 
@@ -14,12 +14,14 @@
 
 \chapter{Introduction}
 
-Armed Bear is a (mostly) conforming implementation of the ANSI Common
-Lisp standard.  This manual documents the Armed Bear Common Lisp
+Armed Bear is a conforming implementation of the ANSI Common Lisp
+standard (see \ref{chapter:conformance} on page
+\pageref{chapter:conformance} which states the details of the
+conformance level.  This manual documents the Armed Bear Common Lisp
 implementation for users of the system.
 
 \subsection{Version}
-This manual corresponds to abcl-1.0.0, released on October 22, 2011.
+This manual corresponds to abcl-1.0.1.
 
 \subsection{License}
 
@@ -52,21 +54,22 @@
 \textsc{ABCL} is packaged as a single jar file usually named either
 ``abcl.jar'' or possibly``abcl-1.0.0.jar'' if one is 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
-(\code{org.armedbear.lisp.Main}) for execution, viz:
+under the control of a suitable JVM \footnote {Java Virtual Machine}
+by using the ``-jar'' option to parse the manifest, and select the
+class named therein ``\code{org.armedbear.lisp.Main}'' for execution,
+viz:
 
 \begin{listing-shell}
   cmd$ java -jar abcl.jar
 \end{listing-shell}
 
-N.b. for the proceeding command to work, the ``java'' executable needs
+\emph{N.b.} for the proceeding command to work, the ``java'' executable needs
 to be in your path.
 
 To make it easier to facilitate the use of ABCL in tool chains (such
 as SLIME \footnote{SLIME is the Superior Lisp Mode for Interaction
   under Emacs}) the invocation is wrapped in a Bourne shell script
-under UNIX or a DOS command script under Windows so that ABCL may be
+under \textsc{UNIX} or a \textsc{DOS} command script under Windows so that ABCL may be
 executed simply as:
 
 \begin{listing-shell}
@@ -106,7 +109,7 @@
 
 \section{Initialization}
 
-If the ABCL process is started without the ``--noinit'' flag, it
+If the \textsc{ABCL} process is started without the ``--noinit'' flag, it
 attempts to load a file named ``.abclrc'' located in the user's home
 directory and then interpret its contents.  
 
@@ -116,6 +119,7 @@
 JVM implementation that \textsc{ABCL} finds itself hosted upon.
 
 \chapter{Conformance}
+\label{chapter:conformance}
 
 \section{ANSI Common Lisp}
 \textsc{ABCL} is currently a (non)-conforming ANSI Common Lisp
@@ -129,7 +133,7 @@
 \end{itemize}
 
 Somewhat confusingly, this statement of non-conformance in the
-accompanying user documentation fullfills the requirements that
+accompanying user documentation fulfills the requirements that
 \textsc{ABCL} is a conforming ANSI Common Lisp implementation
 according to the CLHS \footnote{Common Lisp Hyperspec language
   reference document.}.  Clarifications to this point are solicited.
@@ -144,10 +148,18 @@
 
 \subsection{Deficiencies}
 The following known problems detract from \textsc{ABCL} being a proper
-contemporary Comon Lisp.
+contemporary Common Lisp.
 \begin{itemize}
+
+  \item An incomplete implementation of interactive debugging
+    mechanisms namely a no-op version of
+    \code{STEP} \footnote{Somewhat surprisingly allowed by
+      \textsc{ANSI}}, the inability to inspect local variables in a
+    given call frame, and the inability to resume a halted computation
+    at an arbitrarily selected call frame.
+
   \item An incomplete implementation of a properly named metaobject
-    protocol (viz. (A)MOP \footnote{Another Metaobject Protocol} )
+    protocol (viz. (A)MOP \footnote{The Art of the  Metaobject Protocol} )
 
     % N.b. 
     % TODO go through AMOP with symbols, starting by looking for
@@ -161,7 +173,7 @@
     byte-level manipulations.
     
   \item Incomplete documentation (missing docstrings from exported
-      symbols.
+    symbols and the draft status of the User Manual).
 
 \end{itemize}
 
@@ -200,11 +212,12 @@
 
 \subsection{Low-level Java API}
 
-We define a higher level Java API in the \ref{topic:Higher level Java
-  API: JSS}(JSS package) which is available in the \code{contrib/} \ref{topic:contrib}
-directory. This package is described later in this document.  This
-section covers the lower level API directly available after evaluating
-\code{(require 'JAVA)}.
+We define a higher level Java API in the topic:Higher level Java JSS
+package developed by Alan Ruttenberg which is available in the
+\code{contrib/} directory, see the  . This package is
+described later in this document, see \ref{section:jss} on page
+\pageref{section:jss}.  This section covers the lower level API
+directly available after evaluating \code{(require 'JAVA)}.
 
 \subsubsection{Calling Java Object Methods}
 
@@ -747,12 +760,10 @@
 CL-USER> (add-to-classpath "/path/to/some.jar")
 \end{listing-lisp}
 
-N.b \code{add-to-classpath} only affects the classloader used by ABCL
+N.b \code{ADD-TO-CLASSPATH} only affects the classloader used by ABCL
 (the value of the special variable \code{JAVA:*CLASSLOADER*}. It has
 no effect on Java code outside ABCL.
 
-\subsection{API}
-
 % include autogen docs for the JAVA package.
 \include{java}
 
@@ -763,8 +774,6 @@
 excellent \code{java.util.concurrent} packages may be manipulated
 directly via the JSS contrib to great effect.
 
-\subsection{API}
-
 % include autogen docs for the THREADS package.
 \include{threads}
 
@@ -776,10 +785,8 @@
 running external programs, registering object finalizers, constructing
 reference weakly held by the garbage collector and others.
 
-See \ref{Extensible Sequences} for a generic function interface to
-the native JVM contract for \code{java.util.List}.
-
-\subsection{API}
+See \ref{Rhodes2007} for a generic function interface to the native
+JVM contract for \code{java.util.List}.
 
 % include autogen docs for the EXTENSIONS package.
 \include{extensions}
@@ -804,15 +811,23 @@
 JVM ``understands''.  Support is built-in to the ``http'' and
 ``https'' implementations but additional protocol handlers may be
 installed at runtime by having JVM symbols present in the
-sun.net.protocol.dynmamic pacakge. See [JAVA2006] for more details.
+sun.net.protocol.dynmamic pacakge. See Java2007 \cite{Java2007} for more
+details.
 
 ABCL has created specializations of the ANSI Pathname object to
 enable to use of URIs to address dynamically loaded resources for the
-JVM.  A URL-PATHNAME has a corresponding URL whose cannoical
+JVM.  A URL-PATHNAME has a corresponding URL whose canonical
 representation is defined to be the NAMESTRING of the Pathname.
 
+%
 \begin{verbatim}
-  JAR-PATHNAME isa URL-PATHNAME isa PATHNAME
+
+# RDF description of type hierarchy 
+% TODO Render via some LaTeX mode for graphviz?
+
+  <jar-pathname> a <url-pathname>.
+  <url-pathname> a <pathname>.
+  <logical-pathname> a <pathname> .
 \end{verbatim}
 
 Both URL-PATHNAME and JAR-PATHNAME may be used anywhere a PATHNAME is
@@ -832,7 +847,7 @@
 \end{itemize}
 
 The implementation of URL-PATHNAME allows the ABCL user to laod dynamically
-code from the network.  For example, for Quicklisp.
+code from the network.  For example, for Quicklisp (\cite{Xach2011}):
 
 \begin{listing-lisp}
   CL-USER> (load "http://beta.quicklisp.org/quicklisp.lisp")
@@ -840,16 +855,16 @@
 
 will load and execute the Quicklisp setup code.
 
-\ref{XACH2011}
+See \ref{_:XACH2011} on page \pageref{_:XACH2011}.
 
 \subsubsection{Implementation}
 
-\textsc{DEVICE} either a string denoting a drive letter under DOS or a cons
-specifying a \textsc{URL-PATHNAME}.
+\code{DEVICE} either a string denoting a drive letter under DOS or a cons
+specifying a \code{URL-PATHNAME}.
          
 \section{Extensible Sequences}
 
-See \ref{RHODES2007} RHODES2007 for the design.
+See Rhodes2007 \cite{RHODES2007} for the design.
 
 The SEQUENCE package fully implements Christopher Rhodes' proposal for
 extensible sequences.  These user extensible sequences are used
@@ -931,14 +946,18 @@
 \subsection{JSS optionally extends the Reader}
 
 The JSS contrib consitutes an additional, optional extension to the
-reader in the definition of the \#\" reader macro.
+reader in the definition of the \#\" reader macro.  See
+\ref{section:jss} on page \pageref{section:jss} for more information.
 
 \section{ASDF}
 
 asdf-2.017.22 is packaged as core component of ABCL, but not
-intialized by default, as it relies on the CLOS subsystem which can
-take a bit of time to initialize.  It may be initialized by the ANSI
-\textsc{REQUIRE} mechanism as follows:
+initialized by default, as it relies on the CLOS subsystem which can
+take a bit of time to start \footnote{While this time is ``merely'' on
+  the order of seconds for contemporary 2011 machines, for
+  applications that need to initialize quickly, for example a web
+  server, this time might be unnecessarily long}.  ASDF may be loaded
+by the \textsc{ANSI} \code{REQUIRE} mechanism as follows:
 
 \begin{listing-lisp}
 CL-USER> (require 'asdf)
@@ -946,23 +965,39 @@
 
 \chapter{Contrib}
 
+The ABCL contrib is packaged as a separate jar archive usually named
+\code{abcl-contrib.jar} or possibly something like
+\code{abcl-contrib-1.0.0.jar}.  The contrib jar is not loaded by the
+implementation by default, and must be first intialized by the
+\code{REQUIRE} mechanism before using any specific contrib:
+
+\begin{listing-lisp}
+CL-USER> (require 'abcl-contrib)
+\end{listing-lisp}
+
 \section{abcl-asdf}
 
-This contrib to ABCL enables an additional syntax for ASDF system
-definition which dynamically loads JVM artifacts such as jar archives
-via a Maven encapsulation.  The Maven Aether can also be directly
-manipulated by the function associated with the RESOLVE-DEPENDENCIES symbol.
+This contrib enables an additional syntax for \textsc{ASDF} system
+definition which dynamically loads \textsc{JVM} artifacts such as jar
+archives via encapsulation of the Maven build tool.  The Maven Aether
+component can also be directly manipulated by the function associated
+with the \code{ABCL-ASDF:RESOLVE-DEPENDENCIES} symbol.
 
-%ABCL specific contributions to ASDF system definition mainly concerned
-%with finding JVM artifacts such as jar archives to be dynamically loaded.
+%ABCL specific contributions to ASDF system definition mainly
+%concerned with finding JVM artifacts such as jar archives to be
+%dynamically loaded.
 
 
-The following ASDF components are added: \textsc{JAR-FILE}, \textsc{JAR-DIRECTORY},
-\textsc{CLASS-FILE-DIRECTORY} and \textsc{MVN}.
+The following \textsc{ASDF} components are added: \code{JAR-FILE},
+\code{JAR-DIRECTORY}, \code{CLASS-FILE-DIRECTORY} and \code{MVN}.
 
 
+\subsection{Referencing Maven Artifacts via ASDF}
 
-\subsection{ABCL-ASDF Examples}
+Maven artifacts may be referenced within \textsc{ASDF} system
+definitions, as the following example references the
+\code{log4j-1.4.9.jar} JVM artifact which provides a widely-used
+abstraction for handling logging systems:
 
 \begin{listing-lisp}
     ;;;; -*- Mode: LISP -*-
@@ -973,75 +1008,85 @@
                     :version "1.4.9")))
 \end{listing-lisp}
 
-\subsection{abcl-asdf API}
+\subsection{API}
 
-We define an API as consisting of the following ASDF classes:
+We define an API for \textsc{ABCL-ASDF} as consisting of the following
+ASDF classes:
 
-\textsc{JAR-DIRECTORY}, \textsc{JAR-FILE}, and
-\textsc{CLASS-FILE-DIRECTORY} for JVM artifacts that have a currently
-valid pathname representation
+\code{JAR-DIRECTORY}, \code{JAR-FILE}, and
+\code{CLASS-FILE-DIRECTORY} for JVM artifacts that have a currently
+valid pathname representation.
 
-And the MVN and IRI classes descend from ASDF-COMPONENT, but do not
+Both the MVN and IRI classes descend from ASDF-COMPONENT, but do not
 directly have a filesystem location.
 
-For use outside of ASDF, we currently define one method,
-\textsc{RESOLVE-DEPENDENCIES} which locates, downloads, caches, and then loads
-into the currently executing JVM process all recursive dependencies
-annotated in the Maven pom.xml graph.
+For use outside of ASDF system definitions, we currently define one
+method, \code{ABCL-ASDF:RESOLVE-DEPENDENCIES} which locates,
+downloads, caches, and then loads into the currently executing JVM
+process all recursive dependencies annotated in the Maven pom.xml
+graph.
 
-\subsection{ABCL-ASDF Example 2}
+\subsection{Directly Instructing Maven to Download JVM Artifacts}
 
-Bypassing ASDF, one can directly issue requests for the Maven
+Bypassing \textsc{ASDF}, one can directly issue requests for the Maven
 artifacts to be downloaded
 
 \begin{listing-lisp}
-    CL-USER> (abcl-asdf:resolve-dependencies "com.google.gwt" "gwt-user")
-    WARNING: Using LATEST for unspecified version.
-    "/Users/evenson/.m2/repository/com/google/gwt/gwt-user/2.4.0-rc1/gwt-user-2.4.0-rc1.jar:/Users/evenson/.m2/repository/javax/validation/validation-api/1.0.0.GA/validation-api-1.0.0.GA.jar:/Users/evenson/.m2/repository/javax/validation/validation-api/1.0.0.GA/validation-api-1.0.0.GA-sources.jar"
+CL-USER> (abcl-asdf:resolve-dependencies "com.google.gwt" "gwt-user")
+WARNING: Using LATEST for unspecified version.
+"/Users/evenson/.m2/repository/com/google/gwt/gwt-user/2.4.0-rc1/gwt-user-2.4.0-rc1.jar:/Users/evenson/.m2/repository/javax/validation/validation-api/1.0.0.GA/validation-api-1.0.0.GA.jar:/Users/evenson/.m2/repository/javax/validation/validation-api/1.0.0.GA/validation-api-1.0.0.GA-sources.jar"
 \end{listing-lisp}
 
-To actually load the dependency, use the JAVA:ADD-TO-CLASSPATH generic
+To actually load the dependency, use the \code{JAVA:ADD-TO-CLASSPATH} generic
 function:
 
 \begin{listing-lisp}
-    CL-USER> (java:add-to-classpath (abcl-asdf:resolve-dependencies "com.google.gwt" "gwt-user"))
+CL-USER> (java:add-to-classpath (abcl-asdf:resolve-dependencies "com.google.gwt" "gwt-user"))
 \end{listing-lisp}
 
 Notice that all recursive dependencies have been located and installed
 locally from the network as well.
 
-
 \section{asdf-jar}
 
-ASDF-JAR provides a system for packaging ASDF systems into jar
-archives for ABCL.  Given a running ABCL image with loadable ASDF
+The asdf-jar contrib provides a system for packaging ASDF systems into
+jar archives for ABCL.  Given a running ABCL image with loadable ASDF
 systems the code in this package will recursively package all the
 required source and fasls in a jar archive.
 
 \section{jss}
+\label{section:jss}
 
-To one used to a syntax that can construct macros, the Java syntax
-sucks, so we introduce the \#" macro.
+To one used to a syntax that can construct macros the Java syntax
+may be said to suck, so we introduce the \code{SHARPSIGN-DOUBLE-QUOTE} \#" macro.
 
 \subsection{JSS usage}
 
 Example:
 
 \begin{listing-lisp}
-  CL-USER> (require 'jss)
+CL-USER> (require 'jss)
 
-  CL-USER) (#"getProperties" 'java.lang.System)
+CL-USER) (#"getProperties" 'java.lang.System)
 
-  CL-USER) (#"propertyNames" (#"getProperties" 'java.lang.System))
+CL-USER) (#"propertyNames" (#"getProperties" 'java.lang.System))
 \end{listing-lisp}
 
 \section{asdf-install}
 
-An implementation of ASDF-INSTALL.  Superseded by Quicklisp (qv.)
+The asdf-install contrib provides an implementation of ASDF-INSTALL.
+Superseded by Quicklisp (see Xach2011 \cite{Xach2011}).
+
+The \code{require} of the \code{asdf-install} symbol has the side
+effect of pushing the directory ``~/.asdf-install-dir/systems/'' into
+the value of the \textsc{ASDF} central registry in
+\code{asdf:*central-registry*}, providing a convenient mechanism for
+stashing \textsc{ABCL} specific system definitions for convenient
+access.
 
 \chapter{History}
 
-ABCL was originally the extension language for the J editor, which was
+\textsc{ABCL} was originally the extension language for the J editor, which was
 started in 1998 by Peter Graves.  Sometime in 2003, a whole lot of
 code that had previously not been released publically was suddenly
 committed that enabled ABCL to be plausibly termed an emergent ANSI
@@ -1049,29 +1094,41 @@
 
 From 2006 to 2008, Peter manned the development lists, incorporating
 patches as made sense.  After a suitable search, Peter nominated Erik
-Huelsmann to take over the project.
+H\"{u}lsmann to take over the project.
 
 In 2008, the implementation was transferred to the current
 maintainers, who have strived to improve its usability as a
 contemporary Common Lisp implementation.
 
 On October 22, 2011, with the publication of this Manual explicitly
-stating the conformance of Armed Bear Common Lisp to ANSI, we released
+stating the conformance of Armed Bear Common Lisp to \textsc{ANSI}, we released
 abcl-1.0.0.
 
 
 
+\begin{thebibliography}{9}
 
-\section{References}
-
-[Java2000]:  A New Era for Java Protocol Handlers.
-\url{http://java.sun.com/developer/onlineTraining/protocolhandlers/}
-
-[Xach2011]:  Quicklisp:  A system for quickly constructing Common Lisp
-libraries.  \url{http://www.quicklisp.org/}
+\label{_:1}
+\bibitem{Java2000}
+  ``A New Era for Java Protocol Handlers.''
+  \url{http://java.sun.com/developer/onlineTraining/protocolhandlers/}
+
+\label{_:XACH2011}
+\bibitem{Xach2011}
+  Zach Beene
+  ``Quicklisp:  A system for quickly constructing Common Lisp''
+  \url{http://www.quicklisp.org/}
+
+\bibitem{Rhodes2007}
+Christopher Rhodes
+``User-extensible Sequences in Common Lisp''
+ILC '07 Proceedings of the 2007 International Lisp Conference
+% An early draft.  XXX where is the real one?
+\url{http://jcsu.jesus.cam.ac.uk/~csr21/spec.pdf}
 
-[RHODES2007]:  Christopher Rhodes
+\end{thebibliography}
 
+\printindex
 
 \end{document}
 

Modified: branches/1.0.x/abcl/doc/manual/extensions.tex
==============================================================================
--- branches/1.0.x/abcl/doc/manual/extensions.tex	Sat Jan  7 15:09:30 2012	(r13727)
+++ branches/1.0.x/abcl/doc/manual/extensions.tex	Mon Jan  9 00:38:52 2012	(r13728)
@@ -1,250 +1,1118 @@
-\begin{verbatim}
-%CADDR
-  Macro: (not documented)
-%CADR
-  Macro: (not documented)
-%CAR
-  Macro: (not documented)
-%CDR
-  Macro: (not documented)
-*AUTOLOAD-VERBOSE*
-  Variable: (not documented)
-*BATCH-MODE*
-  Variable: (not documented)
-*COMMAND-LINE-ARGUMENT-LIST*
-  Variable: (not documented)
-*DEBUG-CONDITION*
-  Variable: (not documented)
-*DEBUG-LEVEL*
-  Variable: (not documented)
-*DISASSEMBLER*
-  Variable: (not documented)
-*ED-FUNCTIONS*
-  Variable: (not documented)
-*ENABLE-INLINE-EXPANSION*
-  Variable: (not documented)
-*INSPECTOR-HOOK*
-  Variable: (not documented)
-*LISP-HOME*
-  Variable: (not documented)
-*LOAD-TRUENAME-FASL*
-  Variable: (not documented)
-*PRINT-STRUCTURE*
-  Variable: (not documented)
-*REQUIRE-STACK-FRAME*
-  Variable: (not documented)
-*SAVED-BACKTRACE*
-  Variable: (not documented)
-*SUPPRESS-COMPILER-WARNINGS*
-  Variable: (not documented)
-*WARN-ON-REDEFINITION*
-  Variable: (not documented)
-ADJOIN-EQL
-  Function: (not documented)
-ARGLIST
-  Function: (not documented)
-ASSQ
-  Function: (not documented)
-ASSQL
-  Function: (not documented)
-AUTOLOAD
-  Function: (not documented)
-AUTOLOAD-MACRO
-  Function: (not documented)
-AUTOLOADP
-  Function: (not documented)
-AVER
-  Macro: (not documented)
-CANCEL-FINALIZATION
-  Function: (not documented)
-CHAR-TO-UTF8
-  Function: (not documented)
-CHARPOS
-  Function: (not documented)
-CLASSP
-  Function: (not documented)
-COLLECT
-  Macro: (not documented)
-COMPILE-FILE-IF-NEEDED
-  Function: (not documented)
-COMPILE-SYSTEM
-  Function: (not documented)
-COMPILER-ERROR
-  Function: (not documented)
-  Class: (not documented)
-COMPILER-UNSUPPORTED-FEATURE-ERROR
-  Class: (not documented)
-DESCRIBE-COMPILER-POLICY
-  Function: (not documented)
-DOUBLE-FLOAT-NEGATIVE-INFINITY
-  Variable: (not documented)
-DOUBLE-FLOAT-POSITIVE-INFINITY
-  Variable: (not documented)
-DUMP-JAVA-STACK
-  Function: (not documented)
-EXIT
-  Function: (not documented)
-FEATUREP
-  Function: (not documented)
-FILE-DIRECTORY-P
-  Function: (not documented)
-FINALIZE
-  Function: (not documented)
-FIXNUMP
-  Function: (not documented)
-GC
-  Function: (not documented)
-GET-FLOATING-POINT-MODES
-  Function: (not documented)
-GET-SOCKET-STREAM
-  Function: :ELEMENT-TYPE must be CHARACTER or (UNSIGNED-BYTE 8); the default is CHARACTER.
-GETENV
-  Function: Return the value of the environment VARIABLE if it exists, otherwise return NIL.
-GROVEL-JAVA-DEFINITIONS
-  Function: (not documented)
-INIT-GUI
-  Function: (not documented)
-INTERNAL-COMPILER-ERROR
-  Function: (not documented)
-  Class: (not documented)
-INTERRUPT-LISP
-  Function: (not documented)
-JAR-PATHNAME
-  Class: (not documented)
-MACROEXPAND-ALL
-  Function: (not documented)
-MAILBOX
-  Class: (not documented)
-MAKE-DIALOG-PROMPT-STREAM
-  Function: (not documented)
-MAKE-SERVER-SOCKET
-  Function: (not documented)
-MAKE-SLIME-INPUT-STREAM
-  Function: (not documented)
-MAKE-SLIME-OUTPUT-STREAM
-  Function: (not documented)
-MAKE-SOCKET
-  Function: (not documented)
-MAKE-TEMP-FILE
-  Function: (not documented)
-MAKE-WEAK-REFERENCE
-  Function: (not documented)
-MEMQ
-  Function: (not documented)
-MEMQL
-  Function: (not documented)
-MOST-NEGATIVE-JAVA-LONG
-  Variable: (not documented)
-MOST-POSITIVE-JAVA-LONG
-  Variable: (not documented)
-MUTEX
-  Class: (not documented)
-NEQ
-  Function: (not documented)
-NIL-VECTOR
-  Class: (not documented)
-PATHNAME-JAR-P
-  Function: (not documented)
-PATHNAME-URL-P
-  Function: Predicate for whether PATHNAME references a URL.
-PRECOMPILE
-  Function: (not documented)
-PROBE-DIRECTORY
-  Function: (not documented)
-PROCESS
-  Function: (not documented)
-PROCESS-ALIVE-P
-  Function: (not documented)
-PROCESS-ERROR
-  Function: (not documented)
-PROCESS-EXIT-CODE
-  Function: (not documented)
-PROCESS-INPUT
-  Function: (not documented)
-PROCESS-KILL
-  Function: (not documented)
-PROCESS-OUTPUT
-  Function: (not documented)
-PROCESS-P
-  Function: (not documented)
-PROCESS-WAIT
-  Function: (not documented)
-QUIT
-  Function: (not documented)
-RESOLVE
-  Function: (not documented)
-RUN-PROGRAM
-  Function: (not documented)
-RUN-SHELL-COMMAND
-  Function: (not documented)
-SERVER-SOCKET-CLOSE
-  Function: (not documented)
-SET-FLOATING-POINT-MODES
-  Function: (not documented)
-SHOW-RESTARTS
-  Function: (not documented)
-SIMPLE-SEARCH
-  Function: (not documented)
-SIMPLE-STRING-FILL
-  Function: (not documented)
-SIMPLE-STRING-SEARCH
-  Function: (not documented)
-SINGLE-FLOAT-NEGATIVE-INFINITY
-  Variable: (not documented)
-SINGLE-FLOAT-POSITIVE-INFINITY
-  Variable: (not documented)
-SLIME-INPUT-STREAM
-  Class: (not documented)
-SLIME-OUTPUT-STREAM
-  Class: (not documented)
-SOCKET-ACCEPT
-  Function: (not documented)
-SOCKET-CLOSE
-  Function: (not documented)
-SOCKET-LOCAL-ADDRESS
-  Function: Returns the local address of the given socket as a dotted quad string.
-SOCKET-LOCAL-PORT
-  Function: Returns the local port number of the given socket.
-SOCKET-PEER-ADDRESS
-  Function: Returns the peer address of the given socket as a dotted quad string.
-SOCKET-PEER-PORT
-  Function: Returns the peer port number of the given socket.
-SOURCE
-  Function: (not documented)
-SOURCE-FILE-POSITION
-  Function: (not documented)
-SOURCE-PATHNAME
-  Function: (not documented)
-SPECIAL-VARIABLE-P
-  Function: (not documented)
-STRING-FIND
-  Function: (not documented)
-STRING-INPUT-STREAM-CURRENT
-  Function: (not documented)
-STRING-POSITION
-  Function: (not documented)
-STYLE-WARN
-  Function: (not documented)
-TRULY-THE
-  Special Operator: (not documented)
-UPTIME
-  Function: (not documented)
-URI-DECODE
-  Function: (not documented)
-URI-ENCODE
-  Function: (not documented)
-URL-PATHNAME
-  Class: (not documented)
-URL-PATHNAME-AUTHORITY
-  Function: (not documented)
-URL-PATHNAME-FRAGMENT
-  Function: (not documented)
-URL-PATHNAME-QUERY
-  Function: (not documented)
-URL-PATHNAME-SCHEME
-  Function: (not documented)
-WEAK-REFERENCE
-  Class: (not documented)
-WEAK-REFERENCE-VALUE
-  Function: (not documented)
-\end{verbatim}
+\subsection{Exported Symbols from the EXTENSIONS package}
+
+\paragraph{}
+\label{EXTENSIONS:COMPILE-FILE-IF-NEEDED}
+\index{COMPILE-FILE-IF-NEEDED}
+--- Function: \textbf{compile-file-if-needed} [\textbf{extensions}] \textit{input-file \&rest allargs \&key force-compile \&allow-other-keys}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:MOST-POSITIVE-JAVA-LONG}
+\index{MOST-POSITIVE-JAVA-LONG}
+--- Variable: \textbf{most-positive-java-long} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:DUMP-JAVA-STACK}
+\index{DUMP-JAVA-STACK}
+--- Function: \textbf{dump-java-stack} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:MEMQL}
+\index{MEMQL}
+--- Function: \textbf{memql} [\textbf{extensions}] \textit{item list}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:DOUBLE-FLOAT-NEGATIVE-INFINITY}
+\index{DOUBLE-FLOAT-NEGATIVE-INFINITY}
+--- Variable: \textbf{double-float-negative-infinity} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:GROVEL-JAVA-DEFINITIONS}
+\index{GROVEL-JAVA-DEFINITIONS}
+--- Function: \textbf{grovel-java-definitions} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:*AUTOLOAD-VERBOSE*}
+\index{*AUTOLOAD-VERBOSE*}
+--- Variable: \textbf{*autoload-verbose*} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:MAKE-SLIME-INPUT-STREAM}
+\index{MAKE-SLIME-INPUT-STREAM}
+--- Function: \textbf{make-slime-input-stream} [\textbf{extensions}] \textit{function output-stream}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:URL-PATHNAME-FRAGMENT}
+\index{URL-PATHNAME-FRAGMENT}
+--- Function: \textbf{url-pathname-fragment} [\textbf{extensions}] \textit{p}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:PROCESS-KILL}
+\index{PROCESS-KILL}
+--- Function: \textbf{process-kill} [\textbf{extensions}] \textit{process}
+
+\begin{adjustwidth}{5em}{5em}
+Kills the process.
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:NIL-VECTOR}
+\index{NIL-VECTOR}
+--- Class: \textbf{nil-vector} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:SOURCE-PATHNAME}
+\index{SOURCE-PATHNAME}
+--- Function: \textbf{source-pathname} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:URI-DECODE}
+\index{URI-DECODE}
+--- Function: \textbf{uri-decode} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:SIMPLE-STRING-FILL}
+\index{SIMPLE-STRING-FILL}
+--- Function: \textbf{simple-string-fill} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:MEMQ}
+\index{MEMQ}
+--- Function: \textbf{memq} [\textbf{extensions}] \textit{item list}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:URL-PATHNAME-SCHEME}
+\index{URL-PATHNAME-SCHEME}
+--- Function: \textbf{url-pathname-scheme} [\textbf{extensions}] \textit{p}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:TRULY-THE}
+\index{TRULY-THE}
+--- Special Operator: \textbf{truly-the} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:SLIME-INPUT-STREAM}
+\index{SLIME-INPUT-STREAM}
+--- Class: \textbf{slime-input-stream} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:MAKE-SOCKET}
+\index{MAKE-SOCKET}
+--- Function: \textbf{make-socket} [\textbf{extensions}] \textit{host port}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:*ENABLE-INLINE-EXPANSION*}
+\index{*ENABLE-INLINE-EXPANSION*}
+--- Variable: \textbf{*enable-inline-expansion*} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:PROCESS-INPUT}
+\index{PROCESS-INPUT}
+--- Function: \textbf{process-input} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:MAILBOX}
+\index{MAILBOX}
+--- Class: \textbf{mailbox} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:STRING-POSITION}
+\index{STRING-POSITION}
+--- Function: \textbf{string-position} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:PRECOMPILE}
+\index{PRECOMPILE}
+--- Function: \textbf{precompile} [\textbf{extensions}] \textit{name \&optional definition}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:*SUPPRESS-COMPILER-WARNINGS*}
+\index{*SUPPRESS-COMPILER-WARNINGS*}
+--- Variable: \textbf{*suppress-compiler-warnings*} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:PROCESS}
+\index{PROCESS}
+--- Class: \textbf{process} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:SIMPLE-SEARCH}
+\index{SIMPLE-SEARCH}
+--- Function: \textbf{simple-search} [\textbf{extensions}] \textit{sequence1 sequence2}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:*LISP-HOME*}
+\index{*LISP-HOME*}
+--- Variable: \textbf{*lisp-home*} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:*COMMAND-LINE-ARGUMENT-LIST*}
+\index{*COMMAND-LINE-ARGUMENT-LIST*}
+--- Variable: \textbf{*command-line-argument-list*} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:FILE-DIRECTORY-P}
+\index{FILE-DIRECTORY-P}
+--- Function: \textbf{file-directory-p} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:MAKE-DIALOG-PROMPT-STREAM}
+\index{MAKE-DIALOG-PROMPT-STREAM}
+--- Function: \textbf{make-dialog-prompt-stream} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:CLASSP}
+\index{CLASSP}
+--- Function: \textbf{classp} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:*DISASSEMBLER*}
+\index{*DISASSEMBLER*}
+--- Variable: \textbf{*disassembler*} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:SET-FLOATING-POINT-MODES}
+\index{SET-FLOATING-POINT-MODES}
+--- Function: \textbf{set-floating-point-modes} [\textbf{extensions}] \textit{\&key traps}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:*DEBUG-CONDITION*}
+\index{*DEBUG-CONDITION*}
+--- Variable: \textbf{*debug-condition*} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:EXIT}
+\index{EXIT}
+--- Function: \textbf{exit} [\textbf{extensions}] \textit{\&key status}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:PROCESS-ERROR}
+\index{PROCESS-ERROR}
+--- Function: \textbf{process-error} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:SOCKET-LOCAL-PORT}
+\index{SOCKET-LOCAL-PORT}
+--- Function: \textbf{socket-local-port} [\textbf{extensions}] \textit{socket}
+
+\begin{adjustwidth}{5em}{5em}
+Returns the local port number of the given socket.
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:PROCESS-ALIVE-P}
+\index{PROCESS-ALIVE-P}
+--- Function: \textbf{process-alive-p} [\textbf{extensions}] \textit{process}
+
+\begin{adjustwidth}{5em}{5em}
+Return t if process is still alive, nil otherwise.
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:*INSPECTOR-HOOK*}
+\index{*INSPECTOR-HOOK*}
+--- Variable: \textbf{*inspector-hook*} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:*REQUIRE-STACK-FRAME*}
+\index{*REQUIRE-STACK-FRAME*}
+--- Variable: \textbf{*require-stack-frame*} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:PROBE-DIRECTORY}
+\index{PROBE-DIRECTORY}
+--- Function: \textbf{probe-directory} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:CHAR-TO-UTF8}
+\index{CHAR-TO-UTF8}
+--- Function: \textbf{char-to-utf8} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:AUTOLOAD}
+\index{AUTOLOAD}
+--- Function: \textbf{autoload} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:MUTEX}
+\index{MUTEX}
+--- Class: \textbf{mutex} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:URI-ENCODE}
+\index{URI-ENCODE}
+--- Function: \textbf{uri-encode} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:AUTOLOAD-MACRO}
+\index{AUTOLOAD-MACRO}
+--- Function: \textbf{autoload-macro} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:SOCKET-CLOSE}
+\index{SOCKET-CLOSE}
+--- Function: \textbf{socket-close} [\textbf{extensions}] \textit{socket}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:UPTIME}
+\index{UPTIME}
+--- Function: \textbf{uptime} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:*ED-FUNCTIONS*}
+\index{*ED-FUNCTIONS*}
+--- Variable: \textbf{*ed-functions*} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:COMPILE-SYSTEM}
+\index{COMPILE-SYSTEM}
+--- Function: \textbf{compile-system} [\textbf{extensions}] \textit{\&key quit (zip t) output-path}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:*LOAD-TRUENAME-FASL*}
+\index{*LOAD-TRUENAME-FASL*}
+--- Variable: \textbf{*load-truename-fasl*} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:SPECIAL-VARIABLE-P}
+\index{SPECIAL-VARIABLE-P}
+--- Function: \textbf{special-variable-p} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:SOCKET-ACCEPT}
+\index{SOCKET-ACCEPT}
+--- Function: \textbf{socket-accept} [\textbf{extensions}] \textit{socket}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:*WARN-ON-REDEFINITION*}
+\index{*WARN-ON-REDEFINITION*}
+--- Variable: \textbf{*warn-on-redefinition*} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:URL-PATHNAME-AUTHORITY}
+\index{URL-PATHNAME-AUTHORITY}
+--- Function: \textbf{url-pathname-authority} [\textbf{extensions}] \textit{p}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:AUTOLOADP}
+\index{AUTOLOADP}
+--- Function: \textbf{autoloadp} [\textbf{extensions}] \textit{symbol}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:MAKE-WEAK-REFERENCE}
+\index{MAKE-WEAK-REFERENCE}
+--- Function: \textbf{make-weak-reference} [\textbf{extensions}] \textit{obj}
+
+\begin{adjustwidth}{5em}{5em}
+Creates a weak reference to 'obj'.
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:RESOLVE}
+\index{RESOLVE}
+--- Function: \textbf{resolve} [\textbf{extensions}] \textit{symbol}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:CANCEL-FINALIZATION}
+\index{CANCEL-FINALIZATION}
+--- Function: \textbf{cancel-finalization} [\textbf{extensions}] \textit{object}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:MAKE-SLIME-OUTPUT-STREAM}
+\index{MAKE-SLIME-OUTPUT-STREAM}
+--- Function: \textbf{make-slime-output-stream} [\textbf{extensions}] \textit{function}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:RUN-PROGRAM}
+\index{RUN-PROGRAM}
+--- Function: \textbf{run-program} [\textbf{extensions}] \textit{program args \&key environment (wait t)}
+
+\begin{adjustwidth}{5em}{5em}
+Creates a new process running the the PROGRAM.
+ARGS are a list of strings to be passed to the program as arguments. 
+
+For no arguments, use nil which means that just the name of the
+program is passed as arg 0.
+
+Returns a process structure containing the JAVA-OBJECT wrapped Process
+object, and the PROCESS-INPUT, PROCESS-OUTPUT, and PROCESS-ERROR streams.
+
+c.f. http://download.oracle.com/javase/6/docs/api/java/lang/Process.html
+
+Notes about Unix environments (as in the :environment):
+
+    * The ABCL implementation of run-program, like SBCL, Perl and many
+      other programs, copies the Unix environment by default.
+
+    * Running Unix programs from a setuid process, or in any other
+      situation where the Unix environment is under the control of
+      someone else, is a mother lode of security problems. If you are
+      contemplating doing this, read about it first. (The Perl
+      community has a lot of good documentation about this and other
+      security issues in script-like programs.)
+
+The \&key arguments have the following meanings:
+
+:environment 
+    An alist of STRINGs (name . value) describing the new
+    environment. The default is to copy the environment of the current
+    process.
+
+:wait 
+    If non-NIL, which is the default, wait until the created process
+    finishes. If NIL, continue running Lisp until the program
+    finishes.
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:FIXNUMP}
+\index{FIXNUMP}
+--- Function: \textbf{fixnump} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:SINGLE-FLOAT-NEGATIVE-INFINITY}
+\index{SINGLE-FLOAT-NEGATIVE-INFINITY}
+--- Variable: \textbf{single-float-negative-infinity} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:QUIT}
+\index{QUIT}
+--- Function: \textbf{quit} [\textbf{extensions}] \textit{\&key status}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:INTERNAL-COMPILER-ERROR}
+\index{INTERNAL-COMPILER-ERROR}
+--- Function: \textbf{internal-compiler-error} [\textbf{extensions}] \textit{format-control \&rest format-arguments}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:JAR-PATHNAME}
+\index{JAR-PATHNAME}
+--- Class: \textbf{jar-pathname} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+NIL
+
+\paragraph{}
+\label{EXTENSIONS:SIMPLE-STRING-SEARCH}
+\index{SIMPLE-STRING-SEARCH}
+--- Function: \textbf{simple-string-search} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:ASSQL}
+\index{ASSQL}
+--- Function: \textbf{assql} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:FINALIZE}
+\index{FINALIZE}
+--- Function: \textbf{finalize} [\textbf{extensions}] \textit{object function}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:RUN-SHELL-COMMAND}
+\index{RUN-SHELL-COMMAND}
+--- Function: \textbf{run-shell-command} [\textbf{extensions}] \textit{command \&key directory (output *standard-output*)}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:*SAVED-BACKTRACE*}
+\index{*SAVED-BACKTRACE*}
+--- Variable: \textbf{*saved-backtrace*} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:COLLECT}
+\index{COLLECT}
+--- Macro: \textbf{collect} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:ARGLIST}
+\index{ARGLIST}
+--- Function: \textbf{arglist} [\textbf{extensions}] \textit{extended-function-designator}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:ADJOIN-EQL}
+\index{ADJOIN-EQL}
+--- Function: \textbf{adjoin-eql} [\textbf{extensions}] \textit{item list}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:CHARPOS}
+\index{CHARPOS}
+--- Function: \textbf{charpos} [\textbf{extensions}] \textit{stream}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:MAKE-TEMP-FILE}
+\index{MAKE-TEMP-FILE}
+--- Function: \textbf{make-temp-file} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:DESCRIBE-COMPILER-POLICY}
+\index{DESCRIBE-COMPILER-POLICY}
+--- Function: \textbf{describe-compiler-policy} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:*PRINT-STRUCTURE*}
+\index{*PRINT-STRUCTURE*}
+--- Variable: \textbf{*print-structure*} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:SOCKET-PEER-ADDRESS}
+\index{SOCKET-PEER-ADDRESS}
+--- Function: \textbf{socket-peer-address} [\textbf{extensions}] \textit{socket}
+
+\begin{adjustwidth}{5em}{5em}
+Returns the peer address of the given socket as a dotted quad string.
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:GC}
+\index{GC}
+--- Function: \textbf{gc} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:GETENV}
+\index{GETENV}
+--- Function: \textbf{getenv} [\textbf{extensions}] \textit{variable}
+
+\begin{adjustwidth}{5em}{5em}
+Return the value of the environment VARIABLE if it exists, otherwise return NIL.
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:SERVER-SOCKET-CLOSE}
+\index{SERVER-SOCKET-CLOSE}
+--- Function: \textbf{server-socket-close} [\textbf{extensions}] \textit{socket}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:WEAK-REFERENCE}
+\index{WEAK-REFERENCE}
+--- Class: \textbf{weak-reference} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:GET-FLOATING-POINT-MODES}
+\index{GET-FLOATING-POINT-MODES}
+--- Function: \textbf{get-floating-point-modes} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:WEAK-REFERENCE-VALUE}
+\index{WEAK-REFERENCE-VALUE}
+--- Function: \textbf{weak-reference-value} [\textbf{extensions}] \textit{obj}
+
+\begin{adjustwidth}{5em}{5em}
+Returns two values, the first being the value of the weak ref,the second T if the reference is valid, or NIL if it hasbeen cleared.
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:SINGLE-FLOAT-POSITIVE-INFINITY}
+\index{SINGLE-FLOAT-POSITIVE-INFINITY}
+--- Variable: \textbf{single-float-positive-infinity} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:FEATUREP}
+\index{FEATUREP}
+--- Function: \textbf{featurep} [\textbf{extensions}] \textit{form}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:PATHNAME-URL-P}
+\index{PATHNAME-URL-P}
+--- Function: \textbf{pathname-url-p} [\textbf{extensions}] \textit{pathname}
+
+\begin{adjustwidth}{5em}{5em}
+Predicate for whether PATHNAME references a URL.
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:STRING-INPUT-STREAM-CURRENT}
+\index{STRING-INPUT-STREAM-CURRENT}
+--- Function: \textbf{string-input-stream-current} [\textbf{extensions}] \textit{stream}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:MAKE-SERVER-SOCKET}
+\index{MAKE-SERVER-SOCKET}
+--- Function: \textbf{make-server-socket} [\textbf{extensions}] \textit{port}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:INTERRUPT-LISP}
+\index{INTERRUPT-LISP}
+--- Function: \textbf{interrupt-lisp} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:AVER}
+\index{AVER}
+--- Macro: \textbf{aver} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:INIT-GUI}
+\index{INIT-GUI}
+--- Function: \textbf{init-gui} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+Dummy function used to autoload this file
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:URL-PATHNAME-QUERY}
+\index{URL-PATHNAME-QUERY}
+--- Function: \textbf{url-pathname-query} [\textbf{extensions}] \textit{p}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:PROCESS-EXIT-CODE}
+\index{PROCESS-EXIT-CODE}
+--- Function: \textbf{process-exit-code} [\textbf{extensions}] \textit{instance}
+
+\begin{adjustwidth}{5em}{5em}
+The exit code of a process.
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:SOURCE-FILE-POSITION}
+\index{SOURCE-FILE-POSITION}
+--- Function: \textbf{source-file-position} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:SOCKET-PEER-PORT}
+\index{SOCKET-PEER-PORT}
+--- Function: \textbf{socket-peer-port} [\textbf{extensions}] \textit{socket}
+
+\begin{adjustwidth}{5em}{5em}
+Returns the peer port number of the given socket.
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:ASSQ}
+\index{ASSQ}
+--- Function: \textbf{assq} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:SOURCE}
+\index{SOURCE}
+--- Function: \textbf{source} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:SOCKET-LOCAL-ADDRESS}
+\index{SOCKET-LOCAL-ADDRESS}
+--- Function: \textbf{socket-local-address} [\textbf{extensions}] \textit{socket}
+
+\begin{adjustwidth}{5em}{5em}
+Returns the local address of the given socket as a dotted quad string.
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:NEQ}
+\index{NEQ}
+--- Function: \textbf{neq} [\textbf{extensions}] \textit{obj1 obj2}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:STRING-FIND}
+\index{STRING-FIND}
+--- Function: \textbf{string-find} [\textbf{extensions}] \textit{char string}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:PATHNAME-JAR-P}
+\index{PATHNAME-JAR-P}
+--- Function: \textbf{pathname-jar-p} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:PROCESS-WAIT}
+\index{PROCESS-WAIT}
+--- Function: \textbf{process-wait} [\textbf{extensions}] \textit{process}
+
+\begin{adjustwidth}{5em}{5em}
+Wait for process to quit running for some reason.
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:SHOW-RESTARTS}
+\index{SHOW-RESTARTS}
+--- Function: \textbf{show-restarts} [\textbf{extensions}] \textit{restarts stream}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:*BATCH-MODE*}
+\index{*BATCH-MODE*}
+--- Variable: \textbf{*batch-mode*} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:PROCESS-P}
+\index{PROCESS-P}
+--- Function: \textbf{process-p} [\textbf{extensions}] \textit{object}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:*GUI-BACKEND*}
+\index{*GUI-BACKEND*}
+--- Variable: \textbf{*gui-backend*} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:DOUBLE-FLOAT-POSITIVE-INFINITY}
+\index{DOUBLE-FLOAT-POSITIVE-INFINITY}
+--- Variable: \textbf{double-float-positive-infinity} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:STYLE-WARN}
+\index{STYLE-WARN}
+--- Function: \textbf{style-warn} [\textbf{extensions}] \textit{format-control \&rest format-arguments}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:MOST-NEGATIVE-JAVA-LONG}
+\index{MOST-NEGATIVE-JAVA-LONG}
+--- Variable: \textbf{most-negative-java-long} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:SLIME-OUTPUT-STREAM}
+\index{SLIME-OUTPUT-STREAM}
+--- Class: \textbf{slime-output-stream} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:GET-SOCKET-STREAM}
+\index{GET-SOCKET-STREAM}
+--- Function: \textbf{get-socket-stream} [\textbf{extensions}] \textit{socket \&key (element-type (quote character)) (external-format default)}
+
+\begin{adjustwidth}{5em}{5em}
+:ELEMENT-TYPE must be CHARACTER or (UNSIGNED-BYTE 8); the default is CHARACTER.
+EXTERNAL-FORMAT must be of the same format as specified for OPEN.
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:PROCESS-OUTPUT}
+\index{PROCESS-OUTPUT}
+--- Function: \textbf{process-output} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:URL-PATHNAME}
+\index{URL-PATHNAME}
+--- Class: \textbf{url-pathname} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:COMPILER-UNSUPPORTED-FEATURE-ERROR}
+\index{COMPILER-UNSUPPORTED-FEATURE-ERROR}
+--- Class: \textbf{compiler-unsupported-feature-error} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:*DEBUG-LEVEL*}
+\index{*DEBUG-LEVEL*}
+--- Variable: \textbf{*debug-level*} [\textbf{extensions}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:COMPILER-ERROR}
+\index{COMPILER-ERROR}
+--- Function: \textbf{compiler-error} [\textbf{extensions}] \textit{format-control \&rest format-arguments}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{EXTENSIONS:MACROEXPAND-ALL}
+\index{MACROEXPAND-ALL}
+--- Function: \textbf{macroexpand-all} [\textbf{extensions}] \textit{form \&optional env}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+

Copied: branches/1.0.x/abcl/doc/manual/grovel.lisp (from r13727, trunk/abcl/doc/manual/grovel.lisp)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/1.0.x/abcl/doc/manual/grovel.lisp	Mon Jan  9 00:38:52 2012	(r13728, copy of r13727, trunk/abcl/doc/manual/grovel.lisp)
@@ -0,0 +1,92 @@
+#-abcl We're only grovelling ABCL docstrings here.
+(defun grovel-docstrings-as-tex (&optional (package (find-package :java)))
+  (let ((output-file (format nil "~A.tex" (string-downcase (package-name package)))))
+    (with-open-file (stream output-file :direction :output)
+      (format t "Writing output to ~A.~%" output-file)
+      (loop :for symbol :being :each :external-symbol :of package 
+         :doing (format stream "~&~A~%~%" (symbol-as-tex symbol))))))
+
+(asdf:load-system 'swank) ;; XXX Does this load the SWANK-BACKEND package as well
+
+(defun arglist-as-tex (symbol)
+  (handler-case 
+      (loop :for arg :in (arglist symbol)
+         :collecting
+         (format nil 
+                 ;;; XXX should really check the entire input for TeX escapes
+                 (if (and (symbolp arg)
+                          (or (string= (subseq (symbol-name arg) 0 1) #\&)
+                              (string= (subseq (symbol-name arg) 0 1) #\%)))
+                     "\\~A"
+                     "~A")
+                 (if (symbolp arg)
+                     (string-downcase (symbol-name arg))
+                     (format nil "~(~A~)" arg))))
+    (t (e) 
+      (progn (warn "Failed to form arglist for ~A: ~A" symbol e)
+             (list "")))))
+             
+
+(defvar *type-alist* 
+  '((:function 
+     . "Function")
+    (:macro 
+     . "Macro")
+    (:variable 
+     . "Variable")
+    (:class 
+     . "Class")
+    (:special-operator
+     . "Special Operator")
+    (:generic-function 
+     . "Generic Function")))
+
+(defun symbol-as-tex (symbol)
+  "Return the TeX representation of a SYMBOL as Tex."
+  (let (type documentation arglist doc symbol-name package-name)
+    (when (setf doc (swank-backend:describe-symbol-for-emacs symbol))
+        (cond 
+          ((find :function doc)
+           (setf type :function
+                 documentation (second doc)
+                 arglist (format nil "~{~A~^ ~}" (arglist-as-tex symbol))))
+          ((find :variable doc)
+           (setf type :variable 
+                 documentation (second doc)))
+          ((find :macro doc)
+           (setf type :macro
+                 documentation (second doc)))
+          ((find :generic-function doc)
+           (setf type :generic-function
+                 documentation (second doc)))
+          ((find :class doc)
+           (setf type :class
+                 documentation (second doc)))
+          ((find :special-operator doc)
+           (setf type :special-operator
+                 documentation (second doc)))
+          (t 
+           (warn "Unknown type of documentation for symbol ~A: ~A"
+                 symbol doc)))
+        (setf symbol-name (string-downcase 
+                           symbol)
+              package-name (string-downcase 
+                            (package-name (find-package (symbol-package symbol)))))
+        (format nil "~&\\paragraph{}~&\\label{~A:~A}~&\\index{~A}~&--- ~A: \\textbf{~A} [\\textbf{~A}] \\textit{~A}~%~%\\begin{adjustwidth}{5em}{5em}~&~A~&\\end{adjustwidth}"
+                (package-name (find-package (symbol-package symbol)))
+                (symbol-name symbol)
+                (symbol-name symbol)
+                (cdr (assoc type *type-alist*))
+                symbol-name
+                package-name
+                (if arglist arglist "")
+                (if documentation documentation "")))))
+                
+                
+
+
+
+  
+          
+    
+     
\ No newline at end of file

Modified: branches/1.0.x/abcl/doc/manual/java.tex
==============================================================================
--- branches/1.0.x/abcl/doc/manual/java.tex	Sat Jan  7 15:09:30 2012	(r13727)
+++ branches/1.0.x/abcl/doc/manual/java.tex	Mon Jan  9 00:38:52 2012	(r13728)
@@ -1,182 +1,768 @@
-\begin{verbatim}
-%JGET-PROPERTY-VALUE
-  Function: Gets a JavaBeans property on JAVA-OBJECT.
-%JSET-PROPERTY-VALUE
-  Function: Sets a JavaBean property on JAVA-OBJECT.
-*JAVA-OBJECT-TO-STRING-LENGTH*
-  Variable: Length to truncate toString() PRINT-OBJECT output for an
- otherwise unspecialized JAVA-OBJECT.  Can be set to NIL to indicate
- no limit.
-+FALSE+
-  Variable: The JVM primitive value for boolean false.
-+NULL+
-  Variable: The JVM null object reference.
-+TRUE+
-  Variable: The JVM primitive value for boolean true.
-ADD-TO-CLASSPATH
-  Generic Function: (not documented)
-CHAIN
-  Macro: (not documented)
-DESCRIBE-JAVA-OBJECT
-  Function: (not documented)
-DUMP-CLASSPATH
-  Function: (not documented)
-ENSURE-JAVA-CLASS
-  Function: (not documented)
-ENSURE-JAVA-OBJECT
-  Function: Ensures OBJ is wrapped in a JAVA-OBJECT, wrapping it if necessary.
-GET-CURRENT-CLASSLOADER
-  Function: (not documented)
-GET-DEFAULT-CLASSLOADER
-  Function: (not documented)
-JARRAY-COMPONENT-TYPE
-  Function: Returns the component type of the array type ATYPE
-JARRAY-LENGTH
-  Function: (not documented)
-JARRAY-REF
-  Function: Dereferences the Java array JAVA-ARRAY using the given
- INDICIES, coercing the result into a Lisp object, if possible.
-JARRAY-REF-RAW
-  Function: Dereference the Java array JAVA-ARRAY using the given
- INDICIES. Does not attempt to coerce the result into a Lisp object.
-JARRAY-SET
-  Function: Stores NEW-VALUE at the given index in JAVA-ARRAY.
-JAVA-CLASS
-  Class: (not documented)
-JAVA-EXCEPTION
-  Class: (not documented)
-JAVA-EXCEPTION-CAUSE
-  Function: (not documented)
-JAVA-OBJECT
-  Class: (not documented)
-JAVA-OBJECT-P
-  Function: Returns T if OBJECT is a JAVA-OBJECT.
-JCALL
-  Function: Invokes the Java method METHOD-REF on INSTANCE with
- arguments ARGS, coercing the result into a Lisp object, if possible.
-JCALL-RAW
-  Function: Invokes the Java method METHOD-REF on INSTANCE with
- arguments ARGS. Does not attempt to coerce the result into a Lisp
- object.
-JCLASS
-  Function: Returns a reference to the Java class designated by
- NAME-OR-CLASS-REF. If the CLASS-LOADER parameter is passed, the class
- is resolved with respect to the given ClassLoader.
-JCLASS-ARRAY-P
-  Function: Returns T if CLASS is an array class
-JCLASS-CONSTRUCTORS
-  Function: Returns a vector of constructors for CLASS
-JCLASS-FIELD
-  Function: Returns the field named FIELD-NAME of CLASS
-JCLASS-FIELDS
-  Function: Returns a vector of all (or just the declared/public, if
- DECLARED/PUBLIC is true) fields of CLASS
-JCLASS-INTERFACE-P
-  Function: Returns T if CLASS is an interface
-JCLASS-INTERFACES
-  Function: Returns the vector of interfaces of CLASS
-JCLASS-METHODS
-  Function: Return a vector of all (or just the declared/public, if
- DECLARED/PUBLIC is true) methods of CLASS
-JCLASS-NAME
-  Function: (not documented)
-JCLASS-OF
-  Function: (not documented)
-JCLASS-SUPERCLASS
-  Function: Returns the superclass of CLASS, or NIL if it hasn't got one
-JCLASS-SUPERCLASS-P
-  Function: Returns T if CLASS-1 is a superclass or interface of CLASS-2
-JCOERCE
-  Function: Attempts to coerce OBJECT into a JavaObject of class
- INTENDED-CLASS.  Raises a TYPE-ERROR if no conversion is possible.
-JCONSTRUCTOR
-  Function: Returns a reference to the Java constructor of CLASS-REF
- with the given PARAMETER-CLASS-REFS.
-JCONSTRUCTOR-PARAMS
-  Function: Returns a vector of parameter types (Java classes) for CONSTRUCTOR
-JEQUAL
-  Function: Compares obj1 with obj2 using java.lang.Object.equals()
-JFIELD
-  Function: Retrieves or modifies a field in a Java class or instance.
-JFIELD-NAME
-  Function: Returns the name of FIELD as a Lisp string
-JFIELD-RAW
-  Function: Retrieves or modifies a field in a Java class or instance. Does not
-JFIELD-TYPE
-  Function: Returns the type (Java class) of FIELD
-JINSTANCE-OF-P
-  Function: OBJ is an instance of CLASS (or one of its subclasses)
-JINTERFACE-IMPLEMENTATION
-  Function: Creates and returns an implementation of a Java interface with
-JMAKE-INVOCATION-HANDLER
-  Function: (not documented)
-JMAKE-PROXY
-  Generic Function: (not documented)
-JMEMBER-PROTECTED-P
-  Function: MEMBER is a protected member of its declaring class
-JMEMBER-PUBLIC-P
-  Function: MEMBER is a public member of its declaring class
-JMEMBER-STATIC-P
-  Function: MEMBER is a static member of its declaring class
-JMETHOD
-  Function: Returns a reference to the Java method METHOD-NAME of
- CLASS-REF with the given PARAMETER-CLASS-REFS.
-JMETHOD-LET
-  Macro: (not documented)
-JMETHOD-NAME
-  Function: Returns the name of METHOD as a Lisp string
-JMETHOD-PARAMS
-  Function: Returns a vector of parameter types (Java classes) for METHOD
-JMETHOD-RETURN-TYPE
-  Function: Returns the result type (Java class) of the METHOD
-JNEW
-  Function: Invokes the Java constructor CONSTRUCTOR with the arguments ARGS.
-JNEW-ARRAY
-  Function: Creates a new Java array of type ELEMENT-TYPE, with the given DIMENSIONS.
-JNEW-ARRAY-FROM-ARRAY
-  Function: Returns a new Java array with base type ELEMENT-TYPE (a string or a class-ref)
-JNEW-ARRAY-FROM-LIST
-  Function: (not documented)
-JNEW-RUNTIME-CLASS
-  Function: (not documented)
-JNULL-REF-P
-  Function: Returns a non-NIL value when the JAVA-OBJECT `object` is `null`,
-JOBJECT-CLASS
-  Function: Returns the Java class that OBJ belongs to
-JOBJECT-LISP-VALUE
-  Function: Attempts to coerce JAVA-OBJECT into a Lisp object.
-JPROPERTY-VALUE
-  Function: (not documented)
-JREDEFINE-METHOD
-  Function: (not documented)
-JREGISTER-HANDLER
-  Function: (not documented)
-JRESOLVE-METHOD
-  Function: Finds the most specific Java method METHOD-NAME on
- INSTANCE applicable to arguments ARGS. Returns NIL if no suitable
- method is found. The algorithm used for resolution is the same used
- by JCALL when it is called with a string as the first parameter
- (METHOD-REF).
-JRUN-EXCEPTION-PROTECTED
-  Function: Invokes the function CLOSURE and returns the result.
-  Signals an error if stack or heap exhaustion occurs.
-JRUNTIME-CLASS-EXISTS-P
-  Function: (not documented)
-JSTATIC
-  Function: Invokes the static method METHOD on class CLASS with ARGS.
-JSTATIC-RAW
-  Function: Invokes the static method METHOD on class CLASS with
- ARGS. Does not attempt to coerce the arguments or result into a Lisp
- object.
-MAKE-CLASSLOADER
-  Function: (not documented)
-MAKE-IMMEDIATE-OBJECT
-  Function: Attempts to coerce a given Lisp object into a java-object of the
-REGISTER-JAVA-EXCEPTION
-  Function: Registers the Java Throwable named by the symbol
- EXCEPTION-NAME as the condition designated by CONDITION-SYMBOL.
-  Returns T if successful, NIL if not.
-UNREGISTER-JAVA-EXCEPTION
-  Function: Unregisters the Java Throwable EXCEPTION-NAME previously
- registered by REGISTER-JAVA-EXCEPTION.
-\end{verbatim}
+\subsection{Exported Symbols from the JAVA package}
+\paragraph{}
+\label{JAVA:JAVA-EXCEPTION-CAUSE}
+\index{JAVA-EXCEPTION-CAUSE}
+--- Function: \textbf{java-exception-cause} [\textbf{java}] \textit{java-exception}
+
+\begin{adjustwidth}{5em}{5em}
+Returns the cause of JAVA-EXCEPTION. (The cause is the Java Throwable
+  object that caused JAVA-EXCEPTION to be signalled.)
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JCLASS-SUPERCLASS-P}
+\index{JCLASS-SUPERCLASS-P}
+--- Function: \textbf{jclass-superclass-p} [\textbf{java}] \textit{class-1 class-2}
+
+\begin{adjustwidth}{5em}{5em}
+Returns T if CLASS-1 is a superclass or interface of CLASS-2
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JINTERFACE-IMPLEMENTATION}
+\index{JINTERFACE-IMPLEMENTATION}
+--- Function: \textbf{jinterface-implementation} [\textbf{java}] \textit{interface \&rest method-names-and-defs}
+
+\begin{adjustwidth}{5em}{5em}
+Creates and returns an implementation of a Java interface with
+   methods calling Lisp closures as given in METHOD-NAMES-AND-DEFS.
+
+   INTERFACE is either a Java interface or a string naming one.
+
+   METHOD-NAMES-AND-DEFS is an alternating list of method names
+   (strings) and method definitions (closures).
+
+   For missing methods, a dummy implementation is provided that
+   returns nothing or null depending on whether the return type is
+   void or not. This is for convenience only, and a warning is issued
+   for each undefined method.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:DUMP-CLASSPATH}
+\index{DUMP-CLASSPATH}
+--- Function: \textbf{dump-classpath} [\textbf{java}] \textit{\&optional classloader}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:ENSURE-JAVA-OBJECT}
+\index{ENSURE-JAVA-OBJECT}
+--- Function: \textbf{ensure-java-object} [\textbf{java}] \textit{obj}
+
+\begin{adjustwidth}{5em}{5em}
+Ensures OBJ is wrapped in a JAVA-OBJECT, wrapping it if necessary.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JMETHOD-RETURN-TYPE}
+\index{JMETHOD-RETURN-TYPE}
+--- Function: \textbf{jmethod-return-type} [\textbf{java}] \textit{method}
+
+\begin{adjustwidth}{5em}{5em}
+Returns the result type (Java class) of the METHOD
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JFIELD-NAME}
+\index{JFIELD-NAME}
+--- Function: \textbf{jfield-name} [\textbf{java}] \textit{field}
+
+\begin{adjustwidth}{5em}{5em}
+Returns the name of FIELD as a Lisp string
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:*JAVA-OBJECT-TO-STRING-LENGTH*}
+\index{*JAVA-OBJECT-TO-STRING-LENGTH*}
+--- Variable: \textbf{*java-object-to-string-length*} [\textbf{java}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+Length to truncate toString() PRINT-OBJECT output for an otherwise unspecialized JAVA-OBJECT.  Can be set to NIL to indicate no limit.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JRUN-EXCEPTION-PROTECTED}
+\index{JRUN-EXCEPTION-PROTECTED}
+--- Function: \textbf{jrun-exception-protected} [\textbf{java}] \textit{closure}
+
+\begin{adjustwidth}{5em}{5em}
+Invokes the function CLOSURE and returns the result.  Signals an error if stack or heap exhaustion occurs.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JINSTANCE-OF-P}
+\index{JINSTANCE-OF-P}
+--- Function: \textbf{jinstance-of-p} [\textbf{java}] \textit{obj class}
+
+\begin{adjustwidth}{5em}{5em}
+OBJ is an instance of CLASS (or one of its subclasses)
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JMETHOD-NAME}
+\index{JMETHOD-NAME}
+--- Function: \textbf{jmethod-name} [\textbf{java}] \textit{method}
+
+\begin{adjustwidth}{5em}{5em}
+Returns the name of METHOD as a Lisp string
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JSTATIC-RAW}
+\index{JSTATIC-RAW}
+--- Function: \textbf{jstatic-raw} [\textbf{java}] \textit{method class \&rest args}
+
+\begin{adjustwidth}{5em}{5em}
+Invokes the static method METHOD on class CLASS with ARGS. Does not attempt to coerce the arguments or result into a Lisp object.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JCLASS-OF}
+\index{JCLASS-OF}
+--- Function: \textbf{jclass-of} [\textbf{java}] \textit{object \&optional name}
+
+\begin{adjustwidth}{5em}{5em}
+Returns the name of the Java class of OBJECT. If the NAME argument is
+  supplied, verifies that OBJECT is an instance of the named class. The name
+  of the class or nil is always returned as a second value.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:GET-CURRENT-CLASSLOADER}
+\index{GET-CURRENT-CLASSLOADER}
+--- Function: \textbf{get-current-classloader} [\textbf{java}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+
+\paragraph{}
+\label{JAVA:JNEW-ARRAY-FROM-LIST}
+\index{JNEW-ARRAY-FROM-LIST}
+--- Function: \textbf{jnew-array-from-list} [\textbf{java}] \textit{element-type list}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JMETHOD}
+\index{JMETHOD}
+--- Function: \textbf{jmethod} [\textbf{java}] \textit{class-ref method-name \&rest parameter-class-refs}
+
+\begin{adjustwidth}{5em}{5em}
+Returns a reference to the Java method METHOD-NAME of CLASS-REF with the given PARAMETER-CLASS-REFS.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:GET-DEFAULT-CLASSLOADER}
+\index{GET-DEFAULT-CLASSLOADER}
+--- Function: \textbf{get-default-classloader} [\textbf{java}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JCLASS-METHODS}
+\index{JCLASS-METHODS}
+--- Function: \textbf{jclass-methods} [\textbf{java}] \textit{class \&key declared public}
+
+\begin{adjustwidth}{5em}{5em}
+Return a vector of all (or just the declared/public, if DECLARED/PUBLIC is true) methods of CLASS
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:REGISTER-JAVA-EXCEPTION}
+\index{REGISTER-JAVA-EXCEPTION}
+--- Function: \textbf{register-java-exception} [\textbf{java}] \textit{exception-name condition-symbol}
+
+\begin{adjustwidth}{5em}{5em}
+Registers the Java Throwable named by the symbol EXCEPTION-NAME as the condition designated by CONDITION-SYMBOL.  Returns T if successful, NIL if not.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JCLASS}
+\index{JCLASS}
+--- Function: \textbf{jclass} [\textbf{java}] \textit{name-or-class-ref \&optional class-loader}
+
+\begin{adjustwidth}{5em}{5em}
+Returns a reference to the Java class designated by NAME-OR-CLASS-REF. If the CLASS-LOADER parameter is passed, the class is resolved with respect to the given ClassLoader.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JPROPERTY-VALUE}
+\index{JPROPERTY-VALUE}
+--- Function: \textbf{jproperty-value} [\textbf{java}] \textit{obj prop}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JFIELD-TYPE}
+\index{JFIELD-TYPE}
+--- Function: \textbf{jfield-type} [\textbf{java}] \textit{field}
+
+\begin{adjustwidth}{5em}{5em}
+Returns the type (Java class) of FIELD
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JNEW-RUNTIME-CLASS}
+\index{JNEW-RUNTIME-CLASS}
+--- Function: \textbf{jnew-runtime-class} [\textbf{java}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JCLASS-CONSTRUCTORS}
+\index{JCLASS-CONSTRUCTORS}
+--- Function: \textbf{jclass-constructors} [\textbf{java}] \textit{class}
+
+\begin{adjustwidth}{5em}{5em}
+Returns a vector of constructors for CLASS
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JSTATIC}
+\index{JSTATIC}
+--- Function: \textbf{jstatic} [\textbf{java}] \textit{method class \&rest args}
+
+\begin{adjustwidth}{5em}{5em}
+Invokes the static method METHOD on class CLASS with ARGS.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JMETHOD-PARAMS}
+\index{JMETHOD-PARAMS}
+--- Function: \textbf{jmethod-params} [\textbf{java}] \textit{method}
+
+\begin{adjustwidth}{5em}{5em}
+Returns a vector of parameter types (Java classes) for METHOD
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JREGISTER-HANDLER}
+\index{JREGISTER-HANDLER}
+--- Function: \textbf{jregister-handler} [\textbf{java}] \textit{object event handler \&key data count}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JCLASS-SUPERCLASS}
+\index{JCLASS-SUPERCLASS}
+--- Function: \textbf{jclass-superclass} [\textbf{java}] \textit{class}
+
+\begin{adjustwidth}{5em}{5em}
+Returns the superclass of CLASS, or NIL if it hasn't got one
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JAVA-OBJECT-P}
+\index{JAVA-OBJECT-P}
+--- Function: \textbf{java-object-p} [\textbf{java}] \textit{object}
+
+\begin{adjustwidth}{5em}{5em}
+Returns T if OBJECT is a JAVA-OBJECT.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:UNREGISTER-JAVA-EXCEPTION}
+\index{UNREGISTER-JAVA-EXCEPTION}
+--- Function: \textbf{unregister-java-exception} [\textbf{java}] \textit{exception-name}
+
+\begin{adjustwidth}{5em}{5em}
+Unregisters the Java Throwable EXCEPTION-NAME previously registered by REGISTER-JAVA-EXCEPTION.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JNEW}
+\index{JNEW}
+--- Function: \textbf{jnew} [\textbf{java}] \textit{constructor \&rest args}
+
+\begin{adjustwidth}{5em}{5em}
+Invokes the Java constructor CONSTRUCTOR with the arguments ARGS.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JRUNTIME-CLASS-EXISTS-P}
+\index{JRUNTIME-CLASS-EXISTS-P}
+--- Function: \textbf{jruntime-class-exists-p} [\textbf{java}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JARRAY-COMPONENT-TYPE}
+\index{JARRAY-COMPONENT-TYPE}
+--- Function: \textbf{jarray-component-type} [\textbf{java}] \textit{atype}
+
+\begin{adjustwidth}{5em}{5em}
+Returns the component type of the array type ATYPE
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:ADD-TO-CLASSPATH}
+\index{ADD-TO-CLASSPATH}
+--- Generic Function: \textbf{add-to-classpath} [\textbf{java}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JOBJECT-LISP-VALUE}
+\index{JOBJECT-LISP-VALUE}
+--- Function: \textbf{jobject-lisp-value} [\textbf{java}] \textit{java-object}
+
+\begin{adjustwidth}{5em}{5em}
+Attempts to coerce JAVA-OBJECT into a Lisp object.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JCLASS-NAME}
+\index{JCLASS-NAME}
+--- Function: \textbf{jclass-name} [\textbf{java}] \textit{class-ref \&optional name}
+
+\begin{adjustwidth}{5em}{5em}
+When called with one argument, returns the name of the Java class
+  designated by CLASS-REF. When called with two arguments, tests
+  whether CLASS-REF matches NAME.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JMEMBER-PUBLIC-P}
+\index{JMEMBER-PUBLIC-P}
+--- Function: \textbf{jmember-public-p} [\textbf{java}] \textit{member}
+
+\begin{adjustwidth}{5em}{5em}
+MEMBER is a public member of its declaring class
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:+NULL+}
+\index{+NULL+}
+--- Variable: \textbf{+null+} [\textbf{java}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+The JVM null object reference.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:ENSURE-JAVA-CLASS}
+\index{ENSURE-JAVA-CLASS}
+--- Function: \textbf{ensure-java-class} [\textbf{java}] \textit{jclass}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JAVA-CLASS}
+\index{JAVA-CLASS}
+--- Class: \textbf{java-class} [\textbf{java}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JMETHOD-LET}
+\index{JMETHOD-LET}
+--- Macro: \textbf{jmethod-let} [\textbf{java}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JCLASS-ARRAY-P}
+\index{JCLASS-ARRAY-P}
+--- Function: \textbf{jclass-array-p} [\textbf{java}] \textit{class}
+
+\begin{adjustwidth}{5em}{5em}
+Returns T if CLASS is an array class
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JCALL}
+\index{JCALL}
+--- Function: \textbf{jcall} [\textbf{java}] \textit{method-ref instance \&rest args}
+
+\begin{adjustwidth}{5em}{5em}
+Invokes the Java method METHOD-REF on INSTANCE with arguments ARGS, coercing the result into a Lisp object, if possible.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JARRAY-REF-RAW}
+\index{JARRAY-REF-RAW}
+--- Function: \textbf{jarray-ref-raw} [\textbf{java}] \textit{java-array \&rest indices}
+
+\begin{adjustwidth}{5em}{5em}
+Dereference the Java array JAVA-ARRAY using the given INDICIES. Does not attempt to coerce the result into a Lisp object.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JEQUAL}
+\index{JEQUAL}
+--- Function: \textbf{jequal} [\textbf{java}] \textit{obj1 obj2}
+
+\begin{adjustwidth}{5em}{5em}
+Compares obj1 with obj2 using java.lang.Object.equals()
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JNULL-REF-P}
+\index{JNULL-REF-P}
+--- Function: \textbf{jnull-ref-p} [\textbf{java}] \textit{object}
+
+\begin{adjustwidth}{5em}{5em}
+Returns a non-NIL value when the JAVA-OBJECT `object` is `null`,
+or signals a TYPE-ERROR condition if the object isn't of
+the right type.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JNEW-ARRAY}
+\index{JNEW-ARRAY}
+--- Function: \textbf{jnew-array} [\textbf{java}] \textit{element-type \&rest dimensions}
+
+\begin{adjustwidth}{5em}{5em}
+Creates a new Java array of type ELEMENT-TYPE, with the given DIMENSIONS.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:CHAIN}
+\index{CHAIN}
+--- Macro: \textbf{chain} [\textbf{java}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JFIELD}
+\index{JFIELD}
+--- Function: \textbf{jfield} [\textbf{java}] \textit{class-ref-or-field field-or-instance \&optional instance value}
+
+\begin{adjustwidth}{5em}{5em}
+Retrieves or modifies a field in a Java class or instance.
+
+Supported argument patterns:
+
+   Case 1: class-ref  field-name:
+      Retrieves the value of a static field.
+
+   Case 2: class-ref  field-name  instance-ref:
+      Retrieves the value of a class field of the instance.
+
+   Case 3: class-ref  field-name  primitive-value:
+      Stores a primitive-value in a static field.
+
+   Case 4: class-ref  field-name  instance-ref  value:
+      Stores value in a class field of the instance.
+
+   Case 5: class-ref  field-name  nil  value:
+      Stores value in a static field (when value may be
+      confused with an instance-ref).
+
+   Case 6: field-name  instance:
+      Retrieves the value of a field of the instance. The
+      class is derived from the instance.
+
+   Case 7: field-name  instance  value:
+      Stores value in a field of the instance. The class is
+      derived from the instance.
+
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JAVA-OBJECT}
+\index{JAVA-OBJECT}
+--- Class: \textbf{java-object} [\textbf{java}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JCLASS-INTERFACES}
+\index{JCLASS-INTERFACES}
+--- Function: \textbf{jclass-interfaces} [\textbf{java}] \textit{class}
+
+\begin{adjustwidth}{5em}{5em}
+Returns the vector of interfaces of CLASS
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:+TRUE+}
+\index{+TRUE+}
+--- Variable: \textbf{+true+} [\textbf{java}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+The JVM primitive value for boolean true.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JMAKE-INVOCATION-HANDLER}
+\index{JMAKE-INVOCATION-HANDLER}
+--- Function: \textbf{jmake-invocation-handler} [\textbf{java}] \textit{function}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JRESOLVE-METHOD}
+\index{JRESOLVE-METHOD}
+--- Function: \textbf{jresolve-method} [\textbf{java}] \textit{method-name instance \&rest args}
+
+\begin{adjustwidth}{5em}{5em}
+Finds the most specific Java method METHOD-NAME on INSTANCE applicable to arguments ARGS. Returns NIL if no suitable method is found. The algorithm used for resolution is the same used by JCALL when it is called with a string as the first parameter (METHOD-REF).
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:MAKE-CLASSLOADER}
+\index{MAKE-CLASSLOADER}
+--- Function: \textbf{make-classloader} [\textbf{java}] \textit{\&optional parent}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JMEMBER-PROTECTED-P}
+\index{JMEMBER-PROTECTED-P}
+--- Function: \textbf{jmember-protected-p} [\textbf{java}] \textit{member}
+
+\begin{adjustwidth}{5em}{5em}
+MEMBER is a protected member of its declaring class
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:MAKE-IMMEDIATE-OBJECT}
+\index{MAKE-IMMEDIATE-OBJECT}
+--- Function: \textbf{make-immediate-object} [\textbf{java}] \textit{object \&optional type}
+
+\begin{adjustwidth}{5em}{5em}
+Attempts to coerce a given Lisp object into a java-object of the
+given type.  If type is not provided, works as jobject-lisp-value.
+Currently, type may be :BOOLEAN, treating the object as a truth value,
+or :REF, which returns Java null if NIL is provided.
+
+Deprecated.  Please use JAVA:+NULL+, JAVA:+TRUE+, and JAVA:+FALSE+ for
+constructing wrapped primitive types, JAVA:JOBJECT-LISP-VALUE for converting a
+JAVA:JAVA-OBJECT to a Lisp value, or JAVA:JNULL-REF-P to distinguish a wrapped
+null JAVA-OBJECT from NIL.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JNEW-ARRAY-FROM-ARRAY}
+\index{JNEW-ARRAY-FROM-ARRAY}
+--- Function: \textbf{jnew-array-from-array} [\textbf{java}] \textit{element-type array}
+
+\begin{adjustwidth}{5em}{5em}
+Returns a new Java array with base type ELEMENT-TYPE (a string or a class-ref)
+   initialized from ARRAY
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JOBJECT-CLASS}
+\index{JOBJECT-CLASS}
+--- Function: \textbf{jobject-class} [\textbf{java}] \textit{obj}
+
+\begin{adjustwidth}{5em}{5em}
+Returns the Java class that OBJ belongs to
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JREDEFINE-METHOD}
+\index{JREDEFINE-METHOD}
+--- Function: \textbf{jredefine-method} [\textbf{java}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JCLASS-FIELDS}
+\index{JCLASS-FIELDS}
+--- Function: \textbf{jclass-fields} [\textbf{java}] \textit{class \&key declared public}
+
+\begin{adjustwidth}{5em}{5em}
+Returns a vector of all (or just the declared/public, if DECLARED/PUBLIC is true) fields of CLASS
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JAVA-EXCEPTION}
+\index{JAVA-EXCEPTION}
+--- Class: \textbf{java-exception} [\textbf{java}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:DESCRIBE-JAVA-OBJECT}
+\index{DESCRIBE-JAVA-OBJECT}
+--- Function: \textbf{describe-java-object} [\textbf{java}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JFIELD-RAW}
+\index{JFIELD-RAW}
+--- Function: \textbf{jfield-raw} [\textbf{java}] \textit{class-ref-or-field field-or-instance \&optional instance value}
+
+\begin{adjustwidth}{5em}{5em}
+Retrieves or modifies a field in a Java class or instance. Does not
+attempt to coerce its value or the result into a Lisp object.
+
+Supported argument patterns:
+
+   Case 1: class-ref  field-name:
+      Retrieves the value of a static field.
+
+   Case 2: class-ref  field-name  instance-ref:
+      Retrieves the value of a class field of the instance.
+
+   Case 3: class-ref  field-name  primitive-value:
+      Stores a primitive-value in a static field.
+
+   Case 4: class-ref  field-name  instance-ref  value:
+      Stores value in a class field of the instance.
+
+   Case 5: class-ref  field-name  nil  value:
+      Stores value in a static field (when value may be
+      confused with an instance-ref).
+
+   Case 6: field-name  instance:
+      Retrieves the value of a field of the instance. The
+      class is derived from the instance.
+
+   Case 7: field-name  instance  value:
+      Stores value in a field of the instance. The class is
+      derived from the instance.
+
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JCONSTRUCTOR-PARAMS}
+\index{JCONSTRUCTOR-PARAMS}
+--- Function: \textbf{jconstructor-params} [\textbf{java}] \textit{constructor}
+
+\begin{adjustwidth}{5em}{5em}
+Returns a vector of parameter types (Java classes) for CONSTRUCTOR
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JMEMBER-STATIC-P}
+\index{JMEMBER-STATIC-P}
+--- Function: \textbf{jmember-static-p} [\textbf{java}] \textit{member}
+
+\begin{adjustwidth}{5em}{5em}
+MEMBER is a static member of its declaring class
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JCOERCE}
+\index{JCOERCE}
+--- Function: \textbf{jcoerce} [\textbf{java}] \textit{object intended-class}
+
+\begin{adjustwidth}{5em}{5em}
+Attempts to coerce OBJECT into a JavaObject of class INTENDED-CLASS.  Raises a TYPE-ERROR if no conversion is possible.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JCONSTRUCTOR}
+\index{JCONSTRUCTOR}
+--- Function: \textbf{jconstructor} [\textbf{java}] \textit{class-ref \&rest parameter-class-refs}
+
+\begin{adjustwidth}{5em}{5em}
+Returns a reference to the Java constructor of CLASS-REF with the given PARAMETER-CLASS-REFS.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JARRAY-SET}
+\index{JARRAY-SET}
+--- Function: \textbf{jarray-set} [\textbf{java}] \textit{java-array new-value \&rest indices}
+
+\begin{adjustwidth}{5em}{5em}
+Stores NEW-VALUE at the given index in JAVA-ARRAY.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JARRAY-LENGTH}
+\index{JARRAY-LENGTH}
+--- Function: \textbf{jarray-length} [\textbf{java}] \textit{java-array}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JARRAY-REF}
+\index{JARRAY-REF}
+--- Function: \textbf{jarray-ref} [\textbf{java}] \textit{java-array \&rest indices}
+
+\begin{adjustwidth}{5em}{5em}
+Dereferences the Java array JAVA-ARRAY using the given INDICIES, coercing the result into a Lisp object, if possible.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JCLASS-FIELD}
+\index{JCLASS-FIELD}
+--- Function: \textbf{jclass-field} [\textbf{java}] \textit{class field-name}
+
+\begin{adjustwidth}{5em}{5em}
+Returns the field named FIELD-NAME of CLASS
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JMAKE-PROXY}
+\index{JMAKE-PROXY}
+--- Generic Function: \textbf{jmake-proxy} [\textbf{java}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JCALL-RAW}
+\index{JCALL-RAW}
+--- Function: \textbf{jcall-raw} [\textbf{java}] \textit{method-ref instance \&rest args}
+
+\begin{adjustwidth}{5em}{5em}
+Invokes the Java method METHOD-REF on INSTANCE with arguments ARGS. Does not attempt to coerce the result into a Lisp object.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:+FALSE+}
+\index{+FALSE+}
+--- Variable: \textbf{+false+} [\textbf{java}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+The JVM primitive value for boolean false.
+\end{adjustwidth}
+
+\paragraph{}
+\label{JAVA:JCLASS-INTERFACE-P}
+\index{JCLASS-INTERFACE-P}
+--- Function: \textbf{jclass-interface-p} [\textbf{java}] \textit{class}
+
+\begin{adjustwidth}{5em}{5em}
+Returns T if CLASS is an interface
+\end{adjustwidth}
+

Modified: branches/1.0.x/abcl/doc/manual/threads.tex
==============================================================================
--- branches/1.0.x/abcl/doc/manual/threads.tex	Sat Jan  7 15:09:30 2012	(r13727)
+++ branches/1.0.x/abcl/doc/manual/threads.tex	Mon Jan  9 00:38:52 2012	(r13728)
@@ -1,52 +1,235 @@
-\begin{verbatim}
-THREADS:CURRENT-THREAD
-  Function: (not documented)
-THREADS:DESTROY-THREAD
-  Function: (not documented)
-THREADS:GET-MUTEX
-  Function: Acquires a lock on the `mutex'.
-THREADS:INTERRUPT-THREAD
-  Function: Interrupts THREAD and forces it to apply FUNCTION to ARGS.
-THREADS:MAILBOX-EMPTY-P
-  Function: Returns non-NIL if the mailbox can be read from, NIL otherwise.
-THREADS:MAILBOX-PEEK
-  Function: Returns two values. The second returns non-NIL when the mailbox
-THREADS:MAILBOX-READ
-  Function: Blocks on the mailbox until an item is available for reading.
-THREADS:MAILBOX-SEND
-  Function: Sends an item into the mailbox, notifying 1 waiter
-THREADS:MAKE-MAILBOX
-  Function: (not documented)
-THREADS:MAKE-MUTEX
-  Function: (not documented)
-THREADS:MAKE-THREAD
-  Function: (not documented)
-THREADS:MAKE-THREAD-LOCK
-  Function: Returns an object to be used with the `with-thread-lock' macro.
-THREADS:MAPCAR-THREADS
-  Function: (not documented)
-THREADS:OBJECT-NOTIFY
-  Function: (not documented)
-THREADS:OBJECT-NOTIFY-ALL
-  Function: (not documented)
-THREADS:OBJECT-WAIT
-  Function: (not documented)
-THREADS:RELEASE-MUTEX
-  Function: Releases a lock on the `mutex'.
-THREADS:SYNCHRONIZED-ON
-  Function: (not documented)
-THREADS:THREAD
-  Class: (not documented)
-THREADS:THREAD-ALIVE-P
-  Function: Boolean predicate whether THREAD is alive.
-THREADS:THREAD-JOIN
-  Function: Waits for thread to finish.
-THREADS:THREAD-NAME
-  Function: (not documented)
-THREADS:THREADP
-  Function: (not documented)
-THREADS:WITH-MUTEX
-  Function: (not documented)
-THREADS:WITH-THREAD-LOCK
-  Function: (not documented)
-\end{verbatim}
+\subsection{Exported Symbols from the THREADS package}
+
+\paragraph{}
+\label{THREADS:MAILBOX-EMPTY-P}
+\index{MAILBOX-EMPTY-P}
+--- Function: \textbf{mailbox-empty-p} [\textbf{threads}] \textit{mailbox}
+
+\begin{adjustwidth}{5em}{5em}
+Returns non-NIL if the mailbox can be read from, NIL otherwise.
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:THREADP}
+\index{THREADP}
+--- Function: \textbf{threadp} [\textbf{threads}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:DESTROY-THREAD}
+\index{DESTROY-THREAD}
+--- Function: \textbf{destroy-thread} [\textbf{threads}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:WITH-MUTEX}
+\index{WITH-MUTEX}
+--- Macro: \textbf{with-mutex} [\textbf{threads}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:THREAD-JOIN}
+\index{THREAD-JOIN}
+--- Function: \textbf{thread-join} [\textbf{threads}] \textit{thread}
+
+\begin{adjustwidth}{5em}{5em}
+Waits for thread to finish.
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:RELEASE-MUTEX}
+\index{RELEASE-MUTEX}
+--- Function: \textbf{release-mutex} [\textbf{threads}] \textit{mutex}
+
+\begin{adjustwidth}{5em}{5em}
+Releases a lock on the `mutex'.
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:OBJECT-WAIT}
+\index{OBJECT-WAIT}
+--- Function: \textbf{object-wait} [\textbf{threads}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:MAKE-THREAD}
+\index{MAKE-THREAD}
+--- Function: \textbf{make-thread} [\textbf{threads}] \textit{function \&key name}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:MAKE-THREAD-LOCK}
+\index{MAKE-THREAD-LOCK}
+--- Function: \textbf{make-thread-lock} [\textbf{threads}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+Returns an object to be used with the `with-thread-lock' macro.
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:OBJECT-NOTIFY-ALL}
+\index{OBJECT-NOTIFY-ALL}
+--- Function: \textbf{object-notify-all} [\textbf{threads}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:MAKE-MAILBOX}
+\index{MAKE-MAILBOX}
+--- Function: \textbf{make-mailbox} [\textbf{threads}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:OBJECT-NOTIFY}
+\index{OBJECT-NOTIFY}
+--- Function: \textbf{object-notify} [\textbf{threads}] \textit{object}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:GET-MUTEX}
+\index{GET-MUTEX}
+--- Function: \textbf{get-mutex} [\textbf{threads}] \textit{mutex}
+
+\begin{adjustwidth}{5em}{5em}
+Acquires a lock on the `mutex'.
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:MAILBOX-PEEK}
+\index{MAILBOX-PEEK}
+--- Function: \textbf{mailbox-peek} [\textbf{threads}] \textit{mailbox}
+
+\begin{adjustwidth}{5em}{5em}
+Returns two values. The second returns non-NIL when the mailbox
+is empty. The first is the next item to be read from the mailbox
+if the first is NIL.
+
+Note that due to multi-threading, the first value returned upon
+peek, may be different from the one returned upon next read in the
+calling thread.
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:THREAD-ALIVE-P}
+\index{THREAD-ALIVE-P}
+--- Function: \textbf{thread-alive-p} [\textbf{threads}] \textit{thread}
+
+\begin{adjustwidth}{5em}{5em}
+Boolean predicate whether THREAD is alive.
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:MAILBOX-READ}
+\index{MAILBOX-READ}
+--- Function: \textbf{mailbox-read} [\textbf{threads}] \textit{mailbox}
+
+\begin{adjustwidth}{5em}{5em}
+Blocks on the mailbox until an item is available for reading.
+When an item is available, it is returned.
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:SYNCHRONIZED-ON}
+\index{SYNCHRONIZED-ON}
+--- NIL: \textbf{synchronized-on} [\textbf{threads}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:INTERRUPT-THREAD}
+\index{INTERRUPT-THREAD}
+--- Function: \textbf{interrupt-thread} [\textbf{threads}] \textit{thread function \&rest args}
+
+\begin{adjustwidth}{5em}{5em}
+Interrupts THREAD and forces it to apply FUNCTION to ARGS.
+When the function returns, the thread's original computation continues. If  multiple interrupts are queued for a thread, they are all run, but the order is not guaranteed.
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:MAKE-MUTEX}
+\index{MAKE-MUTEX}
+--- Function: \textbf{make-mutex} [\textbf{threads}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:THREAD}
+\index{THREAD}
+--- Class: \textbf{thread} [\textbf{threads}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:WITH-THREAD-LOCK}
+\index{WITH-THREAD-LOCK}
+--- Macro: \textbf{with-thread-lock} [\textbf{threads}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:MAILBOX-SEND}
+\index{MAILBOX-SEND}
+--- Function: \textbf{mailbox-send} [\textbf{threads}] \textit{mailbox item}
+
+\begin{adjustwidth}{5em}{5em}
+Sends an item into the mailbox, notifying 1 waiter
+to wake up for retrieval of that object.
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:THREAD-NAME}
+\index{THREAD-NAME}
+--- Function: \textbf{thread-name} [\textbf{threads}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:CURRENT-THREAD}
+\index{CURRENT-THREAD}
+--- Function: \textbf{current-thread} [\textbf{threads}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+
+\paragraph{}
+\label{THREADS:MAPCAR-THREADS}
+\index{MAPCAR-THREADS}
+--- Function: \textbf{mapcar-threads} [\textbf{threads}] \textit{}
+
+\begin{adjustwidth}{5em}{5em}
+NOT-DOCUMENTED
+\end{adjustwidth}
+




More information about the armedbear-cvs mailing list