*** empty log message ***
[bpt/guile.git] / README
1 This is not a Guile release; it is a source tree retrieved via
2 anonymous CVS or as a nightly snapshot at some random time after the
3 Guile 1.3.4 release.
4
5 This is version 1.3.5 of Guile, Project GNU's extension language
6 library. Guile is an interpreter for Scheme, packaged as a library
7 that you can link into your applications to give them their own
8 scripting language. Guile will eventually support other languages as
9 well, giving users of Guile-based applications a choice of languages.
10
11 Please send bug reports to bug-guile@gnu.org.
12
13 Guile Documentation ==================================================
14
15 There is some preliminary documentation for Guile under the directory
16 doc. The real Guile manual is incomplete, and is currently being
17 revised. A development snapshot of the manual is available at
18 ftp.red-bean.com as /pub/guile/snapshots/guile-doc-snap.tar.gz.
19
20
21 About This Distribution ==============================================
22
23 Interesting 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
29 Building and installing this distribution gives you:
30 guile --- a stand-alone interpreter for Guile, usually installed in
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.
34 guile-config --- a Guile script which provides the information necessary
35 to link your programs against the Guile library.
36 guile-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.
38 libguile.a --- an object library containing the Guile interpreter,
39 usually installed in /usr/local/lib. You can use Guile in
40 your own programs by linking against this.
41 libqthreads.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.
44 libguilereadline.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.
47 <libguile.h>, <guile/gh.h>, <libguile/*.h> --- header files for
48 libguile.a, usually installed in /usr/local/include.
49 ice-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>.
53 data-rep.info --- An essay on how to write C code that works with
54 Guile Scheme values.
55
56 The Guile source tree is laid out as follows:
57
58 libguile:
59 The Guile Scheme interpreter --- both the object library
60 for you to link with your programs, and the executable you can run.
61 ice-9: Guile's module system, initialization code, and other infrastructure.
62 guile-config:
63 Source for the guile-config script.
64 qt: A cooperative threads package from the University of Washington,
65 which Guile can use. If you configure Guile with the
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.
69 guile-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.
73 doc: Some preliminary documentation for Guile. The real Guile
74 manual is incomplete, and is currently being revised.
75 A development snapshot of the manual is available at
76 ftp.red-bean.com as /pub/guile/snapshots/guile-doc-snap.tar.gz.
77 doc/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.
80
81
82 Anonymous CVS Access and FTP snapshots ===============================
83
84 We make the developers' working Guile sources available via anonymous
85 CVS, and by nightly snapshots, accessible via FTP. See the files
86 `ANON-CVS' and `SNAPSHOTS' for details.
87
88 If you would like to receive mail when people commit changes to the
89 Guile CVS repository, you can subscribe to guile-cvs@sourceware.cygnus.com
90 by sending a message to guile-cvs-subscribe@sourceware.cygnus.com. Even
91 better, you can get daily digests of these commit messages by sending
92 a message to guile-cvs-digest-subscribe@sourceware.cygnus.com.
93
94 If you want to subscribe an e-mail address other than the one that
95 appears in your From: header, say foo@bar.com, send a mail note to
96 guile-cvs-subscribe-foo=bar.com@sourceware.cygnus.com.
97
98
99 Hacking It Yourself ==================================================
100
101 As distributed, Guile needs only an ANSI C compiler and a Unix system
102 to compile. However, Guile's makefiles, configuration scripts, and a
103 few other files are automatically generated, not written by hand. If
104 you want to make changes to the system (which we encourage!) you will
105 find it helpful to have the tools we use to develop Guile. They
106 are the following:
107
108 Autoconf 2.13 --- a system for automatically generating `configure'
109 scripts from templates which list the non-portable features a
110 program would like to use. Available in
111 "ftp://ftp.gnu.org/pub/gnu/autoconf"
112
113 Automake 1.4 --- a system for automatically generating Makefiles that
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
117 Makefile dependencies. Automake is available in
118 "ftp://ftp.gnu.org/pub/gnu/automake"
119
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
124 libtool 1.3.3 --- a system for managing the zillion hairy options needed
125 on various systems to produce shared libraries. Available in
126 "ftp://ftp.gnu.org/pub/gnu/libtool"
127
128 You are lost in a little maze of automatically generated files, all
129 different.
130 >
131
132
133 Obtaining Guile ======================================================
134
135 The latest official Guile release is available via anonymous FTP from
136 ftp.gnu.org, as /pub/gnu/guile/guile-1.3.4.tar.gz.
137
138 Via the web, that's: ftp://ftp.gnu.org/pub/gnu/guile/guile-1.3.4.tar.gz
139 For getit, that's: ftp.gnu.org:/pub/gnu/guile/guile-1.3.4.tar.gz
140
141 The mailing list `guile@sourceware.cygnus.com' carries discussions,
142 questions, and often answers, about Guile. To subscribe, send mail to
143 guile-subscribe@sourceware.cygnus.com. Of course, please send bug
144 reports (and fixes!) to bug-guile@gnu.org. Note that one address is
145 @sourceware.cygnus.com, and the other is at @gnu.org.