@c -*-texinfo-*-
@c %**start of header
@setfilename guile.info
+@documentencoding UTF-8
@settitle Guile Reference Manual
@set guile
@set MANUAL-REVISION 1
@c %**end of header
@include version.texi
-@include lib-version.texi
@include effective-version.texi
@copying
This manual documents Guile version @value{VERSION}.
-Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005, 2009, 2010 Free
-Software Foundation.
+Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005, 2009,
+2010, 2011, 2012, 2013, 2014 Free Software Foundation.
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.2 or
-any later version published by the Free Software Foundation; with
-no Invariant Sections, with the Front-Cover Texts being ``A GNU
-Manual,'' and with the Back-Cover Text ``You are free to copy and
-modify this GNU Manual.''. A copy of the license is included in the
-section entitled ``GNU Free Documentation License''.
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
+copy of the license is included in the section entitled ``GNU Free
+Documentation License.''
@end copying
@menu
* Preface::
-* Introduction to Guile::
+* Introduction::
+
+* Hello Guile!::
+* Hello Scheme!::
* Programming in Scheme::
* Programming in C::
* API Reference::
* Guile Modules::
-* Standard Library::
* GOOPS::
* Guile Implementation::
-* Autoconf Support::
-
Appendices
* GNU Free Documentation License:: The license of this manual.
@include intro.texi
+@include tour.texi
+
+@include scheme-ideas.texi
+@include scheme-reading.texi
+
@node Programming in Scheme
@chapter Programming in Scheme
-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.
-
-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.
+Guile's core language is Scheme, and a lot can be achieved simply by using Guile
+to write and run Scheme programs --- as opposed to having to dive into C code.
+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.
-For detailed reference information on the variables, functions
-etc. that make up Guile's application programming interface (API),
-@xref{API Reference}.
+For detailed reference information on the variables, functions, and so
+on that make up Guile's application programming interface (API), see
+@ref{API Reference}.
@menu
-* Basic Ideas:: Basic ideas in Scheme.
* Guile Scheme:: Guile's implementation of Scheme.
+* Invoking Guile:: Selecting optional features when starting Guile.
* Guile Scripting:: How to write Guile scripts.
* Using Guile Interactively:: Guile's REPL features.
* Using Guile in Emacs:: Guile and Emacs.
-* Further Reading:: Where to find out more about Scheme.
+* Using Guile Tools:: A guild of scheming wizards.
+* Installing Site Packages:: Installing Scheme code.
@end menu
-@include scheme-ideas.texi
@include scheme-intro.texi
+@include guile-invoke.texi
@include scheme-scripts.texi
@include scheme-using.texi
-@include scheme-reading.texi
@node Programming in C
@chapter Programming in C
@xref{API Reference}.
@menu
+* Parallel Installations:: Finding the right Guile.
* Linking Programs With Guile:: More precisely, with the libguile library.
* Linking Guile with Libraries:: To extend Guile itself.
* General Libguile Concepts:: General concepts for using libguile.
* Defining New Types (Smobs):: Adding new types to Guile.
* Function Snarfing:: A way to define new functions.
* Programming Overview:: An overview of Guile programming.
+* Autoconf Support:: Putting m4 to good use.
@end menu
+@include libguile-parallel.texi
@include libguile-linking.texi
@include libguile-extensions.texi
@include libguile-concepts.texi
@include libguile-smobs.texi
@include libguile-snarf.texi
@include libguile-program.texi
+@include libguile-autoconf.texi
+
@node API Reference
@chapter API Reference
@menu
* API Overview:: Overview of the Guile API.
+* Deprecation:: Obsolete back-compatible APIs.
* The SCM Type:: The fundamental data type for C code.
* Initialization:: Initializing Guile.
* Snarfing Macros:: Macros for snarfing initialization actions.
* Binding Constructs:: Definitions and variable bindings.
* Control Mechanisms:: Controlling the flow of program execution.
* Input and Output:: Ports, reading and writing.
+* Regular Expressions:: Pattern matching and substitution.
+* LALR(1) Parsing:: Generating LALR(1) parsers.
* Read/Load/Eval/Compile:: Reading and evaluating Scheme code.
* Memory Management:: Memory management and garbage collection.
-* Objects:: Low level object orientation support.
* Modules:: Designing reusable code libraries.
+* Foreign Function Interface:: Interacting with C procedures and data.
* Scheduling:: Threads, mutexes, asyncs and dynamic roots.
* Options and Config:: Configuration, features and runtime options.
-* Translation:: Support for translating other languages.
+* Other Languages:: Emacs Lisp, ECMAScript, and more.
* Internationalization:: Support for gettext, etc.
* Debugging:: Debugging infrastructure and Scheme interface.
+* Code Coverage:: Gathering code coverage data.
@end menu
@include api-overview.texi
+@include api-deprecated.texi
@include api-scm.texi
@include api-init.texi
@include api-snarf.texi
@include api-binding.texi
@include api-control.texi
@include api-io.texi
+@include api-regex.texi
+@include api-lalr.texi
@include api-evaluation.texi
@include api-memory.texi
@include api-modules.texi
+@include api-foreign.texi
@include api-scheduling.texi
@c object orientation support here
@include api-options.texi
-@include api-translation.texi
+@include api-languages.texi
@include api-i18n.texi
@include api-debug.texi
+@include api-coverage.texi
@node Guile Modules
@chapter Guile Modules
@menu
* SLIB:: Using the SLIB Scheme library.
* POSIX:: POSIX system calls and networking.
+* Web:: HTTP, the web, and all that.
* getopt-long:: Command line handling.
* SRFI Support:: Support for various SRFIs.
+* R6RS Support:: Modules defined by the R6RS.
+* Pattern Matching:: Generic pattern matching constructs.
* 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.
* File Tree Walk:: Traversing the file system.
* Streams:: Sequences of values.
* Buffered Input:: Ports made from a reader function.
* Expect:: Controlling interactive programs with Guile.
+* sxml-match:: Pattern matching of SXML.
* The Scheme shell (scsh):: Using scsh interfaces in Guile.
-* Tracing:: Tracing program execution.
+* Curried Definitions:: Extended @code{define} syntax.
+* Statprof:: An easy-to-use statistical profiler.
+* SXML:: Parsing, transforming, and serializing XML.
+* Texinfo Processing:: Munging documents written in Texinfo.
@end menu
@include slib.texi
@include posix.texi
+@include web.texi
@include mod-getopt-long.texi
@include srfi-modules.texi
+@include r6rs.texi
+@include match.texi
@include repl-modules.texi
@include misc-modules.texi
@include expect.texi
-@include scsh.texi
-@include scheme-debugging.texi
-@node Standard Library
-@chapter Standard Library
+@c XXX: Would be nicer if it were close to the (sxml simple) documentation.
+@include sxml-match.texi
+
+@include scsh.texi
+@include curried.texi
-@lowersections
-@include standard-library.texi
-@raisesections
+@include statprof.texi
+@include sxml.texi
+@include texinfo.texi
@include goops.texi
@include vm.texi
@include compiler.texi
-@include autoconf.texi
+@node GNU Free Documentation License
+@appendix GNU Free Documentation License
@include fdl.texi
-@iftex
-@page
-@unnumbered{Indices}
-@end iftex
-
@include indices.texi
@include scheme-indices.texi