diff options
author | Neil Jerram <neil@ossau.uklinux.net> | 2001-08-24 09:40:29 +0000 |
---|---|---|
committer | Neil Jerram <neil@ossau.uklinux.net> | 2001-08-24 09:40:29 +0000 |
commit | a0e07ba4ec86e4df014fee0666f18ece5a4d2471 (patch) | |
tree | ebe6546fc93fdcb3e2e1fdfbe55d809914b94ad8 /doc/ref/guile.texi | |
parent | 80fdeb4e5a869726da90c88ddce377f599515ee8 (diff) | |
download | guile-a0e07ba4ec86e4df014fee0666f18ece5a4d2471.tar.gz |
* Organize documentation into per-manual directories (halfway point commit).
Diffstat (limited to 'doc/ref/guile.texi')
-rw-r--r-- | doc/ref/guile.texi | 301 |
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 |