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