Diff of /preface.xmlf [f587e9] .. [9e7c20] Maximize Restore

  Switch to unified view

a/preface.xmlf b/preface.xmlf
1
<?xml version="1.0" encoding="utf-8"?>
1
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
2
<!DOCTYPE preface [
2
<book lang="en">
3
<!ENTITY % eclent SYSTEM "ecl.ent">
4
%eclent;
5
]>
6
<book xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en">
7
<preface xml:id="preface">
3
<preface id="preface">
8
 <title>Preface</title>
4
 <title>Preface</title>
9
5
10
 <section xml:id="preface.words">
6
 <section id="preface.words">
11
  <title>About this book</title>
7
  <title>About this book</title>
12
8
13
  <para>This manual is part of the &ECL; software system. It documents
9
  <para>This manual is part of the &ECL; software system. It documents
14
  deviations of &ECL; from various standards (&ANSI;, &AMOP;,...), extensions,
10
  deviations of &ECL; from various standards (&ANSI;, &AMOP;,...), extensions,
15
  daily working process (compiling files, loading sources, creating programs,
11
  daily working process (compiling files, loading sources, creating programs,
...
...
37
  want to learn how &ECL; does its work and wish to extend it, customize it or
33
  want to learn how &ECL; does its work and wish to extend it, customize it or
38
  port it to new architectures. This part of the documentation is the most
34
  port it to new architectures. This part of the documentation is the most
39
  fragile one and prone to change.</para>
35
  fragile one and prone to change.</para>
40
 </section>
36
 </section>
41
37
42
 <section xml:id="preface.what.is.ecl">
38
 <section id="preface.what.is.ecl">
43
  <title>What is &ECL;?</title>
39
  <title>What is &ECL;?</title>
44
40
45
  <para>&CommonLisp; is a general purpose programming language. It lays its
41
  <para>&CommonLisp; is a general purpose programming language. It lays its
46
  roots in the <acronym>LISP</acronym> programming language <xref
42
  roots in the <acronym>LISP</acronym> programming language <xref
47
  linkend="bib.LISP1.5"/> developed by John McCarthy in the 80s. &CommonLisp;
43
  linkend="bib.LISP1.5"/> developed by John McCarthy in the 80s. &CommonLisp;
...
...
75
  aim of &ECL; is now to achieve maximum compliance with ANSI
71
  aim of &ECL; is now to achieve maximum compliance with ANSI
76
  Common-Lisp, the most up to date standard for Common-Lisp.</para>
72
  Common-Lisp, the most up to date standard for Common-Lisp.</para>
77
73
78
 </section>
74
 </section>
79
75
80
 <section xml:id="preface.history">
76
 <section id="preface.history">
81
  <title>History</title>
77
  <title>History</title>
82
78
83
  <para><figure float="1" xml:id="fig.family-tree">
79
  <para><figure float="1" id="fig.family-tree">
84
   <title>ECL's family tree</title>
80
   <title>ECL's family tree</title>
85
   <mediaobject>
81
   <mediaobject>
86
    <imageobject>
82
    <imageobject>
87
     <imagedata align="center" fileref="figures/hierarchy.png"
83
     <imagedata align="center" fileref="figures/hierarchy.png"
88
        format="PNG" width="300px"/>
84
        format="PNG" width="300px"/>
...
...
120
  and some C quirks made it difficult to port it to new platforms. Furthermore,
116
  and some C quirks made it difficult to port it to new platforms. Furthermore,
121
  &ECL; was not compliant with the <acronym>ANSI</acronym> specification, a
117
  &ECL; was not compliant with the <acronym>ANSI</acronym> specification, a
122
  goal that other Common Lisps were struggling to achieve.</para>
118
  goal that other Common Lisps were struggling to achieve.</para>
123
119
124
  <para>This is where the <acronym>ECLS</acronym> or
120
  <para>This is where the <acronym>ECLS</acronym> or
125
  <acronym>ECL</acronym>-Spain project began. Juanjo García-Ripoll took
121
  <acronym>ECL</acronym>-Spain project began. Juanjo Garc&iacute;a-Ripoll took
126
  the ECoLisp sources and worked on them, with some immediate goals in mind:
122
  the ECoLisp sources and worked on them, with some immediate goals in mind:
127
  increase portability, make the code 64-bit clean, make it able to build
123
  increase portability, make the code 64-bit clean, make it able to build
128
  itself from scratch, without other implementation of &CommonLisp; and restore
124
  itself from scratch, without other implementation of &CommonLisp; and restore
129
  the ability to link &ECL; with other C programs.</para>
125
  the ability to link &ECL; with other C programs.</para>
130
126
...
...
139
  in many different aspects, from pointing out bugs and incompatibilities of
135
  in many different aspects, from pointing out bugs and incompatibilities of
140
  &ECL; with other programs and specifications, to actually solving these bugs
136
  &ECL; with other programs and specifications, to actually solving these bugs
141
  and porting &ECL; to new platforms.</para>
137
  and porting &ECL; to new platforms.</para>
142
138
143
  <para>Currently, development of &ECL; is still driven by Juanjo
139
  <para>Currently, development of &ECL; is still driven by Juanjo
144
  García-Ripoll with the help of Michael Goffioul in the Windows
140
  Garc&iacute;a-Ripoll with the help of Michael Goffioul in the Windows
145
  port. The project homepage is located at <ulink
141
  port. The project homepage is located at <ulink
146
  url="http://ecls.sourceforge.net"><uri>http://ecls.sourceforge.net</uri></ulink>,
142
  url="http://ecls.sourceforge.net"><uri>http://ecls.sourceforge.net</uri></ulink>,
147
  and there is a mailing list where questions, bug reports and other
143
  and there is a mailing list where questions, bug reports and other
148
  discussions may be carried out.</para>
144
  discussions may be carried out.</para>
149
 </section>
145
 </section>
150
146
151
 <section xml:id="Copyright.ECL">
147
 <section id="Copyright">
152
  <title>Copyright of ECL</title>
148
  <title>Copyright</title>
153
149
154
  <para>&ECL; is distributed under the GNU LGPL, which allows for commercial
150
  <para>&ECL; is distributed under the GNU LGPL, which allows for commercial
155
  uses of the software. A more precise description is given in the Copyright
151
  uses of the software. A more precise description is given in the Copyright
156
  notice which is shipped with &ECL;.</para>
152
  notice which is shipped with &ECL;.</para>
157
153
158
<programlisting>
154
<screen>
159
---- BEGINNING OF COPYRIGHT FOR THE ECL CORE ENVIRONMENT ------------
155
---- BEGINNING OF COPYRIGHT FOR THE ECL CORE ENVIRONMENT ------------
160
156
161
  Copyright (c) 2000, Juan Jose Garcia Ripoll
157
  Copyright (c) 2000, Juan Jose Garcia Ripoll
162
  Copyright (c) 1990, 1991, 1993 Giuseppe Attardi
158
  Copyright (c) 1990, 1991, 1993 Giuseppe Attardi
163
  Copyright (c) 1984 Taiichi Yuasa and Masami Hagiya
159
  Copyright (c) 1984 Taiichi Yuasa and Masami Hagiya
...
...
190
  files.
186
  files.
191
187
192
  Report bugs, comments, suggestions to the ecl mailing list:
188
  Report bugs, comments, suggestions to the ecl mailing list:
193
  ecls-list@lists.sourceforge.net.
189
  ecls-list@lists.sourceforge.net.
194
190
195
---- END OF COPYRIGHT FOR THE ECL CORE ENVIRONMENT ------------------</programlisting>
191
---- END OF COPYRIGHT FOR THE ECL CORE ENVIRONMENT ------------------
196
 </section>
192
</screen>
197
198
 <section xml:id="Copyright.Manual">
199
  <title>Copyright of this manual</title>
200
201
  <para>Copyright: Juan José García-Ripoll, 2006.</para>
202
203
  <para>Copyright: Kevin M. Rosenberg 2002-2003, (UFFI Reference)</para>
204
205
  <itemizedlist>
206
   <listitem><para>&ACL; is a registered trademark of Franz Inc.</para></listitem>
207
   <listitem><para>&LW; is a registered trademark of Xanalys Inc.</para></listitem>
208
   <listitem><para><productname>Microsoft Windows</productname> is a registered
209
   trademark of Microsoft Inc.</para></listitem>
210
   <listitem><para>Other brand or product names are the registered trademarks
211
   or trademarks of their respective holders.</para></listitem>
212
  </itemizedlist>
213
214
  <para>Permission is granted to copy, distribute and/or modify this document
215
  under the terms of the GNU Free Documentation License, Version 1.1 or any
216
  later version published by the Free Software Foundation; with no Invariant
217
  Sections, with the no Front-Cover Texts, and with no Back-Cover Texts.  A
218
  copy of the license is shown below.</para>
219
220
  <programlisting>
221
   &GFDL;</programlisting>
222
223
 </section>
224
225
 <section xml:id="preface.installation">
226
  <title>Installation</title>
227
228
  <para>The following sections describe which machines are supported by &ECL;,
229
  how to build and install it on them. You should read at least <xref
230
  linkend="preface.platforms"/> and in particular <xref linkend="table.ports"/>
231
  which details the other sections containing installation instructions for
232
  your platform.</para>
233
234
  <section xml:id="preface.platforms">
235
   <title>Supported platforms</title>
236
237
   <table xml:id="table.ports">
238
    <title>Supported platforms</title>
239
    <tgroup cols="3">
240
     <thead>
241
      <row>
242
       <entry>Architecture</entry>
243
       <entry>Operating system</entry>
244
       <entry>Toolchain</entry>
245
       <entry>Tested<footnote><para>YES means that a dedicated machine regularly builds and tests &ECL; on this platform.</para></footnote></entry>
246
      </row>
247
     </thead>
248
     <tbody>
249
      <row>
250
       <entry>x86 <footnote xml:id="note.x86"><para>Intel 32 bit processors
251
       (Pentium, Pentium II, Pentium 3, Pentium 4) and AMD
252
       clones</para></footnote>
253
       </entry>
254
       <entry>Linux</entry>
255
       <entry><link linkend="preface.autoconf">Autoconf</link></entry>
256
       <entry>YES</entry>
257
      </row>
258
      <row>
259
       <entry>x86_64<footnote xml:id="note.amd"><para>AMD and Intel processors with
260
       64 bit extensions.</para></footnote></entry>
261
       <entry>Linux</entry>
262
       <entry><link linkend="preface.autoconf">Autoconf</link></entry>
263
       <entry>YES</entry>
264
      </row>
265
      <row>
266
       <entry>PPC</entry>
267
       <entry>Linux</entry>
268
       <entry><link linkend="preface.autoconf">Autoconf</link></entry>
269
       <entry>YES</entry>
270
      </row>
271
      <row>
272
       <entry>Itanium</entry>
273
       <entry>Linux</entry>
274
       <entry><link linkend="preface.autoconf">Autoconf</link></entry>
275
       <entry>YES</entry>
276
      </row>
277
      <row>
278
       <entry>x86</entry>
279
       <entry>FreeBSD</entry>
280
       <entry><link linkend="preface.autoconf">Autoconf</link></entry>
281
       <entry>YES</entry>
282
      </row>
283
      <row>
284
       <entry>x86</entry>
285
       <entry><link linkend="preface.bsd">OpenBSD</link></entry>
286
       <entry><link linkend="preface.autoconf">Autoconf</link></entry>
287
       <entry>YES</entry>
288
      </row>
289
      <row>
290
       <entry>x86</entry>
291
       <entry><link linkend="preface.bsd">NetBSD</link></entry>
292
       <entry><link linkend="preface.autoconf">Autoconf</link></entry>
293
       <entry>YES</entry>
294
      </row>
295
      <row>
296
       <entry>x86</entry>
297
       <entry>Windows XP, Vista, 7</entry>
298
       <entry><link linkend="preface.msvc">Microsoft compilers</link></entry>
299
       <entry>YES</entry>
300
      </row>
301
      <row>
302
       <entry>x86</entry>
303
       <entry>Windows XP, Vista, 7</entry>
304
       <entry><link linkend="preface.autoconf">&cygwin;</link></entry>
305
       <entry>YES</entry>
306
      </row>
307
      <row>
308
       <entry>x86</entry>
309
       <entry>Windows XP, Vista, 7</entry>
310
       <entry><link linkend="preface.autoconf">&mingw; and Msys tools</link></entry>
311
       <entry>YES</entry>
312
      </row>
313
      <row>
314
       <entry>x86</entry>
315
       <entry>OS X Tiger</entry>
316
       <entry><link linkend="preface.autoconf">Autoconf</link></entry>
317
       <entry>YES</entry>
318
      </row>
319
      <row>
320
       <entry>x86_64</entry>
321
       <entry>OS X Tiger</entry>
322
       <entry><link linkend="preface.autoconf">Autoconf</link></entry>
323
       <entry>YES</entry>
324
      </row>
325
      <row>
326
       <entry>x86</entry>
327
       <entry>Solaris</entry>
328
       <entry><link linkend="preface.autoconf">Autoconf</link></entry>
329
       <entry>YES</entry>
330
      </row>
331
      <row>
332
       <entry>x86_64</entry>
333
       <entry>Solaris</entry>
334
       <entry><link linkend="preface.autoconf">Autoconf</link></entry>
335
       <entry>YES</entry>
336
      </row>
337
      <row>
338
       <entry>Sparc</entry>
339
       <entry>Solaris</entry>
340
       <entry><link linkend="preface.autoconf">Autoconf</link></entry>
341
       <entry>YES</entry>
342
      </row>
343
     </tbody>
344
    </tgroup>
345
   </table>
346
   
347
   <para>In <xref linkend="table.ports"/> we show the operating systems in
348
   which ECL is known to run and where it is regularly tested. Note that ECL
349
   might successfully build on other platforms, and that porting is relatively
350
   easy. We regularly get reports on ECL being built on other platforms (ARM,
351
   Motorola 68x, Sparc, etc), so the best thing is to try yourself.</para>
352
353
  </section>
193
 </section>
354
194
355
  <section xml:id="preface.autoconf">
356
   <title>Autoconf based configuration</title>
357
358
   <para>&ECL;, like many other free programs, can be built and installed a GNU
359
   tool called Autoconf. This is a set of automatically generated scripts that
360
   detect the features of your machine, such as the compiler type, existing
361
   libraries, desired installation path, and configures &ECL; accordingly. The
362
   following procedure describes how to build &ECL; using this procedure and it
363
   applies to all platforms except for the Windows ports.</para>
364
365
   <procedure>
366
    <step>
367
     <para>Unpack the tar file</para>
368
     <screen>$ gunzip -c ecl-0.9i.tgz | tar xf -</screen>
369
    </step>
370
    <step><para>Choose a directory in which you will install &ECL;. Following
371
    the Unix covention we will use
372
    <filename>/usr/local</filename></para></step>
373
    <step>
374
     <para>Run the configuration file
375
     <screen>$ cd ecl-0.9i
376
     $ ./configure --prefix=/usr/local</screen>
377
     If you are building under Solaris 9 you should replace the last line with
378
     <screen>$ ./configure --enable-slow-config --with-system-gmp=no \
379
     --prefix=/usr/local</screen>
380
     By now you should have a directory with the name
381
     <filename>build</filename> and a bunch of makefiles inside it.</para>
382
    </step>
383
    <step>
384
     <para>Use GNU make to begin building ECL. Normally this amounts to
385
     invoking
386
     <screen>$ make</screen>
387
     from the command line.</para>
388
    </step>
389
    <step>
390
     <para>Install the program using
391
     <screen>$ make install</screen>
392
     </para>
393
    </step>
394
    <step>
395
     <para>Make sure the program is installed and ready to run
396
     <screen>$ /usr/local/ecl
397
     ECL (Embeddable Common-Lisp) 0.9i
398
     Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya
399
     Copyright (C) 1993 Giuseppe Attardi
400
     Copyright (C) 2000 Juan J. Garcia-Ripoll
401
     ECL is free software, and you are welcome to redistribute it
402
     under certain conditions; see file 'Copyright' for details.
403
     Type :h for Help.  Broken at EVAL.
404
     &gt; </screen>
405
     </para>
406
    </step>
407
   </procedure>
408
409
  </section>
410
411
  <section xml:id="preface.osdep">
412
   <title>Platform specific instructions</title>
413
414
   <section xml:id="preface.msvc">
415
    <title>Microsoft compilers</title>
416
417
    <para>If you have a commercial version of Microsoft Visual Studio, the
418
    steps are simple:</para>
419
    <procedure>
420
     <step><para>Change to the <code>msvc</code> directory.</para></step>
421
422
     <step><para>Run <code>nmake</code> to build ECL.</para></step>
423
424
     <step><para>Run <code>nmake install prefix=d:\Software\ECL</code>
425
     where the <code>prefix</code> is the directory where you want to install
426
     ECL.</para></step>
427
428
     <step><para>Optionally, if you want to build a self-installing
429
     executable, you can install <ulink
430
     url="http://nsis.sourceforge.net">NSIS</ulink> and run <code>nmake
431
     windows-nsi</code>.</para></step>
432
    </procedure>
433
434
    <para>If you want to build ECL using the free Microsoft Visual Studio
435
    Express 2010 or better, you should follow these before building ECL as
436
    sketched before:</para>
437
    <procedure>
438
     <step><para>Download and install <ulink
439
     url="http://www.microsoft.com/express/">Microsoft Visual Studio
440
     C++ Compiler</ulink>.</para></step>
441
442
     <step><para>Download and install the <ulink
443
     url="http://msdn.microsoft.com/en-us/windows/bb980924">Windows
444
     SDK</ulink></para></step>
445
446
     <step><para>Open the Windows SDK terminal, which will set up the
447
     appropriate paths and environment variables.</para>
448
     </step>
449
    </procedure>
450
   </section>
451
452
   <section xml:id="preface.bsd">
453
    <title>OpenBSD and NetBSD</title>
454
455
    <para>Before following the instructions in <xref linkend="preface.autoconf"/> you should install the following packages: <application>boehm-gc</application> and <application>gmp-4.1</application> or better. Another component, <application>libffi</application> will be needed if you want to use the <link linkend="ext.ffi">dynamic foreign interface</link>.</para>
456
   </section>
457
458
  </section>
459
 </section>
460
</preface>
195
</preface>
461
</book>
196
</book>
462
<!-- Keep this comment at the end of the file
197
<!-- Keep this comment at the end of the file
463
      Local variables:
198
      Local variables:
464
      mode: nxml
199
      mode: nxml