~ubuntu-branches/ubuntu/quantal/gclcvs/quantal

« back to all changes in this revision

Viewing changes to RELEASE-2.5.1

  • Committer: Bazaar Package Importer
  • Author(s): Camm Maguire
  • Date: 2004-06-24 15:13:46 UTC
  • Revision ID: james.westby@ubuntu.com-20040624151346-xh0xaaktyyp7aorc
Tags: 2.7.0-26
C_GC_OFFSET is 2 on m68k-linux

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
RELEASE NOTES FOR 2.5.1:
 
2
========================
 
3
The GNU Common Lisp (GCL) development team is pleased to release
 
4
Version 2.5.1, the first major release since the untimely death of the
 
5
former maintainer Dr William Schelter over a year ago.  This release
 
6
is dedicated to his memory.  The project is now hosted on
 
7
http://savannah.gnu.org/projects/gcl/ and is maintained and developed
 
8
by a team of thirteen programmers.  Our home page lives at
 
9
http://www.gnu.org/software/gcl/.
 
10
 
 
11
This release stabilizes the CLtL1 compliant build of GCL on most major
 
12
Unices including 11 Debian Linux 64 and 32 bit architectures and modern
 
13
versions of Microsoft Windows (TM).  A rapidly progressing, partially ANSI
 
14
compliant version is also available on the Linux platforms.
 
15
 
 
16
GCL plays a substantial role in development of the Maxima computer
 
17
algebra system (http://maxima.sourceforge.net/), ACL2, a computational
 
18
logic system (http://www.cs.utexas.edu/users/moore/acl2/), and the
 
19
forthcoming public release of the Axiom computer algebra system..  The
 
20
compiler is a descendant of the famous KCL and AKCL Common Lisp
 
21
compilers and is licensed under version two of the GNU Library General
 
22
Public License.
 
23
 
 
24
As with any Lisp system GCL is a lot of fun to work with.  We welcome all
 
25
comments and feedback.   Developers are particularly welcome too.  You will
 
26
find that the project offers a wide variety of challenges on various
 
27
platforms to anyone with an interest in compilers, low level C programming
 
28
or Common Lisp.
 
29
 
 
30
-----
 
31
 
 
32
Features:
 
33
 
 
34
    * Compiles itself, maxima, and acl2, passing all tests, on 11
 
35
        Debian GNU/Linux platforms (i386, sparc, powerpc, s390, ia64, alpha,
 
36
        mips, mipsel, hppa, arm, and m68k), Sparc Solaris, and recent Windows
 
37
        systems.
 
38
 
 
39
    * Compilation to native object code.  Lisp disassembly shows intermediate 
 
40
        C source and native assembler. 
 
41
   
 
42
    * Native code relocation on all supported platforms except alpha, mips, 
 
43
        mipsel, ia64, and hppa. 
 
44
 
 
45
    * Can save its running memory image to a file on all systems where native object 
 
46
        code relocation is supported, thus producing standalone executables.
 
47
 
 
48
    * Compiles Lisp function calls to C function calls with inlined
 
49
        arguments, when function proclamation/declamations are made.
 
50
 
 
51
    * Quite fast, particularly if one pre-allocates memory to be commensurate
 
52
         with that typically available on modern computer systems. (see below)
 
53
 
 
54
    * A foreign function interface as flexible in principle as the C interface.
 
55
 
 
56
    * Socket support via streams
 
57
 
 
58
    * Support for numbers of arbitrary precision via the GNU
 
59
        Multiprecision Library.  If you build GCL on your own system,
 
60
        multiprecision numerical support will make use of ISA extension
 
61
        instructions available on your system for maximum large number
 
62
        performance.
 
63
 
 
64
    * An exact garbage collector with no (known) leaks.
 
65
 
 
66
    * An ANSI mode on Unix systems which passes approximately 97% of
 
67
        the ANSI compliance tests currently developed for the project.
 
68
        On Debian GNU/Linux systems, this mode can be selected by setting the
 
69
        GCL_ANSI environment variable to any non-empty string.  See
 
70
        /usr/share/doc/gcl/test_results on Debian GNU/Linux systems.
 
71
 
 
72
    * An MPI extension for cluster computing support.  See the website for details. 
 
73
 
 
74
    * A long history of leveraging GCC compiler technology for use in
 
75
        production lisp applications.
 
76
 
 
77
-----
 
78
 
 
79
GCL is one of the oldest Lisp systems still in use, and as such has
 
80
served as the basis for large lisp applications when computers were
 
81
much more limited than they are today, particularly in terms of
 
82
available memory.  Considerable effort was therefore made in the past
 
83
to keep the memory image as small as possible.  As of the present
 
84
time, the GCL team has not tuned the default memory allocation scheme
 
85
to be more in line with modern systems.  One can therefore often get
 
86
significant performance increases by preallocating memory, as in for
 
87
example
 
88
 
 
89
(progn
 
90
(si::allocate 'cons 10000 t)
 
91
(si::allocate 'fixnum 200 t)
 
92
(si::allocate 'symbol 100 t)
 
93
(si::allocate-relocatable-pages 2000 t)
 
94
(si::allocate 'cfun 1000 t))
 
95
 
 
96
Optimal values will no doubt vary by application and machine.  One
 
97
user/developer reports effects of the following magnitude when
 
98
using preallocation:
 
99
 
 
100
########
 
101
 
 
102
Take a look on some funny numbers below.  This is time and RAM
 
103
required to compute ratsimp((x+y+z)^300)$ on Linux AthlonXP 2400+.
 
104
For GCL run time is in the form T - G = N, where T is the total
 
105
time as shown by showtime:true; G is total GC tome and N
 
106
is run time without GC.
 
107
 
 
108
Lisp            Time            RAM      RAM    RAM
 
109
                 [sec]          before    max   after
 
110
              T  -  G  = N       [Mb]    [Mb]    [Mb]
 
111
=====================================================
 
112
 
 
113
CLISP       4.6                 5.5      29      16
 
114
 
 
115
CMUCL       1.6                 6.5      31      31
 
116
 
 
117
GCL class   5.9 - 5.2 = 0.7      8       24      24
 
118
GCL ansi    9.5 - 8.9 = 0.6     9.5      29      29
 
119
 
 
120
GCL class   1.0 - 0.4 = 0.6     24       31      31
 
121
GCL ansi    1.1 - 0.6 = 0.5     25       32      32
 
122
 
 
123
GCL class   0.7 - 0.1 = 0.6     48       55      55
 
124
GCL ansi    0.5 - 0.0 = 0.5     49       56      56
 
125
 
 
126
====================================================
 
127
 
 
128
########
 
129
 
 
130
 
 
131
TO DO:
 
132
 
 
133
        1) Full ANSI compliance
 
134
        2) Native optimized blas support
 
135
        3) Integrate MPI support
 
136
        4) GCL as a suported GCC front end.
 
137
        5) Performance/memory optimization
 
138