[armedbear-cvs] r13338 - trunk/abcl/doc/manual

mevenson at common-lisp.net mevenson at common-lisp.net
Fri Jun 17 07:01:11 UTC 2011


Author: mevenson
Date: Fri Jun 17 00:01:10 2011
New Revision: 13338

Log:
Add installation instructions.

HEADS-UP:  This file is guaranteed not to compile in any LaTeX system
without further substantial work, as I am defining the DSL I want for
doumentation as I go, trying out different syntaxes.

Separate content/presentation rules via LaTeX include directives.
Properly use the as yet unwritten \code{} markup.

The 'java.tex', 'threads.tex', and 'extensions.tex' are placeholders
until we get the automatic documentation generator working.

Added:
   trunk/abcl/doc/manual/extensions.tex
   trunk/abcl/doc/manual/index.sty
   trunk/abcl/doc/manual/java.tex
   trunk/abcl/doc/manual/threads.tex
Modified:
   trunk/abcl/doc/manual/abcl.tex

Modified: trunk/abcl/doc/manual/abcl.tex
==============================================================================
--- trunk/abcl/doc/manual/abcl.tex	Thu Jun 16 08:02:11 2011	(r13337)
+++ trunk/abcl/doc/manual/abcl.tex	Fri Jun 17 00:01:10 2011	(r13338)
@@ -1,21 +1,10 @@
-% TODO
-%   1.  Create mechanism for swigging DocString and Lisp docs into
-%       sections.
-
-
-\documentclass[10pt]{article}
+% http://en.wikibooks.org/wiki/LaTeX/
 
-\usepackage{color,hyperref}
-\definecolor{darkblue}{rgb}{0.0,0.0,0.3}
-\hypersetup{colorlinks,breaklinks,
-            linkcolor=darkblue,urlcolor=darkblue,
-            anchorcolor=darkblue,citecolor=darkblue}
-
-\usepackage{a4wide}
+\include{index.sty}
 
 \begin{document}
 \title{A Manual for Armed Bear Common Lisp}
-\date{June 16, 2011}
+\date{June 17, 2011}
 \author{Mark Evenson, Erik Huelsmann, Alessio Stallo, Ville Voutilainen}
 
 \section{Introduction}
@@ -25,12 +14,141 @@
 
 \section{Obtaining}
 
+\subsection{Source Repositories}
+
+\begin[shell]{code} 
+  svn co http://svn.common-lisp.net/armedbear/trunk abcl
+\end{code}
+
 \subsection{Requirements}
 
 java-1.5.xx, java-1.6.0_10+ recommended.
 
 \subsection{Building from Source}
