*** empty log message ***
[bpt/guile.git] / README
CommitLineData
293b3025 1This is release 1.3.4 of Guile, Project GNU's extension language
3d06534e
JB
2library. Guile is an interpreter for Scheme, packaged as a library
3that you can link into your applications to give them their own
4scripting language. Guile will eventually support other languages as
5well, giving users of Guile-based applications a choice of languages.
7fcc90c4 6
e1b6c710 7Please send bug reports to bug-guile@gnu.org.
86f40248 8
394a535e
MD
9Guile Documentation ==================================================
10
11There is some preliminary documentation for Guile under the directory
12doc. The real Guile manual is incomplete, and is currently being
13revised. A development snapshot of the manual is available at
14ftp.red-bean.com as /pub/guile/snapshots/guile-doc-snap.tar.gz.
15
16
cf78e9e8
JB
17About This Distribution ==============================================
18
f89a27fa
JB
19Interesting files include:
20- INSTALL, which contains instructions on building and installing Guile.
21- NEWS, which describes user-visible changes since the last release of Guile.
22- COPYING, which describes the terms under which you may redistribute
23 Guile, and explains that there is no warranty.
24
49becc4d
JB
25Building and installing this distribution gives you:
26guile --- a stand-alone interpreter for Guile, usually installed in
cf78e9e8
JB
27 /usr/local/bin. With no arguments, this is a simple
28 interactive Scheme interpreter. It can also be used as an
29 interpreter for script files; see the NEWS file for details.
17f8d40c
JB
30guile-config --- a Guile script which provides the information necessary
31 to link your programs against the Guile library.
14725cbb
JB
32guile-snarf --- a script to parse declarations in your C code for
33 Scheme-visible C functions, Scheme objects to be used by C code, etc.
49becc4d 34libguile.a --- an object library containing the Guile interpreter,
cf78e9e8
JB
35 usually installed in /usr/local/lib. You can use Guile in
36 your own programs by linking against this.
17f8d40c
JB
37libqthreads.a --- an object library containing the QuickThreads
38 primitives. If you enabled thread support when you configured
39 Guile, you will need to link your code against this too.
14725cbb
JB
40<libguile.h>, <guile/gh.h>, <libguile/*.h> --- header files for
41 libguile.a, usually installed in /usr/local/include.
9a8b5764
TP
42ice-9, ice-9/*.scm --- run-time support for Guile: the module
43 system, read-eval-print loop, some R4RS code and other
44 infrastructure. Usually installed in
45 /usr/local/share/guile/<version>.
14725cbb
JB
46data-rep.info --- An essay on how to write C code that works with
47 Guile Scheme values.
0196b30a 48
5c54da76
JB
49The Guile source tree is laid out as follows:
50
1325feea 51libguile:
cf78e9e8
JB
52 The Guile Scheme interpreter --- both the object library
53 for you to link with your programs, and the executable you can run.
1325feea 54ice-9: Guile's module system, initialization code, and other infrastructure.
17f8d40c
JB
55guile-config:
56 Source for the guile-config script.
9a3c1149 57qt: A cooperative threads package from the University of Washington,
cf78e9e8 58 which Guile can use. If you configure Guile with the
3a629497
JB
59 --with-threads flag, you will need to link against the -lqt
60 library, found in this directory. Qt is under a separate
61 copyright; see `qt/README' for more details.
17f8d40c 62doc: Some preliminary documentation for Guile. The real Guile
14725cbb 63 manual is incomplete, and is currently being revised.
394a535e
MD
64 A development snapshot of the manual is available at
65 ftp.red-bean.com as /pub/guile/snapshots/guile-doc-snap.tar.gz.
e84f2bee
JB
66doc/example-smob: Sample code, discussed in the preliminary
67 documentation above, for a program that extends Guile with a
68 new data type, and functions that operate on it.
1dfe003f 69
4c8980a2 70
c11f9405
JB
71Anonymous CVS Access and FTP snapshots ===============================
72
73We make the developers' working Guile sources available via anonymous
74CVS, and by nightly snapshots, accessible via FTP. See the files
75`ANON-CVS' and `SNAPSHOTS' for details.
76
349d9c1f 77If you would like to receive mail when people commit changes to the
6ca345f3
JB
78Guile CVS repository, you can subscribe to guile-cvs@sourceware.cygnus.com
79by sending a message to guile-cvs-subscribe@sourceware.cygnus.com. Even
3d06534e 80better, you can get daily digests of these commit messages by sending
6ca345f3 81a message to guile-cvs-digest-subscribe@sourceware.cygnus.com.
349d9c1f
JB
82
83If you want to subscribe an e-mail address other than the one that
84appears in your From: header, say foo@bar.com, send a mail note to
6ca345f3 85guile-cvs-subscribe-foo=bar.com@sourceware.cygnus.com.
349d9c1f 86
c11f9405 87
3c555f81
JB
88Hacking It Yourself ==================================================
89
90As distributed, Guile needs only an ANSI C compiler and a Unix system
91to compile. However, Guile's makefiles, configuration scripts, and a
92few other files are automatically generated, not written by hand. If
93you want to make changes to the system (which we encourage!) you will
94find it helpful to have the tools we use to develop Guile. They
95are the following:
96
ada238b7 97Autoconf 2.13 --- a system for automatically generating `configure'
cf78e9e8
JB
98 scripts from templates which list the non-portable features a
99 program would like to use. Available in
ef0615e4 100 "ftp://ftp.gnu.org/pub/gnu/autoconf"
3c555f81 101
ada238b7 102Automake 1.4 --- a system for automatically generating Makefiles that
cf78e9e8
JB
103 conform to the (rather Byzantine) GNU coding standards. The
104 nice thing is that it takes care of hairy targets like 'make
105 dist' and 'make distclean', and automatically generates
2b272b1e 106 Makefile dependencies. Automake is available in
ef0615e4 107 "ftp://ftp.gnu.org/pub/gnu/automake"
3c555f81 108
2b272b1e
JB
109 Before using automake, you may need to copy `threads.m4' and
110 `guile.m4' from the top directory of the Guile core disty to
111 `/usr/local/share/aclocal.
112
fc44cdf1 113libtool 1.3.3 --- a system for managing the zillion hairy options needed
cf78e9e8 114 on various systems to produce shared libraries. Available in
fc44cdf1 115 "ftp://ftp.gnu.org/pub/gnu/libtool"
3c555f81 116
05264287
JB
117You are lost in a little maze of automatically generated files, all
118different.
cf78e9e8 119>
05264287 120
3c555f81 121
c484bf7f
JB
122Obtaining Guile ======================================================
123
124The latest official Guile release is available via anonymous FTP from
e4445210 125ftp.gnu.org, as /pub/gnu/guile/guile-1.3.4.tar.gz.
c484bf7f 126
e4445210
MD
127Via the web, that's: ftp://ftp.gnu.org/pub/gnu/guile/guile-1.3.4.tar.gz
128For getit, that's: ftp.gnu.org:/pub/gnu/guile/guile-1.3.4.tar.gz
c484bf7f 129
6ca345f3
JB
130The mailing list `guile@sourceware.cygnus.com' carries discussions,
131questions, and often answers, about Guile. To subscribe, send mail to
132guile-subscribe@sourceware.cygnus.com. Of course, please send bug
133reports (and fixes!) to bug-guile@gnu.org. Note that one address is
134@sourceware.cygnus.com, and the other is at @gnu.org.