Commit 3e67e55f authored by rtoy's avatar rtoy
Browse files

Merge in documentation changes from the 19a branch.

parent d933965c
......@@ -45,8 +45,8 @@
\newcommand{\keywords}{lisp, Common Lisp, manual, compiler, programming
language implementation, programming environment}
\date{CMUCL snapshot from \today{}}
% \date{March 18, 2003 \\ Release 18e}
% \date{CMUCL snapshot from \today{}}
\date{May 1, 2004 \\ Release 19a}
\begin{document}
......
......@@ -100,8 +100,8 @@ a global function, which is named by a symbol or by a list of the form
a macro, named by a list \verb|(:macro foo)|.
\item
an inner function (\code{flet}, \code{labels}, anonymous lambdas) that
is named by a list of the form \verb|(:internal outer innner)|.
an inner function (\code{flet}, \code{labels}, or anonymous lambdas) that
is named by a list of the form \verb|(:internal outer inner)|.
\item
a method, named by a list of the form
......
......@@ -552,22 +552,38 @@ editor by developing in the same \llisp{} with \hemlock{}.
\section{Garbage Collection}
\cmucl{} uses a stop-and-copy garbage collector that compacts
the items in dynamic space every time it runs. Most users cause the
system to garbage collect (GC) frequently, long before space is
exhausted. With 16 or 24 megabytes of memory, causing GC's more
frequently on less garbage allows the system to GC without much (if
any) paging.
\cmucl{} uses either a stop-and-copy garbage collector or a
generational, mostly copying garbage collector. Which collector is
available depends on the platform and the features of the platform.
The stop-and-copy GC is available on all RISC platforms. The x86
platform supports a conservative stop-and-copy collector, which is now
rarely used, and a generational conservative collector. On the Sparc
platform, both the stop-and-copy GC and the generational GC are
available, but the stop-and-copy GC is deprecated in favor of the
generational GC.
The generational GC is available if \code{*features*} contains
\code{:gencgc}.
%% The stop-and-copy GC compacts the items in dynamic space every time it
%% runs. Most users cause the system to garbage collect (GC) frequently,
%% long before space is exhausted. With 16 or 24 megabytes of memory,
%% causing GC's more frequently on less garbage allows the system to GC
%% without much (if any) paging.
The following functions invoke the garbage collector or control whether
automatic garbage collection is in effect:
\begin{defun}{extensions:}{gc}{}
\begin{defun}[-cheney]{extensions:}{gc}{\args{\ampoptional{} \var{verbose-p}}}
This function runs the garbage collector. If
\code{ext:*gc-verbose*} is non-\nil, then it invokes
\code{ext:*gc-notify-before*} before GC'ing and
\code{ext:*gc-notify-after*} afterwards.
\code{verbose-p} indicates whether GC statistics are printed or
not.
\end{defun}
\begin{defun}{extensions:}{gc-off}{}
......@@ -584,7 +600,6 @@ automatic garbage collection is in effect:
will call \code{ext:gc}.
\end{defun}
\subsection{GC Parameters}
The following variables control the behavior of the garbage collector:
......@@ -1884,14 +1899,14 @@ function is called and
standardized method combinations like \code{progn}, \code{and}, etc.
\end{itemize}
\begin{defgeneric}{pcl:}{no-primary-method}{gf \&rest args}
\begin{defgeneric}[-generic]{pcl:}{no-primary-method}{gf \&rest args}
In \cmucl, this generic function is called in the above erroneous
cases. The parameter \code{gf} is the generic function being
called, and \code{args} is a list of actual arguments in the generic
function call.
\end{defgeneric}
\begin{defmethod}{pcl:}{no-primary-method}{%
\begin{defmethod}[-standard]{pcl:}{no-primary-method}{%
(gf standard-generic-function) \&rest args}
This method signals a continuable error of type
\code{pcl:no-primary-method-error}.
......
......@@ -116,43 +116,50 @@
\layout{#2}{\var{#3}}{#1}
}{}
%% Define a function
%% Define a function with name NAME and given parameters PARAM. The
%% function is in the package PKG. If the optional arg SUFFIX is
%% given, this is used as a suffix for the label. (Useful when you
%% have functions of the same name, such as methods, but want
%% different labels for each version.)
%%
%% \begin{defun}{pkg}{name}{params}
%% The defunx is for additional functions that are related to this one
%% in some way, and we want to group them all together.
%%
%% \begin{defun}[suffix]{pkg}{name}{params}
%% \defunx[pkg]{name}{params}
%% description of function
%% \end{defun}
\newenvironment{defun}[3]{%
\par\defunvspace\fnindexbold{#2}\label{FN:#2}%
\layout[#1]{#2}{#3}{Function}
\newenvironment{defun}[4][]{%
\par\defunvspace\fnindexbold{#3}\label{FN:#3#1}%
\layout[#2]{#3}{#4}{Function}
}{}
\newcommand{\defunx}[3][\mbox{}]{%
\par\fnindexbold{#2}\label{FN:#2}%
\layout[#1]{#2}{#3}{Function}}
%% Define a generic function
%% Define a generic function. Like defun, but for defgeneric.
%%
%% \begin{defgeneric}{pkg}{name}{params}
%% \begin{defgeneric}[suffix]{pkg}{name}{params}
%% \defgenericx[pkg]{name}{params}
%% description of function
%% \end{defgeneric}
\newenvironment{defgeneric}[3]{%
\par\defunvspace\fnindexbold{#2}\label{FN:#2}%
\layout[#1]{#2}{#3}{Generic Function}
\newenvironment{defgeneric}[4][]{%
\par\defunvspace\fnindexbold{#3}\label{FN:#3-generic#1}%
\layout[#2]{#3}{#4}{Generic Function}
}{}
\newcommand{\defgenericx}[3][\mbox{}]{%
\par\fnindexbold{#2}\label{FN:#2}%
\layout[#1]{#2}{#3}{Generic Function}}
%% Define a method
%% Define a method. Like defgeneric, but for methods.
%%
%% \begin{defmethod}{pkg}{name}{params}
%% \begin{defmethod}[suffix]{pkg}{name}{params}
%% \defmethod[pkg]{name}{params}
%% description of function
%% \end{defmethod}
\newenvironment{defmethod}[3]{%
\par\defunvspace\fnindexbold{#2}\label{FN:#2}%
\layout[#1]{#2}{#3}{Method}
\newenvironment{defmethod}[4][]{%
\par\defunvspace\fnindexbold{#3}\label{FN:#3-method#1}%
\layout[#2]{#3}{#4}{Method}
}{}
\newcommand{\defmethodx}[3][\mbox{}]{%
\par\fnindexbold{#2}\label{FN:#2}%
......
\section{Simple Streams}
\cindex{simple-streams}
\label{simple-streams}
[TBD]
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment