Commit | Line | Data |
---|---|---|
38a93523 NJ |
1 | \input texinfo |
2 | @c -*-texinfo-*- | |
3 | @c %**start of header | |
4 | @setfilename guile.info | |
5 | @settitle Guile Reference Manual | |
370babab | 6 | @set guile |
38a93523 NJ |
7 | @c %**end of header |
8 | ||
370babab NJ |
9 | @c Notes: (distilled from Jim's and Tim's notes, and kept up to date) |
10 | @c | |
11 | @c Remember to use "primitive" whereever appropriate. | |
38a93523 | 12 | @c FIXME: gotta change existing "subr" uses to "Primitive". |
370babab NJ |
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 | |
17 | @c Maclisp's lead. | |
18 | @c | |
38a93523 NJ |
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'. | |
21 | @c | |
370babab NJ |
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. | |
38a93523 NJ |
30 | |
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 | |
33 | @c Guile extension. | |
5c4b24e1 | 34 | @defcodeindex rn |
38a93523 NJ |
35 | @defcodeindex ge |
36 | ||
37 | @include version.texi | |
38 | ||
39 | @c @iftex | |
40 | @c @cropmarks | |
41 | @c @end iftex | |
42 | ||
43 | @dircategory The Algorithmic Language Scheme | |
44 | @direntry | |
45 | * Guile Reference: (guile). The Guile reference manual. | |
46 | @end direntry | |
47 | ||
48 | @setchapternewpage off | |
49 | ||
50 | @ifinfo | |
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 | |
56 | ||
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. | |
60 | ||
61 | @ignore | |
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). | |
66 | @end ignore | |
67 | ||
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. | |
72 | ||
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. | |
77 | @end ifinfo | |
78 | ||
79 | @titlepage | |
80 | @sp 10 | |
81 | @comment The title is printed in a large font. | |
82 | @title Guile Reference Manual | |
370babab | 83 | @subtitle $Id: guile.texi,v 1.7 2001-04-28 23:38:52 ossau Exp $ |
38a93523 | 84 | @subtitle For use with Guile @value{VERSION} |
370babab NJ |
85 | @include AUTHORS |
86 | ||
38a93523 NJ |
87 | @c The following two commands start the copyright page. |
88 | @page | |
89 | @vskip 0pt plus 1filll | |
90 | @vskip 0pt plus 1filll | |
91 | Copyright @copyright{} 1996 Free Software Foundation | |
92 | ||
93 | Copyright @copyright{} 1997 Free Software Foundation | |
94 | ||
95 | Copyright @copyright{} 2000 Free Software Foundation | |
96 | ||
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. | |
100 | ||
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. | |
105 | ||
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. | |
110 | @end titlepage | |
111 | ||
112 | @c @smallbook | |
113 | @finalout | |
114 | @headings double | |
115 | ||
116 | @c Where to find Guile examples. | |
117 | @set example-dir doc/examples | |
118 | ||
119 | @ifinfo | |
120 | @node Top, Guile License, (dir), (dir) | |
121 | @top The Guile Reference Manual | |
122 | ||
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. | |
126 | ||
127 | This Info file contains edition 1.0 of the reference manual, | |
128 | corresponding to Guile version @value{VERSION}. | |
129 | @end ifinfo | |
130 | ||
131 | @menu | |
132 | Preface | |
133 | ||
134 | * Guile License:: Conditions for copying and using Guile. | |
135 | * Manual Layout:: How to read the rest of this manual. | |
370babab | 136 | * Manual Conventions:: Conventional terminology. |
38a93523 NJ |
137 | |
138 | Part I: Introduction to Guile | |
139 | ||
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. | |
143 | ||
144 | Part II: Guile Scheme | |
145 | ||
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. | |
164 | * R5RS Index:: | |
165 | * Guile Extensions Index:: | |
166 | ||
167 | Part III: Guile Modules | |
168 | ||
169 | * SLIB:: Using the SLIB Scheme library. | |
170 | * POSIX:: POSIX system calls and networking. | |
612943c6 | 171 | * SRFI-13/14:: String library and character set library. |
38a93523 NJ |
172 | * Expect:: Controlling interactive programs with Guile. |
173 | * The Scheme shell (scsh):: | |
174 | The SCSH compatibility module has been made an | |
175 | add-on, so maybe it shouldn't be documented here | |
176 | (though it is nice to have a link from here to the | |
177 | Guile-scsh manual, if one exists). | |
178 | * Tcl/Tk Interface:: | |
179 | ||
180 | Part IV: Guile Scripting | |
181 | ||
182 | * Guile Scripting:: How to write Guile scripts. | |
b0839672 NJ |
183 | * Command Line Handling:: Command line options and arguments. |
184 | ||
38a93523 NJ |
185 | Part V: Extending Applications Using Guile |
186 | ||
187 | * Libguile Intro:: Using Guile as an extension language. | |
188 | * GH:: GH: a portable C to Scheme interface. | |
189 | * Data Representation:: Data representation in Guile. | |
190 | * Scheme Primitives:: Writing Scheme primitives in C. | |
191 | * I/O Extensions:: Using and extending ports in C. | |
192 | * Handling Errors:: How to handle errors in C code. | |
193 | ||
194 | Appendices | |
195 | ||
196 | * Obtaining and Installing Guile:: | |
197 | * Debugger User Interface:: | |
198 | ||
199 | Indices | |
200 | ||
201 | * Concept Index:: | |
202 | * Procedure Index:: | |
203 | * Variable Index:: | |
204 | * Type Index:: | |
205 | ||
206 | @end menu | |
207 | ||
208 | @include preface.texi | |
209 | ||
210 | @c preliminary | |
211 | @iftex | |
212 | @page | |
213 | @unnumbered{Part I: Introduction to Guile} | |
214 | @end iftex | |
215 | ||
216 | @include intro.texi | |
217 | ||
218 | @c programming in Scheme | |
219 | @iftex | |
220 | @page | |
221 | @unnumbered{Part II: Guile Scheme} | |
222 | @end iftex | |
223 | ||
224 | @include scheme-intro.texi | |
225 | @include scheme-ideas.texi | |
226 | @include scheme-data.texi | |
227 | @include scheme-procedures.texi | |
228 | @include scheme-utility.texi | |
229 | @include scheme-binding.texi | |
230 | @include scheme-control.texi | |
231 | @include scheme-io.texi | |
232 | @include scheme-evaluation.texi | |
233 | @include scheme-memory.texi | |
234 | @include scheme-modules.texi | |
235 | @include scheme-scheduling.texi | |
236 | @c object orientation support here | |
237 | @include scheme-options.texi | |
238 | @include scheme-translation.texi | |
239 | @include scheme-debug.texi | |
240 | @include deprecated.texi | |
241 | @include scheme-reading.texi | |
242 | @include scheme-indices.texi | |
243 | ||
244 | @c Unix system interface | |
245 | @iftex | |
246 | @page | |
247 | @unnumbered{Part III: Guile Modules} | |
248 | @end iftex | |
249 | ||
250 | @include slib.texi | |
251 | @include posix.texi | |
612943c6 | 252 | @include srfi-13-14.texi |
38a93523 NJ |
253 | @include expect.texi |
254 | @include scsh.texi | |
255 | @include tcltk.texi | |
256 | ||
257 | @c Guile as an scripting language | |
258 | @iftex | |
259 | @page | |
260 | @unnumbered{Part IV: Guile Scripting} | |
261 | @end iftex | |
262 | ||
263 | @include scripts.texi | |
b0839672 | 264 | @include script-getopt.texi |
38a93523 NJ |
265 | |
266 | @c Guile as an extension language | |
267 | @iftex | |
268 | @page | |
269 | @unnumbered{Part V: Extending Applications Using Guile} | |
270 | @end iftex | |
271 | ||
272 | @include extend.texi | |
273 | @include gh.texi | |
274 | @include data-rep.texi | |
275 | @include scm.texi | |
276 | ||
277 | @c Appendices | |
278 | @iftex | |
279 | @page | |
280 | @unnumbered{Appendices} | |
281 | @end iftex | |
282 | ||
283 | @include appendices.texi | |
284 | ||
285 | @c Indices | |
286 | @iftex | |
287 | @page | |
288 | @unnumbered{Indices} | |
289 | @end iftex | |
290 | ||
291 | @include indices.texi | |
292 | ||
293 | @contents | |
294 | ||
295 | @bye |