*** empty log message ***
[bpt/guile.git] / README
1 This is version 1.4 of Guile, Project GNU's extension language
2 library. Guile is an interpreter for Scheme, packaged as a library
3 that you can link into your applications to give them their own
4 scripting language. Guile will eventually support other languages as
5 well, giving users of Guile-based applications a choice of languages.
6
7 Please send bug reports to bug-guile@gnu.org.
8
9 Guile Documentation ==================================================
10
11 The doc directory contains a few articles on specific topics and some
12 examples, including data-rep.texi which describes the internal
13 representation of data types in Guile. The example-smob directory
14 contains example source code for the "Defining New Types (Smobs)" chapter.
15
16 The incomplete Guile reference manual is available at
17
18 ftp://ftp.red-bean.com/pub/guile/snapshots/guile-doc-snap.tar.gz
19
20 Neil Jerram is working on the new reference manual, which will be
21 distributed with guile-core. The new manual will be synchronized with
22 the docstrings in the sources. Until then, please be aware that the
23 docstrings are likely to be more up-to-date than the old reference
24 manual (use `(help)' or see libguile/guile-procedures.txt which is
25 generated by the build process).
26
27 The Guile WWW page is at
28
29 http://www.gnu.org/software/guile/guile.html
30
31 It contains a link to the Guile FAQ.
32
33 Guile License ==================================================
34
35 The license of Guile consists of the GNU GPL plus a special statement
36 giving blanket permission to link with non-free software. This is the
37 license statement as found in any individual file that it applies to:
38
39 This program is free software; you can redistribute it and/or modify
40 it under the terms of the GNU General Public License as published by
41 the Free Software Foundation; either version 2, or (at your option)
42 any later version.
43
44 This program is distributed in the hope that it will be useful,
45 but WITHOUT ANY WARRANTY; without even the implied warranty of
46 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
47 GNU General Public License for more details.
48
49 You should have received a copy of the GNU General Public License
50 along with this software; see the file COPYING. If not, write to
51 the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
52 Boston, MA 02111-1307 USA
53
54 As a special exception, the Free Software Foundation gives permission
55 for additional uses of the text contained in its release of GUILE.
56
57 The exception is that, if you link the GUILE library with other files
58 to produce an executable, this does not by itself cause the
59 resulting executable to be covered by the GNU General Public License.
60 Your use of that executable is in no way restricted on account of
61 linking the GUILE library code into it.
62
63 This exception does not however invalidate any other reasons why
64 the executable file might be covered by the GNU General Public License.
65
66 This exception applies only to the code released by the
67 Free Software Foundation under the name GUILE. If you copy
68 code from other Free Software Foundation releases into a copy of
69 GUILE, as the General Public License permits, the exception does
70 not apply to the code that you add in this way. To avoid misleading
71 anyone as to the status of such modified files, you must delete
72 this exception notice from them.
73
74 If you write modifications of your own for GUILE, it is your choice
75 whether to permit this exception to apply to your modifications.
76 If you do not wish that, delete this exception notice.
77
78 About This Distribution ==============================================
79
80 Interesting files include:
81
82 - INSTALL, which contains instructions on building and installing Guile.
83 - NEWS, which describes user-visible changes since the last release of Guile.
84
85 Files are usually installed according to the prefix specified to
86 configure, /usr/local by default. Building and installing gives you:
87
88 Executables, in ${prefix}/bin:
89
90 guile --- a stand-alone interpreter for Guile. With no arguments, this
91 is a simple interactive Scheme interpreter. It can also be used
92 as an interpreter for script files; see the NEWS file for details.
93 guile-config --- a Guile script which provides the information necessary
94 to link your programs against the Guile library.
95 guile-snarf --- a script to parse declarations in your C code for
96 Scheme-visible C functions, Scheme objects to be used by C code,
97 etc.
98
99 Libraries, in ${prefix}/lib. Depending on the platform and options
100 given to configure, you may get shared libraries in addition
101 to or instead of these static libraries:
102
103 libguile.a --- an object library containing the Guile interpreter,
104 You can use Guile in your own programs by linking against this.
105 libqthreads.a --- an object library containing the QuickThreads
106 primitives. If you enabled thread support when you configured
107 Guile, you will need to link your code against this too.
108 libguilereadline.a --- an object library containing glue code for the
109 GNU readline library. See NEWS for instructions on how to enable
110 readline for your personal use.
111
112 Header files, in ${prefix}/include:
113
114 libguile.h, guile/gh.h, libguile/*.h --- for libguile.
115 guile-readline/readline.h --- for guile-readline.
116
117 Support files, in ${prefix}/share/guile/<version>:
118
119 ice-9/* --- run-time support for Guile: the module system,
120 read-eval-print loop, some R4RS code and other infrastructure.
121
122 Automake macros, in ${prefix}/share/aclocal:
123
124 guile.m4
125
126 Documentation in Info format, in ${prefix}/info:
127
128 data-rep.info --- an essay on how to write C code that works with
129 Guile Scheme values.
130
131 The Guile source tree is laid out as follows:
132
133 libguile:
134 The Guile Scheme interpreter --- both the object library
135 for you to link with your programs, and the executable you can run.
136 ice-9: Guile's module system, initialization code, and other infrastructure.
137 guile-config:
138 Source for the guile-config script.
139 qt: A cooperative threads package from the University of Washington,
140 which Guile can use. If you configure Guile with the
141 --with-threads flag, you will need to link against the -lqt
142 library, found in this directory. Qt is under a separate
143 copyright; see `qt/README' for more details.
144 guile-readline:
145 The glue code for using GNU readline with Guile. This
146 will be build when configure can find a recent enough readline
147 library on your system.
148 doc: Documentation (see above).
149
150 Anonymous CVS Access and FTP snapshots ===============================
151
152 We make the developers' working Guile sources available via anonymous
153 CVS, and by nightly snapshots, accessible via FTP. See the files
154 `ANON-CVS' and `SNAPSHOTS' for details.
155
156 If you would like to receive mail when people commit changes to the
157 Guile CVS repository, you can subscribe to guile-cvs@sourceware.cygnus.com
158 by sending a message to guile-cvs-subscribe@sourceware.cygnus.com. Even
159 better, you can get daily digests of these commit messages by sending
160 a message to guile-cvs-digest-subscribe@sourceware.cygnus.com.
161
162 If you want to subscribe an e-mail address other than the one that
163 appears in your From: header, say foo@bar.com, send a mail note to
164 guile-cvs-subscribe-foo=bar.com@sourceware.cygnus.com.
165
166
167 Obtaining Guile ======================================================
168
169 The latest official Guile release is available via anonymous FTP from
170
171 ftp://ftp.gnu.org/pub/gnu/guile/guile-1.4.tar.gz
172
173 The mailing list `guile@sourceware.cygnus.com' carries discussions,
174 questions, and often answers, about Guile. To subscribe, send mail to
175 guile-subscribe@sourceware.cygnus.com. Of course, please send bug
176 reports (and fixes!) to bug-guile@gnu.org. Note that one address is
177 @sourceware.cygnus.com, and the other is at @gnu.org.