-% TODO repeat install 
+
+There are three ways to build ABCL from the source release with the
+preferred (and most tested way) is to being to use the Ant build tool:
+
+\begin{itemize}
+
+\item Use the Ant build tool for Java environments.
+
+\item Use the Netbeans 6.x IDE to open ABCL as a project.
+
+\item Bootstrap ABCL using a Common Lisp implementation. Supported
+  implementations for this process: SBCL, CMUCL, OpenMCL, Allegro
+  CL, LispWorks or CLISP.
+\end{itemize}
+
+In all cases you need a Java 5 or later JDK (JDK 1.5 and 1.6 have been
+tested).  Just the JRE isn't enough, as you need the Java compiler
+('javac') to compile the Java source of the ABCL implementation.
+
+Note that when deploying ABCL having JDK isn't a requirement for the
+installation site, just the equivalent JRE, as ABCL compiles directly
+to byte code, avoiding the need for the 'javac' compiler in deployment
+environments.
+
+
+\subsubsection{Using Ant}
+
+Download a binary distribution [Ant version 1.7.1 or greater][1].
+Unpack the files somewhere convenient, ensuring that the 'ant' (or
+'ant.bat' under Windows) executable is in your path and executable.
+
+[1]: http://ant.apache.org/bindownload.cgi
+
+Then simply executing
+
+\begin[shell]{code}
+       unix$ ant
+\end{code}
+
+or
+
+\begin[shell]{code}
+    dos> ant.bat
+\end{code}
+
+from the directory containing this README file will create an
+executable wrapper ('abcl' under UNIX, 'abcl.bat' under Windows).  Use
+this wrapper to start ABCL.
+
+
+\subsubsection{Using NetBeans}
+
+Obtain and install the [Netbeans IDE][2]. One should be able to open
+the ABCL directory as a project in the Netbeans 6.x application,
+whereupon the usual build, run, and debug targets as invoked in the
+GUI are available.
+
+[2]: http://netbeans.org/downloads/
+
+
+\subsubsection{Building from Lisp}
+
+
+Building from a Lisp is the most venerable and untested way of
+building ABCL.  It produces a "non-standard" version of the
+distribution that doesn't share build instructions with the previous
+two methods, but it still may be of interest to those who absolutely
+don't want to know anything about Java.
+
+First, copy the file 'customizations.lisp.in' to 'customization.lisp',
+in the directory containing this README file, editing to suit your
+situation, paying attention to the comments in the file.  The critical
+step is to have Lisp special variable '*JDK*' point to the root of the
+Java Development Kit.  Underneath the directory referenced by the
+value of '*JDK*' there should be an exectuable Java compiler in
+'bin/javac' ('bin/java.exe' under Windows).
+
+Then, one may either use the 'build-from-lisp.sh' shell script or load
+the necessary files into your Lisp image by hand.
+
+\paragraph{Using the 'build-from-lisp.sh' script}
+
+Under UNIX-like systems, you may simply invoke the
+'build-from-lisp.sh' script as './build-from-lisp.sh
+<lisp-of-choice>', e.g.
+
+\begin[shell]{code}
+    unix$ ./build-from-lisp.sh sbcl
+\end{code}
+
+After a successful build, you may use \file{abcl} (\file{abcl.bat} on
+Windows) to start ABCL.  Note that this wrappers contain absolute
+paths, so you'll need to edit them if you move things around after the
+build.
+
+If you're developing on ABCL, you may want to use
+
+\begin[shell]{code}
+    unix$ ./build-from-lisp.sh <implementation> --clean=nil
+\end{code}
+
+to not do a full rebuild.
+
+In case of failure in the javac stage, you might try this:
+
+\begin[shell]{code}
+    unix$ ./build-from-lisp.sh <implementation> --full=t --clean=t --batch=nil
+\end{code}
+
+This invokes javac separately for each .java file, which avoids running
+into limitations on command line length (but is a lot slower).
+
+\subsubsubsection{Building from another Lisp by hand}
+
+There is also an ASDF definition in 'abcl.asd' for the BUILD-ABCL
+which can be used to load the necessary Lisp definitions, after which
+
+\begin[lisp]{code}
+    CL-USER> (build-abcl:build-abcl :clean t :full t)
+\end{code}
+
+will build ABCL.  If ASDF isn't present, simply LOAD the
+'customizations.lisp' and 'build-abcl.lisp' files to achieve the same
+effect as loading the ASDF definition.
 
 \subsection{Contributing}
 
@@ -49,13 +167,13 @@
 \begin{itemize}
 \item Java values are accessible as objects of type JAVA:JAVA-OBJECT.
 \item The Java FFI presents a Lisp package (JAVA) with many useful
-  symbols for manipulating the artifacts of executation on the JVM,
-  including creation of new objects (JAVA:JNEW, JAVA:JMETHOD), the
-  introspection of values (JAVA:JFIELD), the execution of methods
-  (JAVA:JCALL, JAVA:JCALL-RAW, JAVA:JSTATIC)
-\item The JSS package (JSS) in contrib introduces a convenient macro
-  syntax (JSS:SHARPSIGN_HASH_DOUBLQUOTE_MACRO) for accessing Java
-  methods, and additional convenience funtions.
+  symbols for manipulating the artifacts of expectation on the JVM,
+  including creation of new objects \ref{JAVA:JNEW}, \ref{JAVA:JMETHOD}), the
+  introspection of values \ref{JAVA:JFIELD}, the execution of methods
+  (\ref{JAVA:JCALL}, \ref{JAVA:JCALL-RAW}, \ref{JAVA:JSTATIC})
+\item The JSS package (\ref{JSS}) in contrib introduces a convenient macro
+  syntax \ref{JSS:SHARPSIGN_DOUBLEQUOTE_MACRO} for accessing Java
+  methods, and additional convenience functions.
 \item Java classes and libraries may be dynamically added to the
   classpath at runtime (JAVA:ADD-TO-CLASSPATH).
 \end{itemize}
@@ -66,12 +184,12 @@
 so what is documented here is subject to change.  
 
 \begin{itemize}
-\item All Lisp values are descendents of LispObject.java
-\item Lisp symbols are accessible via either directly referening the
+\item All Lisp values are descendants of LispObject.java
+\item Lisp symbols are accessible via either directly referencing the
   Symbol.java instance or by dynamically introspecting the
   corresponding Package.java instance.
