@node About this book
@section About this book

This manual is part of the ECL software system. It documents deviations
of ECL from various standards (@bibcite{ANSI}, @bibcite{AMOP},...),
extensions, daily working process (compiling files, loading sources,
creating programs, etc) and the internals of this implementation.

It is not intended as a source to learn Common Lisp. There are other
tutorials and textbooks available in the Net which serve this
purpose. The homepage of the
@uref{https://common-lisp.net,Common-Lisp.net} contains a good list of
links of such teaching and learning material.

This book is structured into four parts:

@subsection User's guide
We begin with [@ref{User's guide}] which provides introductory material
showing the user how to build and use ECL and some of its unique
features. This part assumes some basic Common Lisp knowledge and is
suggested as an entry point for new users who want to start using
@ecl{}.

@subsection Developer's guide
[@ref{Developer's guide}] documents @ecl{} implementation details. This
part is not meant for normal users but rather for the ECL developers
and other people who want to contribute to @ecl{}. This section is prone
to change due to the dynamic nature of the software. Covered topics
include source code structure, contributing guide, internal
implementation details and many other topics relevant to the development
process.

@subsection Standards
[@ref{Standards}] documents all parts of the standard which are left as
implementation specific or to which ECL doesn't adhere. For instance,
precision of floating point numbers, available character sets, actual
input/output protocols, etc.

Section covers also @emph{C Reference} as a description of @ansi{} from
the C/C++ programmer perspective and @emph{ANSI Dictionary} for @clisp{}
constructs available from C/C++.

@subsection Extensions
[@ref{Extensions}] introduces all features which are specific to ECL and
which lay outside the standard. This includes configuring, building and
installing ECL multiprocessing capabilities, graphics libraries,
interfacing with the operating system, etc.
