Changeset 13648
- Timestamp:
- 10/21/11 07:48:44 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/1.0.x/abcl/doc/manual/abcl.tex
r13646 r13648 13 13 \chapter{Introduction} 14 14 15 Armed Bear is a mostlyconforming implementation of the ANSI Common15 Armed Bear is a (mostly) conforming implementation of the ANSI Common 16 16 Lisp standard. This manual documents the Armed Bear Common Lisp 17 17 implementation for users of the system. … … 36 36 to be in your path. 37 37 38 To make it easier to facilitate the use of ABCL in tool chains (such as 39 SLIME) the invocation is wrapped in a Bourne shell script under UNIX 40 or a DOS command script under Windows so that ABCL may be executed 41 simply as: 38 To make it easier to facilitate the use of ABCL in tool chains (such 39 as SLIME \footnote{SLIME is the Superior Lisp Mode for Interaction 40 under Emacs}) the invocation is wrapped in a Bourne shell script 41 under UNIX or a DOS command script under Windows so that ABCL may be 42 executed simply as: 42 43 43 44 \begin{listing-shell} … … 83 84 84 85 The user's home directory is determined by the value of the JVM system 85 property ``user.home''. 86 property ``user.home''. This value may--or may not--correspond to the 87 value of the HOME system environment variable at the discretion of the 88 JVM implementation that \textsc{ABCL} finds itself hosted upon. 86 89 87 90 \chapter{Conformance} … … 97 100 \end{itemize} 98 101 102 Somewhat confusingly, this statement of non-conformance 103 in the accompanying user documentation fullfills the requirements that 104 \textsc{ABCL} is a conforming ANSI Common Lisp implementation 105 according to the CLHS \footnote{Common Lisp Hyperspec language 106 reference document.}. Clarifications to this point are solicited. 107 99 108 ABCL aims to be be a fully conforming ANSI Common Lisp implementation. 100 109 Any other behavior should be reported as a bug. … … 102 111 \section{Contemporary Common Lisp} 103 112 In addition to ANSI conformance, \textsc{ABCL} strives to implement features 104 expected of a contemporary Common Lisp. 113 expected of a contemporary Common Lisp \footnote{i.e. a Lisp of the 114 post 2005 Renaissance} 105 115 106 116 \subsection{Deficiencies} … … 108 118 contemporary Comon Lisp. 109 119 \begin{itemize} 110 \item Incomplete (A)MOP \footnote{Another Metaobject Protocol} 111 % N.B. 120 \item An incomplete implementation of a properly named metaobject 121 protocol (viz. (A)MOP \footnote{Another Metaobject Protocol} ) 122 123 % N.b. 112 124 % TODO go through AMOP with symbols, starting by looking for 113 125 % matching function signature. 114 126 % XXX is this really blocking ANSI conformance? Answer: we have 115 127 % to start with such a ``census'' to determine what we have. 116 \item Incomplete streams work, in that \textsc{ABCL} needs suitable 117 abstraction between ANSI and Gray streams. 128 129 \item Incomplete streams abstraction, in that \textsc{ABCL} needs suitable 130 abstraction between ANSI and Gray streams. The streams could be 131 optimized to the JVM NIO abstractions at great profit for binary 132 byte-level manipulations. 118 133 134 \item Incomplete documentation (missing docstrings from exported 135 symbols. 136 119 137 \end{itemize} 120 138 121 139 \chapter{Interaction with Hosting JVM} 122 140 141 % Plan of Attack 142 % 123 143 % describe calling Java from Lisp, and calling Lisp from Java, 124 144 % probably in two separate sections. Presumably, we can partition our … … 126 146 % that are more comforable with Lisp 127 147 128 The Armed bear Common Lisp implementation is hosted on a Java Virtual148 The Armed Bear Common Lisp implementation is hosted on a Java Virtual 129 149 Machine. This chapter describes the mechanisms by which the 130 150 implementation interacts with that hosting mechanism. … … 152 172 \subsection{Low-level Java API} 153 173 154 There's a higher level Java API defined in the 155 \ref{topic:Higher level Java API: JSS}(JSS package) which is available 156 in the \code{contrib/} directory. This package is described later in this157 document. This section covers the lower level API directly available 158 after evaluating\code{(require 'JAVA)}.159 160 \subsubsection{Calling Java object methods}161 162 There are two ways to call a Java object method in the basicAPI:174 We define a higher level Java API in the \ref{topic:Higher level Java 175 API: JSS}(JSS package) which is available in the \code{contrib/} \ref{topic:contrib} 176 directory. This package is described later in this document. This 177 section covers the lower level API directly available after evaluating 178 \code{(require 'JAVA)}. 179 180 \subsubsection{Calling Java Object Methods} 181 182 There are two ways to call a Java object method in the low-level (basic) API: 163 183 164 184 \begin{itemize} … … 200 220 select the best matching method and dispatch the call. 201 221 202 \subsubsection{Dynamic dispatch: caveats}222 \subsubsection{Dynamic dispatch: Caveats} 203 223 204 224 Dynamic dispatch is performed by using the Java reflection … … 964 984 965 985 ABCL was originally the extension language for the J editor, which was 966 started in 1998 by Peter Graves. Sometime in 2003, it seems that a967 lot of code that had previously not been released publically was 968 suddenly committed that enabled ABCL to be plausibly termed anANSI969 Common Lisp implementation .986 started in 1998 by Peter Graves. Sometime in 2003, a whole lot of 987 code that had previously not been released publically was suddenly 988 committed that enabled ABCL to be plausibly termed an emergent ANSI 989 Common Lisp implementation canidate. 970 990 971 991 In 2006, the implementation was transferred to the current … … 973 993 contemporary Common Lisp implementation. 974 994 975 In 201x, with the publication of this Manual explicitly stating the 976 conformance of Armed Bear Common Lisp to ANSI, we release abcl-1.0. 995 On October 22, 2011, with the publication of this Manual explicitly 996 stating the conformance of Armed Bear Common Lisp to ANSI, we released 997 abcl-1.0.0. 977 998 978 999 … … 987 1008 libraries. \url{http://www.quicklisp.org/} 988 1009 1010 [RHODES2007]: Christopher Rhodes 1011 989 1012 990 1013 \end{document} … … 992 1015 % TODO 993 1016 % 1. Create mechanism for swigging DocString and Lisp docs into 994 % sections .995 1017 % sections ('grovel.lisp') 1018
Note: See TracChangeset
for help on using the changeset viewer.