-\item The Lisp dynamic envrionment may be saved via
-  LispThread.bindSpecial(BINDING) and restored via
+\item The Lisp dynamic environment may be saved via
+  \code{LispThread.bindSpecial(BINDING)} and restored via
   LispThread.resetSpecialBindings(mark).
 \item Functions may be executed by invocation of the
   Function.execute(args [...]) 
@@ -79,55 +197,61 @@
 
 \subsubsection{Lisp FFI}
 
-FFI stands for "Foreign Function Interface", which is the way the
-contemporary Lisp world refers to methods of "calling out" from Lisp
-into "foreign" langauges and envrionments.  This document describes
-the various ways that one interacts with Lisp world of Abcl from Java,
-considering the hosted Lisp as the "Foreign Function" that needs to be
-"Interfaced".
-
+FFI stands for "Foreign Function Interface" which is the phase which
+the contemporary Lisp world refers to methods of "calling out" from
+Lisp into "foreign" languages and environments.  This document
+describes the various ways that one interacts with Lisp world of ABCL
+from Java, considering the hosted Lisp as the "Foreign Function" that
+needs to be "Interfaced".
 
 \subsubsubsection{Calling Lisp from Java}
 
 Note: As the entire ABCL Lisp system resides in the org.armedbear.lisp
 package the following code snippets do not show the relevant import
-statements in the interest of brevity.
+statements in the interest of brevity.  An example of the import
+statement would be
+
+\begin[java]{code}
+  import org.armedbear.lisp.*;
+\end{document}
+
+to potentially import all the JVM symbol from the `org.armedbear.lisp'
+namespace.
 
 Per JVM, there can only ever be a single Lisp interpreter.  This is
 started by calling the static method `Interpreter.createInstance()`.
 
-\begin{code}{java}
-Interpreter interpreter = Interpreter.createInstance();
+\begin[java]{code}
+  Interpreter interpreter = Interpreter.createInstance();
 \end{code}
 
 If this method has already been invoked in the lifetime of the current
 Java process it will return null, so if you are writing Java whose
-lifecycle is a bit out of your control (like in a Java servlet), a
+life-cycle is a bit out of your control (like in a Java servlet), a
 safer invocation pattern might be:
 
-\begin{code}{java}
-Interpreter interpreter = Interpreter.getInstance();
-if (interpreter == null) {
-  interpreter = Interpreter.createInstance();
-}
+\begin[java]{code}
+  Interpreter interpreter = Interpreter.getInstance();
+  if (interpreter == null) {
+    interpreter = Interpreter.createInstance();
+  }
 \end{code}
 
 
 
-The Lisp `EVAL` primitive may be simply passed strings for evaluation,
+The Lisp \code{eval} primitive may be simply passed strings for evaluation,
 as follows
 
-\begin{code}{java}   
-String line = "(load \"file.lisp\")";
-LispObject result = interpreter.eval(line);
+\begin[java]{code}
+  String line = "(load \"file.lisp\")";
+  LispObject result = interpreter.eval(line);
 \end{code}
 
-
 Notice that all possible return values from an arbitrary Lisp
 computation are collapsed into a single return value.  Doing useful
 further computation on the `LispObject` depends on knowing what the
 result of the computation might be, usually involves some amount
-of instanceof introspection, and forms a whole topic to itself
+of \code{instanceof} introspection, and forms a whole topic to itself
 (c.f. [Introspecting a LispObject](#introspecting)).  
 
 Using `EVAL` involves the Lisp interpreter.  Lisp functions may be
@@ -136,7 +260,7 @@
 symbol, and then invokes the `execute()` method with the desired
 parameters.
 
-\begin{code}{java}   
+\begin[java]{code}
     interpreter.eval("(defun foo (msg) (format nil \"You told me '~A'~%\" msg))");
     Package pkg = Packages.findPackage("CL-USER");
     Symbol foo = pkg.findAccessibleSymbol("FOO"); 
@@ -152,7 +276,7 @@
 definition in the ABCL source, we can invoke the symbol directly.  To
 tell if a `LispObject` contains a reference to a symbol.
 
-\begin{code}{java}   
+\begin[java]{code}
     boolean nullp(LispObject object) {
       LispObject result = Primitives.NULL.execute(object);
       if (result == NIL) {
@@ -160,21 +284,21 @@
       }
       return true;
    }
-
 \end{code}
 
-/subsubsubsection{Introspecting a LispObject}
+\paragraph{Introspecting a LispObject}
+\label{topic:Introspecting a LispObject}
 
 We present various patterns for introspecting an an arbitrary
 `LispObject` which can represent the result of every Lisp evaluation
 into semantics that Java can meaniningfully deal with.
 
-/subsubsubsubsection{LispObject as \java{boolean}}
+\paragragh{LispObject as \code{boolean}}
 
 If the LispObject a generalized boolean values, one can use
 \java{getBooleanValue()} to convert to Java:
 
-\begin{code}{java}
+\begin[java]{code}
      LispObject object = Symbol.NIL;
      boolean javaValue = object.getBooleanValue();
 \end{code}
@@ -182,17 +306,17 @@
 Although since in Lisp, any value other than NIL means "true", the
 use of Java equality it quite a bit easier and more optimal:
 
-\begin{code}{java}
+\begin[java]{code}}
     boolean javaValue = (object != Symbol.NIL);
 \end{code}
 
-/subsubsubsubsection{LispObject is a list}
+\subsubsubsubsection{LispObject is a list}
 
 If LispObject is a list, it will have the type `Cons`.  One can then use
-the `copyToArray[]` to make things a bit more suitable for Java
+the \code{copyToArray} to make things a bit more suitable for Java
 iteration.
 
-\begin{code}{java}
+\begin[java]{code}
     LispObject result = interpreter.eval("'(1 2 4 5)");
     if (result instanceof Cons) {
       LispObject array[] = ((Cons)result.copyToArray());
@@ -203,7 +327,7 @@
 A more Lispy way to iterated down a list is to use the `cdr()` access
 function just as like one would traverse a list in Lisp:;
 
-\begin{code}{java}
+\begin[java]{code}
     LispObject result = interpreter.eval("'(1 2 4 5)");
     while (result != Symbol.NIL) {
       doSomething(result.car());
@@ -227,6 +351,8 @@
   \item Incomplete MOP 
     % TODO go through AMOP with symbols, starting by looking for
     % matching function signature.
+    % XXX is this really blocking ANSI conformance?  Answer: we have
+    % to start with such a ``census'' to determine what we have.
 \end{itemize}
 
 ABCL aims to be be a fully conforming ANSI Common Lisp
@@ -234,12 +360,24 @@
 
 \section{Extensions}
 
-% TODO document the EXTENSIONS package.
+The symbols in the EXTENSIONS package consititutes extensions to the
+ANSI standard that are potentially useful to the user.  They include
+functions for manipulating network sockets, running external programs,
+registering object finalizers, constructing reference weakly held by
+the garbage collector and others.
+
+\include{extensions}
 
 \section{Multithreading}
 
 % TODO document the THREADS package.
+\include{threads}
 
 \section{History}
 
 \end{document}
+
+% TODO
+%   1.  Create mechanism for swigging DocString and Lisp docs into
+%       sections.
+

Added: trunk/abcl/doc/manual/extensions.tex
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ trunk/abcl/doc/manual/extensions.tex	Fri Jun 17 00:01:10 2011	(r13338)
@@ -0,0 +1,248 @@
+%CADDR
+  Function: (not documented)
+%CADR
+  Function: (not documented)
+%CAR
+  Function: (not documented)
+%CDR
+  Function: (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
+  Function: (not documented)
+CANCEL-FINALIZATION
+  Function: (not documented)
+CHAR-TO-UTF8
+  Function: (not documented)
+CHARPOS
+  Function: (not documented)
+CLASSP
+  Function: (not documented)
+COLLECT
+  Function: (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: Predicate for whether PATHNAME references a JAR.
+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
+  Function: (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)

Added: trunk/abcl/doc/manual/index.sty
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ trunk/abcl/doc/manual/index.sty	Fri Jun 17 00:01:10 2011	(r13338)
@@ -0,0 +1,16 @@
+% preamble for the Manual
+%
+% The goal is to move all the ``technical'' looking stuff here,
+% leaving the manual itself as much as a pure content to be
+% comfortably read and modified with a text editor.
+
+\documentclass[10pt]{article}
+
+\usepackage{color,hyperref}
+\definecolor{darkblue}{rgb}{0.0,0.0,0.3}
+\hypersetup{colorlinks,breaklinks,
+            linkcolor=darkblue,urlcolor=darkblue,
+            anchorcolor=darkblue,citecolor=darkblue}
+
+\usepackage{a4wide}
+

Added: trunk/abcl/doc/manual/java.tex
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ trunk/abcl/doc/manual/java.tex	Fri Jun 17 00:01:10 2011	(r13338)
@@ -0,0 +1,50 @@
+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)

Added: trunk/abcl/doc/manual/threads.tex
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ trunk/abcl/doc/manual/threads.tex	Fri Jun 17 00:01:10 2011	(r13338)
@@ -0,0 +1,50 @@
+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)




More information about the armedbear-cvs mailing list