documentation: update history chapter
Professor Giuseppe Attardi was kind enough to elaborate on the history of ECL. I've rewritten the history chapter to include more precise dates and elaborate on other implementations. Also updated inheritance graphs to indicate, that ECL is a descendant of DELPHI Common Lisp and that there is no cross-pollination between ECoLisp and AKCL.
This commit is contained in:
parent
57f58eaeee
commit
9615103e30
4 changed files with 842 additions and 743 deletions
File diff suppressed because it is too large
Load diff
|
Before Width: | Height: | Size: 170 KiB After Width: | Height: | Size: 173 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 106 KiB |
|
|
@ -14,11 +14,11 @@
|
|||
viewBox="0 0 744.09448819 1052.3622047"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
|
||||
sodipodi:docname="kcl-hierarchy.svg"
|
||||
inkscape:export-filename="/home/jack/linki/repo/ecl-doc/figures/kcl-hierarchy.png"
|
||||
inkscape:export-xdpi="44.259998"
|
||||
inkscape:export-ydpi="44.259998"
|
||||
inkscape:export-filename="/home/jack/Desktop/ecl/src/doc/manual/figures/kcl-hierarchy.png"
|
||||
inkscape:export-xdpi="71.994919"
|
||||
inkscape:export-ydpi="71.994919"
|
||||
enable-background="new">
|
||||
<defs
|
||||
id="defs4">
|
||||
|
|
@ -167,51 +167,6 @@
|
|||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
id="path6260" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker7265"
|
||||
style="overflow:visible;"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
id="path7267"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
|
||||
transform="scale(0.8) rotate(180) translate(12.5,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:isstock="true"
|
||||
style="overflow:visible;"
|
||||
id="marker6929"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
transform="scale(0.8) rotate(180) translate(12.5,0)"
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
id="path6931" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker6531"
|
||||
style="overflow:visible;"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
id="path6533"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
|
||||
transform="scale(0.8) rotate(180) translate(12.5,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
|
|
@ -256,21 +211,6 @@
|
|||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
id="path9332" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="marker9086"
|
||||
style="overflow:visible;"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
id="path9088"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
|
||||
transform="scale(0.8) rotate(180) translate(12.5,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:isstock="true"
|
||||
style="overflow:visible;"
|
||||
|
|
@ -674,6 +614,79 @@
|
|||
in2="BackgroundImage"
|
||||
id="feBlend8455" />
|
||||
</filter>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker8280-0"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path8282-8"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
|
||||
</marker>
|
||||
<filter
|
||||
inkscape:collect="always"
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter8453-3">
|
||||
<feBlend
|
||||
inkscape:collect="always"
|
||||
mode="lighten"
|
||||
in2="BackgroundImage"
|
||||
id="feBlend8455-6" />
|
||||
</filter>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker6531"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path6533"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:isstock="true"
|
||||
style="overflow:visible"
|
||||
id="marker6929"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path6931" />
|
||||
</marker>
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="marker7265"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path7267"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
|
||||
transform="matrix(-0.8,0,0,-0.8,-10,0)" />
|
||||
</marker>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
|
|
@ -682,15 +695,15 @@
|
|||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.39303564"
|
||||
inkscape:cx="157.85934"
|
||||
inkscape:cy="737.98883"
|
||||
inkscape:zoom="6.2885702"
|
||||
inkscape:cx="129.67434"
|
||||
inkscape:cy="493.5705"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer2"
|
||||
inkscape:current-layer="layer3"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1594"
|
||||
inkscape:window-height="865"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-width="1878"
|
||||
inkscape:window-height="2126"
|
||||
inkscape:window-x="1952"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
showguides="true"
|
||||
|
|
@ -703,7 +716,7 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
|
|
@ -938,7 +951,7 @@
|
|||
style="display:inline">
|
||||
<g
|
||||
id="g8635"
|
||||
transform="translate(133.79456,86.078828)">
|
||||
transform="translate(160.03264,-181.99154)">
|
||||
<ellipse
|
||||
ry="39.950821"
|
||||
rx="71.023682"
|
||||
|
|
@ -960,7 +973,7 @@
|
|||
id="flowPara3352-7">SBCL</flowPara></flowRoot> </g>
|
||||
<g
|
||||
id="g7889"
|
||||
transform="translate(1.8416068,191.41021)">
|
||||
transform="translate(28.079686,110.66679)">
|
||||
<ellipse
|
||||
ry="39.950821"
|
||||
rx="71.023682"
|
||||
|
|
@ -982,7 +995,7 @@
|
|||
id="flowPara3352-0">ECLs</flowPara></flowRoot> </g>
|
||||
<g
|
||||
id="g7505"
|
||||
transform="translate(1.8416068,98.470717)">
|
||||
transform="translate(28.079686,80.356855)">
|
||||
<ellipse
|
||||
ry="39.950821"
|
||||
rx="71.023682"
|
||||
|
|
@ -1004,7 +1017,7 @@
|
|||
id="flowPara3352-1">ECoLisp</flowPara></flowRoot> </g>
|
||||
<g
|
||||
id="g8896"
|
||||
transform="translate(-3.1181312,72.677185)">
|
||||
transform="translate(236.08394,-41.81625)">
|
||||
<ellipse
|
||||
ry="39.950821"
|
||||
rx="71.023682"
|
||||
|
|
@ -1026,7 +1039,7 @@
|
|||
id="flowPara3352-6">MKCL</flowPara></flowRoot> </g>
|
||||
<g
|
||||
id="g6935"
|
||||
transform="translate(67.196725,72.677185)">
|
||||
transform="translate(-107.32446,-41.81625)">
|
||||
<ellipse
|
||||
ry="39.950821"
|
||||
rx="71.023682"
|
||||
|
|
@ -1048,7 +1061,7 @@
|
|||
id="flowPara3352-30">CLASP</flowPara></flowRoot> </g>
|
||||
<g
|
||||
id="g7489"
|
||||
transform="translate(-2.1020508,5.5311243)">
|
||||
transform="translate(130.61802,-103.74029)">
|
||||
<ellipse
|
||||
ry="39.950821"
|
||||
rx="71.023682"
|
||||
|
|
@ -1070,7 +1083,7 @@
|
|||
id="flowPara3352">KCL</flowPara></flowRoot> </g>
|
||||
<g
|
||||
id="g6915"
|
||||
transform="translate(27.312561,22.45384)">
|
||||
transform="translate(53.55064,-86.817573)">
|
||||
<ellipse
|
||||
ry="39.950821"
|
||||
rx="71.023682"
|
||||
|
|
@ -1092,7 +1105,7 @@
|
|||
id="flowPara3352-4">CMU CL</flowPara></flowRoot> </g>
|
||||
<g
|
||||
id="g8903"
|
||||
transform="translate(108.3236,87.662978)">
|
||||
transform="translate(134.56168,-26.830457)">
|
||||
<ellipse
|
||||
ry="39.950821"
|
||||
rx="71.023682"
|
||||
|
|
@ -1114,7 +1127,7 @@
|
|||
id="flowPara3352-1-5">ECL</flowPara></flowRoot> </g>
|
||||
<g
|
||||
id="g5249"
|
||||
transform="translate(-3.1181312,180.49928)">
|
||||
transform="translate(27.55347,-4.0947245)">
|
||||
<ellipse
|
||||
ry="39.950821"
|
||||
rx="71.023682"
|
||||
|
|
@ -1136,7 +1149,7 @@
|
|||
id="flowPara3352-8">GCL</flowPara></flowRoot> </g>
|
||||
<g
|
||||
id="g7497"
|
||||
transform="translate(-3.1181312,98.470717)">
|
||||
transform="translate(27.55347,80.141595)">
|
||||
<ellipse
|
||||
ry="39.950821"
|
||||
rx="71.023682"
|
||||
|
|
@ -1158,7 +1171,7 @@
|
|||
id="flowPara3352-3">AKCL</flowPara></flowRoot> </g>
|
||||
<g
|
||||
id="g16358"
|
||||
transform="translate(30.10442,-17.4527)">
|
||||
transform="translate(274.98612,-126.72411)">
|
||||
<ellipse
|
||||
ry="41.688072"
|
||||
rx="71.023682"
|
||||
|
|
@ -1181,7 +1194,7 @@
|
|||
id="flowPara3352-14-4-9-5-41">Ibuki</flowPara></flowRoot> </g>
|
||||
<g
|
||||
id="g16350"
|
||||
transform="translate(32.009617,-28.46148)">
|
||||
transform="translate(484.17567,-90.311519)">
|
||||
<ellipse
|
||||
ry="41.688072"
|
||||
rx="71.023682"
|
||||
|
|
@ -1204,7 +1217,7 @@
|
|||
id="flowPara3352-14-4-9-5-4">Delphi</flowPara></flowRoot> </g>
|
||||
<g
|
||||
id="g6928"
|
||||
transform="translate(67.196725,87.662978)">
|
||||
transform="translate(-12.092458,-26.830457)">
|
||||
<ellipse
|
||||
ry="39.950821"
|
||||
rx="71.023682"
|
||||
|
|
@ -1239,8 +1252,7 @@
|
|||
style="font-style:normal;font-weight:normal;font-size:30px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="1620.1664"
|
||||
y="-152.43571"
|
||||
id="text6871"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
id="text6871"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan6873"
|
||||
x="1620.1664"
|
||||
|
|
@ -1258,7 +1270,7 @@
|
|||
style="font-size:30px" /></flowRegion><flowPara
|
||||
id="flowPara6881" /></flowRoot> <g
|
||||
id="g7013"
|
||||
transform="translate(0.44528037,79.089156)">
|
||||
transform="translate(244.08087,-86.611447)">
|
||||
<ellipse
|
||||
ry="41.688072"
|
||||
rx="71.023682"
|
||||
|
|
@ -1291,48 +1303,138 @@
|
|||
y="216.83833" /></flowRegion><flowPara
|
||||
id="flowPara7107" /></flowRoot> <path
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker6133)"
|
||||
d="M 580.44388,624.79713 426.71262,813.28132"
|
||||
d="M 616.58737,358.79646 443.04528,696.71818"
|
||||
id="path5968"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-start="#path3344-6"
|
||||
inkscape:connection-end="#g8903" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker6026)"
|
||||
d="m 718.02944,889.53429 -0.97429,75.88537"
|
||||
d="m 614.15699,772.87885 -49.03985,80.217"
|
||||
id="path6018"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-start="#g6928"
|
||||
inkscape:connection-end="#g6935" />
|
||||
inkscape:connection-end="#g6935"
|
||||
inkscape:connection-start="#g6928" />
|
||||
<g
|
||||
id="g8449"
|
||||
transform="matrix(0.59560426,0,0,0.59560426,133.91262,413.7309)">
|
||||
transform="matrix(0.59560426,0,0,0.59560426,133.91262,413.7309)" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="arrows"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker8002)"
|
||||
d="M 245.82865,169.14326 H 180.59166"
|
||||
id="path7994"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker8280)"
|
||||
d="m 316.85234,209.09408 v 69.63307"
|
||||
id="path8272"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker9124)"
|
||||
d="M 290.90401,206.33152 134.40034,430.62723"
|
||||
id="path9116"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker10130)"
|
||||
d="m 108.32187,507.73756 0,65.38517"
|
||||
id="path10122"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-end="#g5249"
|
||||
inkscape:export-xdpi="71"
|
||||
inkscape:export-ydpi="71" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker7518)"
|
||||
d="m 348.14706,648.93658 43.89254,50.29981"
|
||||
id="path10680"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker10994)"
|
||||
d="m 397.84502,772.38853 -55.50337,81.19763"
|
||||
id="path10986"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00031245;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker9836)"
|
||||
d="m 451.31198,771.81998 62.73142,82.33473"
|
||||
id="path11274"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker9330)"
|
||||
d="m 555.96274,206.28775 54.18917,76.98298"
|
||||
id="path6361"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker8848)"
|
||||
d="m 522.34165,208.87149 -91.53264,486.4997"
|
||||
id="path6669"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker8348)"
|
||||
d="m 316.85234,507.95282 v 65.16992"
|
||||
id="path8340"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-start="#g7505"
|
||||
inkscape:connection-end="#g7889" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5551)"
|
||||
d="m 108.32187,427.83592 0,-65.73259"
|
||||
id="path5543"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-start="#g7497"
|
||||
inkscape:connection-end="#g7013" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker8280-0)"
|
||||
d="m 316.85234,362.1033 0,65.94788"
|
||||
id="path8272-8"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-start="#g16350"
|
||||
inkscape:connection-end="#g7505" />
|
||||
<g
|
||||
style="display:inline"
|
||||
id="g8449-7"
|
||||
transform="matrix(0.59560426,0,0,0.59560426,84.740042,342.84475)">
|
||||
<rect
|
||||
transform="matrix(1.0554836,0,0,0.91281176,60.701432,124.8577)"
|
||||
transform="matrix(1.0554836,0,0,0.91281176,-36.888524,124.8577)"
|
||||
ry="26.460154"
|
||||
y="-374.39594"
|
||||
x="1122.8237"
|
||||
height="1285.4657"
|
||||
width="749.13599"
|
||||
id="rect5740"
|
||||
style="display:inline;fill:none;fill-opacity:0.96078431;stroke:#000000;stroke-width:2.28102517;stroke-miterlimit:4;stroke-dasharray:6.84307535, 6.84307535;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter8453)" />
|
||||
style="display:inline;fill:none;fill-opacity:0.96078431;stroke:#000000;stroke-width:2.28102517;stroke-miterlimit:4;stroke-dasharray:6.84307535, 6.84307535;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter8453-3)" />
|
||||
<ellipse
|
||||
ry="43.318279"
|
||||
rx="73.801056"
|
||||
cy="284.92114"
|
||||
cx="1369.151"
|
||||
cx="1271.5608"
|
||||
id="path3344-2-6-4-5-21-9-2"
|
||||
style="display:inline;fill:#b3b3b3;fill-opacity:0.96078431" />
|
||||
<ellipse
|
||||
ry="43.318279"
|
||||
rx="73.801056"
|
||||
cy="413.21759"
|
||||
cx="1368.3915"
|
||||
cx="1270.8013"
|
||||
id="path3344-2-6-4-5-21-9-2-0-7"
|
||||
style="display:inline;fill:#44aa00;fill-opacity:0.96078431" />
|
||||
<g
|
||||
transform="matrix(1.0391049,0,0,1.0391049,85.226648,-13.95573)"
|
||||
transform="matrix(1.0391049,0,0,1.0391049,-12.363309,-13.95573)"
|
||||
id="g6006">
|
||||
<ellipse
|
||||
style="display:inline;fill:none;fill-opacity:0.96078431;stroke:#000000;stroke-opacity:1"
|
||||
|
|
@ -1343,18 +1445,18 @@
|
|||
ry="41.688072" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:60px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="1214.3673"
|
||||
y="-83.88031"
|
||||
id="text13014-3-2"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
id="text13014-3-2"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan13016-8-24"
|
||||
x="1214.3673"
|
||||
y="-83.88031">A</tspan></text>
|
||||
y="-83.88031"
|
||||
style="font-size:60px;line-height:1.25">A</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(1.0391049,0,0,1.0391049,153.5073,-13.95573)"
|
||||
transform="matrix(1.0391049,0,0,1.0391049,55.917395,-13.95573)"
|
||||
id="g6012">
|
||||
<ellipse
|
||||
style="display:inline;fill:none;fill-opacity:0.96078431;stroke:#000000;stroke-opacity:1"
|
||||
|
|
@ -1365,18 +1467,18 @@
|
|||
ry="41.688072" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:60px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="1416.0703"
|
||||
y="-83.88031"
|
||||
id="text13014-3-2-2"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
id="text13014-3-2-2"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan13016-8-24-7"
|
||||
x="1416.0703"
|
||||
y="-83.88031">B</tspan></text>
|
||||
y="-83.88031"
|
||||
style="font-size:60px;line-height:1.25">B</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(1.0391049,0,0,1.0391049,85.226648,115.1877)"
|
||||
transform="matrix(1.0391049,0,0,1.0391049,-12.363309,115.1877)"
|
||||
id="g6006-9"
|
||||
style="display:inline">
|
||||
<ellipse
|
||||
|
|
@ -1388,18 +1490,18 @@
|
|||
ry="41.688072" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:60px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="1214.3673"
|
||||
y="-83.88031"
|
||||
id="text13014-3-2-9"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
id="text13014-3-2-9"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan13016-8-24-1"
|
||||
x="1214.3673"
|
||||
y="-83.88031">A</tspan></text>
|
||||
y="-83.88031"
|
||||
style="font-size:60px;line-height:1.25">A</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(1.0391049,0,0,1.0391049,153.5073,115.1877)"
|
||||
transform="matrix(1.0391049,0,0,1.0391049,55.917395,115.1877)"
|
||||
id="g6012-2"
|
||||
style="display:inline">
|
||||
<ellipse
|
||||
|
|
@ -1411,18 +1513,18 @@
|
|||
ry="41.688072" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:60px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="1416.0703"
|
||||
y="-83.88031"
|
||||
id="text13014-3-2-2-4"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
id="text13014-3-2-2-4"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan13016-8-24-7-1"
|
||||
x="1416.0703"
|
||||
y="-83.88031">B</tspan></text>
|
||||
y="-83.88031"
|
||||
style="font-size:60px;line-height:1.25">B</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(1.0391049,0,0,1.0391049,85.226648,244.33109)"
|
||||
transform="matrix(1.0391049,0,0,1.0391049,-12.363309,244.33109)"
|
||||
id="g6006-7"
|
||||
style="display:inline">
|
||||
<ellipse
|
||||
|
|
@ -1434,18 +1536,18 @@
|
|||
ry="41.688072" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:60px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="1214.3673"
|
||||
y="-83.88031"
|
||||
id="text13014-3-2-5"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
id="text13014-3-2-5"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan13016-8-24-74"
|
||||
x="1214.3673"
|
||||
y="-83.88031">A</tspan></text>
|
||||
y="-83.88031"
|
||||
style="font-size:60px;line-height:1.25">A</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(1.0391049,0,0,1.0391049,153.5073,244.33109)"
|
||||
transform="matrix(1.0391049,0,0,1.0391049,55.917395,244.33109)"
|
||||
id="g6012-5"
|
||||
style="display:inline">
|
||||
<ellipse
|
||||
|
|
@ -1457,15 +1559,15 @@
|
|||
ry="41.688072" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:60px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="1416.0703"
|
||||
y="-83.88031"
|
||||
id="text13014-3-2-2-42"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
id="text13014-3-2-2-42"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan13016-8-24-7-6"
|
||||
x="1416.0703"
|
||||
y="-83.88031">B</tspan></text>
|
||||
y="-83.88031"
|
||||
style="font-size:60px;line-height:1.25">B</tspan></text>
|
||||
</g>
|
||||
<path
|
||||
inkscape:connection-end="#g6012"
|
||||
|
|
@ -1473,11 +1575,11 @@
|
|||
inkscape:connector-curvature="0"
|
||||
inkscape:connector-type="polyline"
|
||||
id="path6523"
|
||||
d="m 1442.1925,-123.84152 130.2691,0"
|
||||
d="m 1270.8015,-123.84152 h 204.0702"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.03910494px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6531)" />
|
||||
<flowRoot
|
||||
transform="matrix(1.0391049,0,0,1.0391049,57.588285,36.56661)"
|
||||
style="font-style:normal;font-weight:normal;font-size:30px;line-height:125%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
transform="matrix(1.0391049,0,0,1.0391049,-40.001671,36.56661)"
|
||||
style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="flowRoot6883"
|
||||
xml:space="preserve"><flowRegion
|
||||
id="flowRegion6885"><rect
|
||||
|
|
@ -1487,9 +1589,10 @@
|
|||
height="87.204422"
|
||||
width="261.61331"
|
||||
id="rect6887" /></flowRegion><flowPara
|
||||
id="flowPara6889">B is a fork of A</flowPara></flowRoot> <flowRoot
|
||||
transform="matrix(1.0391049,0,0,1.0391049,58.676607,146.22683)"
|
||||
style="font-style:normal;font-weight:normal;font-size:30px;line-height:125%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="flowPara6889"
|
||||
style="font-size:30px;line-height:1.25">B is a fork of A</flowPara></flowRoot> <flowRoot
|
||||
transform="matrix(1.0391049,0,0,1.0391049,-38.913349,146.22683)"
|
||||
style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="flowRoot6883-4"
|
||||
xml:space="preserve"><flowRegion
|
||||
id="flowRegion6885-3"><rect
|
||||
|
|
@ -1499,13 +1602,14 @@
|
|||
height="87.204422"
|
||||
width="261.61331"
|
||||
id="rect6887-9" /></flowRegion><flowPara
|
||||
id="flowPara6889-4">A has been renamed to B</flowPara></flowRoot> <path
|
||||
id="flowPara6889-4"
|
||||
style="font-size:30px;line-height:1.25">A has been renamed to B</flowPara></flowRoot> <path
|
||||
inkscape:connection-end="#g6012-2"
|
||||
inkscape:connection-start="#g6006-9"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connector-type="polyline"
|
||||
id="path6921"
|
||||
d="m 1442.1925,5.3019129 130.2691,0"
|
||||
d="m 1344.6025,5.3019129 h 130.2692"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.03910494px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker6929)" />
|
||||
<path
|
||||
inkscape:connection-end="#g6012-5"
|
||||
|
|
@ -1513,11 +1617,11 @@
|
|||
inkscape:connector-curvature="0"
|
||||
inkscape:connector-type="polyline"
|
||||
id="path7257"
|
||||
d="m 1442.1925,134.4453 130.2691,0"
|
||||
d="m 1344.6025,134.4453 h 130.2692"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.03910494;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6.2346294, 6.2346294;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker7265)" />
|
||||
<flowRoot
|
||||
transform="translate(0,22)"
|
||||
style="font-style:normal;font-weight:normal;font-size:31.1731472px;line-height:125%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
transform="translate(-97.589955,22)"
|
||||
style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="flowRoot6883-5"
|
||||
xml:space="preserve"><flowRegion
|
||||
id="flowRegion6885-1"><rect
|
||||
|
|
@ -1527,221 +1631,116 @@
|
|||
height="90.61454"
|
||||
width="271.84369"
|
||||
id="rect6887-7" /></flowRegion><flowPara
|
||||
id="flowPara6889-9">B shares some code with A</flowPara></flowRoot> <ellipse
|
||||
id="flowPara6889-9"
|
||||
style="font-size:31.1731472px;line-height:1.25">B shares some code with A</flowPara></flowRoot> <ellipse
|
||||
ry="43.318279"
|
||||
rx="73.801056"
|
||||
cy="541.51416"
|
||||
cx="1368.3915"
|
||||
cx="1270.8013"
|
||||
id="path3344-2-6-4-5-21-9-2-0-7-9"
|
||||
style="display:inline;fill:#55ddff;fill-opacity:0.96078431;stroke:#000000;stroke-width:4.15641975;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<ellipse
|
||||
ry="43.318279"
|
||||
rx="73.801056"
|
||||
cy="669.81055"
|
||||
cx="1368.3915"
|
||||
cx="1270.8013"
|
||||
id="path3344-2-6-4-5-21-9-2-0-7-9-7"
|
||||
style="display:inline;fill:#55ddff;fill-opacity:0.96078431;stroke:#000000;stroke-width:4.15641975;stroke-miterlimit:4;stroke-dasharray:24.9385176, 24.9385176;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<ellipse
|
||||
ry="43.318279"
|
||||
rx="73.801056"
|
||||
cy="798.10706"
|
||||
cx="1368.3915"
|
||||
cx="1270.8013"
|
||||
id="path3344-2-6-4-5-21-9-2-0-7-9-2"
|
||||
style="display:inline;fill:#55ddff;fill-opacity:0.96078431;stroke:none;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text7109"
|
||||
y="554.41418"
|
||||
x="1501.5385"
|
||||
style="font-style:normal;font-weight:normal;font-size:46.75971985px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="1403.9482"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="554.41418"
|
||||
x="1501.5385"
|
||||
x="1403.9482"
|
||||
id="tspan7111"
|
||||
sodipodi:role="line">ANSI compliant</tspan></text>
|
||||
sodipodi:role="line"
|
||||
style="font-size:46.75971985px;line-height:1.25">ANSI compliant</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text7109-8"
|
||||
y="653.48584"
|
||||
x="1501.5385"
|
||||
style="font-style:normal;font-weight:normal;font-size:46.75971985px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="1403.9482"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="653.48584"
|
||||
x="1501.5385"
|
||||
x="1403.9482"
|
||||
id="tspan7111-3"
|
||||
sodipodi:role="line">Working towards</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
style="font-size:46.75971985px;line-height:1.25">Working towards</tspan><tspan
|
||||
id="tspan7139"
|
||||
y="711.93549"
|
||||
x="1501.5385"
|
||||
sodipodi:role="line">ANSI compliance</tspan></text>
|
||||
x="1403.9482"
|
||||
sodipodi:role="line"
|
||||
style="font-size:46.75971985px;line-height:1.25">ANSI compliance</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text7109-7-7"
|
||||
y="783.56317"
|
||||
x="1499.3237"
|
||||
style="font-style:normal;font-weight:normal;font-size:46.75971985px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="1401.7335"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
id="tspan7174"
|
||||
y="783.56317"
|
||||
x="1499.3237"
|
||||
sodipodi:role="line">Other (no info or</tspan><tspan
|
||||
x="1401.7335"
|
||||
sodipodi:role="line"
|
||||
style="font-size:46.75971985px;line-height:1.25">Other (no info or</tspan><tspan
|
||||
id="tspan7178"
|
||||
y="842.01282"
|
||||
x="1499.3237"
|
||||
sodipodi:role="line">obsolete)</tspan></text>
|
||||
x="1401.7335"
|
||||
sodipodi:role="line"
|
||||
style="font-size:46.75971985px;line-height:1.25">obsolete)</tspan></text>
|
||||
<flowRoot
|
||||
style="font-style:normal;font-weight:normal;font-size:23.37985992px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="flowRoot5149"
|
||||
xml:space="preserve"><flowRegion
|
||||
xml:space="preserve"
|
||||
transform="translate(-97.589955)"><flowRegion
|
||||
id="flowRegion5151"><rect
|
||||
y="902.73718"
|
||||
x="1673.5295"
|
||||
height="29.968004"
|
||||
width="343.26965"
|
||||
id="rect5153" /></flowRegion><flowPara
|
||||
id="flowPara5155">(C) 2016 Daniel Kochmański</flowPara></flowRoot> <text
|
||||
sodipodi:linespacing="125%"
|
||||
id="flowPara5155"
|
||||
style="font-size:23.37985992px;line-height:1.25">(C) 2020 Daniel Kochmański</flowPara></flowRoot> <text
|
||||
id="text5157"
|
||||
y="926.70251"
|
||||
x="1281.2216"
|
||||
style="font-style:normal;font-weight:normal;font-size:23.37985992px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="1183.6313"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="926.70251"
|
||||
x="1281.2216"
|
||||
x="1183.6313"
|
||||
id="tspan5159"
|
||||
sodipodi:role="line">CC-BY-4.0</tspan></text>
|
||||
sodipodi:role="line"
|
||||
style="font-size:23.37985992px;line-height:1.25">CC-BY-4.0</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text7109-5"
|
||||
y="430.64981"
|
||||
x="1497.3146"
|
||||
style="font-style:normal;font-weight:normal;font-size:46.75971985px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="1399.7244"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="430.64981"
|
||||
x="1497.3146"
|
||||
x="1399.7244"
|
||||
id="tspan7111-6"
|
||||
sodipodi:role="line">Maintained</tspan></text>
|
||||
sodipodi:role="line"
|
||||
style="font-size:46.75971985px;line-height:1.25">Maintained</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text7109-5-5"
|
||||
y="302.3533"
|
||||
x="1497.3146"
|
||||
style="font-style:normal;font-weight:normal;font-size:46.75971985px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="1399.7244"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
xml:space="preserve"><tspan
|
||||
y="302.3533"
|
||||
x="1497.3146"
|
||||
x="1399.7244"
|
||||
id="tspan7111-6-2"
|
||||
sodipodi:role="line">Obsolete</tspan></text>
|
||||
sodipodi:role="line"
|
||||
style="font-size:46.75971985px;line-height:1.25">Obsolete</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="arrows"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker8002)"
|
||||
d="m 113.10858,278.41467 -177.398615,0"
|
||||
id="path7994"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-start="#path3344"
|
||||
inkscape:connection-end="#path3344-2-6-4-5-27" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker8280)"
|
||||
d="M 122.64085,298.40528 -73.184071,362.06717"
|
||||
id="path8272"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-start="#path3344"
|
||||
inkscape:connection-end="#path3344-2-6-4-5-3" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker9124)"
|
||||
d="M 164.45282,316.80092 97.329718,447.72961"
|
||||
id="path9116"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-start="#path3344"
|
||||
inkscape:connection-end="#path3344-4" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker9086)"
|
||||
d="m 203.81171,316.80092 67.1231,130.92869"
|
||||
id="path9356"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-start="#path3344"
|
||||
inkscape:connection-end="#path3344-1" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker9610);marker-end:url(#marker9866)"
|
||||
d="m 148.67394,486.11586 70.91663,0"
|
||||
id="path9602"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-start="#path3344-4"
|
||||
inkscape:connection-end="#path3344-1" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker10130)"
|
||||
d="m 77.650269,526.06668 0,231.65005"
|
||||
id="path10122"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-start="#path3344-4"
|
||||
inkscape:connection-end="#path3344-48" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker7518)"
|
||||
d="m 316.10356,731.10609 55.50338,81.19764"
|
||||
id="path10680"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-end="#path3344-1-2"
|
||||
inkscape:connection-start="#path3344-5" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker10994)"
|
||||
d="M 343.43187,875.76195 131.31465,979.19961"
|
||||
id="path10986"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-start="#path3344-1-2"
|
||||
inkscape:connection-end="#path3344-8" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker7577);marker-end:url(#marker9836)"
|
||||
d="M 450.76063,875.76195 662.87787,979.19961"
|
||||
id="path11274"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-end="#path3344-57"
|
||||
inkscape:connection-start="#path3344-1-2" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker9330)"
|
||||
d="m 517.04856,317.63962 79.54138,231.62102"
|
||||
id="path6361"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-start="#path3344-7"
|
||||
inkscape:connection-end="#path3344-6" />
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker8848)"
|
||||
d="M 496.17116,318.14688 404.50333,809.86064"
|
||||
id="path6669"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-end="#path3344-1-2"
|
||||
inkscape:connection-start="#path3344-7" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker8348)"
|
||||
d="m 290.61426,526.06668 0,127.79948"
|
||||
id="path8340"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-start="#g7505"
|
||||
inkscape:connection-end="#g7889" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5551)"
|
||||
d="m 6.6265816,486.11586 -70.9166226,0"
|
||||
id="path5543"
|
||||
inkscape:connector-type="polyline"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-start="#g7497"
|
||||
inkscape:connection-end="#g7013" />
|
||||
</g>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 75 KiB |
|
|
@ -3,31 +3,53 @@
|
|||
|
||||
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.
|
||||
@ref{fig:hierarchy}.
|
||||
|
||||
@float Figure,fig:hierarchy
|
||||
@caption{ECL's family tree}
|
||||
@image{figures/kcl-hierarchy,,4.5in}
|
||||
@end float
|
||||
|
||||
The KCL implementation remained a proprietary 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 proprietary 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.
|
||||
The oldest ancestor is the Kyoto Common Lisp (KCL), an implementation
|
||||
developed in 1984 at the the Research Institute for Mathematical
|
||||
Sciences, Kyoto University @bibcite{Yasa:85} 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.
|
||||
|
||||
Around the 90's, Giuseppe 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.
|
||||
Richard W. Weyhrauch in 1985 founded a company Ibuki to sell its
|
||||
version of KCL called Ibuki Common Lisp (IBCL) in the USA.
|
||||
|
||||
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).
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
@c https://www.hpl.hp.com/hpjournal/95oct/oct95.htm
|
||||
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.
|
||||
|
||||
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@bibcite{Attardi:95}. 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 @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
|
||||
|
|
@ -42,22 +64,24 @@ 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
|
||||
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.
|
||||
|
||||
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.
|
||||
took the position of a maintainer with consent of Juanjo
|
||||
García-Ripoll. In 2020 Marius Gerbershagen became the project
|
||||
co-maintainer.
|
||||
|
||||
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/}.
|
||||
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 @uref{https://common-lisp.net/project/ecl/}.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue