# Changeset 13648 for branches/1.0.x

Ignore:
Timestamp:
10/21/11 07:48:44 (10 years ago)
Message:

Manual editing, setting dates correctly.

File:
1 edited

### Legend:

Unmodified
 r13646 \chapter{Introduction} Armed Bear is a mostly conforming implementation of the ANSI Common Armed Bear is a (mostly) conforming implementation of the ANSI Common Lisp standard.  This manual documents the Armed Bear Common Lisp implementation for users of the system. to be in your path. To make it easier to facilitate the use of ABCL in tool chains (such as SLIME) the invocation is wrapped in a Bourne shell script under UNIX or a DOS command script under Windows so that ABCL may be executed simply as: 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 executed simply as: \begin{listing-shell} The user's home directory is determined by the value of the JVM system property user.home''. property user.home''.  This value may--or may not--correspond to the value of the HOME system environment variable at the discretion of the JVM implementation that \textsc{ABCL} finds itself hosted upon. \chapter{Conformance} \end{itemize} Somewhat confusingly, this statement of non-conformance in the accompanying user documentation fullfills 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. ABCL aims to be be a fully conforming ANSI Common Lisp implementation. Any other behavior should be reported as a bug. \section{Contemporary Common Lisp} In addition to ANSI conformance, \textsc{ABCL} strives to implement features expected of a contemporary Common Lisp. expected of a contemporary Common Lisp \footnote{i.e. a Lisp of the post 2005 Renaissance} \subsection{Deficiencies} contemporary Comon Lisp. \begin{itemize} \item Incomplete (A)MOP \footnote{Another Metaobject Protocol} % N.B. \item An incomplete implementation of a properly named metaobject protocol (viz. (A)MOP \footnote{Another Metaobject Protocol} ) % N.b. % 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. \item Incomplete streams work, in that \textsc{ABCL} needs suitable abstraction between ANSI and Gray streams. \item Incomplete streams abstraction, in that \textsc{ABCL} needs suitable abstraction between ANSI and Gray streams.  The streams could be optimized to the JVM NIO abstractions at great profit for binary byte-level manipulations. \item Incomplete documentation (missing docstrings from exported symbols. \end{itemize} \chapter{Interaction with Hosting JVM} %  Plan of Attack % % describe calling Java from Lisp, and calling Lisp from Java, % probably in two separate sections.  Presumably, we can partition our % that are more comforable with Lisp The Armedbear Common Lisp implementation is hosted on a Java Virtual The Armed Bear Common Lisp implementation is hosted on a Java Virtual Machine.  This chapter describes the mechanisms by which the implementation interacts with that hosting mechanism. \subsection{Low-level Java API} There's a higher level Java API defined in the \ref{topic:Higher level Java API: JSS}(JSS package) which is available in the \code{contrib/} directory. This package is described later in this document.  This section covers the lower level API directly available after evaluating \code{(require 'JAVA)}. \subsubsection{Calling Java object methods} There are two ways to call a Java object method in the basic 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)}. \subsubsection{Calling Java Object Methods} There are two ways to call a Java object method in the low-level (basic) API: \begin{itemize} select the best matching method and dispatch the call. \subsubsection{Dynamic dispatch: caveats} \subsubsection{Dynamic dispatch: Caveats} Dynamic dispatch is performed by using the Java reflection ABCL was originally the extension language for the J editor, which was started in 1998 by Peter Graves.  Sometime in 2003, it seems that a lot of code that had previously not been released publically was suddenly committed that enabled ABCL to be plausibly termed an ANSI Common Lisp implementation. 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 Common Lisp implementation canidate. In 2006, the implementation was transferred to the current contemporary Common Lisp implementation. In 201x, with the publication of this Manual explicitly stating the conformance of Armed Bear Common Lisp to ANSI, we release abcl-1.0. On October 22, 2011, with the publication of this Manual explicitly stating the conformance of Armed Bear Common Lisp to ANSI, we released abcl-1.0.0. libraries.  \url{http://www.quicklisp.org/} [RHODES2007]:  Christopher Rhodes \end{document} % TODO %   1.  Create mechanism for swigging DocString and Lisp docs into %       sections. %       sections ('grovel.lisp')