News for scm_call_N and scm_apply_N.
[bpt/guile.git] / README
CommitLineData
c299f186
MD
1This is not a Guile release; it is a source tree retrieved via
2anonymous CVS or as a nightly snapshot at some random time after the
3Guile 1.4 release.
4
f2a75d81
RB
5This is a 1.5 development version of Guile, Project GNU's extension
6language library. Guile is an interpreter for Scheme, packaged as a
7library that you can link into your applications to give them their
8own scripting language. Guile will eventually support other languages
9as well, giving users of Guile-based applications a choice of
10languages.
11
12Guile versions with an odd middle number, i.e. 1.5.* are unstable
13development versions. Even middle numbers indicate stable versions.
14This has been the case since the 1.3.* series.
15
16The next stable release will be version 1.6.0.
7fcc90c4 17
e1b6c710 18Please send bug reports to bug-guile@gnu.org.
86f40248 19
394a535e
MD
20Guile Documentation ==================================================
21
ae8de16e
GH
22The doc directory contains a few articles on specific topics and some
23examples, including data-rep.texi which describes the internal
24representation of data types in Guile. The example-smob directory
25contains example source code for the "Defining New Types (Smobs)" chapter.
394a535e 26
ae8de16e 27The incomplete Guile reference manual is available at
ae8de16e 28
b5074b23
MD
29 ftp://ftp.red-bean.com/pub/guile/snapshots/guile-doc-snap.tar.gz
30
31Neil Jerram is working on the new reference manual, which will be
32distributed with guile-core. The new manual will be synchronized with
33the docstrings in the sources. Until then, please be aware that the
34docstrings are likely to be more up-to-date than the old reference
35manual (use `(help)' or see libguile/guile-procedures.txt which is
ae8de16e 36generated by the build process).
394a535e 37
b5074b23
MD
38The Guile WWW page is at
39
40 http://www.gnu.org/software/guile/guile.html
41
42It contains a link to the Guile FAQ.
43
677ac809
MV
44Guile License ==================================================
45
46The license of Guile consists of the GNU GPL plus a special statement
47giving blanket permission to link with non-free software. This is the
48license statement as found in any individual file that it applies to:
49
50 This program is free software; you can redistribute it and/or modify
51 it under the terms of the GNU General Public License as published by
52 the Free Software Foundation; either version 2, or (at your option)
53 any later version.
54
55 This program is distributed in the hope that it will be useful,
56 but WITHOUT ANY WARRANTY; without even the implied warranty of
57 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
58 GNU General Public License for more details.
59
60 You should have received a copy of the GNU General Public License
61 along with this software; see the file COPYING. If not, write to
62 the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
63 Boston, MA 02111-1307 USA
64
65 As a special exception, the Free Software Foundation gives permission
66 for additional uses of the text contained in its release of GUILE.
67
68 The exception is that, if you link the GUILE library with other files
69 to produce an executable, this does not by itself cause the
70 resulting executable to be covered by the GNU General Public License.
71 Your use of that executable is in no way restricted on account of
72 linking the GUILE library code into it.
73
74 This exception does not however invalidate any other reasons why
75 the executable file might be covered by the GNU General Public License.
76
77 This exception applies only to the code released by the
78 Free Software Foundation under the name GUILE. If you copy
79 code from other Free Software Foundation releases into a copy of
80 GUILE, as the General Public License permits, the exception does
81 not apply to the code that you add in this way. To avoid misleading
82 anyone as to the status of such modified files, you must delete
83 this exception notice from them.
84
85 If you write modifications of your own for GUILE, it is your choice
86 whether to permit this exception to apply to your modifications.
87 If you do not wish that, delete this exception notice.
88
6b3ccfcc
MV
89Handling of Deprecated Features ======================================
90
91Guile may contain features that are `deprecated'. When a feature is
92deprecated, it means that it is still there and fully functional, but
93that there is a better way of achieving the same thing, and we'd
94rather have you use this better way. This allows us to eventually
95remove the old implementation and helps to keep Guile reasonably clean
96of historic baggage.
97
98See the file NEWS for a list of features that are currently
99deprecated. Each entry will also tell you what you should replace
100your code with.
101
102To give you some help with this process, and to encourage (OK, nudge)
103people to switch to the newer methods, Guile can emit warnings or
104errors when you use a deprecated feature. There is quite a range of
105possibilities, from being completely silent to giving errors at link
106time. What exactly happens is determined both by the value of the
107`--enable-deprecated' configuration option when Guile was built, and
108by the GUILE_WARN_DEPRECATED environment variable.
109
110It works like this:
111
112 When Guile has been configured with `--enable-deprecated=no' (or,
113 equivalently, with `--disable-deprecated') then all deprecated
114 features are omitted from Guile. You will get "undefined
115 reference", "variable unbound" or similar errors when you try to use
116 them.
117
118 When `--enable-deprecated=LEVEL' has been specified (for LEVEL not
119 "no"), LEVEL will be used as the default value of the environment
120 variable GUILE_WARN_DEPRECATED. A value of "yes" is changed to
c10ecc4c 121 "summary" and "shutup" is changed to "no", however.
6b3ccfcc
MV
122
123 When GUILE_WARN_DEPRECATION has the value "no", nothing special will
124 happen when a deprecated feature is used.
125
126 When GUILE_WARN_DEPRECATION has the value "summary", and a deprecated
127 feature has been used, Guile will print this message at exit:
128
129 Some deprecated features have been used. Set the environment
130 variable GUILE_WARN_DEPRECATED to "detailed" and rerun the program
131 to get more information. Set it to "no" to suppress this message.
132
133 When GUILE_WARN_DEPRECATION has the value "detailed", a detailed
134 warning is emitted immediatly for the first use of a deprecated
135 feature.
136
c10ecc4c 137The default is `--enable-deprecated=yes'.
6b3ccfcc 138
cf78e9e8
JB
139About This Distribution ==============================================
140
f89a27fa 141Interesting files include:
ae8de16e 142
f89a27fa
JB
143- INSTALL, which contains instructions on building and installing Guile.
144- NEWS, which describes user-visible changes since the last release of Guile.
f89a27fa 145
ae8de16e
GH
146Files are usually installed according to the prefix specified to
147configure, /usr/local by default. Building and installing gives you:
148
149Executables, in ${prefix}/bin:
150
151guile --- a stand-alone interpreter for Guile. With no arguments, this
152 is a simple interactive Scheme interpreter. It can also be used
153 as an interpreter for script files; see the NEWS file for details.
17f8d40c
JB
154guile-config --- a Guile script which provides the information necessary
155 to link your programs against the Guile library.
14725cbb 156guile-snarf --- a script to parse declarations in your C code for
ae8de16e
GH
157 Scheme-visible C functions, Scheme objects to be used by C code,
158 etc.
159
160Libraries, in ${prefix}/lib. Depending on the platform and options
161 given to configure, you may get shared libraries in addition
162 to or instead of these static libraries:
163
49becc4d 164libguile.a --- an object library containing the Guile interpreter,
ae8de16e 165 You can use Guile in your own programs by linking against this.
17f8d40c
JB
166libqthreads.a --- an object library containing the QuickThreads
167 primitives. If you enabled thread support when you configured
168 Guile, you will need to link your code against this too.
966476c1
JB
169libguilereadline.a --- an object library containing glue code for the
170 GNU readline library. See NEWS for instructions on how to enable
171 readline for your personal use.
ae8de16e
GH
172
173Header files, in ${prefix}/include:
174
175libguile.h, guile/gh.h, libguile/*.h --- for libguile.
176guile-readline/readline.h --- for guile-readline.
177
178Support files, in ${prefix}/share/guile/<version>:
179
180ice-9/* --- run-time support for Guile: the module system,
181 read-eval-print loop, some R4RS code and other infrastructure.
182
183Automake macros, in ${prefix}/share/aclocal:
184
185guile.m4
186
187Documentation in Info format, in ${prefix}/info:
188
189data-rep.info --- an essay on how to write C code that works with
14725cbb 190 Guile Scheme values.
0196b30a 191
5c54da76
JB
192The Guile source tree is laid out as follows:
193
1325feea 194libguile:
cf78e9e8
JB
195 The Guile Scheme interpreter --- both the object library
196 for you to link with your programs, and the executable you can run.
1325feea 197ice-9: Guile's module system, initialization code, and other infrastructure.
17f8d40c
JB
198guile-config:
199 Source for the guile-config script.
9a3c1149 200qt: A cooperative threads package from the University of Washington,
cf78e9e8 201 which Guile can use. If you configure Guile with the
3a629497
JB
202 --with-threads flag, you will need to link against the -lqt
203 library, found in this directory. Qt is under a separate
204 copyright; see `qt/README' for more details.
621e8324
MV
205guile-readline:
206 The glue code for using GNU readline with Guile. This
207 will be build when configure can find a recent enough readline
208 library on your system.
ae8de16e 209doc: Documentation (see above).
4c8980a2 210
c11f9405
JB
211Anonymous CVS Access and FTP snapshots ===============================
212
213We make the developers' working Guile sources available via anonymous
214CVS, and by nightly snapshots, accessible via FTP. See the files
215`ANON-CVS' and `SNAPSHOTS' for details.
216
349d9c1f 217If you would like to receive mail when people commit changes to the
ee2bf8b8
MV
218Guile CVS repository, you can subscribe to guile-cvs@gnu.org by the
219Mailman mailing list interface at
349d9c1f 220
ee2bf8b8 221 <http://mail.gnu.org/mailman/listinfo/guile-cvs>
349d9c1f 222
c11f9405 223
c484bf7f
JB
224Obtaining Guile ======================================================
225
226The latest official Guile release is available via anonymous FTP from
c484bf7f 227
b5074b23 228ftp://ftp.gnu.org/pub/gnu/guile/guile-1.4.tar.gz
c484bf7f 229
ee2bf8b8
MV
230The mailing list `guile-user@gnu.org' carries discussions, questions,
231and often answers, about Guile. To subscribe, use the Mailman mailing
232list interface at <http://mail.gnu.org/mailman/listinfo/guile-user>
233Of course, please send bug reports (and fixes!) to bug-guile@gnu.org.