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