@setfilename guile.info
@settitle Guile Reference Manual
@set guile
-@set MANUAL_EDITION 1.1
+@set MANUAL-EDITION 1.1
@c %**end of header
+@include version.texi
+
+@copying
+This reference manual documents Guile, GNU's Ubiquitous Intelligent
+Language for Extensions, manual edition @value{MANUAL-EDITION}
+corresponding to Guile @value{VERSION}.
+
+Copyright 1996, 1997, 2000, 2001, 2002, 2003 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 copying
+
+@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
+
@c Notes
@c
@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 Macros for describing version information. I've initially defined
-@c all of these to expand to nothing, but they could perhaps be made to
-@c expand to something like "New in Guile 45!" in future.
-
-@c vnew - indicates the Guile version in which item first appeared.
+@c vnew - For (some) new items, indicates the Guile version in which
+@c item first appeared. In future, this could be made to expand to
+@c something like a "New in Guile 45!" banner.
@macro vnew{VERSION}
@end macro
-@c vdeprecated - indicates that the item has been deprecated, and the
-@c Guile version in which the deprecation started.
-@macro vdeprecated{VERSION}
-@end macro
-@c vgone - a way of tracking items that are no longer here. In this
-@c case, VERSION is the last Guile version in which the item was present.
-@macro vgone{WHAT, VERSION}
+@c @m{T,N} is $T$ in tex or @math{N} otherwise. This is an easy way to give
+@c different forms for math in tex and info.
+@iftex
+@macro m {T,N}
+@tex$\T\$@end tex
@end macro
-
-@c vchanged - indicates the Guile version in which item's behaviour
-@c significantly changed.
-@macro vchanged{VERSION}
+@end iftex
+@ifnottex
+@macro m {T,N}
+@math{\N\}
@end macro
+@end ifnottex
-@c vnote - catchall for any additional notes.
-@macro vnote{NOTE}
+@c @nicode{S} is plain S in info, or @code{S} elsewhere. This can be
+@c used when the quotes that @code{} gives in info aren't wanted, but
+@c the fontification in tex or html is wanted.
+@ifinfo
+@macro nicode {S}
+\S\
@end macro
+@end ifinfo
+@ifnotinfo
+@macro nicode {S}
+@code{\S\}
+@end macro
+@end ifnotinfo
+
@c @iftex
@c @cropmarks
@dircategory The Algorithmic Language Scheme
@direntry
-* Guile Reference: (guile). The Guile reference manual.
+* 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.14 2002-03-15 14:03:53 ossau Exp $
-@subtitle For use with Guile @value{VERSION}
+@subtitle Edition @value{MANUAL-EDITION}, for use with Guile @value{VERSION}
+@subtitle $Id: guile.texi,v 1.24 2003-08-29 23:02:36 kryde Exp $
@c AUTHORS
@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.
+@insertcopying
@end titlepage
@c @smallbook
@c Where to find Guile examples.
@set example-dir doc/examples
-@ifinfo
+@ifnottex
@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 @value{MANUAL_EDITION} of the reference
-manual, corresponding to Guile version @value{VERSION}.
-@end ifinfo
+@insertcopying
+@sp 1
+@end ifnottex
@menu
Preface
* Obtaining and Installing Guile::
* Reporting Bugs:: Reporting bugs in Guile or this manual.
-Part II: Programming with Guile
+Part II: Writing and Running Guile Scheme
-* Programming Intro:: Introduction to this part.
-* Programming Overview:: An overview of Guile programming.
-* Scheme Intro:: Introduction to Guile Scheme.
-* Basic Ideas:: Basic ideas in Scheme.
+* Running Intro:: Introduction to this part.
+* Guile Scheme:: Guile's implementation of Scheme.
* Guile Scripting:: How to write Guile scripts.
* Command Line Handling:: Command line options and arguments.
+* Debugging Features:: Features for debugging errors.
+* Autoconf Support:: Guile-specific configure.in macros.
+* Miscellaneous Tools:: Snarfing, linting, etc.
+* Basic Ideas:: Basic ideas in Scheme.
+* Further Reading:: Where to find out more about Scheme.
+
+Part III: Guile as an Extension Language
+
+* Programming Intro:: Introduction to this part.
* Libguile Intro:: Using Guile as an extension language.
-* Guile API:: Overview of the Guile API.
+* Programming Overview:: An overview of Guile programming.
* Data Representation:: Data representation in Guile.
* GH:: The deprecated GH interface.
-* Debugger User Interface::
-* Autoconf Support:: Guile-specific configure.in macros.
-* Miscellaneous Tools:: Snarfing, linting, etc.
-* Further Reading:: Where to find out more about Scheme programming.
-Part III: Guile API Reference
+Part IV: Guile API Reference
* Reference Intro:: Introduction to the Guile API reference.
+* API Overview:: Overview of the Guile API.
* Simple Data Types:: Numbers, strings, booleans and so on.
* Compound Data Types:: Data types for holding other data.
* Procedures and Macros:: Procedures and macros.
* 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.
+* Options and Config:: Configuration, features and runtime options.
* Translation:: Support for translating other languages.
* Debugging:: Internal debugging interface.
* Deprecated:: Features that are planned to disappear.
-Part IV: Guile Modules
+Part V: Guile Modules
* SLIB:: Using the SLIB Scheme library.
* POSIX:: POSIX system calls and networking.
* Variable Index::
* Type Index::
* R5RS Index::
-* Guile Extensions Index::
@end menu
+@contents
+
@include preface.texi
@iftex
@include intro.texi
@page
-@node Programming Intro
-@unnumbered Part II: Programming with Guile
+@node Running Intro
+@unnumbered Part II: Writing and Running Guile Scheme
-In this part of the manual, we aim to present a wide ranging picture of
-what it means to program using Guile, to provide guidance, practical
-guidelines and tips for @emph{how} to program in Guile, and to document
-the tools that are available to help you with your programming. For
-detailed reference information on the variables, functions etc. that
-make up Guile's application programming interface (API), please refer to
-Part III (@pxref{Reference Intro,,Part III --- Guile API Reference}).
+Guile's core language is Scheme, and an awful lot can be achieved simply
+by using Guile to write and run Scheme programs. In this part of the
+manual, we explain how to use Guile in this mode, and describe the tools
+that Guile provides to help you with script writing, debugging and
+packaging your programs for distribution.
-We begin in the first chapter of this part by looking at the programming
-options available.
+For readers who are not yet familiar with the Scheme language, this part
+includes a chapter that presents the basic concepts of the language, and
+gives references to freely available Scheme tutorial material on the
+web.
+
+For detailed reference information on the variables, functions etc. that
+make up Guile's application programming interface (API), please refer to
+Part IV (@pxref{Reference Intro,,Part IV --- Guile API Reference}).
-@include program.texi
@include scheme-intro.texi
-@include scheme-ideas.texi
@include scripts.texi
@include script-getopt.texi
-@include extend.texi
-@include scm.texi
-@include data-rep.texi
-@include gh.texi
@include debugging.texi
@include autoconf.texi
@include tools.texi
+@include scheme-ideas.texi
@include scheme-reading.texi
+@page
+@node Programming Intro
+@unnumbered Part III: Guile as an Extension Language
+
+In this part of the manual, we aim to present a wide ranging picture of
+what it means to use Guile as an application extension language, to
+provide guidance, practical guidelines and tips for @emph{how} to
+program in Guile, and to document the tools that are available to help
+you with your programming. For detailed reference information on the
+variables, functions etc. that make up Guile's application programming
+interface (API), please refer to Part IV (@pxref{Reference Intro,,Part
+IV --- Guile API Reference}).
+
+@include extend.texi
+@include program.texi
+@include data-rep.texi
+@include gh.texi
+
@page
@node Reference Intro
-@unnumbered Part III: Guile API Reference
+@unnumbered Part IV: Guile API Reference
Guile provides an application programming interface (@dfn{API}) to
developers in two core languages: Scheme and C. This part of the manual
contains reference documentation for all of the functionality that is
available through both Scheme and C interfaces.
+@include scm.texi
@include scheme-data.texi
@include scheme-compound.texi
@include scheme-procedures.texi
@iftex
@page
-@unnumbered{Part IV: Guile Modules}
+@unnumbered{Part V: Guile Modules}
@end iftex
@include slib.texi
@include indices.texi
@include scheme-indices.texi
-@contents
-
@bye