summaryrefslogtreecommitdiff
path: root/doc/ref/guile.texi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/ref/guile.texi')
-rw-r--r--doc/ref/guile.texi301
1 files changed, 301 insertions, 0 deletions
diff --git a/doc/ref/guile.texi b/doc/ref/guile.texi
new file mode 100644
index 000000000..1ba439931
--- /dev/null
+++ b/doc/ref/guile.texi
@@ -0,0 +1,301 @@
+\input texinfo
+@c -*-texinfo-*-
+@c %**start of header
+@setfilename guile.info
+@settitle Guile Reference Manual
+@set guile
+@c %**end of header
+
+@c Notes: (distilled from Jim's and Tim's notes, and kept up to date)
+@c
+@c Remember to use "primitive" whereever appropriate.
+@c FIXME: gotta change existing "subr" uses to "Primitive".
+@c [JimB:] In my text for the Guile snarfer, I've used the term "subr"
+@c to denote a C function made available to the Scheme world as a
+@c function. This terminology is weird, but consistent with the
+@c function names and also with Emacs Lisp, which I assume takes
+@c Maclisp's lead.
+@c
+@c When adding a new function to the Guile manual, please document
+@c it with @deffn as one of `primitive', `procedure', or `syntax'.
+@c
+@c For a list of Guile primitives that are not yet incorporated into the
+@c reference manual, see the file `new-docstrings.texi', which holds all
+@c the docstrings snarfed from the libguile C sources for primitives
+@c that are not in the reference manual. If you have worked with some
+@c of these concepts, implemented them, or just happen to know what they
+@c do, please write up a little explanation -- it would be a big help.
+@c Alternatively, if you know of a great reason why some of these should
+@c *not* go in the manual, please let me know.
+
+@c Define indices that are used in the Guile Scheme part of the
+@c reference manual to group stuff according to whether it is R5RS or a
+@c Guile extension.
+@defcodeindex rn
+@defcodeindex ge
+
+@include version.texi
+
+@c @iftex
+@c @cropmarks
+@c @end iftex
+
+@dircategory The Algorithmic Language Scheme
+@direntry
+* Guile Reference: (guile). The Guile reference manual.
+@end direntry
+
+@setchapternewpage off
+
+@ifinfo
+Guile Reference Manual
+Copyright (C) 1996 Free Software Foundation @*
+Copyright (C) 1997 Free Software Foundation @*
+Copyright (C) 2000 Free Software Foundation @*
+Copyright (C) 2001 Free Software Foundation
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+@ignore
+Permission is granted to process this file through TeX and print the
+results, provided the printed document carries copying permission
+notice identical to this one except for the removal of this paragraph
+(this paragraph not being relevant to the printed manual).
+@end ignore
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the entire
+resulting derived work is distributed under the terms of a permission
+notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions,
+except that this permission notice may be stated in a translation approved
+by the Free Software Foundation.
+@end ifinfo
+
+@titlepage
+@sp 10
+@comment The title is printed in a large font.
+@title Guile Reference Manual
+@subtitle $Id: guile.texi,v 1.1 2001-08-24 09:40:29 ossau Exp $
+@subtitle For use with Guile @value{VERSION}
+@include AUTHORS
+
+@c The following two commands start the copyright page.
+@page
+@vskip 0pt plus 1filll
+@vskip 0pt plus 1filll
+Copyright @copyright{} 1996 Free Software Foundation
+
+Copyright @copyright{} 1997 Free Software Foundation
+
+Copyright @copyright{} 2000 Free Software Foundation
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the entire
+resulting derived work is distributed under the terms of a permission
+notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions,
+except that this permission notice may be stated in a translation approved
+by Free Software Foundation.
+@end titlepage
+
+@c @smallbook
+@finalout
+@headings double
+
+@c Where to find Guile examples.
+@set example-dir doc/examples
+
+@ifinfo
+@node Top, Guile License, (dir), (dir)
+@top The Guile Reference Manual
+
+This reference manual documents Guile, GNU's Ubiquitous Intelligent
+Language for Extensions. It describes how to use Guile in many useful
+and interesting ways.
+
+This Info file contains edition 1.0 of the reference manual,
+corresponding to Guile version @value{VERSION}.
+@end ifinfo
+
+@menu
+Preface
+
+* Guile License:: Conditions for copying and using Guile.
+* Manual Layout:: How to read the rest of this manual.
+* Manual Conventions:: Conventional terminology.
+
+Part I: Introduction to Guile
+
+* What is Guile?:: And what does it do?
+* Whirlwind Tour:: An introductory whirlwind tour.
+* Reporting Bugs:: Reporting bugs in Guile or this manual.
+
+Part II: Guile Scheme
+
+* Scheme Intro:: Introduction to Guile Scheme.
+* Basic Ideas:: Basic ideas in Scheme.
+* Data Types:: Data types for generic use.
+* Procedures and Macros:: Procedures and macros.
+* Utility Functions:: General utility functions.
+* Binding Constructs:: Definitions and variable bindings.
+* Control Mechanisms:: Controlling the flow of program execution.
+* Input and Output:: Ports, reading and writing.
+* Read/Load/Eval:: Reading and evaluating Scheme code.
+* Memory Management:: Memory management and garbage collection.
+* Objects:: Low level object orientation support.
+* Modules:: Designing reusable code libraries.
+* Scheduling:: Threads, mutexes, asyncs and dynamic roots.
+* Options and Config:: Runtime options and configuration.
+* Translation:: Support for translating other languages.
+* Debugging:: Internal debugging interface.
+* Deprecated:: Features that are planned to disappear.
+* Further Reading:: Where to find out more about Scheme programming.
+* R5RS Index::
+* Guile Extensions Index::
+
+Part III: Guile Modules
+
+* SLIB:: Using the SLIB Scheme library.
+* POSIX:: POSIX system calls and networking.
+* SRFI Support:: Support for various SRFIs.
+* Readline Support:: Module for using the readline library.
+* Value History:: Maintaining a value history in the REPL.
+* Pretty Printing:: Nicely formatting Scheme objects for output.
+* Formatted Output:: The @code{format} procedure.
+* Expect:: Controlling interactive programs with Guile.
+* The Scheme shell (scsh)::
+ The SCSH compatibility module has been made an
+ add-on, so maybe it shouldn't be documented here
+ (though it is nice to have a link from here to the
+ Guile-scsh manual, if one exists).
+@c * Tcl/Tk Interface::
+
+Part IV: Guile Scripting
+
+* Guile Scripting:: How to write Guile scripts.
+* Command Line Handling:: Command line options and arguments.
+
+Part V: Extending Applications Using Guile
+
+* Libguile Intro:: Using Guile as an extension language.
+* Data Representation:: Data representation in Guile.
+* Scheme Primitives:: Writing Scheme primitives in C.
+* I/O Extensions:: Using and extending ports in C.
+* Handling Errors:: How to handle errors in C code.
+* GH:: The deprecated GH interface.
+
+Appendices
+
+* Obtaining and Installing Guile::
+* Debugger User Interface::
+
+Indices
+
+* Concept Index::
+* Procedure Index::
+* Variable Index::
+* Type Index::
+
+@end menu
+
+@include preface.texi
+
+@c preliminary
+@iftex
+@page
+@unnumbered{Part I: Introduction to Guile}
+@end iftex
+
+@include intro.texi
+
+@c programming in Scheme
+@iftex
+@page
+@unnumbered{Part II: Guile Scheme}
+@end iftex
+
+@include scheme-intro.texi
+@include scheme-ideas.texi
+@include scheme-data.texi
+@include scheme-procedures.texi
+@include scheme-utility.texi
+@include scheme-binding.texi
+@include scheme-control.texi
+@include scheme-io.texi
+@include scheme-evaluation.texi
+@include scheme-memory.texi
+@include scheme-modules.texi
+@include scheme-scheduling.texi
+@c object orientation support here
+@include scheme-options.texi
+@include scheme-translation.texi
+@include scheme-debug.texi
+@include deprecated.texi
+@include scheme-reading.texi
+@include scheme-indices.texi
+
+@c Unix system interface
+@iftex
+@page
+@unnumbered{Part III: Guile Modules}
+@end iftex
+
+@include slib.texi
+@include posix.texi
+@include srfi-modules.texi
+@include repl-modules.texi
+@include misc-modules.texi
+@include expect.texi
+@include scsh.texi
+@c @include tcltk.texi
+
+@c Guile as an scripting language
+@iftex
+@page
+@unnumbered{Part IV: Guile Scripting}
+@end iftex
+
+@include scripts.texi
+@include script-getopt.texi
+
+@c Guile as an extension language
+@iftex
+@page
+@unnumbered{Part V: Extending Applications Using Guile}
+@end iftex
+
+@include extend.texi
+@include data-rep.texi
+@include scm.texi
+@include gh.texi
+
+@c Appendices
+@iftex
+@page
+@unnumbered{Appendices}
+@end iftex
+
+@include appendices.texi
+
+@c Indices
+@iftex
+@page
+@unnumbered{Indices}
+@end iftex
+
+@include indices.texi
+
+@contents
+
+@bye