Merge branch 'master' into wip-manual-2
[bpt/guile.git] / doc / ref / preface.texi
CommitLineData
c6ae9c77
MV
1@c -*-texinfo-*-
2@c This is part of the GNU Guile Reference Manual.
3@c Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004
4@c Free Software Foundation, Inc.
5@c See the file guile.texi for copying conditions.
6
3229f68b 7@node Preface
064f84ae 8@unnumbered Preface
a0e07ba4 9
064f84ae
NJ
10This manual describes how to use Guile, GNU's Ubiquitous Intelligent
11Language for Extensions. It relates particularly to Guile version
12@value{VERSION}. The manual is divided into the following chapters.
a0e07ba4 13
96e05382 14@table @strong
3d9af0c9 15@item Chapter 1: Introduction
3229f68b
MV
16This part provides an overview of what Guile is and how you can use
17it. A whirlwind tour shows how Guile can be used interactively and as
18a script interpreter, how to link Guile into your own applications,
19and how to write modules of interpreted and compiled code for use with
96e05382
MV
20Guile. Everything introduced here is documented again and in full by
21the later parts of the manual. This part also explains how to obtain
22and install new versions of Guile, and how to report bugs effectively.
23
3229f68b 24@item Chapter 2: Programming in Scheme
31c73458 25This part provides an overview of programming in Scheme with Guile.
3229f68b
MV
26It covers how to invoke the @code{guile} program from the command-line
27and how to write scripts in Scheme. It also gives an introduction
28into the basic ideas of Scheme itself and to the various extensions
29that Guile offers beyond standard Scheme.
30
31@item Chapter 3: Programming in C
32This part provides an overview of how to use Guile in a C program. It
33discusses the fundamental concepts that you need to understand to
34access the features of Guile, such as dynamic types and the garbage
35collector. It explains in a tutorial like manner how to define new
36data types and functions for the use by Scheme programs.
37
38@item Chapter 4: Guile API Reference
39This part of the manual documents the Guile @acronym{API} in
9401323e 40functionality-based groups with the Scheme and C interfaces presented
3229f68b
MV
41side by side.
42
43@item Chapter 5: Guile Modules
96e05382
MV
44Describes some important modules, distributed as part of the Guile
45distribution, that extend the functionality provided by the Guile
3229f68b 46Scheme core.
a0e07ba4 47
eb12b401
NJ
48@item Chapter 6: GOOPS
49Describes GOOPS, an object oriented extension to Guile that provides
50classes, multiple inheritance and generic functions.
51
96e05382 52@end table
a0e07ba4 53
064f84ae
NJ
54@menu
55* Contributors::
56* Guile License::
57@end menu
a0e07ba4 58
916542f1 59@node Contributors
064f84ae 60@unnumberedsec Contributors to this Manual
916542f1
MV
61
62The Guile reference and tutorial manuals were written and edited
63largely by Mark Galassi and Jim Blandy. In particular, Jim wrote the
64original tutorial on Guile's data representation and the C API for
65accessing Guile objects.
66
67Significant portions were contributed by Gary Houston (contributions
68to POSIX system calls and networking, expect, I/O internals and
69extensions, slib installation, error handling) and Tim Pierce
70(sections on script interpreter triggers, alists, function tracing).
71
72Tom Lord contributed a great deal of material with early Guile
73snapshots; although most of this text has been rewritten, all of it
74was important, and some of the structure remains.
75
76Aubrey Jaffer wrote the SCM Scheme implementation and manual upon
77which the Guile program and manual are based. Some portions of the
78SCM and SLIB manuals have been included here verbatim.
79
80Since Guile 1.4, Neil Jerram has been maintaining and improving the
81reference manual. Among other contributions, he wrote the Basic
82Ideas chapter, developed the tools for keeping the manual in sync
83with snarfed libguile docstrings, and reorganized the structure so as
84to accommodate docstrings for all Guile's primitives.
85
86Martin Grabmueller has made substantial contributions throughout the
87reference manual in preparation for the Guile 1.6 release, including
88filling out a lot of the documentation of Scheme data types, control
89mechanisms and procedures. In addition, he wrote the documentation
90for Guile's SRFI modules and modules associated with the Guile REPL.
91
eb12b401
NJ
92The chapter on GOOPS was written by Christian Lynbech, Mikael
93Djurfeldt and Neil Jerram.
94
916542f1 95@node Guile License
064f84ae 96@unnumberedsec The Guile License
d10196fc 97@cindex copying
ed435f86
KR
98@cindex GPL
99@cindex LGPL
d10196fc 100@cindex license
916542f1
MV
101
102Guile is Free Software. Guile is copyrighted, not public domain, and
103there are restrictions on its distribution or redistribution, but
104these restrictions are designed to permit everything a cooperating
105person would want to do.
106
107@itemize @bullet
108@item
109The Guile library (libguile) and supporting files are published under
53befeb7
NJ
110the terms of the GNU Lesser General Public License version 3 or later.
111See the files @file{COPYING.LESSER} and @file{COPYING}.
916542f1
MV
112
113@item
114The Guile readline module is published under the terms of the GNU
53befeb7 115General Public License version 3 or later. See the file @file{COPYING}.
916542f1
MV
116
117@item
118The manual you're now reading is published under the terms of the GNU
119Free Documentation License (@pxref{GNU Free Documentation License}).
120@end itemize
121
122C code linking to the Guile library is subject to terms of that
123library. Basically such code may be published on any terms, provided
124users can re-link against a new or modified version of Guile.
125
126C code linking to the Guile readline module is subject to the terms of
127that module. Basically such code must be published on Free terms.
128
129Scheme level code written to be run by Guile (but not derived from
31c73458 130Guile itself) is not restricted in any way, and may be published on any
916542f1
MV
131terms. We encourage authors to publish on Free terms.
132
133You must be aware there is no warranty whatsoever for Guile. This is
134described in full in the licenses.
135
a0e07ba4
NJ
136
137@c Local Variables:
138@c TeX-master: "guile.texi"
139@c End: