243 lines
9.3 KiB
HTML
243 lines
9.3 KiB
HTML
|
<!DOCTYPE html>
|
||
|
<html>
|
||
|
<!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ -->
|
||
|
<head>
|
||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||
|
<title>History (ECL Manual)</title>
|
||
|
|
||
|
<meta name="description" content="History (ECL Manual)">
|
||
|
<meta name="keywords" content="History (ECL Manual)">
|
||
|
<meta name="resource-type" content="document">
|
||
|
<meta name="distribution" content="global">
|
||
|
<meta name="Generator" content="makeinfo">
|
||
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
|
|
||
|
<link href="index.html" rel="start" title="Top">
|
||
|
<link href="Indexes.html" rel="index" title="Indexes">
|
||
|
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
|
||
|
<link href="Introduction.html" rel="up" title="Introduction">
|
||
|
<link href="Credits.html" rel="next" title="Credits">
|
||
|
<link href="What-is-ECL.html" rel="prev" title="What is ECL">
|
||
|
<style type="text/css">
|
||
|
<!--
|
||
|
/* colors */
|
||
|
|
||
|
span.r {font-family: initial; font-weight: normal; font-style: normal}
|
||
|
@media (prefers-color-scheme: dark) {
|
||
|
/* dark theme */
|
||
|
html { color: seashell;
|
||
|
background: #1A1A1A; }
|
||
|
body { background: #1A1A1A; }
|
||
|
th { border-bottom: 2px solid lightgray; }
|
||
|
h1, h2, h3, h4, h5 { background-image: linear-gradient(to left, #202020, #3A3A3A); }
|
||
|
code, var, code a { color: darkorange;
|
||
|
background: #2A2A2A; }
|
||
|
a { color: seashell; }
|
||
|
pre { background: #2A2A2A;
|
||
|
color: seashell;
|
||
|
/* mark longer code block with stripe on the left */
|
||
|
border-left: 5px solid darkorange;
|
||
|
padding-left: 10px; }
|
||
|
pre.screen { background: #2A2A2A;
|
||
|
border: 1px solid lightgray; }
|
||
|
pre.programlisting { background: #2A2A2A;
|
||
|
border-left: 1px solid lightgray;
|
||
|
border-top: 1px solid lightgray; }
|
||
|
/* we need a light background in order for the images to be readable */
|
||
|
img { background: white }
|
||
|
}
|
||
|
@media (prefers-color-scheme: light) {
|
||
|
/* light theme */
|
||
|
html { background: white }
|
||
|
body { background: white }
|
||
|
th { border-bottom: 2px solid gray; }
|
||
|
h1, h2, h3, h4, h5 { background: lightgray; }
|
||
|
code, var, code a { color: darkred;
|
||
|
background: whitesmoke; }
|
||
|
a { color: #000; }
|
||
|
pre { background: whitesmoke;
|
||
|
color: black;
|
||
|
/* mark longer code block with stripe on the left */
|
||
|
border-left: 5px solid darkred;
|
||
|
padding-left: 10px; }
|
||
|
pre.screen { background: #EEE;
|
||
|
border: 1px solid black; }
|
||
|
pre.programlisting { background: #EEEEEE;
|
||
|
border-left: 1px solid black;
|
||
|
border-top: 1px solid black; }
|
||
|
}
|
||
|
|
||
|
body {
|
||
|
margin: 1em 125px 0 10%;
|
||
|
line-height: 1.5em;
|
||
|
padding: 0 2em 1em 2em;
|
||
|
font: 13px Verdana,Arial, sans-serif
|
||
|
}
|
||
|
ul, dd, dl, dt { margin-top: 0; margin-bottom: 0; }
|
||
|
p, code, td, dl, dt {
|
||
|
line-height: 1.5em;
|
||
|
}
|
||
|
table {
|
||
|
font: inherit;
|
||
|
border-collapse: collapse;
|
||
|
}
|
||
|
th, td {
|
||
|
vertical-align: top;
|
||
|
}
|
||
|
h1, h2, h3 { padding-left: 15px; }
|
||
|
h4, h5 { padding-left: 5px; }
|
||
|
code, pre {
|
||
|
font-size: 1em;
|
||
|
font-family: monospace;
|
||
|
}
|
||
|
var {
|
||
|
font-size: 1em;
|
||
|
}
|
||
|
/* links inside code appear the same as the code itself */
|
||
|
code a {
|
||
|
font-weight: normal;
|
||
|
text-decoration: none;
|
||
|
}
|
||
|
/* but get an underline when hovering */
|
||
|
code a:hover {
|
||
|
text-decoration: underline;
|
||
|
}
|
||
|
/* ordinary links appear in bold */
|
||
|
a { font-weight: bold; }
|
||
|
pre.verbatim {
|
||
|
margin: 0 0 0 0;
|
||
|
}
|
||
|
pre {
|
||
|
overflow: auto;
|
||
|
}
|
||
|
pre.screen {
|
||
|
font-weight: bold;
|
||
|
padding: 0.5em;
|
||
|
}
|
||
|
pre.programlisting {
|
||
|
padding: 0.5em;
|
||
|
}
|
||
|
div p { padding: 0 2em }
|
||
|
li p { padding: 0; margin: 0 }
|
||
|
hr { display: none; }
|
||
|
div.funcsynopsis p {
|
||
|
text-indent: -2em;
|
||
|
}
|
||
|
div.variablelist {
|
||
|
padding: 0 2em;
|
||
|
}
|
||
|
.type, .funcsynopsis, .symbol {
|
||
|
font-family: monospace;
|
||
|
}
|
||
|
.type, .symbol, .replaceable {
|
||
|
white-space: nowrap;
|
||
|
}
|
||
|
|
||
|
-->
|
||
|
</style>
|
||
|
|
||
|
|
||
|
</head>
|
||
|
|
||
|
<body lang="en">
|
||
|
<div class="section-level-extent" id="History">
|
||
|
<div class="nav-panel">
|
||
|
<p>
|
||
|
Next: <a href="Credits.html" accesskey="n" rel="next">Credits</a>, Previous: <a href="What-is-ECL.html" accesskey="p" rel="prev">What is ECL</a>, Up: <a href="Introduction.html" accesskey="u" rel="up">Introduction</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Indexes.html" title="Index" rel="index">Index</a>]</p>
|
||
|
</div>
|
||
|
<h3 class="section" id="History-1">History</h3>
|
||
|
|
||
|
<p>The ECL project is an implementation of the Common Lisp language
|
||
|
inherits from many other previous projects, as shown in
|
||
|
<a class="ref" href="History.html#fig_003ahierarchy">Figure 1</a>.
|
||
|
</p>
|
||
|
<div class="float" id="fig_003ahierarchy">
|
||
|
|
||
|
<img class="image" src="figures/kcl-hierarchy.png" alt="figures/kcl-hierarchy">
|
||
|
<div class="caption"><p><strong class="strong">Figure 1: </strong>ECL’s family tree</p></div></div>
|
||
|
<p>The oldest ancestor is the Kyoto Common Lisp (KCL), an implementation
|
||
|
developed in 1984 at the the Research Institute for Mathematical
|
||
|
Sciences, Kyoto University [see <a class="pxref" href="Bibliography.html">Yasa:85</a>] by Taiichi Yuasa and
|
||
|
Masami Hagiya. This implementation was developed partially in C and
|
||
|
partially in Common Lisp itself and featured a lisp to C translator.
|
||
|
</p>
|
||
|
<p>Richard W. Weyhrauch in 1985 founded a company Ibuki to sell its
|
||
|
version of KCL called Ibuki Common Lisp (IBCL) in the USA.
|
||
|
</p>
|
||
|
<p>Giuseppe Attardi learned about KCL from Richard Weyhrauch in 1986. At
|
||
|
the time he was working with the company DELPHI. He extended KCL by
|
||
|
adding a CLOS implementation and other improvements. The whole
|
||
|
combination was released in 1988 as DELPHI Common Lisp (DCL).
|
||
|
</p>
|
||
|
<p>William F. Schelter in 1987 started improving KCL in several areas and
|
||
|
developed Austin Kyoto Common-Lisp (AKCL). However, those changes had
|
||
|
to be distributed as patches over the proprietary KCL implementation.
|
||
|
</p>
|
||
|
<p>Much later in 1994, when KCL became open source (and by extension also
|
||
|
AKCL), William F. Schelter re-released AKCL as GNU Common Lisp (GCL),
|
||
|
implementation which primary purpose at the time was to support the
|
||
|
Maxima compute algebra system, which was also maintained by William
|
||
|
F. Schelter.
|
||
|
</p>
|
||
|
<p>In 1995 another AKCL descendant called HCL is released. This
|
||
|
commercial implementation is an extension language for the application
|
||
|
HP PE/SolidDesigner. A large part of the application’s user interface
|
||
|
is written in Common Lisp.
|
||
|
</p>
|
||
|
<p>In 1994 Giuseppe Attardi left DELPHI and went back to the University
|
||
|
of Pisa, where he decided to build a version of DCL that would allow
|
||
|
integrating Lisp code with other languages[see <a class="pxref" href="Bibliography.html">Attardi:95</a>]. Since
|
||
|
Lisp had become less popular and Lisp programmers were diminishing in
|
||
|
number, he used the acronym ECL, which could be read as either the
|
||
|
Embeddable Common Lisp as well as ECoLisp, as a joke for the
|
||
|
ecological goal of preserving the disappearing species, the Lisp
|
||
|
programmer. The implementation achieved rather good compliance to the
|
||
|
informal specification of the language in CLTL2 [see <a class="pxref" href="Bibliography.html">Steele:90</a>],
|
||
|
and which run on a rather big number of platforms.
|
||
|
</p>
|
||
|
<p>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.
|
||
|
</p>
|
||
|
<p>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.
|
||
|
</p>
|
||
|
<p>Those goals were rather quickly achieved. ECL was then ported to a
|
||
|
number of platforms and with time the 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.
|
||
|
</p>
|
||
|
<p>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. In 2020 Marius Gerbershagen became the project
|
||
|
co-maintainer.
|
||
|
</p>
|
||
|
<p>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.
|
||
|
</p>
|
||
|
<p>Current development of ECL is still driven by Daniel Kochmański and
|
||
|
Marius Gerbershagen 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 <a class="uref" href="https://common-lisp.net/project/ecl/">https://common-lisp.net/project/ecl/</a>.
|
||
|
</p></div>
|
||
|
<hr>
|
||
|
<div class="nav-panel">
|
||
|
<p>
|
||
|
Next: <a href="Credits.html" accesskey="n" rel="next">Credits</a>, Previous: <a href="What-is-ECL.html" accesskey="p" rel="prev">What is ECL</a>, Up: <a href="Introduction.html" accesskey="u" rel="up">Introduction</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Indexes.html" title="Index" rel="index">Index</a>]</p>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
|
||
|
</body>
|
||
|
</html>
|