@node History
@section History

The ECL project is an implementation of the Common Lisp language
inherits from many other previous projects, as shown in
@ref{fig:hierarchy}.  The oldest ancestor is the Kyoto Common Lisp, an
implementation developed at the the Research Institute for Mathematical
Sciences, Kyoto University @bibcite{Yasa:85}. This implementation was
developed partially in C and partially in Common Lisp itself and
featured a lisp to C translator.

@float Figure,fig:hierarchy
@caption{ECL's family tree}
@image{figures/kcl-hierarchy,,4.5in}
@end float

The KCL implementation remained a propietary project for some
time. During this time, William F. Schelter improved KCL in several
areas and developed Austin Kyoto Common-Lisp (AKCL). However, those
changes had to be distributed as patches over the propietary KCL
implementation and it was not until much later that both KCL and AKCL
became freely available and gave rise to the GNU Common Lisp project,
GCL.

Around the 90's, Giusseppe Attardi worked on the KCL and AKCL code basis
to produce an implementation of Common Lisp that could be embedded in
other C programs @bibcite{Attardi:95}. The result was an implementation
sometimes known as ECL and sometimes as ECoLisp, which achieved rather
good compliance to the informal specification of the language in CLTL2
@bibcite{Steele:90}, and which run on a rather big number of platforms.

The ECL project stagnated a little bit in the coming years. In
particular, certain dependencies such as object binary formats, word
sizes and some C quirks made it difficult to port it to new
platforms. Furthermore, ECL was not compliant with the ANSI
specification, a goal that other Common Lisps were struggling to
achieve.

This is where the ECLS or ECL-Spain project began. Juanjo García-Ripoll
took the ECoLisp sources and worked on them, with some immediate goals
in mind: increase portability, make the code 64-bit clean, make it able
to build itself from scratch, without other implementation of Common
Lisp and restore the ability to link ECL with other C programs.

Those goals were rather quickly achieved. ECL became ported to a number
of platforms and with the years also compatibility with the ANSI
specification became a more important goal. At some point the fork ECLS,
with agreement of Prof. Attardi, took over the original ECL
implementation and it became what it is nowadays, a community project.

In 2013 once again project got unmaintained. In 2015 Daniel Kochmański
took the position of a maintainer with consent of Juanjo García-Ripoll.

The ECL project owes a lot to different people who have contributed in
many different aspects, from pointing out bugs and incompatibilities of
ECL with other programs and specifications, to actually solving these
bugs and porting ECL to new platforms.

Current development of ECL is still driven by Daniel Kochmański with
main focus on improving ANSI compliance and compatibility with the
Common Lisp libraries ecosystem, fixing bugs, improving speed and the
portability. The project homepage is located at
@uref{https://common-lisp.net/project/ecl/}.
