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