Spellchecking done by Ralph Campbell

This commit is contained in:
jjgarcia 2004-11-22 17:39:29 +00:00
parent 96c2fb933c
commit 9d449d9565
2 changed files with 35 additions and 34 deletions

View file

@ -197,7 +197,7 @@ components listed in @var{lisp-files}. Each component is either:
@item A string: Denotes an object file built from lisp code.
@end itemize
@noindent
@var{ld-flags} is a list of strings with aditional parameters to be passed
@var{ld-flags} is a list of strings with additional parameters to be passed
to the linker. You can include here your favorite C/C++ libraries.
@var{prologue-code} and @var{epilogue-code} are used to customize the
@ -261,7 +261,7 @@ Linkable object files.
@item :lib, :static-library
A normal library produced with @code{c:build-static-library}.
@item :dll, :shared-library
A dynamically linked librariy produced with @code{c:build-shared-library}.
A dynamically linked library produced with @code{c:build-shared-library}.
@item :program
An executable produced with @code{c:build-program}.
@end table
@ -283,7 +283,7 @@ The output of this function is system specific. For example, under FreeBSD
@section Compiler examples
@subsection The @file{hello.lsp} file
In the follwoing examples we will use the same lisp program. You have to
In the following examples we will use the same lisp program. You have to
create a file called @file{hello.lsp} which contains the following lines
@example
@ -333,7 +333,7 @@ Type :h for Help. Top level.
;;; End of Pass 1.
;;; Calling the C compiler...
"gcc -g -O2 -Dfreebsd -O -I/home/worm/lib/ecl//h -w -c hello.c -o hello.o"
"ld -shared -o hello.so -L/home/worm/lib/ecl/ hello.o "
"ld -shared -o hello.so -L/home/worm/lib/ecl/ hello.o"
;;; OPTIMIZE levels: Safety=0 (No runtime error checking), Space=0, Speed=3
;;; Finished compiling hello.lsp.
#P"hello.so"
@ -348,7 +348,7 @@ In this example we build a standalone program which prints the @code{"Hello
world!"} message and does nothing else. First you must create the
@file{hello.lsp} file shown above. Next you have to enter the @ecl{}
environment and type @code{(compile-file "hello.lsp" :system-p t)}. This
produces an object file that can be linked agains the @ecl{} core image.
produces an object file that can be linked against the @ecl{} core image.
@example
Type :h for Help. Top level.
@ -373,7 +373,7 @@ instruction.
"myecl"
@end example
@noindent
Now you can execute this program from your favourite shell.
Now you can execute this program from your favorite shell.
@example
worm@@arrakis.es% @b{./myecl}
@ -479,7 +479,7 @@ in multiples of a word size, we make sure that the least significant bits of a
pointer are zero, which distinguishes pointers from immediate data.
In an immediate datatype, the tag bits determine the type of the object. In
non-immediate datatyps, the first byte in the cell contains the secondary type
non-immediate datatypes, the first byte in the cell contains the secondary type
indicator, and distinguishes between different types of non immediate data. The
use of the remaining bytes differs for each type of object. For instance, a
cons cell consists of three words:
@ -612,7 +612,7 @@ required to create, manipulate and calculate with them.
@deftp {C type} cl_fixnum
This is a C signed integer type capable of holding a whole fixnum without any
loss of precision. The oposite is not true, and you may create a
loss of precision. The opposite is not true, and you may create a
@code{cl_fixnum} which exceeds the limits of a fixnum and should be stored as a
bignum.
@end deftp
@ -638,11 +638,11 @@ respectively.
@deftypefunx cl_fixnum fix (cl_object @var{o})
@code{MAKE_FIXNUM} and @code{fix} convert from an integer to a lisp object
of fixnum type and viceversa. These functions no not check their arguments.
of fixnum type and vice versa. These functions no not check their arguments.
@end deftypefun
@deftypefun cl_fixnum fixint (cl_object @var{o})
Converts a lisp fixnum to a C integer of the appropiate size. Signals an error
Converts a lisp fixnum to a C integer of the appropriate size. Signals an error
if @var{o} is not of fixnum type.
@end deftypefun
@ -846,8 +846,8 @@ length of the string.
@section Bytecodes
A bytecodes object is a lisp object with a piece of code that can be
interpreted. The objects of type @code{t_bytecode} are implicitely constructed
by a call to @code{eval}, but can also be explicitely constructed with the
interpreted. The objects of type @code{t_bytecode} are implicitly constructed
by a call to @code{eval}, but can also be explicitly constructed with the
@code{make_lambda} function.
@deftypefun cl_object cl_safe_eval (cl_object @var{form}, cl_object @var{env}, cl_object @var{err_value}
@ -931,7 +931,7 @@ temporary values, and function invocation.
@ecl{} employs standard C calling conventions to achieve efficiency and
interoperability with other languages.
Each Lisp function is implemented as a C function whcih takes as many
Each Lisp function is implemented as a C function which takes as many
argument as the Lisp original plus one additional integer argument
which holds the number of actual arguments. The function sets @code{NValues}
to the number of Lisp values produced, it returns the first one and the
@ -969,7 +969,7 @@ this case) represents the number of values of the function.
In general, if one is to play with the C kernel of @ecl{} there is no need to
know about all these conventions. There is a preprocessor that takes care of
the details, by using a lispy representation of the statements that output
the details, by using a lisp representation of the statements that output
values, and of the function definitions. For instance, the actual source code
for @code{clLcons} in @file{src/c/lists.d}
@ -1683,3 +1683,4 @@ parts are in the @file{unix*.d} files.
@item Run the tests and compare to the results of other platforms.
@end enumerate
@bye

View file

@ -83,11 +83,11 @@ for the history of the code you are up to use.
@ecl{} (ECL for short) uses standard C calling conventions for Lisp compiled
functions, which allows C programs to easily call Lisp functions and
viceversa. No foreign function interface is required: data can be exchanged
vice versa. No foreign function interface is required: data can be exchanged
between C and Lisp with no need for conversion.
@ecl{} is based on a Common Runtime Support (CRS) which provides basic
facilities for memory managment, dynamic loading and dumping of binary images,
facilities for memory management, dynamic loading and dumping of binary images,
support for multiple threads of execution. The CRS is built into a library
that can be linked with the code of the application. @ecl{} is modular: main
modules are the program development tools (top level, debugger, trace,
@ -131,14 +131,14 @@ at Kyoto University.
I must thank Giuseppe Attardi, Yuasa and Hagiya for their wonderful work with
preceding implementations and for putting them in the Public Domain under the
GNU General Public Licence as published by the Free Software Foundation.
GNU General Public License as published by the Free Software Foundation.
Without them this product would have never been possible.
This document is an update of the original ECL documentation, which was based
in part on the material in @bibcite{Yuasa:85}
The following people or organizations must be credited for support in the
devlopement of Kyoto @clisp{}: Prof. Reiji Nakajima at RIMS, Kyoto University;
development of Kyoto @clisp{}: Prof. Reiji Nakajima at RIMS, Kyoto University;
Nippon Data General Corporation; Teruo Yabe; Toshiyasu Harada; Takashi Suzuki;
Kibo Kurokawa; Data General Corporation; Richard Gabriel; Daniel Weinreb; Skef
Wholey; Carl Hoffman; Naruhiko Kawamura; Takashi Sakuragawa; Akinori Yonezawa;
@ -295,7 +295,7 @@ directory} is @file{/usr/local/ecl}.
zcat ecl.tgz | tar xf -
@end example
@item An autoconfiguration mechanism allows you to perform a standard
@item An auto configuration mechanism allows you to perform a standard
installation with the following commands:
@example
./configure
@ -304,7 +304,7 @@ This example will prepare to install executable files, manual pages and
info files in standard directories like @file{/usr/local/bin},
@file{/usr/local/man/man1}, @file{/usr/local/info}.
@item If you don't have access rights to these directories, you shoud
@item If you don't have access rights to these directories, you should
give to configure alternate places. Try @code{./configure -help} for
instructions on how to supply this information to configure, but
a good starting point is
@ -312,7 +312,7 @@ a good starting point is
./configure --prefix=$HOME
@end example
@item Make sure everything went ok with the configuration.
@item Make sure everything went OK with the configuration.
The configuration script figures out the machine where it is running and
creates a directory @code{machine} where to perform the installation. If the
program fails to recognize the machine, you will have to check whether it is
@ -544,7 +544,7 @@ integers are @code{bignums}. Thus 25 factorial (25!)
@end example
@noindent
is definetely a bignum in @ecl{}.
is definitely a bignum in @ecl{}.
@clisp{} constants related to integers have the following values
in @ecl{}.
@ -667,7 +667,7 @@ There are no implementation-dependent features for complex numbers.
@node Characters, Symbols, Numbers, Standards
@section Characteres
@section Characters
@ecl{} is fully @ansi{} compliant in all aspects of the character
data type, with the following peculiarities.
@ -846,7 +846,7 @@ For instance, the @code{system} package has two nicknames @code{sys} and
@code{si}; @code{system:symbol} may be written as @code{sys:symbol} or
@code{si:symbol}.
Depending on the configuation option by which @ecl{} has been built,
Depending on the configuration option by which @ecl{} has been built,
additional packages may be available:
@example
compiler clos xlib
@ -1400,7 +1400,7 @@ returns it.
@end deffn
@c @deffn {Method} {stream-write-line} (object clos-stream) string @optional{} start end
@c Writes character objects from thestring @var{string} onto the CLOS stream
@c Writes character objects from the string @var{string} onto the CLOS stream
@c @var{object}. If given, the @var{start} and @var{end} arguments indicate a
@c substring that is to be output.
@c @end deffn
@ -1603,7 +1603,7 @@ the C stack and a type accurate technique for areas containing Lisp objects.
Scanning conservatively the C stack, looking for potential pointers to Lisp
objects, ensures that no live Lisp objects get collected, even if they are
passed to external procedures in C or some other language. This approach
greatly simplies integration of Lisp and C code, since it is not necessary to
greatly simplifies integration of Lisp and C code, since it is not necessary to
protect Lisp object form collection when a foreign function is invoked.
The garbage collector of @ecl{} has three levels according to what it
@ -1622,12 +1622,12 @@ free list is exhausted, a new page is allocated, or the garbage collector is
invoked, depending on whether the maximum number of pages for that class have
been allocated or not.
The garbage collector does not compactify the heap. That is, cells and
The garbage collector does not compact the heap. That is, cells and
contiguous blocks are never moved to another place. Moreover, once a page is
allocated for a particular type class or for contiguous blocks, that page will
never be freed for other classes, even if the entire page becomes garbage.
On the other hand, the relocatable area is compactified during level 2 and
On the other hand, the relocatable area is compacted during level 2 and
level 3 of garbage collection. A relocatable block is really relocatable.
The garbage collector is automatically invoked in one of the following
@ -1661,7 +1661,7 @@ end of each garbage collection.
@defvar{*gc-verbose*}[system] This variable controls whether to print messages
at the start and end of each garbage collection. If @code{sys:*gc-verbose*} is
@nil{}, @code{gc} foregoes printing any messages. The default value is @code{T}.
@nil{}, @code{gc} fore goes printing any messages. The default value is @code{T}.
@end defvar
@ -2020,7 +2020,7 @@ was compiled while the @code{safety} optimize level is 3 or with a
@end enumerate
An event is pushed on the event stack when execution of its event function
begins, and is poped away at the completion of the execution. An event
begins, and is popped away at the completion of the execution. An event
environment is the `environment' of the event function at the time the next
event is pushed. Actually, an event environment is a pointer to the main stack
of @ecl{}. For each interpreted event function (i.e., event function in
@ -2372,7 +2372,7 @@ with the symbol.
Prints the documentation associated with those symbols in the specified
@var{package} whose print names contain @var{string} as substring.
@var{string} may be a symbol, in which case the print name of that symbol is
used. @var{package} is optional and defaults to the LISP psackage.
used. @var{package} is optional and defaults to the LISP package.
If @var{package} is @nil{}, then all packages are searched.
@end defun
@ -2497,7 +2497,7 @@ directory and the default name to be applied to the output files (i.e., the
fasl file and the temporary files). @kwd{output-file} itself defaults to
@var{input-pathname}. That is, if @kwd{output-file} is not supplied, then the
directory and the name of the input file will be used as the default directory
and the default name for the output files. The filetypes of the output files
and the default name for the output files. The file types of the output files
are fixed as follows.
@multitable {@b{Output File}} {@b{Filetype}}
@ -2950,7 +2950,7 @@ Arguments to functions, lexical and temporary variables are allocated on the C
stack. Temporary values saved on the C stack may sometimes be represented as
@var{raw data} instead of pointers to heap-allocated cells. Accessing such raw
data on the C stack results in faster compiled code, partly because no pointer
deferencing operation is necessary, and partly because no cell is newly
dereferencing operation is necessary, and partly because no cell is newly
allocated on the heap when a new object is created. This is particularly
helpful for numeric code which computes with floating point numbers.
@ -3240,7 +3240,7 @@ or immediately after the variable that follows @code{&whole}, if @code{&whole}
is supplied. @code{&environment} is not allowed within @var{pseudo-var}. Like
@code{&whole}, use of @code{&environment} does not affect the processing of the
rest of the defmacro lambda-list. If an @code{&environment} parameter is
supplied andif this parameter is not used at all, then the @ecl{} compiler
supplied and if this parameter is not used at all, then the @ecl{} compiler
will issue a warning. To suppress the warning, just remove the parameter from
the defmacro lambda-list, or add an @code{ignore} declaration.