4 @setfilename guile.info
5 @settitle Guile Reference Manual
9 @c Notes: (distilled from Jim's and Tim's notes, and kept up to date)
11 @c Remember to use "primitive" whereever appropriate.
12 @c FIXME: gotta change existing "subr" uses to "Primitive".
13 @c [JimB:] In my text for the Guile snarfer, I've used the term "subr"
14 @c to denote a C function made available to the Scheme world as a
15 @c function. This terminology is weird, but consistent with the
16 @c function names and also with Emacs Lisp, which I assume takes
19 @c When adding a new function to the Guile manual, please document
20 @c it with @deffn as one of `primitive', `procedure', or `syntax'.
22 @c For a list of Guile primitives that are not yet incorporated into the
23 @c reference manual, see the file `new-docstrings.texi', which holds all
24 @c the docstrings snarfed from the libguile C sources for primitives
25 @c that are not in the reference manual. If you have worked with some
26 @c of these concepts, implemented them, or just happen to know what they
27 @c do, please write up a little explanation -- it would be a big help.
28 @c Alternatively, if you know of a great reason why some of these should
29 @c *not* go in the manual, please let me know.
31 @c Define indices that are used in the Guile Scheme part of the
32 @c reference manual to group stuff according to whether it is R5RS or a
43 @dircategory The Algorithmic Language Scheme
45 * Guile Reference: (guile). The Guile reference manual.
48 @setchapternewpage off
51 Guile Reference Manual
52 Copyright (C) 1996 Free Software Foundation @*
53 Copyright (C) 1997 Free Software Foundation @*
54 Copyright (C) 2000 Free Software Foundation @*
55 Copyright (C) 2001 Free Software Foundation
57 Permission is granted to make and distribute verbatim copies of
58 this manual provided the copyright notice and this permission notice
59 are preserved on all copies.
62 Permission is granted to process this file through TeX and print the
63 results, provided the printed document carries copying permission
64 notice identical to this one except for the removal of this paragraph
65 (this paragraph not being relevant to the printed manual).
68 Permission is granted to copy and distribute modified versions of this
69 manual under the conditions for verbatim copying, provided that the entire
70 resulting derived work is distributed under the terms of a permission
71 notice identical to this one.
73 Permission is granted to copy and distribute translations of this manual
74 into another language, under the above conditions for modified versions,
75 except that this permission notice may be stated in a translation approved
76 by the Free Software Foundation.
81 @comment The title is printed in a large font.
82 @title Guile Reference Manual
83 @subtitle $Id: guile.texi,v 1.12 2001-06-29 21:43:17 mgrabmue Exp $
84 @subtitle For use with Guile @value{VERSION}
87 @c The following two commands start the copyright page.
89 @vskip 0pt plus 1filll
90 @vskip 0pt plus 1filll
91 Copyright @copyright{} 1996 Free Software Foundation
93 Copyright @copyright{} 1997 Free Software Foundation
95 Copyright @copyright{} 2000 Free Software Foundation
97 Permission is granted to make and distribute verbatim copies of
98 this manual provided the copyright notice and this permission notice
99 are preserved on all copies.
101 Permission is granted to copy and distribute modified versions of this
102 manual under the conditions for verbatim copying, provided that the entire
103 resulting derived work is distributed under the terms of a permission
104 notice identical to this one.
106 Permission is granted to copy and distribute translations of this manual
107 into another language, under the above conditions for modified versions,
108 except that this permission notice may be stated in a translation approved
109 by Free Software Foundation.
116 @c Where to find Guile examples.
117 @set example-dir doc/examples
120 @node Top, Guile License, (dir), (dir)
121 @top The Guile Reference Manual
123 This reference manual documents Guile, GNU's Ubiquitous Intelligent
124 Language for Extensions. It describes how to use Guile in many useful
125 and interesting ways.
127 This Info file contains edition 1.0 of the reference manual,
128 corresponding to Guile version @value{VERSION}.
134 * Guile License:: Conditions for copying and using Guile.
135 * Manual Layout:: How to read the rest of this manual.
136 * Manual Conventions:: Conventional terminology.
138 Part I: Introduction to Guile
140 * What is Guile?:: And what does it do?
141 * Whirlwind Tour:: An introductory whirlwind tour.
142 * Reporting Bugs:: Reporting bugs in Guile or this manual.
144 Part II: Guile Scheme
146 * Scheme Intro:: Introduction to Guile Scheme.
147 * Basic Ideas:: Basic ideas in Scheme.
148 * Data Types:: Data types for generic use.
149 * Procedures and Macros:: Procedures and macros.
150 * Utility Functions:: General utility functions.
151 * Binding Constructs:: Definitions and variable bindings.
152 * Control Mechanisms:: Controlling the flow of program execution.
153 * Input and Output:: Ports, reading and writing.
154 * Read/Load/Eval:: Reading and evaluating Scheme code.
155 * Memory Management:: Memory management and garbage collection.
156 * Objects:: Low level object orientation support.
157 * Modules:: Designing reusable code libraries.
158 * Scheduling:: Threads, mutexes, asyncs and dynamic roots.
159 * Options and Config:: Runtime options and configuration.
160 * Translation:: Support for translating other languages.
161 * Debugging:: Internal debugging interface.
162 * Deprecated:: Features that are planned to disappear.
163 * Further Reading:: Where to find out more about Scheme programming.
165 * Guile Extensions Index::
167 Part III: Guile Modules
169 * SLIB:: Using the SLIB Scheme library.
170 * POSIX:: POSIX system calls and networking.
171 * SRFI Support:: Support for various SRFIs.
172 * Readline Support:: Module for using the readline library.
173 * Value History:: Maintaining a value history in the REPL.
174 * Pretty Printing:: Nicely formatting Scheme objects for output.
175 * Formatted Output:: The @code{format} procedure.
176 * Expect:: Controlling interactive programs with Guile.
177 * The Scheme shell (scsh)::
178 The SCSH compatibility module has been made an
179 add-on, so maybe it shouldn't be documented here
180 (though it is nice to have a link from here to the
181 Guile-scsh manual, if one exists).
182 @c * Tcl/Tk Interface::
184 Part IV: Guile Scripting
186 * Guile Scripting:: How to write Guile scripts.
187 * Command Line Handling:: Command line options and arguments.
189 Part V: Extending Applications Using Guile
191 * Libguile Intro:: Using Guile as an extension language.
192 * Data Representation:: Data representation in Guile.
193 * Scheme Primitives:: Writing Scheme primitives in C.
194 * I/O Extensions:: Using and extending ports in C.
195 * Handling Errors:: How to handle errors in C code.
196 * GH:: The deprecated GH interface.
200 * Obtaining and Installing Guile::
201 * Debugger User Interface::
212 @include preface.texi
217 @unnumbered{Part I: Introduction to Guile}
222 @c programming in Scheme
225 @unnumbered{Part II: Guile Scheme}
228 @include scheme-intro.texi
229 @include scheme-ideas.texi
230 @include scheme-data.texi
231 @include scheme-procedures.texi
232 @include scheme-utility.texi
233 @include scheme-binding.texi
234 @include scheme-control.texi
235 @include scheme-io.texi
236 @include scheme-evaluation.texi
237 @include scheme-memory.texi
238 @include scheme-modules.texi
239 @include scheme-scheduling.texi
240 @c object orientation support here
241 @include scheme-options.texi
242 @include scheme-translation.texi
243 @include scheme-debug.texi
244 @include deprecated.texi
245 @include scheme-reading.texi
246 @include scheme-indices.texi
248 @c Unix system interface
251 @unnumbered{Part III: Guile Modules}
256 @include srfi-modules.texi
257 @include repl-modules.texi
258 @include misc-modules.texi
261 @c @include tcltk.texi
263 @c Guile as an scripting language
266 @unnumbered{Part IV: Guile Scripting}
269 @include scripts.texi
270 @include script-getopt.texi
272 @c Guile as an extension language
275 @unnumbered{Part V: Extending Applications Using Guile}
279 @include data-rep.texi
286 @unnumbered{Appendices}
289 @include appendices.texi
297 @include indices.texi