The normal post-release changes.
[bpt/guile.git] / README
CommitLineData
c484bf7f 1This is a nightly snapshot of Guile, a portable, embeddable Scheme
9518bec3
JB
2implementation written in C. Guile provides a machine independent
3execution platform that can be linked in as a library when building
4extensible programs.
7fcc90c4 5
c484bf7f
JB
6About Snapshots ======================================================
7
8Each night, we make the current Guile sources available via anonymous
9FTP. Please keep in mind that these sources are strictly
10experimental; they will usually not be well-tested, and may not even
11compile on some systems. They may contain interfaces which will
12change. They will usually not be of sufficient quality for use by
13people not comfortable hacking the innards of Guile. Caveat!
14
15However, we're providing them anyway for several reasons. We'd like
16to encourage people to get involved in developing Guile. People
17willing to use the bleeding edge of development can get earlier access
18to new, experimental features. Patches submitted relative to recent
19snapshots will be easier for us to evaluate and install, since the
20patch's original sources will be closer to what we're working with.
21And it allows us to start testing features earlier.
22
23Nightly snapshots of the Guile development sources are available via
24anonymous FTP from ftp.red-bean.com, as /pub/guile/guile-core-snap.tar.gz.
25
26Via the web, that's: ftp://ftp.red-bean.com/pub/guile/guile-core-snap.tar.gz
27For getit, that's: ftp.red-bean.com:/pub/guile/guile-core-snap.tar.gz
28
29
9518bec3 30Please send bug reports to bug-guile@prep.ai.mit.edu.
7fcc90c4 31
cf78e9e8
JB
32About This Distribution ==============================================
33
49becc4d
JB
34Building and installing this distribution gives you:
35guile --- a stand-alone interpreter for Guile, usually installed in
cf78e9e8
JB
36 /usr/local/bin. With no arguments, this is a simple
37 interactive Scheme interpreter. It can also be used as an
38 interpreter for script files; see the NEWS file for details.
49becc4d 39libguile.a --- an object library containing the Guile interpreter,
cf78e9e8
JB
40 usually installed in /usr/local/lib. You can use Guile in
41 your own programs by linking against this.
1dfe003f
JB
42libqt.a --- an object library containing the QuickThreads primitives.
43 If you enabled thread support when you configured Guile, you
44 will need to link your code against this too.
49becc4d 45<libguile.h>, <libguile/*.h> --- header files for libguile.a, usually
cf78e9e8 46 installed in /usr/local/include.
0196b30a 47
5c54da76
JB
48
49Interesting files include:
50- INSTALL, which contains instructions on building and installing Guile.
51- NEWS, which describes user-visible changes since the last release of Guile.
52- COPYING, which describes the terms under which you may redistribute
53 Guile, and explains that there is no warranty.
54
55The Guile source tree is laid out as follows:
56
1325feea 57libguile:
cf78e9e8
JB
58 The Guile Scheme interpreter --- both the object library
59 for you to link with your programs, and the executable you can run.
1325feea 60ice-9: Guile's module system, initialization code, and other infrastructure.
0682f7ab 61
cf78e9e8
JB
62qt: A cooperative threads package from Washington University,
63 which Guile can use. If you configure Guile with the
3a629497
JB
64 --with-threads flag, you will need to link against the -lqt
65 library, found in this directory. Qt is under a separate
66 copyright; see `qt/README' for more details.
ee81f9ca 67
1dfe003f
JB
68(The present release doesn't include any documentation; the Guile
69manual is incomplete, and is currently being revised.)
70
4c8980a2 71
3c555f81
JB
72Hacking It Yourself ==================================================
73
74As distributed, Guile needs only an ANSI C compiler and a Unix system
75to compile. However, Guile's makefiles, configuration scripts, and a
76few other files are automatically generated, not written by hand. If
77you want to make changes to the system (which we encourage!) you will
78find it helpful to have the tools we use to develop Guile. They
79are the following:
80
dec4cca9 81Autoconf 2.12 --- a system for automatically generating `configure'
cf78e9e8
JB
82 scripts from templates which list the non-portable features a
83 program would like to use. Available in
84 "ftp://prep.ai.mit.edu/pub/gnu".
3c555f81 85
3628c737 86Automake 1.1p --- a system for automatically generating Makefiles that
cf78e9e8
JB
87 conform to the (rather Byzantine) GNU coding standards. The
88 nice thing is that it takes care of hairy targets like 'make
89 dist' and 'make distclean', and automatically generates
2b272b1e 90 Makefile dependencies. Automake is available in
cf78e9e8 91 "ftp://ftp.cygnus.com/pub/tromey".
3c555f81 92
2b272b1e
JB
93 Before using automake, you may need to copy `threads.m4' and
94 `guile.m4' from the top directory of the Guile core disty to
95 `/usr/local/share/aclocal.
96
c7bb9a97 97libtool 0.9h --- a system for managing the zillion hairy options needed
cf78e9e8
JB
98 on various systems to produce shared libraries. Available in
99 "ftp://alpha.gnu.ai.mit.edu/gnu".
3c555f81 100
05264287
JB
101You are lost in a little maze of automatically generated files, all
102different.
cf78e9e8 103>
05264287 104
3c555f81 105
c484bf7f
JB
106Obtaining Guile ======================================================
107
108The latest official Guile release is available via anonymous FTP from
109prep.ai.mit.edu, as /pub/gnu/guile-1.2.tar.gz.
110
111Via the web, that's: ftp://prep.ai.mit.edu/pub/gnu/guile-1.2.tar.gz
112For getit, that's: prep.ai.mit.edu:/pub/gnu/guile-1.2.tar.gz
113
114The mailing list `guile@cygnus.com' carries discussions, questions,
115and often answers, about Guile. To subscribe, send mail to
116guile-request@cygnus.com. Of course, please send bug reports (and
117fixes!) to bug-guile@prep.ai.mit.edu.
118
119
9518bec3
JB
120Authors And Contributors =============================================
121
01cf3840
JB
122Many people have generously contributed to Guile. However, any errors
123are the responsibility of the primary Guile maintainer, Jim Blandy.
9518bec3
JB
124
125Mikael Djurfeldt designed and implemented:
01cf3840
JB
126* the source-level debugging support (although the debugger's user
127 interface is not yet complete)
2a786759
JB
128* stack overflow detection,
129* the GDB patches to support debugging mixed Scheme/C code,
9518bec3 130* the original implementation of weak hash tables,
c5ac623b
JB
131* enhancements to the `threads' interface (based on Anthony Green's
132 work), and
2a786759
JB
133* detection of circular references during printing.
134
3a629497 135Mark Galassi contributed the Guile high-level functions (gh_*), and
01cf3840
JB
136wrote the guile-programmer and guile-user manuals. (These are in the
137process of revision.)
138
3a629497 139Anthony Green wrote the original version of `threads', the interface
01cf3840
JB
140between Guile and qt.
141
c5ac623b
JB
142Gary Houston wrote much of the Unix system call support, including the
143socket support, and did a lot of work on the error handling code.
01cf3840
JB
144
145Tom Lord librarified SCM, yielding Guile. He wrote Guile's operating
146system, Ice-9, and connected Guile to Tcl/Tk and the `rx' regular
147expression matcher.
148
149Aubrey Jaffer seriously tuned performance and added features. He
150designed many hairy but beautiful parts of the tag system and
151evaluator.
152
153George Carrette wrote SIOD, a stand-alone scheme interpreter.
154Although most of this code as been rewritten or replaced over time,
155the garbage collector from SIOD is still an important part of Guile.