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