guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.5-11-g8d1544


From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.5-11-g8d1544f
Date: Thu, 02 Feb 2012 13:49:27 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".

http://git.savannah.gnu.org/cgit/guile.git/commit/?id=8d1544f66e20f191d3082cf0b0cb34bd8eff0ee1

The branch, stable-2.0 has been updated
       via  8d1544f66e20f191d3082cf0b0cb34bd8eff0ee1 (commit)
       via  91a214ebd989fab6596ff24b7cad945f0dfc60a9 (commit)
       via  b7e64f8b266651e5b3fae6f664a45468f0c4907f (commit)
       via  c99acbf3978220873235c17a79fb37ef0933f3c6 (commit)
       via  64de6db5c6a73ffe24fca79cc3be13751f152d28 (commit)
       via  9cbcc73fce39811052519f5f19016b5eb888f151 (commit)
      from  bf8d845468fa71debf45e91a4e40f4b219dab4b0 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 8d1544f66e20f191d3082cf0b0cb34bd8eff0ee1
Author: Bake Timmons <address@hidden>
Date:   Thu Jan 12 10:45:28 2012 -0500

    Fix case in identifiers starting sentences in doc/r5rs/r5rs.texi
    
    * doc/r5rs/r5rs.texi: Use proper case of characters in identifiers starting
      sentences.

commit 91a214ebd989fab6596ff24b7cad945f0dfc60a9
Author: Bake Timmons <address@hidden>
Date:   Wed Jan 11 23:55:18 2012 -0500

    Improve the usage of variable names in Scheme docstrings.
    
    * module/ice-9/boot-9.scm:
    * module/ice-9/popen.scm:
    * module/ice-9/pretty-print.scm:
    * module/ice-9/r4rs.scm:
    * module/rnrs/io/ports.scm:
    * module/texinfo/string-utils.scm:
    * module/web/http.scm:
    * module/web/request.scm:
    * module/web/response.scm:
    * test-suite/vm/run-vm-tests.scm: Make the variable names in Scheme 
docstrings more
      consistent.  Replace a few instances of @var with @code when appropriate.

commit b7e64f8b266651e5b3fae6f664a45468f0c4907f
Author: Bake Timmons <address@hidden>
Date:   Wed Jan 11 23:33:01 2012 -0500

    Improve the usage of variable names in C docstrings.
    
    * libguile/alist.c:
    * libguile/array-map.c:
    * libguile/arrays.c:
    * libguile/bitvectors.c:
    * libguile/filesys.c:
    * libguile/foreign.c:
    * libguile/generalized-arrays.c:
    * libguile/hashtab.c:
    * libguile/ioext.c:
    * libguile/load.c:
    * libguile/numbers.c:
    * libguile/ports.c:
    * libguile/posix.c:
    * libguile/print.c:
    * libguile/procprop.c:
    * libguile/promises.c:
    * libguile/simpos.c:
    * libguile/socket.c:
    * libguile/srfi-1.c:
    * libguile/srfi-13.c:
    * libguile/srfi-14.c:
    * libguile/stacks.c:
    * libguile/stime.c:
    * libguile/strings.c:
    * libguile/struct.c:
    * libguile/symbols.c:
    * libguile/threads.c:
    * libguile/weak-table.c:
    * libguile/weak-vector.c: Make the variable names in the C docstrings more
      consistent.  Replace a few instances of @var with @code when appropriate.

commit c99acbf3978220873235c17a79fb37ef0933f3c6
Author: Andy Wingo <address@hidden>
Date:   Thu Feb 2 12:16:30 2012 +0100

    Remove unused doc/sources/
    
    * doc/sources: Remove.  It is not used at all, presumably because all it
      had to offer was already incorporated in the manual.

commit 64de6db5c6a73ffe24fca79cc3be13751f152d28
Author: Bake Timmons <address@hidden>
Date:   Wed Jan 11 12:02:57 2012 -0500

    Make consistent the usage of variable names in the function definitions 
found in the Texinfo docs.
    
    * doc/r5rs/r5rs.texi:
    * doc/ref/api-compound.texi:
    * doc/ref/api-data.texi:
    * doc/ref/api-debug.texi:
    * doc/ref/api-evaluation.texi:
    * doc/ref/api-io.texi:
    * doc/ref/api-modules.texi:
    * doc/ref/api-procedures.texi:
    * doc/ref/api-scheduling.texi:
    * doc/ref/api-smobs.texi:
    * doc/ref/compiler.texi:
    * doc/ref/misc-modules.texi:
    * doc/ref/posix.texi:
    * doc/ref/scheme-using.texi:
    * doc/ref/srfi-modules.texi:
    * doc/ref/vm.texi:
    * doc/ref/web.texi:
    * doc/sources/env.texi: Make usage of variable names of function definitions
      more consistent.

commit 9cbcc73fce39811052519f5f19016b5eb888f151
Author: Bake Timmons <address@hidden>
Date:   Wed Jan 11 09:30:57 2012 -0500

    Fix unbalanced parentheses in docs.
    
    * doc/ref/sxml-match.texi (sxml-match-let, sxml-match-let*): Remove
      extraneous parenthesis at end of Texinfo function definition header.

-----------------------------------------------------------------------

Summary of changes:
 doc/r5rs/r5rs.texi                 |  165 +++---
 doc/ref/api-compound.texi          |   66 +-
 doc/ref/api-data.texi              |   18 +-
 doc/ref/api-debug.texi             |    6 +-
 doc/ref/api-evaluation.texi        |    6 +-
 doc/ref/api-io.texi                |   56 +-
 doc/ref/api-modules.texi           |    4 +-
 doc/ref/api-procedures.texi        |    4 +-
 doc/ref/api-scheduling.texi        |   39 +-
 doc/ref/api-smobs.texi             |   10 +-
 doc/ref/compiler.texi              |    4 +-
 doc/ref/misc-modules.texi          |    6 +-
 doc/ref/posix.texi                 |   66 +-
 doc/ref/scheme-using.texi          |    6 +-
 doc/ref/srfi-modules.texi          |   10 +-
 doc/ref/sxml-match.texi            |    4 +-
 doc/ref/vm.texi                    |    6 +-
 doc/ref/web.texi                   |    8 +-
 doc/sources/ChangeLog-2008         |    5 -
 doc/sources/Makefile.am            |    7 -
 doc/sources/contributors.texi      |   80 ---
 doc/sources/debug-c.texi           |    2 -
 doc/sources/debug-scheme.texi      |    2 -
 doc/sources/env.texi               | 1165 ------------------------------------
 doc/sources/format.texi            |  434 --------------
 doc/sources/guile-slib.texi        |    2 -
 doc/sources/jimb-org.texi          |  131 ----
 doc/sources/libguile-overview.texi |   30 -
 doc/sources/libguile-tools.texi    |  191 ------
 doc/sources/new-types.texi         |    2 -
 doc/sources/old-intro.texi         |  290 ---------
 doc/sources/sample-APIs.texi       |    6 -
 doc/sources/scheme-concepts.texi   |  249 --------
 doc/sources/scm-ref.texi           |    4 -
 doc/sources/strings.texi           |   45 --
 doc/sources/tk.texi                |    5 -
 doc/sources/unix-other.texi        |  132 ----
 doc/sources/unix.texi              |  622 -------------------
 libguile/alist.c                   |    4 +-
 libguile/array-map.c               |   27 +-
 libguile/arrays.c                  |   37 +-
 libguile/bitvectors.c              |    2 +-
 libguile/filesys.c                 |   49 +-
 libguile/foreign.c                 |    6 +-
 libguile/generalized-arrays.c      |    7 +-
 libguile/hashtab.c                 |   10 +-
 libguile/ioext.c                   |   10 +-
 libguile/load.c                    |    4 +-
 libguile/numbers.c                 |    4 +-
 libguile/ports.c                   |   26 +-
 libguile/posix.c                   |   40 +-
 libguile/print.c                   |    2 +-
 libguile/procprop.c                |    2 +-
 libguile/promises.c                |    4 +-
 libguile/simpos.c                  |    2 +-
 libguile/socket.c                  |    8 +-
 libguile/srfi-1.c                  |    8 +-
 libguile/srfi-13.c                 |    6 +-
 libguile/srfi-14.c                 |    6 +-
 libguile/stacks.c                  |    6 +-
 libguile/stime.c                   |   17 +-
 libguile/strings.c                 |    2 +-
 libguile/struct.c                  |   24 +-
 libguile/symbols.c                 |    9 +-
 libguile/threads.c                 |   17 +-
 module/ice-9/boot-9.scm            |    2 +-
 module/ice-9/popen.scm             |    4 +-
 module/ice-9/pretty-print.scm      |    2 +-
 module/ice-9/r4rs.scm              |   10 +-
 module/rnrs/io/ports.scm           |    2 +-
 module/texinfo/string-utils.scm    |    4 +-
 module/web/http.scm                |    2 +-
 module/web/request.scm             |    2 +-
 module/web/response.scm            |    2 +-
 test-suite/vm/run-vm-tests.scm     |    2 +-
 75 files changed, 435 insertions(+), 3824 deletions(-)
 delete mode 100644 doc/sources/ChangeLog-2008
 delete mode 100644 doc/sources/Makefile.am
 delete mode 100644 doc/sources/contributors.texi
 delete mode 100644 doc/sources/debug-c.texi
 delete mode 100644 doc/sources/debug-scheme.texi
 delete mode 100644 doc/sources/env.texi
 delete mode 100644 doc/sources/format.texi
 delete mode 100644 doc/sources/guile-slib.texi
 delete mode 100644 doc/sources/jimb-org.texi
 delete mode 100644 doc/sources/libguile-overview.texi
 delete mode 100644 doc/sources/libguile-tools.texi
 delete mode 100644 doc/sources/new-types.texi
 delete mode 100644 doc/sources/old-intro.texi
 delete mode 100644 doc/sources/sample-APIs.texi
 delete mode 100644 doc/sources/scheme-concepts.texi
 delete mode 100644 doc/sources/scm-ref.texi
 delete mode 100644 doc/sources/strings.texi
 delete mode 100644 doc/sources/tk.texi
 delete mode 100644 doc/sources/unix-other.texi
 delete mode 100644 doc/sources/unix.texi

diff --git a/doc/r5rs/r5rs.texi b/doc/r5rs/r5rs.texi
index b7722c1..336ce0a 100644
--- a/doc/r5rs/r5rs.texi
+++ b/doc/r5rs/r5rs.texi
@@ -2155,7 +2155,7 @@ and @r{<body>} should be a sequence of
 one or more expressions.
 
 @emph{Semantics:}
address@hidden is similar to @samp{let}, but the bindings are performed
address@hidden is similar to @samp{let}, but the bindings are performed
 sequentially from left to right, and the region of a binding indicated
 @cindex @w{region}
 by @samp{(@r{<variable>} @r{<init>})} is that part of the @samp{let*}
@@ -2271,12 +2271,12 @@ output.
 @deffn {library syntax} do ((@r{<variable1>} @r{<init1>} @r{<step1>}) @dots{}) 
(@r{<test>} @r{<expression>} @dots{}) @r{<command>} @dots{}
 @cindex @w{do}
 
address@hidden is an iteration construct.  It specifies a set of variables to
address@hidden is an iteration construct.  It specifies a set of variables to
 be bound, how they are to be initialized at the start, and how they are
 to be updated on each iteration.  When a termination condition is met,
 the loop exits after evaluating the @r{<expression>}s.
 
address@hidden expressions are evaluated as follows:
address@hidden expressions are evaluated as follows:
 The @r{<init>} expressions are evaluated (in some unspecified order),
 the @r{<variable>}s are bound to fresh locations, the results of the
 @r{<init>} expressions are stored in the bindings of the
@@ -2595,7 +2595,7 @@ bindings that may surround the use of the macro.
 
 
 
address@hidden and @samp{letrec-syntax} are
address@hidden and @samp{letrec-syntax} are
 analogous to @samp{let} and @samp{letrec}, but they bind
 syntactic keywords to macro transformers instead of binding variables
 to locations that contain values.  Syntactic keywords may also be
@@ -3254,7 +3254,7 @@ value (@t{#t} or @t{#f}).  An @dfn{equivalence predicate} 
is
 the computational analogue of a mathematical equivalence relation (it is
 symmetric, reflexive, and transitive).  Of the equivalence predicates
 described in this section, @samp{eq?} is the finest or most
-discriminating, and @samp{equal?} is the coarsest.  @samp{Eqv?} is
+discriminating, and @samp{equal?} is the coarsest.  @samp{eqv?} is
 slightly less discriminating than @samp{eq?}.  
 @ignore todo
 Pitman doesn't like
@@ -3419,9 +3419,9 @@ boolean.
 
 
 The next set of examples shows the use of @samp{eqv?} with procedures
-that have local state.  @samp{Gen-counter} must return a distinct
+that have local state.  @samp{gen-counter} must return a distinct
 procedure every time, since each procedure has its own internal counter.
address@hidden, however, returns equivalent procedures each time, since
address@hidden, however, returns equivalent procedures each time, since
 the local state does not affect the value or side effects of the
 procedures.
 
@@ -3500,17 +3500,17 @@ bit pattern to represent both.
 
 @deffn {procedure} eq?  obj1 obj2
 
address@hidden is similar to @samp{eqv?} except that in some cases it is
address@hidden is similar to @samp{eqv?} except that in some cases it is
 capable of discerning distinctions finer than those detectable by
 @samp{eqv?}.
 
address@hidden and @samp{eqv?} are guaranteed to have the same
address@hidden and @samp{eqv?} are guaranteed to have the same
 behavior on symbols, booleans, the empty list, pairs, procedures,
 and non-empty
-strings and vectors.  @samp{Eq?}'s behavior on numbers and characters is
+strings and vectors.  @samp{eq?}'s behavior on numbers and characters is
 implementation-dependent, but it will always return either true or
 false, and will return true only when @samp{eqv?} would also return
-true.  @samp{Eq?} may also behave differently from @samp{eqv?} on empty
+true.  @samp{eq?} may also behave differently from @samp{eqv?} on empty
 vectors and empty strings.
 
 
@@ -3549,7 +3549,7 @@ more efficiently than @samp{eqv?}, for example, as a 
simple pointer
 comparison instead of as some more complicated operation.  One reason is
 that it may not be possible to compute @samp{eqv?} of two numbers in
 constant time, whereas @samp{eq?} implemented as pointer comparison will
-always finish in constant time.  @samp{Eq?} may be used like @samp{eqv?}
+always finish in constant time.  @samp{eq?} may be used like @samp{eqv?}
 in applications using procedures to implement objects with state since
 it obeys the same constraints as @samp{eqv?}.
 @end quotation
@@ -3561,10 +3561,10 @@ it obeys the same constraints as @samp{eqv?}.
 
 @deffn {library procedure} equal?  obj1 obj2
 
address@hidden recursively compares the contents of pairs, vectors, and
address@hidden recursively compares the contents of pairs, vectors, and
 strings, applying @samp{eqv?} on other objects such as numbers and symbols.
 A rule of thumb is that objects are generally @samp{equal?} if they print
-the same.  @samp{Equal?} may fail to terminate if its arguments are
+the same.  @samp{equal?} may fail to terminate if its arguments are
 circular data structures.
 
 
@@ -4211,7 +4211,7 @@ however, they return the additive or multiplicative 
inverse of their argument.
 
 @deffn {library procedure} abs  x
 
address@hidden returns the absolute value of its argument.  
address@hidden returns the absolute value of its argument.  
 @c - {\cf Abs} is exactness preserving when its argument is real.
 
 @format
@@ -4344,17 +4344,17 @@ More description and examples needed.
 
 
 These procedures return integers.
address@hidden returns the largest integer not larger than @var{x}.
address@hidden returns the smallest integer not smaller than @var{x}.
address@hidden returns the integer closest to @var{x} whose absolute
-value is not larger than the absolute value of @var{x}.  @samp{Round} returns 
the
address@hidden returns the largest integer not larger than @var{x}.
address@hidden returns the smallest integer not smaller than @var{x}.
address@hidden returns the integer closest to @var{x} whose absolute
+value is not larger than the absolute value of @var{x}.  @samp{tound} returns 
the
 closest integer to @var{x}, rounding to even when @var{x} is halfway between 
two
 integers.
 
 
 @quotation
 @emph{Rationale:}
address@hidden rounds to even for consistency with the default rounding
address@hidden rounds to even for consistency with the default rounding
 mode specified by the IEEE floating point standard.
 @end quotation
 
@@ -4393,7 +4393,7 @@ result should be passed to the @samp{inexact->exact} 
procedure.
 @c - \proto{rationalize}{ x}{procedure}
 
 
address@hidden returns the @emph{simplest} rational number
address@hidden returns the @emph{simplest} rational number
 differing from @var{x} by no more than @var{y}.  A rational number r_1 is
 @emph{simpler}  than another rational number
 @cindex @w{simplest rational}
@@ -4556,7 +4556,7 @@ for some integer n.
 
 @quotation
 @emph{Rationale:}
address@hidden is the same as @code{abs} for a real argument,
address@hidden is the same as @code{abs} for a real argument,
 @vindex @w{abs}
 but @samp{abs} must be present in all implementations, whereas
 @samp{magnitude} need only be present in implementations that support
@@ -4571,7 +4571,7 @@ general complex numbers.
 @deffn {procedure} exact->inexact  @var{z}
 @deffnx {procedure} inexact->exact  @var{z}
 
address@hidden>inexact} returns an @r{inexact} representation of @var{z}.
address@hidden>inexact} returns an @r{inexact} representation of @var{z}.
 The value returned is the
 @r{inexact} number that is numerically closest to the argument.  
 @c %R4%%For
@@ -4580,7 +4580,7 @@ The value returned is the
 If an @r{exact} argument has no reasonably close @r{inexact} equivalent,
 then a violation of an implementation restriction may be reported.
 
address@hidden>exact} returns an @r{exact} representation of
address@hidden>exact} returns an @r{exact} representation of
 @var{z}.  The value returned is the @r{exact} number that is numerically
 closest to the argument.
 @c %R4%%  For \tupe{inexact} arguments which have no
@@ -4615,7 +4615,7 @@ implementation-dependent range.  See section 
@ref{Implementation restrictions}.
 @deffn {procedure} number->string  z
 @deffnx {procedure} number->string  z radix
 
address@hidden must be an exact integer, either 2, 8, 10, or 16.  If omitted,
address@hidden must be an exact integer, either 2, 8, 10, or 16.  If omitted,
 @var{radix} defaults to 10.
 The procedure @samp{number->string} takes a
 number and a radix and returns as a string an external representation of
@@ -4674,7 +4674,7 @@ allows for infinities, NaNs, and non-flonum 
representations.
 @c  for the third argument.
 
 Returns a number of the maximally precise representation expressed by the
-given @var{string}.  @var{Radix} must be an exact integer, either 2, 8, 10,
+given @var{string}.  @var{radix} must be an exact integer, either 2, 8, 10,
 or 16.  If supplied, @var{radix} is a default radix that may be overridden
 by an explicit radix prefix in @var{string} (e.g. @t{"#o177"}).  If @var{radix}
 is not supplied, then the default radix is 10.  If @var{string} is not
@@ -4695,7 +4695,7 @@ returns @t{#f}.
 @quotation
 @emph{Note:}
 The domain of @samp{string->number} may be restricted by implementations
-in the following ways.  @samp{String->number} is permitted to return
+in the following ways.  @samp{string->number} is permitted to return
 @t{#f} whenever @var{string} contains an explicit radix prefix.
 If all numbers supported by an implementation are real, then
 @samp{string->number} is permitted to return @t{#f} whenever
@@ -4802,7 +4802,7 @@ in programs.
 
 @deffn {library procedure} not  obj
 
address@hidden returns @t{#t} if @var{obj} is false, and returns
address@hidden returns @t{#t} if @var{obj} is false, and returns
 @t{#f} otherwise.
 
 
@@ -4824,7 +4824,7 @@ in programs.
 
 @deffn {library procedure} boolean?  obj
 
address@hidden returns @t{#t} if @var{obj} is either @t{#t} or
address@hidden returns @t{#t} if @var{obj} is either @t{#t} or
 @t{#f} and returns @t{#f} otherwise.
 
 
@@ -5011,7 +5011,7 @@ parse Scheme programs.  See section @ref{External 
representations}.
 
 @deffn {procedure} pair?  obj
 
address@hidden returns @t{#t} if @var{obj} is a pair, and otherwise
address@hidden returns @t{#t} if @var{obj} is a pair, and otherwise
 returns @t{#f}.
 
 
@@ -5295,7 +5295,7 @@ in reverse order.
 
 Returns the sublist of @var{list} obtained by omitting the first @var{k}
 elements.  It is an error if @var{list} has fewer than @var{k} elements.
address@hidden could be defined by
address@hidden could be defined by
 
 
 @format
@@ -5356,7 +5356,7 @@ These procedures return the first sublist of @var{list} 
whose car is
 returned by @t{(list-tail @var{list} @var{k})} for @var{k} less
 than the length of @var{list}.  If
 @var{obj} does not occur in @var{list}, then @t{#f} (not the empty list) is
-returned.  @samp{Memq} uses @samp{eq?} to compare @var{obj} with the elements 
of
+returned.  @samp{memq} uses @samp{eq?} to compare @var{obj} with the elements 
of
 @var{list}, while @samp{memv} uses @samp{eqv?} and @samp{member} uses 
@samp{equal?}.
 
 
@@ -5381,10 +5381,10 @@ returned.  @samp{Memq} uses @samp{eq?} to compare 
@var{obj} with the elements of
 @deffnx {library procedure} assv  obj alist
 @deffnx {library procedure} assoc  obj alist
 
address@hidden (for ``association list'') must be a list of
address@hidden (for ``association list'') must be a list of
 pairs.  These procedures find the first pair in @var{alist} whose car field is 
@var{obj},
 and returns that pair.  If no pair in @var{alist} has @var{obj} as its
-car, then @t{#f} (not the empty list) is returned.  @samp{Assq} uses
+car, then @t{#f} (not the empty list) is returned.  @samp{assq} uses
 @samp{eq?} to compare @var{obj} with the car fields of the pairs in 
@var{alist},
 while @samp{assv} uses @samp{eqv?} and @samp{assoc} uses @samp{equal?}.
 
@@ -5830,10 +5830,9 @@ Returns @t{#t} if @var{obj} is a string, otherwise 
returns @t{#f}.
 
 @c \domain{\vr{k} must be a non-negative integer, and \var{char} must be
 @c a character.}  
address@hidden returns a newly allocated string of
-length @var{k}.  If @var{char} is given, then all elements of the string
-are initialized to @var{char}, otherwise the contents of the
address@hidden are unspecified.
address@hidden returns a newly allocated string of length @var{k}.
+If @var{char} is given, then all elements of the string are initialized
+to @var{char}, otherwise the contents of the string are unspecified.
 
 @end deffn
 
@@ -5855,7 +5854,7 @@ Returns the number of characters in the given 
@var{string}.
 @deffn {procedure} string-ref  string @var{k}
 
 @var{k} must be a valid index of @var{string}.
address@hidden returns character @var{k} of @var{string} using zero-origin 
indexing.
address@hidden returns character @var{k} of @var{string} using zero-origin 
indexing.
 @end deffn
 
 
@@ -5867,7 +5866,7 @@ Returns the number of characters in the given 
@var{string}.
 @var{k} must be a valid index of @var{string}
 @c , and \var{char} must be a character
 .
address@hidden stores @var{char} in element @var{k} of @var{string}
address@hidden stores @var{char} in element @var{k} of @var{string}
 and returns an unspecified value.  
 @c  <!>
 
@@ -5893,7 +5892,7 @@ and returns an unspecified value.
 
 Returns @t{#t} if the two strings are the same length and contain the same
 characters in the same positions, otherwise returns @t{#f}.
address@hidden treats
address@hidden treats
 upper and lower case letters as though they were the same character, but
 @samp{string=?} treats upper and lower case as distinct characters.
 
@@ -5927,13 +5926,13 @@ the corresponding numerical predicates.
 
 @deffn {library procedure} substring  string start end
 
address@hidden must be a string, and @var{start} and @var{end}
address@hidden must be a string, and @var{start} and @var{end}
 must be exact integers satisfying
 
 
 @center 0 <= @var{start} <= @var{end} <= @address@hidden(string-length 
@var{string})@r{.}}}
 
address@hidden returns a newly allocated string formed from the characters of
address@hidden returns a newly allocated string formed from the characters of
 @var{string} beginning with index @var{start} (inclusive) and ending with index
 @var{end} (exclusive).
 @end deffn
@@ -5952,10 +5951,10 @@ given strings.
 @deffn {library procedure} string->list  string
 @deffnx {library procedure} list->string  list
 
address@hidden>list} returns a newly allocated list of the
-characters that make up the given string.  @samp{List->string}
address@hidden>list} returns a newly allocated list of the
+characters that make up the given string.  @samp{list->string}
 returns a newly allocated string formed from the characters in the list
address@hidden, which must be a list of characters. @samp{String->list}
address@hidden, which must be a list of characters. @samp{string->list}
 and @samp{list->string} are
 inverses so far as @samp{equal?} is concerned.  
 @c Implementations that provide
@@ -6078,7 +6077,7 @@ Returns the number of elements in @var{vector} as an 
exact integer.
 @deffn {procedure} vector-ref  vector k
 
 @var{k} must be a valid index of @var{vector}.
address@hidden returns the contents of element @var{k} of
address@hidden returns the contents of element @var{k} of
 @var{vector}.
 
 
@@ -6102,7 +6101,7 @@ Returns the number of elements in @var{vector} as an 
exact integer.
 @deffn {procedure} vector-set!  vector k obj
 
 @var{k} must be a valid index of @var{vector}.
address@hidden stores @var{obj} in element @var{k} of @var{vector}.
address@hidden stores @var{obj} in element @var{k} of @var{vector}.
 The value returned by @samp{vector-set!} is unspecified.  
 @c  <!>
 
@@ -6125,8 +6124,8 @@ The value returned by @samp{vector-set!} is unspecified.
 @deffn {library procedure} vector->list  vector
 @deffnx {library procedure} list->vector  list
 
address@hidden>list} returns a newly allocated list of the objects contained
-in the elements of @var{vector}.  @samp{List->vector} returns a newly
address@hidden>list} returns a newly allocated list of the objects contained
+in the elements of @var{vector}.  @samp{list->vector} returns a newly
 created vector initialized to the elements of the list @var{list}.
 
 
@@ -6194,7 +6193,7 @@ Returns @t{#t} if @var{obj} is a procedure, otherwise 
returns @t{#f}.
 
 @deffn {procedure} apply  proc arg1 @dots{} args
 
address@hidden must be a procedure and @var{args} must be a list.
address@hidden must be a procedure and @var{args} must be a list.
 Calls @var{proc} with the elements of the list
 @samp{(append (list @var{arg1} @dots{},) @var{args})} as the actual
 arguments.
@@ -6216,13 +6215,13 @@ arguments.
 
 
 
address@hidden {library procedure} map  proc list1 list2 @dots{},
address@hidden {library procedure} map  proc list1 list2 @dots{}
 
 The @var{list}s must be lists, and @var{proc} must be a
 procedure taking as many arguments as there are @i{list}s
 and returning a single value.  If more
 than one @var{list} is given, then they must all be the same length.
address@hidden applies @var{proc} element-wise to the elements of the
address@hidden applies @var{proc} element-wise to the elements of the
 @var{list}s and returns a list of the results, in order.
 The dynamic order in which @var{proc} is applied to the elements of the
 @var{list}s is unspecified.
@@ -6309,7 +6308,7 @@ time, the previously computed value is returned.
 @end format
 
 
address@hidden and @samp{delay} are mainly intended for programs written in
address@hidden and @samp{delay} are mainly intended for programs written in
 functional style.  The following examples should not be considered to
 illustrate good programming style, but they illustrate the property that
 only one value is computed for a promise, no matter how many times it is
@@ -6466,7 +6465,7 @@ and @samp{+}:
 
 @deffn {procedure} call-with-current-continuation  proc
 
- @var{Proc} must be a procedure of one
+ @var{proc} must be a procedure of one
 argument. The procedure @samp{call-with-current-continuation} packages
 up the current continuation (see the rationale below) as an ``escape
 procedure'' and passes it as an argument to
@@ -6546,7 +6545,7 @@ the answer to the top level continuation to be printed.  
Normally these
 ubiquitous continuations are hidden behind the scenes and programmers do not
 think much about them.  On rare occasions, however, a programmer may
 need to deal with continuations explicitly.
address@hidden allows Scheme programmers to do
address@hidden allows Scheme programmers to do
 that by creating a procedure that acts just like the current
 continuation.
 
@@ -6616,11 +6615,11 @@ continuation of the call to @t{call-with-values}.
 @deffn {procedure} dynamic-wind  before thunk after
 
 Calls @var{thunk} without arguments, returning the result(s) of this call.
address@hidden and @var{after} are called, also without arguments, as required
address@hidden and @var{after} are called, also without arguments, as required
 by the following rules (note that in the absence of calls to continuations
 captured using @code{call-with-current-continuation} the three arguments are
 @vindex @w{call-with-current-continuation}
-called once each, in order).  @var{Before} is called whenever execution
+called once each, in order).  @var{before} is called whenever execution
 enters the dynamic extent of the call to @var{thunk} and @var{after} is called
 whenever it exits that dynamic extent.  The dynamic extent of a procedure
 call is the period between when the call is initiated and when it
@@ -6703,7 +6702,7 @@ extent of a call to @var{before} or @var{after} is 
undefined.
 @deffn {procedure} eval  expression environment-specifier
 
 Evaluates @var{expression} in the specified environment and returns its value.
address@hidden must be a valid Scheme expression represented as data,
address@hidden must be a valid Scheme expression represented as data,
 and @var{environment-specifier} must be a value returned by one of the
 three procedures described below.
 Implementations may extend @samp{eval} to allow non-expression programs
@@ -6731,13 +6730,13 @@ allowed to create new bindings in the environments 
associated with
 @deffn {procedure} scheme-report-environment  version
 @deffnx {procedure} null-environment  version
 
address@hidden must be the exact integer @samp{5},
address@hidden must be the exact integer @samp{5},
 corresponding to this revision of the Scheme report (the
 Revised^5 Report on Scheme).
address@hidden returns a specifier for an
address@hidden returns a specifier for an
 environment that is empty except for all bindings defined in
 this report that are either required or both optional and
-supported by the implementation. @samp{Null-environment} returns
+supported by the implementation. @samp{null-environment} returns
 a specifier for an environment that is empty except for the
 (syntactic) bindings for all syntactic keywords defined in
 this report that are either required or both optional and
@@ -6797,7 +6796,7 @@ Haase: Mention that there are alternatives to files?
 @deffn {library procedure} call-with-input-file  string proc
 @deffnx {library procedure} call-with-output-file  string proc
 
address@hidden should be a string naming a file, and
address@hidden should be a string naming a file, and
 @var{proc} should be a procedure that accepts one argument.
 For @samp{call-with-input-file},
 the file should already exist; for
@@ -6862,8 +6861,8 @@ Returns the current default input or output port.
 @deffn {optional procedure} with-input-from-file  string thunk
 @deffnx {optional procedure} with-output-to-file  string thunk
 
address@hidden should be a string naming a file, and
address@hidden should be a procedure of no arguments.
address@hidden should be a string naming a file, and
address@hidden should be a procedure of no arguments.
 For @samp{with-input-from-file},
 the file should already exist; for
 @samp{with-output-to-file},
@@ -6876,7 +6875,7 @@ connected to it is made the default value returned by
 and the
 @var{thunk} is called with no arguments.  When the @var{thunk} returns,
 the port is closed and the previous default is restored.
address@hidden and @samp{with-output-to-file} return(s) the
address@hidden and @samp{with-output-to-file} return(s) the
 value(s) yielded by @var{thunk}.
 If an escape procedure
 is used to escape from the continuation of these procedures, their
@@ -6969,10 +6968,10 @@ The input routines have some things in common, maybe 
explain here.
 @deffn {library procedure} read 
 @deffnx {library procedure} read  port
 
address@hidden converts external representations of Scheme objects into the
address@hidden converts external representations of Scheme objects into the
 objects themselves.  That is, it is a parser for the nonterminal
 <datum> (see sections @pxref{External representation} and
address@hidden and lists}).  @samp{Read} returns the next
address@hidden and lists}).  @samp{read} returns the next
 object parsable from the given input @var{port}, updating @var{port} to point 
to
 the first character past the end of the external representation of the object.
 
@@ -6999,7 +6998,7 @@ a closed port.
 
 Returns the next character available from the input @var{port}, updating
 the @var{port} to point to the following character.  If no more characters
-are available, an end of file object is returned.  @var{Port} may be
+are available, an end of file object is returned.  @var{port} may be
 omitted, in which case it defaults to the value returned by 
@samp{current-input-port}.
 
 @end deffn
@@ -7012,7 +7011,7 @@ omitted, in which case it defaults to the value returned 
by @samp{current-input-
 Returns the next character available from the input @var{port},
 @emph{without} updating
 the @var{port} to point to the following character.  If no more characters
-are available, an end of file object is returned.  @var{Port} may be
+are available, an end of file object is returned.  @var{port} may be
 omitted, in which case it defaults to the value returned by 
@samp{current-input-port}.
 
 
@@ -7050,13 +7049,13 @@ Returns @t{#t} if a character is ready on the input 
@var{port} and
 returns @t{#f} otherwise.  If @samp{char-ready} returns @t{#t} then
 the next @samp{read-char} operation on the given @var{port} is guaranteed
 not to hang.  If the @var{port} is at end of file then @samp{char-ready?}
-returns @t{#t}.  @var{Port} may be omitted, in which case it defaults to
+returns @t{#t}.  @var{port} may be omitted, in which case it defaults to
 the value returned by @samp{current-input-port}.
 
 
 @quotation
 @emph{Rationale:}
address@hidden exists to make it possible for a program to
address@hidden exists to make it possible for a program to
 accept characters from interactive ports without getting stuck waiting for
 input.  Any input editors associated with such ports must ensure that
 characters whose existence has been asserted by @samp{char-ready?} cannot
@@ -7088,7 +7087,7 @@ that appear in the written representation are enclosed in 
doublequotes, and
 within those strings backslash and doublequote characters are
 escaped by backslashes.
 Character objects are written using the @samp{#\} notation.
address@hidden returns an unspecified value.  The
address@hidden returns an unspecified value.  The
 @var{port} argument may be omitted, in which case it defaults to the value
 returned by @samp{current-output-port}.
 
@@ -7103,14 +7102,14 @@ Writes a representation of @var{obj} to the given 
@var{port}.  Strings
 that appear in the written representation are not enclosed in
 doublequotes, and no characters are escaped within those strings.  Character
 objects appear in the representation as if written by @samp{write-char}
-instead of by @samp{write}.  @samp{Display} returns an unspecified value.
+instead of by @samp{write}.  @samp{display} returns an unspecified value.
 The @var{port} argument may be omitted, in which case it defaults to the
 value returned by @samp{current-output-port}.
 
 
 @quotation
 @emph{Rationale:}
address@hidden is intended
address@hidden is intended
 for producing address@hidden output and @samp{display} is for producing
 human-readable output.  Implementations that allow ``slashification''
 within symbols will probably want @samp{write} but not @samp{display} to
@@ -7163,13 +7162,13 @@ Fix
 
 @c \domain{\var{Filename} should be a string naming an existing file
 @c containing Scheme source code.} The {\cf load} procedure reads
address@hidden should be a string naming an existing file
address@hidden should be a string naming an existing file
 containing Scheme source code.  The @samp{load} procedure reads
 expressions and definitions from the file and evaluates them
 sequentially.  It is unspecified whether the results of the expressions
 are printed.  The @samp{load} procedure does not affect the values
 returned by @samp{current-input-port} and @samp{current-output-port}.
address@hidden returns an unspecified value.
address@hidden returns an unspecified value.
 
 
 @quotation
@@ -7186,7 +7185,7 @@ implementations.
 @deffn {optional procedure} transcript-on  filename
 @deffnx {optional procedure} transcript-off 
 
address@hidden must be a string naming an output file to be
address@hidden must be a string naming an output file to be
 created. The effect of @samp{transcript-on} is to open the named file
 for output, and to cause a transcript of subsequent interaction between
 the user and the Scheme system to be written to the file.  The
@@ -7960,7 +7959,7 @@ of the main body of the report.  The rewrite rules for 
derived expressions
 have been replaced with macro definitions.  There are no reserved identifiers.
 
 @item
address@hidden now allows vector patterns.
address@hidden now allows vector patterns.
 
 @item
 Multiple-value returns, @samp{eval}, and @samp{dynamic-wind} have
@@ -8074,7 +8073,7 @@ programs, implementations, and other material related to 
Scheme.
 @c  -*- Mode: Lisp; Package: SCHEME; Syntax: Common-lisp -*-
 
 
address@hidden integrates the system 
address@hidden integrates the system 
 
 
 @center y_k^^ = f_k(y_1, y_2, @dots{}, y_n),    k = 1, @dots{}, n
@@ -8105,8 +8104,8 @@ system states.
 @end example
 
 
address@hidden takes a function, @t{f}, that produces a
-system derivative from a system state.  @samp{Runge-Kutta-4}
address@hidden takes a function, @t{f}, that produces a
+system derivative from a system state.  @samp{runge-kutta-4}
 produces a function that takes a system state and
 produces a new system state.
 
@@ -8163,7 +8162,7 @@ produces a new system state.
 @end example
 
 
address@hidden is analogous to @samp{map}: it applies its first
address@hidden is analogous to @samp{map}: it applies its first
 argument (a procedure) to all the elements of its second argument (a
 stream).
 
diff --git a/doc/ref/api-compound.texi b/doc/ref/api-compound.texi
index 03891fa..765d5d4 100644
--- a/doc/ref/api-compound.texi
+++ b/doc/ref/api-compound.texi
@@ -779,15 +779,15 @@ in the vector.
 Return the number of elements in @var{vector} as an exact integer.
 @end deffn
 
address@hidden {C Function} size_t scm_c_vector_length (SCM v)
-Return the number of elements in @var{vector} as a @code{size_t}.
address@hidden {C Function} size_t scm_c_vector_length (SCM vec)
+Return the number of elements in @var{vec} as a @code{size_t}.
 @end deftypefn
 
 @rnindex vector-ref
address@hidden {Scheme Procedure} vector-ref vector k
address@hidden {C Function} scm_vector_ref vector k
-Return the contents of position @var{k} of @var{vector}.
address@hidden must be a valid index of @var{vector}.
address@hidden {Scheme Procedure} vector-ref vec k
address@hidden {C Function} scm_vector_ref vec k
+Return the contents of position @var{k} of @var{vec}.
address@hidden must be a valid index of @var{vec}.
 @lisp
 (vector-ref '#(1 1 2 3 5 8 13 21) 5) @result{} 8
 (vector-ref '#(1 1 2 3 5 8 13 21)
@@ -798,9 +798,9 @@ Return the contents of position @var{k} of @var{vector}.
 @end lisp
 @end deffn
 
address@hidden {C Function} SCM scm_c_vector_ref (SCM v, size_t k)
address@hidden {C Function} SCM scm_c_vector_ref (SCM vec, size_t k)
 Return the contents of position @var{k} (a @code{size_t}) of
address@hidden
address@hidden
 @end deftypefn
 
 A vector created by one of the dynamic vector constructor procedures
@@ -813,10 +813,10 @@ considered as constants.  Currently, however, Guile does 
not detect this
 error.
 
 @rnindex vector-set!
address@hidden {Scheme Procedure} vector-set! vector k obj
address@hidden {C Function} scm_vector_set_x vector k obj
-Store @var{obj} in position @var{k} of @var{vector}.
address@hidden must be a valid index of @var{vector}.
address@hidden {Scheme Procedure} vector-set! vec k obj
address@hidden {C Function} scm_vector_set_x vec k obj
+Store @var{obj} in position @var{k} of @var{vec}.
address@hidden must be a valid index of @var{vec}.
 The value returned by @samp{vector-set!} is unspecified.
 @lisp
 (let ((vec (vector 0 '(2 2 2 2) "Anna")))
@@ -825,14 +825,14 @@ The value returned by @samp{vector-set!} is unspecified.
 @end lisp
 @end deffn
 
address@hidden {C Function} void scm_c_vector_set_x (SCM v, size_t k, SCM obj)
-Store @var{obj} in position @var{k} (a @code{size_t}) of @var{v}.
address@hidden {C Function} void scm_c_vector_set_x (SCM vec, size_t k, SCM obj)
+Store @var{obj} in position @var{k} (a @code{size_t}) of @var{vec}.
 @end deftypefn
 
 @rnindex vector-fill!
address@hidden {Scheme Procedure} vector-fill! v fill
address@hidden {C Function} scm_vector_fill_x (v, fill)
-Store @var{fill} in every position of @var{vector}.  The value
address@hidden {Scheme Procedure} vector-fill! vec fill
address@hidden {C Function} scm_vector_fill_x (vec, fill)
+Store @var{fill} in every position of @var{vec}.  The value
 returned by @code{vector-fill!} is unspecified.
 @end deffn
 
@@ -1031,7 +1031,7 @@ Return the element at index @var{idx} of the bitvector
 @var{vec}.
 @end deffn
 
address@hidden {C Function} SCM scm_c_bitvector_ref (SCM obj, size_t idx)
address@hidden {C Function} SCM scm_c_bitvector_ref (SCM vec, size_t idx)
 Return the element at index @var{idx} of the bitvector
 @var{vec}.
 @end deftypefn
@@ -1042,7 +1042,7 @@ Set the element at index @var{idx} of the bitvector
 @var{vec} when @var{val} is true, else clear it.
 @end deffn
 
address@hidden {C Function} SCM scm_c_bitvector_set_x (SCM obj, size_t idx, SCM 
val)
address@hidden {C Function} SCM scm_c_bitvector_set_x (SCM vec, size_t idx, SCM 
val)
 Set the element at index @var{idx} of the bitvector
 @var{vec} when @var{val} is true, else clear it.
 @end deftypefn
@@ -1427,8 +1427,8 @@ stored in the variable @code{*unspecified*} so that for 
example
 @code{(make-typed-array 'u32 *unspecified* 4)} creates a uninitialized
 @code{u32} vector of length 4.
 
-Each @var{bound} may be a positive non-zero integer @var{N}, in which
-case the index for that dimension can range from 0 through @var{N-1}; or
+Each @var{bound} may be a positive non-zero integer @var{n}, in which
+case the index for that dimension can range from 0 through @var{n}-1; or
 an explicit index range specifier in the form @code{(LOWER UPPER)},
 where both @var{lower} and @var{upper} are integers, possibly less than
 zero, and possibly the same number (however, @var{lower} cannot be
@@ -1512,8 +1512,8 @@ For example,
 @end example
 @end deffn
 
address@hidden {Scheme Procedure} array-rank obj
address@hidden {C Function} scm_array_rank (obj)
address@hidden {Scheme Procedure} array-rank array
address@hidden {C Function} scm_array_rank (array)
 Return the rank of @var{array}.
 @end deffn
 
@@ -1625,10 +1625,10 @@ $\left(\matrix{%
 
 @deffn {Scheme Procedure} uniform-array-read! ra [port_or_fd [start [end]]]
 @deffnx {C Function} scm_uniform_array_read_x (ra, port_or_fd, start, end)
-Attempt to read all elements of @var{ura}, in lexicographic order, as
-binary objects from @var{port-or-fdes}.
+Attempt to read all elements of array @var{ra}, in lexicographic order, as
+binary objects from @var{port_or_fd}.
 If an end of file is encountered,
-the objects up to that point are put into @var{ura}
+the objects up to that point are put into @var{ra}
 (starting at the beginning) and the remainder of the array is
 unchanged.
 
@@ -1637,21 +1637,21 @@ a specified region of a vector (or linearized array) to 
be read,
 leaving the remainder of the vector unchanged.
 
 @code{uniform-array-read!} returns the number of objects read.
address@hidden may be omitted, in which case it defaults to the value
address@hidden may be omitted, in which case it defaults to the value
 returned by @code{(current-input-port)}.
 @end deffn
 
address@hidden {Scheme Procedure} uniform-array-write v [port_or_fd [start 
[end]]]
address@hidden {C Function} scm_uniform_array_write (v, port_or_fd, start, end)
-Writes all elements of @var{ura} as binary objects to
address@hidden
address@hidden {Scheme Procedure} uniform-array-write ra [port_or_fd [start 
[end]]]
address@hidden {C Function} scm_uniform_array_write (ra, port_or_fd, start, end)
+Writes all elements of @var{ra} as binary objects to
address@hidden
 
 The optional arguments @var{start}
 and @var{end} allow
 a specified region of a vector (or linearized array) to be written.
 
 The number of objects actually written is returned.
address@hidden may be
address@hidden may be
 omitted, in which case it defaults to the value returned by
 @code{(current-output-port)}.
 @end deffn
@@ -1663,7 +1663,7 @@ omitted, in which case it defaults to the value returned 
by
 @deffnx {C Function} scm_make_shared_array (oldarray, mapfunc, boundlist)
 Return a new array which shares the storage of @var{oldarray}.
 Changes made through either affect the same underlying storage.  The
address@hidden@dots{}} arguments are the shape of the new array, the same
address@hidden @dots{} arguments are the shape of the new array, the same
 as @code{make-array} (@pxref{Array Procedures}).
 
 @var{mapfunc} translates coordinates from the new array to the
diff --git a/doc/ref/api-data.texi b/doc/ref/api-data.texi
index f19e666..2cbbdd2 100644
--- a/doc/ref/api-data.texi
+++ b/doc/ref/api-data.texi
@@ -695,10 +695,10 @@ value, including the special values @samp{+nan.0}, 
@samp{+inf.0} and
 
 @deffn {Scheme Procedure} complex? z
 @deffnx {C Function} scm_complex_p (z)
-Return @code{#t} if @var{x} is a complex number, @code{#f}
+Return @code{#t} if @var{z} is a complex number, @code{#f}
 otherwise.  Note that the sets of real, rational and integer
 values form subsets of the set of complex numbers, i.e.@: the
-predicate will also be fulfilled if @var{x} is a real,
+predicate will also be fulfilled if @var{z} is a real,
 rational or integer number.
 @end deffn
 
@@ -2331,8 +2331,8 @@ Return @code{#t} if all given character sets are equal.
 
 @deffn {Scheme Procedure} char-set<= . char_sets
 @deffnx {C Function} scm_char_set_leq (char_sets)
-Return @code{#t} if every character set @var{cs}i is a subset
-of character set @var{cs}i+1.
+Return @code{#t} if every character set @var{char_set}i is a subset
+of character set @var{char_set}i+1.
 @end deffn
 
 @deffn {Scheme Procedure} char-set-hash cs [bound]
@@ -3099,7 +3099,7 @@ reverse order.
 Return a newly allocated string of
 length @var{k}.  If @var{chr} is given, then all elements of
 the string are initialized to @var{chr}, otherwise the contents
-of the @var{string} are unspecified.
+of the string are unspecified.
 @end deffn
 
 @deftypefn {C Function} SCM scm_c_make_string (size_t len, SCM chr)
@@ -3118,7 +3118,7 @@ produce the corresponding string element.  The order in 
which
 @deffn {Scheme Procedure} string-join ls [delimiter [grammar]]
 @deffnx {C Function} scm_string_join (ls, delimiter, grammar)
 Append the string in the string list @var{ls}, using the string
address@hidden as a delimiter between the elements of @var{ls}.
address@hidden as a delimiter between the elements of @var{ls}.
 @var{grammar} is a symbol which specifies how the delimiter is
 placed between the strings, and defaults to the symbol
 @code{infix}.
@@ -3279,7 +3279,7 @@ Return all but the last @var{n} characters of @var{s}.
 @deffnx {C Function} scm_string_pad (s, len, chr, start, end)
 @deffnx {C Function} scm_string_pad_right (s, len, chr, start, end)
 Take characters @var{start} to @var{end} from the string @var{s} and
-either pad with @var{char} or truncate them to give @var{len}
+either pad with @var{chr} or truncate them to give @var{len}
 characters.
 
 @code{string-pad} pads or truncates on the left, so for example
@@ -3587,12 +3587,12 @@ case-insensitively.
 
 @deffn {Scheme Procedure} string-hash s [bound [start [end]]]
 @deffnx {C Function} scm_substring_hash (s, bound, start, end)
-Compute a hash value for @var{S}.  The optional argument @var{bound} is a 
non-negative exact integer specifying the range of the hash function. A 
positive value restricts the return value to the range [0,bound).
+Compute a hash value for @var{s}.  The optional argument @var{bound} is a 
non-negative exact integer specifying the range of the hash function. A 
positive value restricts the return value to the range [0,bound).
 @end deffn
 
 @deffn {Scheme Procedure} string-hash-ci s [bound [start [end]]]
 @deffnx {C Function} scm_substring_hash_ci (s, bound, start, end)
-Compute a hash value for @var{S}.  The optional argument @var{bound} is a 
non-negative exact integer specifying the range of the hash function. A 
positive value restricts the return value to the range [0,bound).
+Compute a hash value for @var{s}.  The optional argument @var{bound} is a 
non-negative exact integer specifying the range of the hash function. A 
positive value restricts the return value to the range [0,bound).
 @end deffn
 
 Because the same visual appearance of an abstract Unicode character can 
diff --git a/doc/ref/api-debug.texi b/doc/ref/api-debug.texi
index 2083daa..57c7533 100644
--- a/doc/ref/api-debug.texi
+++ b/doc/ref/api-debug.texi
@@ -96,7 +96,7 @@ stack frames from the top and bottom of the stack that
 @code{(@var{inner_cut_1} @var{outer_cut_1} @var{inner_cut_2}
 @var{outer_cut_2} @dots{})}.
 
-Each @var{inner_cut_N} can be @code{#t}, an integer, a prompt
+Each @var{inner_cut_i} can be @code{#t}, an integer, a prompt
 tag, or a procedure.  @code{#t} means to cut away all frames up
 to but excluding the first user module frame.  An integer means
 to cut away exactly that number of frames.  A prompt tag means
@@ -105,14 +105,14 @@ tag. A procedure means to cut away all frames up to but
 excluding the application frame whose procedure matches the
 specified one.
 
-Each @var{outer_cut_N} can be an integer, a prompt tag, or a
+Each @var{outer_cut_i} can be an integer, a prompt tag, or a
 procedure.  An integer means to cut away that number of frames.
 A prompt tag means to cut away all frames that are outside a
 prompt with the given tag. A procedure means to cut away
 frames down to but excluding the application frame whose
 procedure matches the specified one.
 
-If the @var{outer_cut_N} of the last pair is missing, it is
+If the @var{outer_cut_i} of the last pair is missing, it is
 taken as 0.
 @end deffn
 
diff --git a/doc/ref/api-evaluation.texi b/doc/ref/api-evaluation.texi
index 640f6d5..8aa3888 100644
--- a/doc/ref/api-evaluation.texi
+++ b/doc/ref/api-evaluation.texi
@@ -444,10 +444,10 @@ it as code.
 @deffn {Scheme Procedure} eval exp module_or_state
 @deffnx {C Function} scm_eval (exp, module_or_state)
 Evaluate @var{exp}, a list representing a Scheme expression,
-in the top-level environment specified by @var{module}.
+in the top-level environment specified by @var{module_or_state}.
 While @var{exp} is evaluated (using @code{primitive-eval}),
address@hidden is made the current module.  The current module
-is reset to its previous value when @var{eval} returns.
address@hidden is made the current module.  The current module
+is reset to its previous value when @code{eval} returns.
 XXX - dynamic states.
 Example: (eval '(+ 1 2) (interaction-environment))
 @end deffn
diff --git a/doc/ref/api-io.texi b/doc/ref/api-io.texi
index 9799c31..9b52766 100644
--- a/doc/ref/api-io.texi
+++ b/doc/ref/api-io.texi
@@ -251,7 +251,7 @@ sequence when the error is raised.
 
 @deffn {Scheme Procedure} unread-char cobj [port]
 @deffnx {C Function} scm_unread_char (cobj, port)
-Place @var{char} in @var{port} so that it will be read by the
+Place character @var{cobj} in @var{port} so that it will be read by the
 next read operation.  If called multiple times, the unread characters
 will be read again in last-in first-out order.  If @var{port} is
 not supplied, the current input port is used.
@@ -343,7 +343,7 @@ the current output port.
 @var{message} can contain @code{~A} (was @code{%s}) and
 @code{~S} (was @code{%S}) escapes.  When printed,
 the escapes are replaced with corresponding members of
address@hidden:
address@hidden:
 @code{~A} formats using @code{display} and @code{~S} formats
 using @code{write}.
 If @var{destination} is @code{#t}, then use the current output
@@ -426,7 +426,7 @@ open.
 
 @deffn {Scheme Procedure} seek fd_port offset whence
 @deffnx {C Function} scm_seek (fd_port, offset, whence)
-Sets the current position of @var{fd/port} to the integer
+Sets the current position of @var{fd_port} to the integer
 @var{offset}, which is interpreted according to the value of
 @var{whence}.
 
@@ -441,7 +441,7 @@ Seek from the current position.
 @defvar SEEK_END
 Seek from the end of the file.
 @end defvar
-If @var{fd/port} is a file descriptor, the underlying system
+If @var{fd_port} is a file descriptor, the underlying system
 call is @code{lseek}.  @var{port} may be a string port.
 
 The value returned is the new position in the file.  This means
@@ -454,7 +454,7 @@ that the current position of a port can be obtained using:
 @deffn {Scheme Procedure} ftell fd_port
 @deffnx {C Function} scm_ftell (fd_port)
 Return an integer representing the current position of
address@hidden/port}, measured from the beginning.  Equivalent to:
address@hidden, measured from the beginning.  Equivalent to:
 
 @lisp
 (seek port 0 SEEK_CUR)
@@ -922,7 +922,7 @@ of the respective current port is restored.
 The current port setting is managed with @code{dynamic-wind}, so the
 previous value is restored no matter how @var{thunk} exits (eg.@: an
 exception), and if @var{thunk} is re-entered (via a captured
-continuation) then it's set again to the @var{FILENAME} port.
+continuation) then it's set again to the @var{filename} port.
 
 The port is closed when @var{thunk} returns normally, but not when
 exited via an exception or new continuation.  This ensures it's still
@@ -1414,7 +1414,7 @@ This condition type could be defined by
 An exception with this type is raised when one of the operations for
 textual output to a port encounters a character that cannot be
 translated into bytes by the output direction of the port's transcoder.
address@hidden is the character that could not be encoded.
address@hidden is the character that could not be encoded.
 @end deffn
 
 @deffn {Scheme Syntax} error-handling-mode @var{error-handling-mode-symbol}
@@ -1430,7 +1430,7 @@ symbol acceptable as a @var{handling-mode} argument to
 raised.
 
 @quotation Note
-  Only the name of @var{error-handling-style-symbol} is significant.
+  Only the name of @var{error-handling-mode-symbol} is significant.
 @end quotation
 
 The error-handling mode of a transcoder specifies the behavior
@@ -1470,7 +1470,7 @@ symbol; and @var{handling-mode}, if present, an 
error-handling-mode
 symbol.
 
 @var{eol-style} may be omitted, in which case it defaults to the native
-end-of-line style of the underlying platform.  @var{Handling-mode} may
+end-of-line style of the underlying platform.  @var{handling-mode} may
 be omitted, in which case it defaults to @code{replace}.  The result is
 a transcoder with the behavior specified by its arguments.
 @end deffn
@@ -1566,11 +1566,11 @@ encoding.  Likewise, Guile does not prevent use of
 @end deffn
 
 @deffn {Scheme Procedure} textual-port? port
-Always return @var{#t}, as all ports can be used for textual I/O in
+Always return @code{#t}, as all ports can be used for textual I/O in
 Guile.
 @end deffn
 
address@hidden {Scheme Procedure} transcoded-port obj
address@hidden {Scheme Procedure} transcoded-port binary-port transcoder
 The @code{transcoded-port} procedure
 returns a new textual port with the specified @var{transcoder}.
 Otherwise the new textual port's state is largely the same as
@@ -1629,12 +1629,12 @@ of @var{proc}.  Return the return values of @var{proc}.
 @node R6RS Input Ports
 @subsubsection Input Ports
 
address@hidden {Scheme Procedure} input-port? obj@
address@hidden {Scheme Procedure} input-port? obj
 Returns @code{#t} if the argument is an input port (or a combined input
 and output port), and returns @code{#f} otherwise.
 @end deffn
 
address@hidden {Scheme Procedure} port-eof? port
address@hidden {Scheme Procedure} port-eof? input-port
 Returns @code{#t}
 if the @code{lookahead-u8} procedure (if @var{input-port} is a binary port)
 or the @code{lookahead-char} procedure (if @var{input-port} is a textual port)
@@ -1648,7 +1648,7 @@ but the port cannot be determined to be at end of file.
 @deffnx {Scheme Procedure} open-file-input-port filename file-options
 @deffnx {Scheme Procedure} open-file-input-port filename file-options 
buffer-mode
 @deffnx {Scheme Procedure} open-file-input-port filename file-options 
buffer-mode maybe-transcoder
address@hidden must be either a transcoder or @code{#f}.
address@hidden must be either a transcoder or @code{#f}.
 
 The @code{open-file-input-port} procedure returns an
 input port for the named file. The @var{file-options} and
@@ -1718,13 +1718,13 @@ indicating the number of bytes read, or @code{0} to 
indicate the
 end-of-file.
 
 Optionally, if @var{get-position} is not @code{#f}, it must be a thunk
-that will be called when @var{port-position} is invoked on the custom
+that will be called when @code{port-position} is invoked on the custom
 binary port and should return an integer indicating the position within
 the underlying data stream; if @var{get-position} was not supplied, the
-returned port does not support @var{port-position}.
+returned port does not support @code{port-position}.
 
 Likewise, if @var{set-position!} is not @code{#f}, it should be a
-one-argument procedure.  When @var{set-port-position!} is invoked on the
+one-argument procedure.  When @code{set-port-position!} is invoked on the
 custom binary input port, @var{set-position!} is passed an integer
 indicating the position of the next byte is to read.
 
@@ -1806,7 +1806,7 @@ end-of-file object (if no data were available).
 @node R6RS Textual Input
 @subsubsection Textual Input
 
address@hidden {Scheme Procedure} get-char port
address@hidden {Scheme Procedure} get-char textual-input-port
 Reads from @var{textual-input-port}, blocking as necessary, until a
 complete character is available from @var{textual-input-port},
 or until an end of file is reached.
@@ -1817,14 +1817,14 @@ point past the character. If an end of file is reached 
before any
 character is read, @code{get-char} returns the end-of-file object.
 @end deffn
 
address@hidden {Scheme Procedure} lookahead-char port
address@hidden {Scheme Procedure} lookahead-char textual-input-port
 The @code{lookahead-char} procedure is like @code{get-char}, but it does
 not update @var{textual-input-port} to point past the character.
 @end deffn
 
address@hidden {Scheme Procedure} get-string-n port count
address@hidden {Scheme Procedure} get-string-n textual-input-port count
 
address@hidden must be an exact, non-negative integer object, representing
address@hidden must be an exact, non-negative integer object, representing
 the number of characters to be read.
 
 The @code{get-string-n} procedure reads from @var{textual-input-port},
@@ -1840,11 +1840,11 @@ to point just past the characters read. If no 
characters can be read
 before an end of file, the end-of-file object is returned.
 @end deffn
 
address@hidden {Scheme Procedure} get-string-n! port string start count
address@hidden {Scheme Procedure} get-string-n! textual-input-port string start 
count
 
address@hidden and @var{count} must be exact, non-negative integer objects,
address@hidden and @var{count} must be exact, non-negative integer objects,
 with @var{count} representing the number of characters to be read.
address@hidden must be a string with at least address@hidden + @var{count}$
address@hidden must be a string with at least address@hidden + @var{count}$
 characters.
 
 The @code{get-string-n!} procedure reads from @var{textual-input-port}
@@ -1858,7 +1858,7 @@ exact integer object. If no characters can be read before 
an end of
 file, the end-of-file object is returned.
 @end deffn
 
address@hidden {Scheme Procedure} get-string-all port count
address@hidden {Scheme Procedure} get-string-all textual-input-port count
 Reads from @var{textual-input-port} until an end of file, decoding
 characters in the same manner as @code{get-string-n} and
 @code{get-string-n!}.
@@ -1868,7 +1868,7 @@ all the characters decoded from that data are returned. 
If no character
 precedes the end of file, the end-of-file object is returned.
 @end deffn
 
address@hidden {Scheme Procedure} get-line port
address@hidden {Scheme Procedure} get-line textual-input-port
 Reads from @var{textual-input-port} up to and including the linefeed
 character or end of file, decoding characters in the same manner as
 @code{get-string-n} and @code{get-string-n!}.
@@ -1887,7 +1887,7 @@ any characters are read, the end-of-file object is 
returned.
 @end quotation
 @end deffn
 
address@hidden {Scheme Procedure} get-datum port count
address@hidden {Scheme Procedure} get-datum textual-input-port count
 Reads an external representation from @var{textual-input-port} and returns the
 datum it represents.  The @code{get-datum} procedure returns the next
 datum that can be parsed from the given @var{textual-input-port}, updating
@@ -2048,7 +2048,7 @@ Writes @var{char} to the port. The @code{put-char} 
procedure returns
 @code{put-string} procedure returns an unspecified value.
 @end deffn
 
address@hidden {Scheme Procedure} put-datum port datum
address@hidden {Scheme Procedure} put-datum textual-output-port datum
 @var{datum} should be a datum value.  The @code{put-datum} procedure
 writes an external representation of @var{datum} to
 @var{textual-output-port}.  The specific external representation is
diff --git a/doc/ref/api-modules.texi b/doc/ref/api-modules.texi
index b9f9758..8afe728 100644
--- a/doc/ref/api-modules.texi
+++ b/doc/ref/api-modules.texi
@@ -962,7 +962,7 @@ SCM my_eval_string (SCM str)
 Like @code{scm_public_lookup} or @code{scm_private_lookup}, but
 additionally dereferences the variable.  If the variable object is
 unbound, signals an error.  Returns the value bound to @var{name} in
address@hidden
address@hidden
 @end deftypefn
 
 In addition, there are a number of other lookup-related procedures.  We
@@ -1009,7 +1009,7 @@ module is used instead of the current one.
 @end deftypefn
 
 @deftypefn {C Function} SCM scm_module_reverse_lookup (SCM @var{module}, SCM 
@var{variable})
-Find the symbol that is bound to @var{variable} in @var{module}.  When no such 
binding is found, return @var{#f}.
+Find the symbol that is bound to @var{variable} in @var{module}.  When no such 
binding is found, return @code{#f}.
 @end deftypefn
 
 @deftypefn {C Function} SCM scm_c_define_module ({const char address@hidden, 
void (address@hidden)(void *), void address@hidden)
diff --git a/doc/ref/api-procedures.texi b/doc/ref/api-procedures.texi
index 1cecadf..aaad0cc 100644
--- a/doc/ref/api-procedures.texi
+++ b/doc/ref/api-procedures.texi
@@ -103,7 +103,7 @@ useful mechanism, combining the process of registration
 (@code{scm_c_make_gsubr}) and definition (@code{scm_define}).
 
 @deftypefun SCM scm_c_make_gsubr (const char *name, int req, int opt, int rst, 
fcn)
-Register a C procedure @var{FCN} as a ``subr'' --- a primitive
+Register a C procedure @var{fcn} as a ``subr'' --- a primitive
 subroutine that can be called from Scheme.  It will be associated with
 the given @var{name} but no environment binding will be created.  The
 arguments @var{req}, @var{opt} and @var{rst} specify the number of
@@ -115,7 +115,7 @@ to @var{fcn}, but may not exceed 10.  The number of rest 
arguments should be 0 o
 @end deftypefun
 
 @deftypefun SCM scm_c_define_gsubr (const char *name, int req, int opt, int 
rst, fcn)
-Register a C procedure @var{FCN}, as for @code{scm_c_make_gsubr}
+Register a C procedure @var{fcn}, as for @code{scm_c_make_gsubr}
 above, and additionally create a top-level Scheme binding for the
 procedure in the ``current environment'' using @code{scm_define}.
 @code{scm_c_define_gsubr} returns a handle for the procedure in the
diff --git a/doc/ref/api-scheduling.texi b/doc/ref/api-scheduling.texi
index 6b0ed22..9320cb5 100644
--- a/doc/ref/api-scheduling.texi
+++ b/doc/ref/api-scheduling.texi
@@ -316,10 +316,10 @@ Higher level thread procedures are available by loading 
the
 @code{(ice-9 threads)} module.  These provide standardized
 thread creation.
 
address@hidden macro make-thread proc address@hidden
-Apply @var{proc} to @var{args} in a new thread formed by
address@hidden macro make-thread proc arg @dots{}
+Apply @var{proc} to @var{arg} @dots{} in a new thread formed by
 @code{call-with-new-thread} using a default error handler that display
-the error to the current error port.  The @address@hidden
+the error to the current error port.  The @var{arg} @dots{}
 expressions are evaluated in the new thread.
 @end deffn
 
@@ -751,12 +751,12 @@ set/restored when control enter or leaves the established 
dynamic
 extent.
 @end deffn
 
address@hidden {Scheme Macro} with-fluids ((fluid value) ...) body...
-Execute @var{body...} while each @var{fluid} is set to the
-corresponding @var{value}.  Both @var{fluid} and @var{value} are
-evaluated and @var{fluid} must yield a fluid.  @var{body...} is
-executed inside a @code{dynamic-wind} and the fluids are set/restored
-when control enter or leaves the established dynamic extent.
address@hidden {Scheme Macro} with-fluids ((fluid value) @dots{}) body1 body2 
@dots{}
+Execute body @var{body1} @var{body2} @dots{}  while each @var{fluid} is
+set to the corresponding @var{value}.  Both @var{fluid} and @var{value}
+are evaluated and @var{fluid} must yield a fluid.  The body is executed
+inside a @code{dynamic-wind} and the fluids are set/restored when
+control enter or leaves the established dynamic extent.
 @end deffn
 
 @deftypefn {C Function} SCM scm_c_with_fluids (SCM fluids, SCM vals, SCM 
(*cproc)(void *), void *data)
@@ -1043,16 +1043,16 @@ are implemented in terms of futures (@pxref{Futures}).  
Thus they are
 relatively cheap as they re-use existing threads, and portable, since
 they automatically use one thread per available CPU core.
 
address@hidden syntax parallel expr1 @dots{} exprN
address@hidden syntax parallel expr @dots{}
 Evaluate each @var{expr} expression in parallel, each in its own thread.
-Return the results as a set of @var{N} multiple values
-(@pxref{Multiple Values}).
+Return the results of @var{n} expressions as a set of @var{n} multiple
+values (@pxref{Multiple Values}).
 @end deffn
 
address@hidden syntax letpar ((var1 expr1) @dots{} (varN exprN)) address@hidden
address@hidden syntax letpar ((var expr) @dots{}) body1 body2 @dots{}
 Evaluate each @var{expr} in parallel, each in its own thread, then bind
-the results to the corresponding @var{var} variables and evaluate
address@hidden
+the results to the corresponding @var{var} variables, and then evaluate
address@hidden @var{body2} @enddots{}
 
 @code{letpar} is like @code{let} (@pxref{Local Bindings}), but all the
 expressions for the bindings are evaluated in parallel.
@@ -1065,11 +1065,10 @@ returns a list comprising the return values from 
@var{proc}.
 @code{par-for-each} returns an unspecified value, but waits for all
 calls to complete.
 
-The @var{proc} calls are @code{(@var{proc} @var{elem1} @dots{}
address@hidden)}, where each @var{elem} is from the corresponding
address@hidden  Each @var{lst} must be the same length.  The calls are
-potentially made in parallel, depending on the number of CPU cores
-available.
+The @var{proc} calls are @code{(@var{proc} @var{elem1} @var{elem2}
address@hidden)}, where each @var{elem} is from the corresponding @var{lst} .
+Each @var{lst} must be the same length.  The calls are potentially made
+in parallel, depending on the number of CPU cores available.
 
 These functions are like @code{map} and @code{for-each} (@pxref{List
 Mapping}), but make their @var{proc} calls in parallel.
diff --git a/doc/ref/api-smobs.texi b/doc/ref/api-smobs.texi
index db8161c..6b04236 100644
--- a/doc/ref/api-smobs.texi
+++ b/doc/ref/api-smobs.texi
@@ -22,8 +22,8 @@ If @var{size} is 0, the default @emph{free} function will do 
nothing.
 
 If @var{size} is not 0, the default @emph{free} function will
 deallocate the memory block pointed to by @code{SCM_SMOB_DATA} with
address@hidden  The @var{WHAT} parameter in the call to
address@hidden will be @var{NAME}.
address@hidden  The @var{what} parameter in the call to
address@hidden will be @var{name}.
 
 Default values are provided for the @emph{mark}, @emph{free},
 @emph{print}, and @emph{equalp} functions, as described in
@@ -43,7 +43,7 @@ a @dfn{finalizer}) for the smob type specified by the tag
 @var{tc}. @var{tc} is the tag returned by @code{scm_make_smob_type}.
 
 The @var{free} procedure must deallocate all resources that are
-directly associated with the smob instance @var{OBJ}.  It must assume
+directly associated with the smob instance @var{obj}.  It must assume
 that all @code{SCM} values that it references have already been freed
 and are thus invalid.
 
@@ -107,14 +107,14 @@ with @code{scm_display}, @code{scm_write}, 
@code{scm_simple_format},
 and @code{scm_puts}.
 @end deftypefn
 
address@hidden {C Function} void scm_set_smob_equalp (scm_t_bits tc, SCM 
(*equalp) (SCM obj1, SCM obj1))
address@hidden {C Function} void scm_set_smob_equalp (scm_t_bits tc, SCM 
(*equalp) (SCM obj1, SCM obj2))
 This function sets the smob equality-testing predicate for the smob
 type specified by the tag @var{tc}. @var{tc} is the tag returned by
 @code{scm_make_smob_type}.
 
 The @var{equalp} procedure should return @code{SCM_BOOL_T} when
 @var{obj1} is @code{equal?} to @var{obj2}.  Else it should return
address@hidden  Both @var{obj1} and @var{obj2} are instances of the
address@hidden  Both @var{obj1} and @var{obj2} are instances of the
 smob type @var{tc}.
 @end deftypefn
 
diff --git a/doc/ref/compiler.texi b/doc/ref/compiler.texi
index 86379c7..25cf524 100644
--- a/doc/ref/compiler.texi
+++ b/doc/ref/compiler.texi
@@ -429,9 +429,9 @@ any, then the rest argument if any, then all of the keyword 
arguments.
 
 @var{body} is the body of the clause. If the procedure is called with
 an appropriate number of arguments, @var{body} is evaluated in tail
-position. Otherwise, if there is a @var{consequent}, it should be a
+position. Otherwise, if there is an @var{alternate}, it should be a
 @code{<lambda-case>} expression, representing the next clause to try.
-If there is no @var{consequent}, a wrong-number-of-arguments error is
+If there is no @var{alternate}, a wrong-number-of-arguments error is
 signaled.
 @end deftp
 @deftp {Scheme Variable} <let> src names gensyms vals exp
diff --git a/doc/ref/misc-modules.texi b/doc/ref/misc-modules.texi
index 00354ac..2a6630c 100644
--- a/doc/ref/misc-modules.texi
+++ b/doc/ref/misc-modules.texi
@@ -90,13 +90,13 @@ dots.}, or in the worst case, displayed as @nicode{#}.
 
 @deffn {Scheme Procedure} truncated-print obj [port] [keyword-options]
 Print @var{obj}, truncating the output, if necessary, to make it fit
-into @var{width} characters. By default, @var{x} will be printed using
+into @var{width} characters. By default, @var{obj} will be printed using
 @code{write}, though that behavior can be overridden via the
 @var{display?} keyword argument.
 
 The default behaviour is to print depth-first, meaning that the entire
-remaining width will be available to each sub-expression of @var{x} --
-e.g., if @var{x} is a vector, each member of @var{x}. One can attempt to
+remaining width will be available to each sub-expression of @var{obj} --
+e.g., if @var{obj} is a vector, each member of @var{obj}. One can attempt to
 ``ration'' the available width, trying to allocate it equally to each
 sub-expression, via the @var{breadth-first?} keyword argument.
 
diff --git a/doc/ref/posix.texi b/doc/ref/posix.texi
index 1dc5a80..0defc3f 100644
--- a/doc/ref/posix.texi
+++ b/doc/ref/posix.texi
@@ -211,8 +211,8 @@ initialized to zero.  The @var{modes} string is the same as 
that
 accepted by @code{open-file} (@pxref{File Ports, open-file}).
 @end deffn
 
address@hidden {Scheme Procedure} fdes->ports fd
address@hidden {C Function} scm_fdes_to_ports (fd)
address@hidden {Scheme Procedure} fdes->ports fdes
address@hidden {C Function} scm_fdes_to_ports (fdes)
 Return a list of existing ports which have @var{fdes} as an
 underlying file descriptor, without changing their revealed
 counts.
@@ -230,8 +230,8 @@ descriptor, if one exists, and increments its revealed 
count.
 Otherwise, returns a new output port with a revealed count of 1.
 @end deffn
 
address@hidden {Scheme Procedure} primitive-move->fdes port fd
address@hidden {C Function} scm_primitive_move_to_fdes (port, fd)
address@hidden {Scheme Procedure} primitive-move->fdes port fdes
address@hidden {C Function} scm_primitive_move_to_fdes (port, fdes)
 Moves the underlying file descriptor for @var{port} to the integer
 value @var{fdes} without changing the revealed count of @var{port}.
 Any other ports already using this descriptor will be automatically
@@ -252,10 +252,10 @@ The return value is unspecified.
 Decrements the revealed count for a port.
 @end deffn
 
address@hidden {Scheme Procedure} fsync object
address@hidden {C Function} scm_fsync (object)
address@hidden {Scheme Procedure} fsync port_or_fd
address@hidden {C Function} scm_fsync (port_or_fd)
 Copies any unwritten data for the specified output file descriptor to disk.
-If @var{port/fd} is a port, its buffer is flushed before the underlying
+If @var{port_or_fd} is a port, its buffer is flushed before the underlying
 file descriptor is fsync'd.
 The return value is unspecified.
 @end deffn
@@ -402,11 +402,11 @@ port.
 This procedure is equivalent to @code{(dup->port @var{port} @var{modes})}.
 @end deffn
 
address@hidden {Scheme Procedure} redirect-port old new
address@hidden {C Function} scm_redirect_port (old, new)
address@hidden {Scheme Procedure} redirect-port old_port new_port
address@hidden {C Function} scm_redirect_port (old_port, new_port)
 This procedure takes two ports and duplicates the underlying file
-descriptor from @var{old-port} into @var{new-port}.  The
-current file descriptor in @var{new-port} will be closed.
+descriptor from @var{old_port} into @var{new_port}.  The
+current file descriptor in @var{new_port} will be closed.
 After the redirection the two ports will share a file position
 and file status flags.
 
@@ -648,7 +648,7 @@ The GNU C Library Reference Manual}.
 @deffn {Scheme Procedure} stat object
 @deffnx {C Function} scm_stat (object)
 Return an object containing various information about the file
-determined by @var{obj}.  @var{obj} can be a string containing
+determined by @var{object}.  @var{object} can be a string containing
 a file name or a port or integer file descriptor which is open
 on a file (in which case @code{fstat} is used as the underlying
 system call).
@@ -728,8 +728,8 @@ An integer representing the access permission bits.
 @end deffn
 @end deffn
 
address@hidden {Scheme Procedure} lstat str
address@hidden {C Function} scm_lstat (str)
address@hidden {Scheme Procedure} lstat path
address@hidden {C Function} scm_lstat (path)
 Similar to @code{stat}, but does not follow symbolic links, i.e.,
 it will return information about a symbolic link itself, not the
 file it points to.  @var{path} must be a string.
@@ -762,8 +762,8 @@ as @code{-1}, then that ID is not changed.
 @findex fchmod
 @deffn {Scheme Procedure} chmod object mode
 @deffnx {C Function} scm_chmod (object, mode)
-Changes the permissions of the file referred to by @var{obj}.
address@hidden can be a string containing a file name or a port or integer file
+Changes the permissions of the file referred to by @var{object}.
address@hidden can be a string containing a file name or a port or integer file
 descriptor which is open on a file (in which case @code{fchmod} is used
 as the underlying system call).
 @var{mode} specifies
@@ -774,7 +774,7 @@ The return value is unspecified.
 @deffn {Scheme Procedure} utime pathname [actime [modtime [actimens [modtimens 
[flags]]]]]
 @deffnx {C Function} scm_utime (pathname, actime, modtime, actimens, 
modtimens, flags)
 @code{utime} sets the access and modification times for the
-file named by @var{path}.  If @var{actime} or @var{modtime} is
+file named by @var{pathname}.  If @var{actime} or @var{modtime} is
 not supplied, then the current time is used.  @var{actime} and
 @var{modtime} must be integer time values as returned by the
 @code{current-time} procedure.
@@ -1055,7 +1055,7 @@ stream.  Otherwise, close the stream.  The 
@code{setpwent} and
 
 @deffn {Scheme Procedure} getpw [user]
 @deffnx {C Function} scm_getpwuid (user)
-Look up an entry in the user database.  @var{obj} can be an integer,
+Look up an entry in the user database.  @var{user} can be an integer,
 a string, or omitted, giving the behaviour of getpwuid, getpwnam
 or getpwent respectively.
 @end deffn
@@ -1108,9 +1108,9 @@ stream.  Otherwise, close the stream.  The 
@code{setgrent} and
 @code{endgrent} procedures are implemented on top of this.
 @end deffn
 
address@hidden {Scheme Procedure} getgr [name]
address@hidden {C Function} scm_getgrgid (name)
-Look up an entry in the group database.  @var{obj} can be an integer,
address@hidden {Scheme Procedure} getgr [group]
address@hidden {C Function} scm_getgrgid (group)
+Look up an entry in the group database.  @var{group} can be an integer,
 a string, or omitted, giving the behaviour of getgrgid, getgrnam
 or getgrent respectively.
 @end deffn
@@ -1284,7 +1284,7 @@ names are from the current locale and in the locale 
character set.
 @cindex time parsing
 Performs the reverse action to @code{strftime}, parsing
 @var{string} according to the specification supplied in
address@hidden  The interpretation of month and day names is
address@hidden  The interpretation of month and day names is
 dependent on the current locale.  The value returned is a pair.
 The @acronym{CAR} has an object with time components
 in the form returned by @code{localtime} or @code{gmtime},
@@ -1411,8 +1411,8 @@ The given strings are all copied, so the C data is not 
accessed again
 once @code{scm_set_program_arguments} returns.
 @end deftypefn
 
address@hidden {Scheme Procedure} getenv nam
address@hidden {C Function} scm_getenv (nam)
address@hidden {Scheme Procedure} getenv name
address@hidden {C Function} scm_getenv (name)
 @cindex environment
 Looks up the string @var{name} in the current environment.  The return
 value is @code{#f} unless a string of the form @code{NAME=VALUE} is
@@ -1442,8 +1442,8 @@ If @var{env} is omitted, return the current environment 
(in the
 Unix sense) as a list of strings.  Otherwise set the current
 environment, which is also the default environment for child
 processes, to the supplied list of strings.  Each member of
address@hidden should be of the form @address@hidden and values of
address@hidden should not be duplicated.  If @var{env} is supplied
address@hidden should be of the form @address@hidden and values of
address@hidden should not be duplicated.  If @var{env} is supplied
 then the return value is unspecified.
 @end deffn
 
@@ -1452,11 +1452,11 @@ then the return value is unspecified.
 Modifies the environment of the current process, which is
 also the default environment inherited by child processes.
 
-If @var{string} is of the form @code{NAME=VALUE} then it will be written
+If @var{str} is of the form @code{NAME=VALUE} then it will be written
 directly into the environment, replacing any existing environment string
 with
-name matching @code{NAME}.  If @var{string} does not contain an equal
-sign, then any existing string with name matching @var{string} will
+name matching @code{NAME}.  If @var{str} does not contain an equal
+sign, then any existing string with name matching @var{str} will
 be removed.
 
 The return value is unspecified.
@@ -1472,7 +1472,7 @@ The return value is unspecified.
 @deffn {Scheme Procedure} chdir str
 @deffnx {C Function} scm_chdir (str)
 @cindex current directory
-Change the current working directory to @var{path}.
+Change the current working directory to @var{str}.
 The return value is unspecified.
 @end deffn
 
@@ -1745,13 +1745,13 @@ in the child would upset the protocol in the parent, so
 
 @deffn {Scheme Procedure} execl filename . args
 @deffnx {C Function} scm_execl (filename, args)
-Executes the file named by @var{path} as a new process image.
+Executes the file named by @var{filename} as a new process image.
 The remaining arguments are supplied to the process; from a C program
 they are accessible as the @code{argv} argument to @code{main}.
-Conventionally the first @var{arg} is the same as @var{path}.
+Conventionally the first @var{arg} is the same as @var{filename}.
 All arguments must be strings.
 
-If @var{arg} is missing, @var{path} is executed with a null
+If @var{arg} is missing, @var{filename} is executed with a null
 argument list, which may have system-dependent side-effects.
 
 This procedure is currently implemented using the @code{execv} system
diff --git a/doc/ref/scheme-using.texi b/doc/ref/scheme-using.texi
index ae608d7..64510ca 100644
--- a/doc/ref/scheme-using.texi
+++ b/doc/ref/scheme-using.texi
@@ -311,7 +311,7 @@ they do not work at the top level.
 @deffn {REPL Command} backtrace [count] [#:width w] [#:full? f]
 Print a backtrace.
 
-Print a backtrace of all stack frames, or innermost @var{COUNT} frames.
+Print a backtrace of all stack frames, or innermost @var{count} frames.
 If @var{count} is negative, the last @var{count} frames will be shown.
 @end deffn
 
@@ -406,11 +406,11 @@ reenter the REPL.
 @node Inspect Commands
 @subsubsection Inspect Commands
 
address@hidden {REPL Command} inspect EXP
address@hidden {REPL Command} inspect exp
 Inspect the result(s) of evaluating @var{exp}.
 @end deffn
 
address@hidden {REPL Command} pretty-print EXP
address@hidden {REPL Command} pretty-print exp
 Pretty-print the result(s) of evaluating @var{exp}.
 @end deffn
 
diff --git a/doc/ref/srfi-modules.texi b/doc/ref/srfi-modules.texi
index 2ab9c7a..cb29f18 100644
--- a/doc/ref/srfi-modules.texi
+++ b/doc/ref/srfi-modules.texi
@@ -2322,7 +2322,7 @@ any) will be stored for later retrieval via a call to
 Wait for @var{thread} to terminate and return its exit value.  When a 
 time value @var{timeout} is given, it specifies a point in time where
 the waiting should be aborted.  When the waiting is aborted, 
address@hidden is returned if it is specified; otherwise, a
address@hidden is returned if it is specified; otherwise, a
 @code{join-timeout-exception} exception is raised 
 (@pxref{SRFI-18 Exceptions}).  Exceptions may also be raised if the 
 thread was terminated by a call to @code{thread-terminate!} 
@@ -2430,8 +2430,8 @@ replaces a procedure of the same name in the core library.
 @end defun
 
 @defun condition-variable-name condition-variable
-Returns the name assigned to @var{thread} at the time of its creation,
-or @code{#f} if it was not given a name.
+Returns the name assigned to @var{condition-variable} at the time of its
+creation, or @code{#f} if it was not given a name.
 @end defun
 
 @defun condition-variable-specific condition-variable
@@ -3533,7 +3533,7 @@ Return the value of the field named @var{field-name} from 
condition @var{c}.
 If @var{c} is a compound condition and several underlying condition
 types contain a field named @var{field-name}, then the value of the
 first such field is returned, using the order in which conditions were
-passed to @var{make-compound-condition}.
+passed to @code{make-compound-condition}.
 @end deffn
 
 @deffn {Scheme Procedure} extract-condition c type
@@ -3858,7 +3858,7 @@ This is a Guile-specific addition to the SRFI, similar to 
the core
 @defun with-parameters* param-list value-list thunk
 Establish a new dynamic scope, as per @code{parameterize} above,
 taking parameters from @var{param-list} and corresponding values from
address@hidden  A call @code{(@var{thunk})} is made in the new
address@hidden  A call @code{(@var{thunk})} is made in the new
 scope and the result from that @var{thunk} is the return from
 @code{with-parameters*}.
 @end defun
diff --git a/doc/ref/sxml-match.texi b/doc/ref/sxml-match.texi
index 7b82e11..cf5c5d3 100644
--- a/doc/ref/sxml-match.texi
+++ b/doc/ref/sxml-match.texi
@@ -356,8 +356,8 @@ transformation that formats a ``TV Guide'' into HTML.
 
 @unnumberedsubsec @code{sxml-match-let} and @code{sxml-match-let*}
 
address@hidden {Scheme Syntax} sxml-match-let ((pat expr) ...) expression0 
expression ...)
address@hidden {Scheme Syntax} sxml-match-let* ((pat expr) ...) expression0 
expression ...)
address@hidden {Scheme Syntax} sxml-match-let ((pat expr) ...) expression0 
expression ...
address@hidden {Scheme Syntax} sxml-match-let* ((pat expr) ...) expression0 
expression ...
 These forms generalize the @code{let} and @code{let*} forms of Scheme to allow
 an XML pattern in the binding position, rather than a simple variable.
 @end deffn
diff --git a/doc/ref/vm.texi b/doc/ref/vm.texi
index 82e7bac..c0ba4dd 100644
--- a/doc/ref/vm.texi
+++ b/doc/ref/vm.texi
@@ -432,7 +432,7 @@ then @code{local-set}, used when binding boxed variables.
 @end deffn
 
 @deffn Instruction empty-box index
-Set the @var{indext}h local variable to a box containing a variable
+Set the @var{index}th local variable to a box containing a variable
 whose value is unbound. Used when compiling some @code{letrec}
 expressions.
 @end deffn
@@ -918,13 +918,13 @@ Jump to @var{offset} if the object on the stack is false.
 
 @deffn Instruction br-if-eq offset
 Jump to @var{offset} if the two objects located on the stack are
-equal in the sense of @var{eq?}.  Note that, for this instruction, the
+equal in the sense of @code{eq?}.  Note that, for this instruction, the
 stack pointer is decremented by two Scheme objects instead of only
 one.
 @end deffn
 
 @deffn Instruction br-if-not-eq offset
-Same as @var{br-if-eq} for address@hidden objects.
+Same as @code{br-if-eq} for address@hidden objects.
 @end deffn
 
 @deffn Instruction br-if-null offset
diff --git a/doc/ref/web.texi b/doc/ref/web.texi
index a08cd2c..81c77dd 100644
--- a/doc/ref/web.texi
+++ b/doc/ref/web.texi
@@ -1116,7 +1116,7 @@ if there was no request body.
 @end deffn
 
 @deffn {Scheme Procedure} write-request-body r bv
-Write @var{body}, a bytevector, to the port corresponding to the HTTP
+Write @var{bv}, a bytevector, to the port corresponding to the HTTP
 request @var{r}.
 @end deffn
 
@@ -1212,7 +1212,7 @@ As a side effect, sets the encoding on @var{port} to 
ISO-8859-1
 discussion of character sets in @ref{Responses}, for more information.
 @end deffn
 
address@hidden {Scheme Procedure} build-response [#:version='(1 . 1)] 
[#:code=200] [#:reason-phrase=#f] [#:headers='()] [#:port=#f] 
[#:validate-headers=#t]
address@hidden {Scheme Procedure} build-response [#:version='(1 . 1)] 
[#:code=200] [#:reason-phrase=#f] [#:headers='()] [#:port=#f] 
[#:validate-headers?=#t]
 Construct an HTTP response object. If @var{validate-headers?} is true,
 the headers are each run through their respective validators.
 @end deffn
@@ -1241,7 +1241,7 @@ if there was no response body.
 @end deffn
 
 @deffn {Scheme Procedure} write-response-body r bv
-Write @var{body}, a bytevector, to the port corresponding to the HTTP
+Write @var{bv}, a bytevector, to the port corresponding to the HTTP
 response @var{r}.
 @end deffn
 
@@ -1291,7 +1291,7 @@ the lower-level HTTP, request, and response modules.
 @deffn {Scheme Procedure} open-socket-for-uri uri
 @end deffn
 
address@hidden {Scheme Procedure} http-get uri [#:port=(open-socket-for-uri 
uri)] [#:version='(1 . 1)] [#:keep-alive?=#f] [#:extra-headers='()] 
[#:decode-body=#t]
address@hidden {Scheme Procedure} http-get uri [#:port=(open-socket-for-uri 
uri)] [#:version='(1 . 1)] [#:keep-alive?=#f] [#:extra-headers='()] 
[#:decode-body?=#t]
 Connect to the server corresponding to @var{uri} and ask for the
 resource, using the @code{GET} method.  If you already have a port open,
 pass it as @var{port}.  The port will be closed at the end of the
diff --git a/doc/sources/ChangeLog-2008 b/doc/sources/ChangeLog-2008
deleted file mode 100644
index 1df0013..0000000
--- a/doc/sources/ChangeLog-2008
+++ /dev/null
@@ -1,5 +0,0 @@
-2001-08-27  Neil Jerram  <address@hidden>
-
-       The change log for files in this directory continues backwards
-       from 2001-08-27 in ../ChangeLog, as all the Guile documentation
-       prior to this date was contained in a single directory.
diff --git a/doc/sources/Makefile.am b/doc/sources/Makefile.am
deleted file mode 100644
index 253d4b3..0000000
--- a/doc/sources/Makefile.am
+++ /dev/null
@@ -1,7 +0,0 @@
-# -*- Makefile -*-
-
-EXTRA_DIST = libguile-overview.texi snarf.texi contributors.texi               
   \
-             libguile-tools.texi strings.texi data-rep.texi new-types.texi 
tk.texi \
-             debug-c.texi old-intro.texi unix-other.texi debug-scheme.texi     
   \
-             sample-APIs.texi unix.texi guile-slib.texi scheme-concepts.texi   
   \
-             jimb-org.texi scm-ref.texi ChangeLog-2008
diff --git a/doc/sources/contributors.texi b/doc/sources/contributors.texi
deleted file mode 100644
index 578c358..0000000
--- a/doc/sources/contributors.texi
+++ /dev/null
@@ -1,80 +0,0 @@
address@hidden Contributors to Guile
address@hidden Contributors to Guile
-
-This Guile Manual was written by Mark Galassi, Jim Blandy and Gary
-Houston.
-
-Guile was developed over many years by the following people:
-
address@hidden @strong
address@hidden George Carrette
-Wrote files present in Siod version 2.3, released in December of 1989.
-
address@hidden Aubrey Jaffer
-Wrote substantial portions of guile.texi, and surely others.
-Changes to: eval.c, ioext.c, posix.c, gscm.c, scm.h, socket.c,
-gsubr.c, sys.c, test.scm, stime.c, and unif.c.
-
address@hidden Gary Houston
-changes to many files in libguile.
-
-wrote: libguile/socket.c, ice-9/expect.scm
-
address@hidden Tom Lord
-Many changes throughout.
-In the subdirectory ctax, wrote:
-    Makefile.in   configure.in  hashtabs.scm  macros.scm    scm-ops.scm
-    c-ops.scm     grammar.scm   lexer.scm     reader.scm
-In the subdirectory gtcltk-lib, wrote:
-    Makefile.in   guile-tcl.c   guile-tk.c
-    configure.in  guile-tcl.h   guile-tk.h
-In the subdirectory guile, wrote:
-    Makefile.in   getopt.c      getopt1.c
-    configure.in  getopt.h      guile.c
-In the subdirectory ice-9, wrote:
-    Makefile.in   configure.in  lineio.scm    poe.scm
-    boot-9.scm    hcons.scm     mapping.scm
-In the subdirectory lang, wrote:
-    Makefile.in   grammar.scm   lr0.scm       pp.scm
-    configure.in  lex.scm       lr1.scm
-In the subdirectory rx, wrote:
-    Makefile.in     runtests.c      rxbitset.h      rxnfa.c         rxspencer.c
-    TESTS           rx.c            rxcontext.h     rxnfa.h         rxspencer.h
-    TESTS2C.sed     rx.h            rxcset.c        rxnode.c        rxstr.c
-    _rx.h           rxall.h         rxcset.h        rxnode.h        rxstr.h
-    configure.in    rxanal.c        rxdbug.c        rxposix.c       rxsuper.c
-    hashrexp.c      rxanal.h        rxgnucomp.c     rxposix.h       rxsuper.h
-    inst-rxposix.h  rxbasic.c       rxgnucomp.h     rxproto.h       rxunfa.c
-    rgx.c           rxbasic.h       rxhash.c        rxsimp.c        rxunfa.h
-    rgx.h           rxbitset.c      rxhash.h        rxsimp.h        testcases.h
-In the subdirectory doc, wrote:
-    ctax.texi    gtcltk.texi  in.texi      lang.texi
-and portions of guile.texi.
-
address@hidden Anthony Green
-wrote the original code in the 'threads' directory, and
-ice-9/threads.scm.
-
address@hidden Mikael Djurfeldt
address@hidden
-In the subdirectory libguile, wrote:
-    backtrace.c  debug.c      options.c    root.c       srcprop.c    stacks.c
-    backtrace.h  debug.h      options.h    root.h       srcprop.h    stacks.h
-In the subdirectory threads, rewrote:
-    coop-threads.c  coop.c          mit-pthreads.c  threads.c
-    coop-threads.h  fsu-pthreads.h  mit-pthreads.h  threads.h
-Many other changes throughout.
address@hidden example
-
address@hidden Mark Galassi
address@hidden
-Designed and implemented the high-level libguile API (the @code{gh_}
-interface), based largely on the defunct @code{gscm_} interface.  In the
-subdirectory gh, wrote:
-gh.c             gh_eval.c        gh_io.c          gh_test_c.c
-gh.h             gh_funcs.c       gh_list.c        gh_test_repl.c
-gh_data.c        gh_init.c        gh_predicates.c
address@hidden example
-
-
address@hidden table
diff --git a/doc/sources/debug-c.texi b/doc/sources/debug-c.texi
deleted file mode 100644
index 77d02f4..0000000
--- a/doc/sources/debug-c.texi
+++ /dev/null
@@ -1,2 +0,0 @@
address@hidden Debugging libguile
address@hidden Debugging libguile
diff --git a/doc/sources/debug-scheme.texi b/doc/sources/debug-scheme.texi
deleted file mode 100644
index 35340f9..0000000
--- a/doc/sources/debug-scheme.texi
+++ /dev/null
@@ -1,2 +0,0 @@
address@hidden Debugging Scheme programs
address@hidden Debugging Scheme programs
diff --git a/doc/sources/env.texi b/doc/sources/env.texi
deleted file mode 100644
index 7a37b76..0000000
--- a/doc/sources/env.texi
+++ /dev/null
@@ -1,1165 +0,0 @@
-\input texinfo   @c -*-texinfo-*-
address@hidden %**start of header
address@hidden env.info
address@hidden Top-level Environments in Guile
address@hidden %**end of header
-
address@hidden odd
-
address@hidden Changes since Jost's implementation:
address@hidden "finite environments" -> "leaf environments"
address@hidden "scm_foo_internal" -> "scm_c_foo"
-
address@hidden To do:
address@hidden add spec for soft environments
-
address@hidden When merged into the main manual, add cross-references for:
address@hidden weak references
address@hidden smobs (esp. module's mark and free functions)
-
-
-[[add refs for all conditions signalled]]
-
address@hidden
-Copyright 1999, 2006, 2012 Free Software Foundation, Inc.
address@hidden ifinfo
-
address@hidden
address@hidden 10
address@hidden The title is printed in a large font.
address@hidden @titlefont{Top-level Environments in Guile}
-
address@hidden The following two commands start the copyright page.
address@hidden
address@hidden 0pt plus 1filll
-Copyright @copyright{} 1999, 2006 Free Software Foundation, Inc.
address@hidden titlepage
-
address@hidden    Top, Motivation, (dir), (dir)
-
address@hidden
-* Motivation::                  
-* Top-Level Environments in Guile::  
-* Modules::                     
address@hidden menu
-
address@hidden Motivation, Top-Level Environments in Guile, Top, Top
address@hidden Motivation
-
address@hidden
-$Id: env.texi,v 1.2 2006-04-16 23:05:07 kryde Exp $
address@hidden example
-
-This is a draft proposal for a new datatype for representing top-level
-environments in Guile.  Upon completion, this proposal will be posted to
-the mailing list @samp{guile@@cygnus.com} for discussion, revised in
-light of whatever insights that may produce, and eventually implemented.
-
-Note that this is @emph{not} a proposal for a module system; rather, it
-is a proposal for a data structure which encapsulates the ideas one
-needs when writing a module system, and, most importantly, a fixed
-interface which insulates the interpreter from the details of the module
-system.  Using these environments, one could implement any module system
-one pleased, without changing the interpreter.
-
-I hope this text will eventually become a chapter of the Guile manual;
-thus, the description of environments in written in the present tense,
-as if it were already implemented, not in the future tense.  However,
-this text does not actually describe the present state of Guile.
-
-I'm especially interested in improving the vague, rambling presentation
-of environments in the section "Modules and Environments".  I'm trying
-to orient the user for the discussion that follows, but I wonder if I'm
-just confusing the issue.  I would appreciate suggestions if they are
-concrete --- please provide new wording.
-
-Note also: I'm trying out a convention I'm considering for use in the
-manual.  When a Scheme procedure which is directly implemented by a C
-procedure, and both are useful to call from their respective languages,
-we document the Scheme procedure only, and call it a "Primitive".  If a
-Scheme function is marked as a primitive, you can derive the name of the
-corresponding C function by changing @code{-} to @code{_}, @code{!} to
address@hidden, @code{?} to @code{_p}, and prepending @code{scm_}.  The C
-function's arguments will be all of the Scheme procedure's arguments,
-both required and optional; if the Scheme procedure takes a ``rest''
-argument, that will be a final argument to the C function.  The C
-function's arguments, as well as its return type, will be @code{SCM}.
-Thus, a procedure documented like this:
address@hidden Primitive set-car! pair value
address@hidden deffn
-
-has a corresponding C function which would be documented like this:
address@hidden {Libguile function} SCM scm_set_car_x (SCM @var{pair}, SCM 
@var{value})
address@hidden deftypefn
-
-The hope is that this will be an uncluttered way to document both the C
-and Scheme interfaces, without unduly confusing users interested only in
-the Scheme level.
-
-When there is a C function which provides the same functionality as a
-primitive, but with a different interface tailored for C's needs, it
-usually has the same name as the primitive's C function, but with the
-prefix @code{scm_c_} instead of simply @code{scm_}.  Thus,
address@hidden is almost identical to
address@hidden, except that it indicates an unbound variable
-in a manner friendlier to C code.
-
-
-
address@hidden    Top-Level Environments in Guile, Modules, Motivation, Top
address@hidden Top-Level Environments in Guile
-
-In Guile, an environment is a mapping from symbols onto variables, and
-a variable is a location containing a value.  Guile uses the datatype
-described here to represent its top-level environments.
-
-
address@hidden
-* Modules and Environments::    Modules are environments, with bookkeeping.
-* Common Environment Operations::  Looking up bindings, creating bindings, etc.
-* Standard Environment Types::  Guile has some fundamental environment types.
-* Implementing Environments::   You can extend Guile with new kinds of
-                                environments.
-* Switching to Environments::   Changes needed to today's Guile to
-                                implement the features described here.
address@hidden menu
-
address@hidden Modules and Environments, Common Environment Operations, 
Top-Level Environments in Guile, Top-Level Environments in Guile
address@hidden Modules and Environments
-
-Guile distinguishes between environments and modules.  A module is a
-unit of code sharing; it has a name, like @code{(math random)}, an
-implementation (e.g., Scheme source code, a dynamically linked library,
-or a set of primitives built into Guile), and finally, an environment
-containing the definitions which the module exports for its users.
-
-An environment, by contrast, is simply an abstract data type
-representing a mapping from symbols onto variables which the Guile
-interpreter uses to look up top-level definitions.  The @code{eval}
-procedure interprets its first argument, an expression, in the context
-of its second argument, an environment.
-
-Guile uses environments to implement its module system.  A module
-created by loading Scheme code might be built from several environments.
-In addition to the environment of exported definitions, such a module
-might have an internal top-level environment, containing both exported
-and private definitions, and perhaps environments for imported
-definitions alone and local definitions alone.
-
-The interface described here includes a full set of functions for
-mutating environments, and the system goes to some length to maintain
-its consistency as environments' bindings change.  This is necessary
-because Guile is an interactive system.  The user may create new
-definitions or modify and reload modules while Guile is running; the
-system should handle these changes in a consistent and predictable way.
-
-A typical Guile system will have several distinct top-level
-environments.  (This is why we call them ``top-level'', and not
-``global''.)  For example, consider the following fragment of an
-interactive Guile session:
-
address@hidden
-guile> (use-modules (ice-9 regex))
-guile> (define pattern "^(..+)\\1+$")
-guile> (string-match pattern "xxxx")
-#("xxxx" (0 . 4) (0 . 2))
-guile> (string-match pattern "xxxxx")
-#f
-guile> 
address@hidden example
address@hidden
-Guile evaluates the expressions the user types in a top-level
-environment reserved for that purpose; the definition of @code{pattern}
-goes there.  That environment is distinct from the one holding the
-private definitions of the @code{(ice-9 regex)} module.  At the Guile
-prompt, the user does not see the module's private definitions, and the
-module is unaffected by definitions the user makes at the prompt.  The
address@hidden form copies the module's public bindings into the
-user's environment.
-
-All Scheme evaluation takes place with respect to some top-level
-environment.  Just as the procedure created by a @code{lambda} form
-closes over any local scopes surrounding that form, it also closes over
-the surrounding top-level environment.  Thus, since the
address@hidden procedure is defined in the @code{(ice-9 regex)}
-module, it closes over that module's top-level environment.  Thus, when
-the user calls @code{string-match} from the Guile prompt, any free
-variables in @code{string-match}'s definition are resolved with respect
-to the module's top-level environment, not the user's.
-
-Although the Guile interaction loop maintains a ``current'' top-level
-environment in which it evaluates the user's input, it would be
-misleading to extend the concept of a ``current top-level environment''
-to the system as a whole.  Each procedure closes over its own top-level
-environment, in which that procedure will find bindings for its free
-variables.  Thus, the top-level environment in force at any given time
-depends on the procedure Guile happens to be executing.  The global
-``current'' environment is a figment of the interaction loop's
-imagination.
-
-Since environments provide all the operations the Guile interpreter
-needs to evaluate code, they effectively insulate the interpreter from
-the details of the module system.  Without changing the interpreter, you
-can implement any module system you like, as long as its efforts produce
-an environment object the interpreter can consult.
-
-Finally, environments may prove a convenient way for Guile to access the
-features of other systems.  For example, one might export The GIMP's
-Procedural Database to Guile as a custom environment type; this
-environment could create Scheme procedure objects corresponding to GIMP
-procedures, as the user referenced them.
-
-
address@hidden Common Environment Operations, Standard Environment Types, 
Modules and Environments, Top-Level Environments in Guile
address@hidden Common Environment Operations
-
-This section describes the common set of operations that all environment
-objects support.  To create an environment object, or to perform an
-operation specific to a particular kind of environment, see
address@hidden Environment Types}.
-
-In this section, the following names for formal parameters imply that
-the actual parameters must have a certain type:
-
address@hidden @var
-
address@hidden env
-an environment
-
address@hidden symbol
-a symbol
-
address@hidden proc
-a procedure
-
address@hidden value
address@hidden object
-an arbitrary Scheme value
-
address@hidden table
-
-
address@hidden
-* Examining Environments::      
-* Changing Environments::       
-* Caching Environment Lookups::  
-* Observing Changes to Environments ::  
-* Environment Errors::          
address@hidden menu
-
address@hidden Examining Environments, Changing Environments, Common 
Environment Operations, Common Environment Operations
address@hidden Examining Environments
-
address@hidden Primitive environment? object
-Return @code{#t} if @var{object} is an environment, or @code{#f} otherwise.
address@hidden deffn
-
address@hidden Primitive environment-ref env symbol
-Return the value of the location bound to @var{symbol} in @var{env}.
-If @var{symbol} is unbound in @var{env}, signal an @code{environment:unbound}
-error (@pxref{Environment Errors}).
address@hidden deffn
-
address@hidden Primitive environment-bound? env symbol
-Return @code{#t} if @var{symbol} is bound in @var{env}, or @code{#f}
-otherwise.
address@hidden deffn
-
address@hidden Primitive environment-fold env proc init
-Iterate over all the bindings in an environment, accumulating some value.
-
-For each binding in @var{env}, apply @var{proc} to the symbol bound, its
-value, and the result from the previous application of @var{proc}.  Use
address@hidden as @var{proc}'s third argument the first time @var{proc} is
-applied.
-
-If @var{env} contains no bindings, this function simply returns @var{init}.
-
-If @var{env} binds the symbol @var{sym1} to the value @var{val1},
address@hidden to @var{val2}, and so on, then this procedure computes:
address@hidden
-(@var{proc} @var{sym1} @var{val1}
-      (@var{proc} @var{sym2} @var{val2}
-            ...
-            (@var{proc} @var{symn} @var{valn}
-                  @var{init})))
address@hidden example
-
-Each binding in @var{env} is processed at most once.
address@hidden makes no guarantees about the order in which the
-bindings are processed.
-
-If @var{env} is not modified while the iteration is taking place,
address@hidden will apply @var{proc} to each binding in
address@hidden exactly once.
-
-If @var{env} is modified while the iteration is taking place, we need to
-be more subtle in describing @code{environment-fold}'s behavior.
address@hidden repeatedly applies @var{proc} to a binding which
-was present in @var{env} when @code{environment-fold} was invoked and is
-still present in @var{env}, until there are no such bindings remaining.
-(If no mutations take place, this definition is equivalent to the
-simpler one given above.)  By this definition, bindings added during the
-iteration will not be passed to @var{proc}.
-
-Here is a function which, given an environment, constructs an
-association list representing that environment's bindings, using
address@hidden:
address@hidden
-(define (environment->alist env)
-  (environment-fold env
-                    (lambda (sym val tail)
-                      (cons (cons sym val) tail))
-                    '()))
address@hidden example
address@hidden deffn
-
address@hidden {Libguile macro} int SCM_ENVP (@var{object})
-Return non-zero if @var{object} is an environment.
address@hidden deftypefn
-
address@hidden {Libguile function} SCM scm_c_environment_ref (SCM @var{env}, 
SCM @var{symbol})
-This C function is identical to @code{environment-ref}, except that if
address@hidden is unbound in @var{env}, it returns the value
address@hidden, instead of signalling an error.
address@hidden deftypefn
-
address@hidden {Libguile function} SCM scm_c_environment_fold (SCM @var{env}, 
scm_environment_folder address@hidden, SCM @var{data}, SCM @var{init})
-This is the C-level analog of @code{environment-fold}.  For each binding in
address@hidden, make the call:
address@hidden
-(address@hidden) (@var{data}, @var{symbol}, @var{value}, @var{previous})
address@hidden example
address@hidden
-where @var{previous} is the value returned from the last call to
address@hidden@var{proc}}, or @var{init} for the first call.  If @var{env}
-contains no bindings, return @var{init}.
address@hidden deftypefn
-
address@hidden {Libguile data type} scm_environment_folder SCM (SCM @var{data}, 
SCM @var{symbol}, SCM @var{value}, SCM @var{tail})
-The type of a folding function to pass to @code{scm_c_environment_fold}.
address@hidden deftp
-
-
address@hidden Changing Environments, Caching Environment Lookups, Examining 
Environments, Common Environment Operations
address@hidden Changing Environments
-
-Here are functions for changing symbols' bindings and values.
-
-Although it is common to say that an environment binds a symbol to a
-value, this is not quite accurate; an environment binds a symbol to a
-location, and the location contains a value.  In the descriptions below,
-we will try to make clear how each function affects bindings and
-locations.
-
-Note that some environments may contain some immutable bindings, or may
-bind symbols to immutable locations.  If you attempt to change an
-immutable binding or value, these functions will signal an
address@hidden:immutable-binding} or
address@hidden:immutable-location} error.  However, simply because a
-binding cannot be changed via these functions does @emph{not} imply that
-it is constant.  Mechanisms outside the scope of this section (say,
-re-loading a module's source code) may change a binding or value which
-is immutable via these functions.
-
address@hidden Primitive environment-define env symbol value
-Bind @var{symbol} to a new location containing @var{value} in @var{env}.
-If @var{symbol} is already bound to another location in @var{env}, that
-binding is replaced.  The new binding and location are both mutable.
-The return value is unspecified.
-
-If @var{symbol} is already bound in @var{env}, and the binding is
-immutable, signal an @code{environment:immutable-binding} error.
address@hidden deffn
-
address@hidden Primitive environment-undefine env symbol
-Remove any binding for @var{symbol} from @var{env}.  If @var{symbol} is
-unbound in @var{env}, do nothing.  The return value is unspecified.
-
-If @var{symbol} is already bound in @var{env}, and the binding is
-immutable, signal an @code{environment:immutable-binding} error.
address@hidden deffn
-
address@hidden Primitive environment-set! env symbol value
-If @var{env} binds @var{symbol} to some location, change that location's
-value to @var{value}.  The return value is unspecified.
-
-If @var{symbol} is not bound in @var{env}, signal an
address@hidden:unbound} error.  If @var{env} binds @var{symbol} to an
-immutable location, signal an @code{environment:immutable-location}
-error.
address@hidden deffn
-
-
address@hidden Caching Environment Lookups, Observing Changes to Environments , 
Changing Environments, Common Environment Operations
address@hidden Caching Environment Lookups
-
-Some applications refer to variables' values so frequently that the
-overhead of @code{environment-ref} and @code{environment-set!} is
-unacceptable.  For example, variable reference speed is a critical
-factor in the performance of the Guile interpreter itself.  If an
-application can tolerate some additional complexity, the
address@hidden function described here can provide very
-efficient access to variable values.
-
-In the Guile interpreter, most variables are represented by pairs; the
address@hidden of the pair holds the variable's value.  Thus, a variable
-reference corresponds to taking the @sc{cdr} of one of these pairs, and
-setting a variable corresponds to a @code{set-cdr!} operation.  A pair
-used to represent a variable's value in this manner is called a
address@hidden cell}.  Value cells represent the ``locations'' to which
-environments bind symbols.
-
-The @code{environment-cell} function returns the value cell bound to a
-symbol.  For example, an interpreter might make the call
address@hidden(environment-cell @var{env} @var{symbol} #t)} to find the value
-cell which @var{env} binds to @var{symbol}, and then use @code{cdr} and
address@hidden to reference and assign to that variable, instead of
-calling @code{environment-ref} or @var{environment-set!} for each
-variable reference.
-
-There are a few caveats that apply here:
-
address@hidden @bullet
-
address@hidden
-Environments are not required to represent variables' values using value
-cells.  An environment is free to return @code{#f} in response to a
-request for a symbol's value cell; in this case, the caller must use
address@hidden and @code{environment-set!} to manipulate the
-variable.
-
address@hidden
-An environment's binding for a symbol may change.  For example, the user
-could override an imported variable with a local definition, associating
-a new value cell with that symbol.  If an interpreter has used
address@hidden to obtain the variable's value cell, it no
-longer needs to use @code{environment-ref} and @code{environment-set!}
-to access the variable, and it may not see the new binding.
-
-Thus, code which uses @code{environment-cell} should almost always use
address@hidden to track changes to the symbol's binding;
-this is the additional complexity hinted at above.  @xref{Observing
-Changes to Environments}.
-
address@hidden
-Some variables should be immutable.  If a program uses
address@hidden to obtain the value cell of such a variable,
-then it is impossible for the environment to prevent the program from
-changing the variable's value, using @code{set-cdr!}.  However, this is
-discouraged; it is probably better to redesign the interface than to
-disregard such a request.  To make it easy for programs to honor the
-immutability of a variable, @code{environment-cell} takes an argument
-indicating whether the caller intends to mutate the cell's value; if
-this argument is true, then @code{environment-cell} signals an
address@hidden:immutable-location} error.
-
-Programs should therefore make separate calls to @code{environment-cell}
-to obtain value cells for reference and for assignment.  It is incorrect
-for a program to call @code{environment-cell} once to obtain a value
-cell, and then use that cell for both reference and mutation.
-
address@hidden itemize
-
address@hidden Primitive environment-cell env symbol for-write
-Return the value cell which @var{env} binds to @var{symbol}, or
address@hidden if the binding does not live in a value cell.
-
-The argument @var{for-write} indicates whether the caller intends to
-modify the variable's value by mutating the value cell.  If the variable
-is immutable, then @code{environment-cell} signals an
address@hidden:immutable-location} error.
-
-If @var{symbol} is unbound in @var{env}, signal an @code{environment:unbound}
-error.
-
-If you use this function, you should consider using
address@hidden, to be notified when @code{symbol} gets
-re-bound to a new value cell, or becomes undefined.
address@hidden deffn
-
address@hidden {Libguile function} SCM scm_c_environment_cell (SCM @var{env}, 
SCM @var{symbol}, int for_write)
-This C function is identical to @code{environment-cell}, except that if
address@hidden is unbound in @var{env}, it returns the value
address@hidden, instead of signalling an error.
address@hidden deftypefn
-
-[[After we have some experience using this, we may find that we want to
-be able to explicitly ask questions like, "Is this variable mutable?"
-without the annoyance of error handling.  But maybe this is fine.]]
-
-
address@hidden Observing Changes to Environments , Environment Errors, Caching 
Environment Lookups, Common Environment Operations
address@hidden Observing Changes to Environments 
-
-The procedures described here allow you to add and remove @dfn{observing
-procedures} for an environment.
-
-
address@hidden
-* Registering Observing Procedures::  
-* Observations and Garbage Collection::  
-* Observing Environments from C Code::  
address@hidden menu
-
address@hidden Registering Observing Procedures, Observations and Garbage 
Collection, Observing Changes to Environments , Observing Changes to 
Environments
address@hidden Registering Observing Procedures
-
-A program may register an @dfn{observing procedure} for an environment,
-which will be called whenever a binding in a particular environment
-changes.  For example, if the user changes a module's source code and
-re-loads the module, other parts of the system may want to throw away
-information they have cached about the bindings of the older version of
-the module.  To support this, each environment retains a set of
-observing procedures which it will invoke whenever its bindings change.
-We say that these procedures @dfn{observe} the environment's bindings.
-You can register new observing procedures for an environment using
address@hidden
-
address@hidden Primitive environment-observe env proc
-Whenever @var{env}'s bindings change, apply @var{proc} to @var{env}.
-
-This function returns an object, @var{token}, which you can pass to
address@hidden to remove @var{proc} from the set of
-procedures observing @var{env}.  The type and value of @var{token} is
-unspecified.
address@hidden deffn
-
address@hidden Primitive environment-unobserve token
-Cancel the observation request which returned the value @var{token}.
-The return value is unspecified.
-
-If a call @code{(environment-observe @var{env} @var{proc})} returns
address@hidden, then the call @code{(environment-unobserve @var{token})}
-will cause @var{proc} to no longer be called when @var{env}'s bindings
-change.
address@hidden deffn
-
-There are some limitations on observation:
address@hidden @bullet
address@hidden
-These procedures do not allow you to observe specific bindings; you
-can only observe an entire environment.
address@hidden
-These procedures observe bindings, not locations.  There is no way
-to receive notification when a location's value changes, using these
-procedures.
address@hidden
-These procedures do not promise to call the observing procedure for each
-individual binding change.  However, if multiple bindings do change
-between calls to the observing procedure, those changes will appear
-atomic to the entire system, not just to a few observing procedures.
address@hidden
-Since a single environment may have several procedures observing it, a
-correct design obviously may not assume that nothing else in the system
-has yet observed a given change.
address@hidden itemize
-
-(One weakness of this observation architecture is that observing
-procedures make no promises to the observer.  That's fine if you're just
-trying to implement an accurate cache, but too weak to implement things
-that walk the environment tree.)
-
address@hidden Observations and Garbage Collection, Observing Environments from 
C Code, Registering Observing Procedures, Observing Changes to Environments
address@hidden Observations and Garbage Collection
-
-When writing observing procedures, pay close attention to garbage
-collection issues.  If you use @code{environment-observe} to register
-observing procedures for an environment, the environment will hold a
-reference to those procedures; while that environment is alive, its
-observing procedures will live, as will any data they close over.  If
-this is not appropriate, you can use the @code{environment-observe-weak}
-procedure to create a weak reference from the environment to the
-observing procedure.
-
-For example, suppose an interpreter uses @code{environment-cell} to
-reference variables efficiently, as described above in @ref{Caching
-Environment Lookups}.  That interpreter must register observing
-procedures to track changes to the environment.  If those procedures
-retain any reference to the data structure representing the program
-being interpreted, then that structure cannot be collected as long as
-the observed environment lives.  This is almost certainly incorrect ---
-if there are no other references to the structure, it can never be
-invoked, so it should be collected.  In this case, the interpreter
-should register its observing procedure using
address@hidden, and retain a pointer to it from the
-code it updates.  Thus, when the code is no longer referenced elsewhere
-in the system, the weak link will be broken, and Guile will collect the
-code (and its observing procedure).
-
address@hidden Primitive environment-observe-weak env proc
-This function is the same as @code{environment-observe}, except that the
-reference @var{env} retains to @var{proc} is a weak reference.  This
-means that, if there are no other live, non-weak references to
address@hidden, it will be garbage-collected, and dropped from @var{env}'s
-list of observing procedures.
address@hidden deffn
-
-
address@hidden Observing Environments from C Code,  , Observations and Garbage 
Collection, Observing Changes to Environments
address@hidden Observing Environments from C Code
-
-It is also possible to write code that observes an environment in C.
-The @code{scm_c_environment_observe} function registers a C
-function to observe an environment.  The typedef
address@hidden is the type a C observer function must
-have.
-
address@hidden {Libguile function} SCM scm_c_environment_observe (SCM 
@var{env}, scm_environment_observer *proc, SCM @var{data}, int weak_p)
-This is the C-level analog of the Scheme function
address@hidden  Whenever @var{env}'s bindings change, call
-the function @var{proc}, passing it @var{env} and @var{data}.  If
address@hidden is non-zero, @var{env} will retain only a weak reference to
address@hidden, and if @var{data} is garbage collected, the entire
-observation will be dropped.
-
-This function returns a token, with the same meaning as those returned
-by @code{environment-observe}.
address@hidden deftypefn
-
address@hidden {Libguile data type} scm_environment_observer void (SCM 
@var{env}, SCM @var{data})
-The type for observing functions written in C.  A function meant to be
-passed to @code{scm_c_environment_observe} should have the type
address@hidden
address@hidden deftp
-
-Note that, like all other primitives, @code{environment-observe} is also
-available from C, under the name @code{scm_environment_observe}.
-
-
address@hidden Environment Errors,  , Observing Changes to Environments , 
Common Environment Operations
address@hidden Environment Errors
-
-Here are the error conditions signalled by the environment routines
-described above.  In these conditions, @var{func} is a string naming a
-particular procedure.
-
address@hidden Condition environment:unbound func message args env symbol
-By calling @var{func}, the program attempted to retrieve the value of
address@hidden in @var{env}, but @var{symbol} is unbound in @var{env}.
address@hidden deffn
-
address@hidden Condition environment:immutable-binding func message args env 
symbol
-By calling @var{func}, the program attempted to change the binding of
address@hidden in @var{env}, but that binding is immutable.
address@hidden deffn
-
address@hidden Condition environment:immutable-location func message args env 
symbol
-By calling @var{func}, the program attempted to change the value of
-the location to which @var{symbol} is bound in @var{env}, but that
-location is immutable.
address@hidden deffn
-
-
address@hidden Standard Environment Types, Implementing Environments, Common 
Environment Operations, Top-Level Environments in Guile
address@hidden Standard Environment Types
-
-Guile supports several different kinds of environments.  The operations
-described above are actually only the common functionality provided by
-all the members of a family of environment types, each designed for a
-separate purpose.
-
-Each environment type has a constructor procedure for building elements
-of that type, and extends the set of common operations with its own
-procedures, providing specialized functions.  For an example of how
-these environment types work together, see @ref{Modules of Interpreted
-Scheme Code}.
-
-Guile allows users to define their own environment types.  Given a set
-of procedures that implement the common environment operations, Guile
-will construct a new environment object based on those procedures.
-
address@hidden
-* Leaf Environments::           A simple set of bindings.
-* Eval Environments::           Local definitions, shadowing
-                                        imported definitions.
-* Import Environments::         The union of a list of environments.
-* Export Environments::         A selected subset of an environment.
-* General Environments::        Environments implemented by user
-                                        functions.
address@hidden menu
-
address@hidden Leaf Environments, Eval Environments, Standard Environment 
Types, Standard Environment Types
address@hidden Leaf Environments
-
-A @dfn{leaf} environment is simply a mutable set of definitions.  A mutable
-environment supports no operations beyond the common set.  
-
address@hidden Primitive make-leaf-environment
-Create a new leaf environment, containing no bindings.  All bindings
-and locations in the new environment are mutable.
address@hidden deffn
-
address@hidden Primitive leaf-environment? object
-Return @code{#t} if @var{object} is a leaf environment, or @var{#f}
-otherwise.
address@hidden deffn
-
-
-In Guile, each module of interpreted Scheme code uses a leaf
-environment to hold the definitions made in that module.
-
-Leaf environments are so named because their bindings are not computed
-from the contents of other environments.  Most other environment types
-have no bindings of their own, but compute their binding sets based on
-those of their operand environments.  Thus, the environments in a
-running Guile system form a tree, with interior nodes computing their
-contents from their child nodes.  Leaf environments are the leaves of
-such trees.
-
-
address@hidden Eval Environments, Import Environments, Leaf Environments, 
Standard Environment Types
address@hidden Eval Environments
-
-A module's source code refers to definitions imported from other
-modules, and definitions made within itself.  An @dfn{eval} environment
-combines two environments --- a @dfn{local} environment and an
address@hidden environment --- to produce a new environment in which
-both sorts of references can be resolved.
-
address@hidden Primitive make-eval-environment local imported
-Return a new environment object @var{eval} whose bindings are the union
-of the bindings in the environments @var{local} and @var{imported}, with
-bindings from @var{local} taking precedence.  Definitions made in
address@hidden are placed in @var{local}.
-
-Applying @code{environment-define} or @code{environment-undefine} to
address@hidden has the same effect as applying the procedure to @var{local}.
-This means that applying @code{environment-undefine} to a symbol bound
-in @var{imported} and free in @var{local} has no effect on the bindings
-visible in @var{eval}, which may be surprising.
-
-Note that @var{eval} incorporates @var{local} and @var{imported}
address@hidden reference} --- if, after creating @var{eval}, the program
-changes the bindings of @var{local} or @var{imported}, those changes
-will be visible in @var{eval}.
-
-Since most Scheme evaluation takes place in @var{eval} environments,
-they transparently cache the bindings received from @var{local} and
address@hidden  Thus, the first time the program looks up a symbol in
address@hidden, @var{eval} may make calls to @var{local} or @var{imported}
-to find their bindings, but subsequent references to that symbol will be
-as fast as references to bindings in leaf environments.
-
-In typical use, @var{local} will be a leaf environment, and
address@hidden will be an import environment, described below.
address@hidden deffn
-
address@hidden Primitive eval-environment? object
-Return @code{#t} if @var{object} is an eval environment, or @code{#f}
-otherwise.
address@hidden deffn
-
address@hidden Primitive eval-environment-local env
address@hidden Primitive eval-environment-imported env
-Return the @var{local} or @var{imported} environment of @var{env};
address@hidden must be an eval environment.
address@hidden deffn
-
-
address@hidden Import Environments, Export Environments, Eval Environments, 
Standard Environment Types
address@hidden Import Environments
-
-An @dfn{import} environment combines the bindings of a set of
-argument environments, and checks for naming clashes.
-
address@hidden Primitive make-import-environment imports conflict-proc
-Return a new environment @var{imp} whose bindings are the union of the
-bindings from the environments in @var{imports}; @var{imports} must be a
-list of environments.  That is, @var{imp} binds @var{symbol} to
address@hidden when some element of @var{imports} does.
-
-If two different elements of @var{imports} have a binding for the same
-symbol, apply @var{conflict-proc} to the two environments.  If the bindings
-of any of the @var{imports} ever changes, check for conflicts again.
-
-All bindings in @var{imp} are immutable.  If you apply
address@hidden or @code{environment-undefine} to @var{imp},
-Guile will signal an @code{environment:immutable-binding} error.
-However, notice that the set of bindings in @var{imp} may still change,
-if one of its imported environments changes.
address@hidden deffn
-
address@hidden Primitive import-environment? object
-Return @code{#t} if @var{object} is an import environment, or @code{#f}
-otherwise.
address@hidden deffn
-
address@hidden Primitive import-environment-imports env
-Return the list of @var{env}'s imported environments; @var{env} must be
-an import env.
address@hidden deffn
-
address@hidden Primitive import-environment-set-imports! env imports
-Change @var{env}'s list of imported environments to @var{imports}, and
-check for conflicts.
address@hidden deffn
-
-I'm not at all sure about the way @var{conflict-proc} works.  I think
-module systems should warn you if it seems you're likely to get the
-wrong binding, but exactly how and when those warnings should be
-generated, I don't know.
-
-
address@hidden Export Environments, General Environments, Import Environments, 
Standard Environment Types
address@hidden Export Environments
-
-An export environment restricts an environment a specified set of
-bindings.
-
address@hidden Primitive make-export-environment private signature
-Return a new environment @var{exp} containing only those bindings in
address@hidden whose symbols are present in @var{signature}.  The
address@hidden argument must be an environment.
-
-The environment @var{exp} binds @var{symbol} to @var{location} when
address@hidden does, and @var{symbol} is exported by @var{signature}.
-
address@hidden is a list specifying which of the bindings in
address@hidden should be visible in @var{exp}.  Each element of
address@hidden should be a list of the form:
address@hidden
-(@var{symbol} @var{attribute} ...)
address@hidden example
address@hidden
-where each @var{attribute} is one of the following:
address@hidden @asis
address@hidden the symbol @code{mutable-location}
address@hidden should treat the location bound to @var{symbol} as mutable.
-That is, @var{exp} will pass calls to @var{env-set!} or
address@hidden directly through to @var{private}.
-
address@hidden the symbol @code{immutable-location}
address@hidden should treat the location bound to @var{symbol} as immutable.
-If the program applies @code{environment-set!} to @var{exp} and
address@hidden, or calls @code{environment-cell} to obtain a writable
-value cell, @code{environment-set!}  will signal an
address@hidden:immutable-location} error.
-
-Note that, even if an export environment treats a location as immutable,
-the underlying environment may treat it as mutable, so its value may
-change.
address@hidden table
-
-It is an error for an element of @var{signature} to specify both
address@hidden and @code{immutable-location}.  If neither is
-specified, @code{immutable-location} is assumed.
-
-As a special case, if an element of @var{signature} is a lone symbol
address@hidden, it is equivalent to an element of the form
address@hidden(@var{sym})}.
-
-All bindings in @var{exp} are immutable.  If you apply
address@hidden or @code{environment-undefine} to @var{exp},
-Guile will signal an @code{environment:immutable-binding} error.
-However, notice that the set of bindings in @var{exp} may still change,
-if the bindings in @var{private} change.
address@hidden deffn
-
address@hidden Primitive export-environment? object
-Return @code{#t} if @var{object} is an export environment, or @code{#f}
-otherwise.
address@hidden deffn
-
address@hidden Primitive export-environment-private env
address@hidden Primitive export-environment-set-private! env 
address@hidden Primitive export-environment-signature env
address@hidden Primitive export-environment-set-signature! env
-Accessors and mutators for the private environment and signature of
address@hidden; @var{env} must be an export environment.
address@hidden deffn
-
-
address@hidden General Environments,  , Export Environments, Standard 
Environment Types
address@hidden General Environments
-
-[[user provides the procedures]]
-[[A observers B and C; B observes C; C changes; A should only be
-notified once, right?]]
-[[observation loops?]]
-
address@hidden Implementing Environments, Switching to Environments, Standard 
Environment Types, Top-Level Environments in Guile
address@hidden Implementing Environments
-
-This section describes how to implement new environment types in Guile.
-
-Guile's internal representation of environments allows you to extend
-Guile with new kinds of environments without modifying Guile itself.
-Every environment object carries a pointer to a structure of pointers to
-functions implementing the common operations for that environment.  The
-procedures @code{environment-ref}, @code{environment-set!}, etc. simply
-find this structure and invoke the appropriate function.
-
-[[It would be nice to have an example around here.  How about a
-persistent environment, bound to a directory, where ref and set actually
-access files?  Ref on a directory would return another
-environment... Hey, let's import my home directory!]]
-
-
address@hidden
-* Environment Function Tables::  
-* Environment Data::            
-* Environment Example::         
address@hidden menu
-
-
address@hidden Environment Function Tables, Environment Data, Implementing 
Environments, Implementing Environments
address@hidden Environment Function Tables
-
-An environment object is a smob whose @sc{cdr} is a pointer to a pointer
-to a @code{struct environment_funcs}:
address@hidden
-struct environment_funcs @{
-  SCM  (*ref) (SCM self, SCM symbol);
-  SCM  (*fold) (SCM self, scm_environment_folder *proc, SCM data, SCM init);
-  void (*define) (SCM self, SCM symbol, SCM value);
-  void (*undefine) (SCM self, SCM symbol);
-  void (*set) (SCM self, SCM symbol, SCM value);
-  SCM  (*cell) (SCM self, SCM symbol, int for_write);
-  SCM  (*observe) (SCM self, scm_environment_observer *proc, SCM data, int 
weak_p);
-  void (*unobserve) (SCM self, SCM token);
-  SCM  (*mark) (SCM self);
-  scm_sizet (*free) (SCM self);
-  int  (*print) (SCM self, SCM port, scm_print_state *pstate);
address@hidden;
address@hidden example
-
-You can use the following macro to access an environment's function table:
-
address@hidden {Libguile macro} struct environment_funcs *SCM_ENVIRONMENT_FUNCS 
(@var{env})
-Return a pointer to the @code{struct environment_func} for the environment
address@hidden  If @var{env} is not an environment object, the behavior of
-this macro is undefined.
address@hidden deftypefn
-
-Here is what each element of @var{env_funcs} must do to correctly
-implement an environment.  In all of these calls, @var{self} is the
-environment whose function is being invoked.
-
address@hidden @code
-
address@hidden SCM ref (SCM @var{self}, SCM @var{symbol});
-This function must have the effect described above for the C call:
address@hidden
-scm_c_environment_ref (@var{self}, @var{symbol})
address@hidden example
address@hidden Environments}.
-
-Note that the @code{ref} element of a @code{struct environment_funcs}
-may be zero if a @code{cell} function is provided.
-
address@hidden SCM fold (SCM self, scm_environment_folder *proc, SCM data, SCM 
init);
-This function must have the effect described above for the C call:
address@hidden
-scm_c_environment_fold (@var{self}, @var{proc}, @var{data}, @var{init})
address@hidden example
address@hidden Environments}.
-
address@hidden void define (SCM self, SCM symbol, SCM value);
-This function must have the effect described above for the Scheme call:
address@hidden
-(environment-define @var{self} @var{symbol} @var{value})
address@hidden example
address@hidden Environments}.
-
address@hidden void undefine (SCM self, SCM symbol);
-This function must have the effect described above for the Scheme call:
address@hidden
-(environment-undefine @var{self} @var{symbol})
address@hidden example
address@hidden Environments}.
-
address@hidden void set (SCM self, SCM symbol, SCM value);
-This function must have the effect described above for the Scheme call:
address@hidden
-(environment-set! @var{self} @var{symbol} @var{value})
address@hidden example
address@hidden Environments}.
-
-Note that the @code{set} element of a @code{struct environment_funcs}
-may be zero if a @code{cell} function is provided.
-
address@hidden SCM cell (SCM self, SCM symbol, int for_write);
-This function must have the effect described above for the C call:
address@hidden
-scm_c_environment_cell (@var{self}, @var{symbol})
address@hidden example
address@hidden Environment Lookups}.
-
address@hidden SCM observe (SCM self, scm_environment_observer *proc, SCM data, 
int weak_p);
-This function must have the effect described above for the C call:
address@hidden
-scm_c_environment_observe (@var{env}, @var{proc}, @var{data}, @var{weak_p})
address@hidden example
address@hidden Changes to Environments}.
-
address@hidden void unobserve (SCM self, SCM token);
-Cancel the request to observe @var{self} that returned @var{token}.
address@hidden Changes to Environments}.
-
address@hidden SCM mark (SCM self);
-Set the garbage collection mark all Scheme cells referred to by
address@hidden  Assume that @var{self} itself is already marked.  Return a
-final object to be marked recursively.
-
address@hidden scm_sizet free (SCM self);
-Free all non-cell storage associated with @var{self}; return the number
-of bytes freed that were obtained using @code{scm_must_malloc} or
address@hidden
-
address@hidden SCM print (SCM self, SCM port, scm_print_state *pstate);
-Print an external representation of @var{self} on @var{port}, passing
address@hidden to any recursive calls to the object printer.
-
address@hidden table
-
-
address@hidden Environment Data, Environment Example, Environment Function 
Tables, Implementing Environments
address@hidden Environment Data
-
-When you implement a new environment type, you will likely want to
-associate some data of your own design with each environment object.
-Since ANSI C promises that casts will safely convert between a pointer
-to a structure and a pointer to its first element, you can have the
address@hidden of an environment smob point to your structure, as long as your
-structure's first element is a pointer to a @code{struct
-environment_funcs}.  Then, your code can use the macro below to retrieve
-a pointer to the structure, and cast it to the appropriate type.
-
address@hidden {Libguile macro} struct environment_funcs **SCM_ENVIRONMENT_DATA 
(@var{env})
-Return the @sc{cdr} of @var{env}, as a pointer to a pointer to an
address@hidden structure.
address@hidden deftypefn
-
address@hidden Environment Example,  , Environment Data, Implementing 
Environments
address@hidden Environment Example
-
-[[perhaps a simple environment based on association lists]]
-
-
address@hidden Switching to Environments,  , Implementing Environments, 
Top-Level Environments in Guile
address@hidden Switching to Environments
-
-Here's what we'd need to do to today's Guile to install the system
-described above.  This work would probably be done on a branch, because
-it involves crippling Guile while a lot of work gets done.  Also, it
-could change the default set of bindings available pretty drastically,
-so the next minor release should not contain these changes.
-
-After each step here, we should have a Guile that we can at least
-interact with, perhaps with some limitations.
-
address@hidden @bullet
-
address@hidden
-For testing purposes, make an utterly minimal version of
address@hidden: no module system, no R5RS, nothing.  I think a simple
-REPL is all we need.
-
address@hidden
-Implement the environment datatypes in libguile, and test them using
-this utterly minimal system.
-
address@hidden
-Change the interpreter to use the @code{environment-cell} and
address@hidden instead of the symbol value slots,
-first-class variables, etc.  Modify the rest of libguile as necessary to
-register all the primitives in a single environment.  We'll segregate
-them into modules later.
-
address@hidden
-Reimplement the current module system in terms of environments.  It
-should still be in Scheme.
-
address@hidden
-Reintegrate the rest of @file{boot-9.scm}.  This might be a good point
-to move it into modules.
-
address@hidden
-Do some profiling and optimization.
-
address@hidden itemize
-
-Once this is done, we can make the following simplifications to Guile:
-
address@hidden @bullet
-
address@hidden
-A good portion of symbols.c can go away.  Symbols no longer need value
-slots.  The mishmash of @code{scm_sym2ovcell},
address@hidden, etc. can go away.  @code{intern} becomes
-simpler.
-
address@hidden
-Remove first-class variables: @file{variables.c} and @file{variables.h}.
-
address@hidden
-Organize the primitives into environments.
-
address@hidden
-The family of environment types is clearly an abstract class/concrete
-subclass arrangement.  We should provide GOOPS classes/metaclasses that
-make defining new environment types easy and consistent.
-
address@hidden itemize
-
-
-
address@hidden Modules,  , Top-Level Environments in Guile, Top
address@hidden Modules
-
-The material here is just a sketch.  Don't take it too seriously.  The
-point is that environments allow us to experiment without getting
-tangled up with the interpreter.
-
address@hidden
-* Modules of Guile Primitives::  
-* Modules of Interpreted Scheme Code::  
address@hidden menu
-
address@hidden Modules of Guile Primitives, Modules of Interpreted Scheme Code, 
Modules, Modules
address@hidden Modules of Guile Primitives
-
address@hidden Modules of Interpreted Scheme Code,  , Modules of Guile 
Primitives, Modules
address@hidden Modules of Interpreted Scheme Code
-
-If a module is implemented by interpreted Scheme code, Guile represents
-it using several environments:
-
address@hidden @asis
-
address@hidden the @dfn{local} environment
-This environment holds all the definitions made locally by the module,
-both public and private.
-
address@hidden the @dfn{import} environment
-This environment holds all the definitions this module imports from
-other modules.
-
address@hidden the @dfn{evaluation} environment
-This is the environment in which the module's code is actually
-evaluated, and the one closed over by the module's procedures, both
-public and private.  Its bindings are the union of the @var{local} and
address@hidden environments, with local bindings taking precedence.
-
address@hidden the @dfn{exported} environment
-This environment holds the module's public definitions.  This is the
-only environment that the module's users have access to.  It is the
address@hidden environment, restricted to the set of exported
-definitions.
-
address@hidden table
-
-Each of these environments is implemented using a separate environment
-type.  Some of these types, like the evaluation and import environments,
-actually just compute their bindings by consulting other environments;
-they have no bindings in their own right.  They implement operations
-like @code{environment-ref} and @code{environment-define} by passing
-them through to the environments from which they are derived.  For
-example, the evaluation environment will pass definitions through to the
-local environment, and search for references and assignments first in
-the local environment, and then in the import environment.
-
-
-
address@hidden
diff --git a/doc/sources/format.texi b/doc/sources/format.texi
deleted file mode 100644
index 122e045..0000000
--- a/doc/sources/format.texi
+++ /dev/null
@@ -1,434 +0,0 @@
-
address@hidden
-* Format Interface::            
-* Format Specification::        
address@hidden menu
-
address@hidden Format Interface, Format Specification, Format, Format
address@hidden Format Interface
-
address@hidden format destination format-string . arguments
-An almost complete implementation of Common LISP format description
-according to the CL reference book @cite{Common LISP} from Guy L.
-Steele, Digital Press.  Backward compatible to most of the available
-Scheme format implementations.
-
-Returns @code{#t}, @code{#f} or a string; has side effect of printing
-according to @var{format-string}.  If @var{destination} is @code{#t},
-the output is to the current output port and @code{#t} is returned.  If
address@hidden is @code{#f}, a formatted string is returned as the
-result of the call.  NEW: If @var{destination} is a string,
address@hidden is regarded as the format string; @var{format-string} is
-then the first argument and the output is returned as a string. If
address@hidden is a number, the output is to the current error port
-if available by the implementation. Otherwise @var{destination} must be
-an output port and @code{#t} is address@hidden
-
address@hidden must be a string.  In case of a formatting error
-format returns @code{#f} and prints a message on the current output or
-error port.  Characters are output as if the string were output by the
address@hidden function with the exception of those prefixed by a tilde
-(~).  For a detailed description of the @var{format-string} syntax
-please consult a Common LISP format reference manual.  For a test suite
-to verify this format implementation load @file{formatst.scm}. Please
-send bug reports to @code{lutzeb@@cs.tu-berlin.de}.
-
-Note: @code{format} is not reentrant, i.e. only one @code{format}-call
-may be executed at a time.
-
address@hidden defun
-
address@hidden Format Specification,  , Format Interface, Format
address@hidden Format Specification (Format version 3.0)
-
-Please consult a Common LISP format reference manual for a detailed
-description of the format string syntax.  For a demonstration of the
-implemented directives see @address@hidden
-
-This implementation supports directive parameters and modifiers
-(@code{:} and @code{@@} characters). Multiple parameters must be
-separated by a comma (@code{,}).  Parameters can be numerical parameters
-(positive or negative), character parameters (prefixed by a quote
-character (@code{'}), variable parameters (@code{v}), number of rest
-arguments parameter (@code{#}), empty and default parameters.  Directive
-characters are case independent. The general form of a directive
-is:@refill
-
address@hidden
address@hidden ::= 
address@hidden@var{directive-parameter},@}[:][@@address@hidden
-
address@hidden
address@hidden ::= [ [-|address@hidden@}+ | '@var{character} | v | # ]
-
-
address@hidden Implemented CL Format Control Directives
-
-Documentation syntax: Uppercase characters represent the corresponding
-control directive characters. Lowercase characters represent control
-directive parameter descriptions.
-
address@hidden @asis
address@hidden @code{~A}
-Any (print as @code{display} does).
address@hidden @asis
address@hidden @code{~@@A}
-left pad.
address@hidden @address@hidden,@var{colinc},@var{minpad},@var{padchar}A}
-full padding.
address@hidden table
address@hidden @code{~S}
-S-expression (print as @code{write} does).
address@hidden @asis
address@hidden @code{~@@S}
-left pad.
address@hidden @address@hidden,@var{colinc},@var{minpad},@var{padchar}S}
-full padding.
address@hidden table
address@hidden @code{~D}
-Decimal.
address@hidden @asis
address@hidden @code{~@@D}
-print number sign always.
address@hidden @code{~:D}
-print comma separated.
address@hidden @address@hidden,@var{padchar},@var{commachar}D}
-padding.
address@hidden table
address@hidden @code{~X}
-Hexadecimal.
address@hidden @asis
address@hidden @code{~@@X}
-print number sign always.
address@hidden @code{~:X}
-print comma separated.
address@hidden @address@hidden,@var{padchar},@var{commachar}X}
-padding.
address@hidden table
address@hidden @code{~O}
-Octal.
address@hidden @asis
address@hidden @code{~@@O}
-print number sign always.
address@hidden @code{~:O}
-print comma separated.
address@hidden @address@hidden,@var{padchar},@var{commachar}O}
-padding.
address@hidden table
address@hidden @code{~B}
-Binary.
address@hidden @asis
address@hidden @code{~@@B}
-print number sign always.
address@hidden @code{~:B}
-print comma separated.
address@hidden @address@hidden,@var{padchar},@var{commachar}B}
-padding.
address@hidden table
address@hidden @address@hidden
-Radix @var{n}.
address@hidden @asis
address@hidden @address@hidden,@var{mincol},@var{padchar},@var{commachar}R}
-padding.
address@hidden table
address@hidden @code{~@@R}
-print a number as a Roman numeral.
address@hidden @code{~:@@R}
-print a number as an ``old fashioned'' Roman numeral.
address@hidden @code{~:R}
-print a number as an ordinal English number.
address@hidden @code{~:@@R}
-print a number as a cardinal English number.
address@hidden @code{~P}
-Plural.
address@hidden @asis
address@hidden @code{~@@P}
-prints @code{y} and @code{ies}.
address@hidden @code{~:P}
-as @code{~P but jumps 1 argument backward.}
address@hidden @code{~:@@P}
-as @code{~@@P but jumps 1 argument backward.}
address@hidden table
address@hidden @code{~C}
-Character.
address@hidden @asis
address@hidden @code{~@@C}
-prints a character as the reader can understand it (i.e. @code{#\} prefixing).
address@hidden @code{~:C}
-prints a character as emacs does (eg. @code{^C} for ASCII 03).
address@hidden table
address@hidden @code{~F}
-Fixed-format floating-point (prints a flonum like @var{mmm.nnn}).
address@hidden @asis
address@hidden 
@address@hidden,@var{digits},@var{scale},@var{overflowchar},@var{padchar}F}
address@hidden @code{~@@F}
-If the number is positive a plus sign is printed.
address@hidden table
address@hidden @code{~E}
-Exponential floating-point (prints a flonum like @address@hidden@var{ee}).
address@hidden @asis
address@hidden 
@address@hidden,@var{digits},@var{exponentdigits},@var{scale},@var{overflowchar},@var{padchar},@var{exponentchar}E}
address@hidden @code{~@@E}
-If the number is positive a plus sign is printed.
address@hidden table
address@hidden @code{~G}
-General floating-point (prints a flonum either fixed or exponential).
address@hidden @asis
address@hidden 
@address@hidden,@var{digits},@var{exponentdigits},@var{scale},@var{overflowchar},@var{padchar},@var{exponentchar}G}
address@hidden @code{~@@G}
-If the number is positive a plus sign is printed.
address@hidden table
address@hidden @code{~$}
-Dollars floating-point (prints a flonum in fixed with signs separated).
address@hidden @asis
address@hidden @address@hidden,@var{scale},@var{width},@var{padchar}$}
address@hidden @code{~@@$}
-If the number is positive a plus sign is printed.
address@hidden @code{~:@@$}
-A sign is always printed and appears before the padding.
address@hidden @code{~:$}
-The sign appears before the padding.
address@hidden table
address@hidden @code{~%}
-Newline.
address@hidden @asis
address@hidden @address@hidden
-print @var{n} newlines.
address@hidden table
address@hidden @code{~&}
-print newline if not at the beginning of the output line.
address@hidden @asis
address@hidden @address@hidden&}
-prints @code{~&} and then @var{n-1} newlines.
address@hidden table
address@hidden @code{~|}
-Page Separator.
address@hidden @asis
address@hidden @address@hidden|}
-print @var{n} page separators.
address@hidden table
address@hidden @code{~~}
-Tilde.
address@hidden @asis
address@hidden @address@hidden
-print @var{n} tildes.
address@hidden table
address@hidden @code{~}<newline>
-Continuation Line.
address@hidden @asis
address@hidden @code{~:}<newline>
-newline is ignored, white space left.
address@hidden @code{~@@}<newline>
-newline is left, white space ignored.
address@hidden table
address@hidden @code{~T}
-Tabulation.
address@hidden @asis
address@hidden @code{~@@T}
-relative tabulation.
address@hidden @address@hidden,colinc}T}
-full tabulation.
address@hidden table
address@hidden @code{~?}
-Indirection (expects indirect arguments as a list).
address@hidden @asis
address@hidden @code{~@@?}
-extracts indirect arguments from format arguments.
address@hidden table
address@hidden @code{~(@var{str}~)}
-Case conversion (converts by @code{string-downcase}).
address@hidden @asis
address@hidden @code{~:(@var{str}~)}
-converts by @code{string-capitalize}.
address@hidden @code{~@@(@var{str}~)}
-converts by @code{string-capitalize-first}.
address@hidden @code{~:@@(@var{str}~)}
-converts by @code{string-upcase}.
address@hidden table
address@hidden @code{~*}
-Argument Jumping (jumps 1 argument forward).
address@hidden @asis
address@hidden @address@hidden
-jumps @var{n} arguments forward.
address@hidden @code{~:*}
-jumps 1 argument backward.
address@hidden @address@hidden:*}
-jumps @var{n} arguments backward.
address@hidden @code{~@@*}
-jumps to the 0th argument.
address@hidden @address@hidden@@*}
-jumps to the @var{n}th argument (beginning from 0)
address@hidden table
address@hidden @address@hidden;@var{str1}~;...~;@var{strn}~]}
-Conditional Expression (numerical clause conditional).
address@hidden @asis
address@hidden @address@hidden
-take argument from @var{n}.
address@hidden @code{~@@[}
-true test conditional.
address@hidden @code{~:[}
-if-else-then conditional.
address@hidden @code{~;}
-clause separator.
address@hidden @code{~:;}
-default clause follows.
address@hidden table
address@hidden @address@hidden@address@hidden
-Iteration (args come from the next argument (a list)).
address@hidden @asis
address@hidden @address@hidden@{}
-at most @var{n} iterations.
address@hidden @code{~:@{}
-args from next arg (a list of lists).
address@hidden @code{~@@@{}
-args from the rest of arguments.
address@hidden @code{~:@@@{}
-args from the rest args (lists).
address@hidden table
address@hidden @code{~^}
-Up and out.
address@hidden @asis
address@hidden @address@hidden
-aborts if @var{n} = 0
address@hidden @address@hidden,@var{m}^}
-aborts if @var{n} = @var{m}
address@hidden @address@hidden,@var{m},@var{k}^}
-aborts if @var{n} <= @var{m} <= @var{k}
address@hidden table
address@hidden table
-
-
address@hidden Not Implemented CL Format Control Directives
-
address@hidden @asis
address@hidden @code{~:A}
-print @code{#f} as an empty list (see below).
address@hidden @code{~:S}
-print @code{#f} as an empty list (see below).
address@hidden @code{~<~>}
-Justification.
address@hidden @code{~:^}
-(sorry I don't understand its semantics completely)
address@hidden table
-
-
address@hidden Extended, Replaced and Additional Control Directives
-
address@hidden @asis
address@hidden @address@hidden,@var{padchar},@var{commachar},@var{commawidth}D}
address@hidden @address@hidden,@var{padchar},@var{commachar},@var{commawidth}X}
address@hidden @address@hidden,@var{padchar},@var{commachar},@var{commawidth}O}
address@hidden @address@hidden,@var{padchar},@var{commachar},@var{commawidth}B}
address@hidden 
@address@hidden,@var{mincol},@var{padchar},@var{commachar},@var{commawidth}R}
address@hidden is the number of characters between two comma characters.
address@hidden table
-
address@hidden @asis
address@hidden @code{~I}
-print an R5RS complex number as @code{~F~@@Fi} with passed parameters for
address@hidden
address@hidden @code{~Y}
-Pretty print formatting of an argument for scheme code lists.
address@hidden @code{~K}
-Same as @code{~?.}
address@hidden @code{~!}
-Flushes the output if format @var{destination} is a port.
address@hidden @code{~_}
-Print a @code{#\space} character
address@hidden @asis
address@hidden @address@hidden
-print @var{n} @code{#\space} characters.
address@hidden table
address@hidden @code{~/}
-Print a @code{#\tab} character
address@hidden @asis
address@hidden @address@hidden/}
-print @var{n} @code{#\tab} characters.
address@hidden table
address@hidden @address@hidden
-Takes @var{n} as an integer representation for a character. No arguments
-are consumed. @var{n} is converted to a character by
address@hidden>char}.  @var{n} must be a positive decimal address@hidden
address@hidden @code{~:S}
-Print out readproof.  Prints out internal objects represented as
address@hidden<...>} as strings @code{"#<...>"} so that the format output can 
always
-be processed by @code{read}.
address@hidden
address@hidden @code{~:A}
-Print out readproof.  Prints out internal objects represented as
address@hidden<...>} as strings @code{"#<...>"} so that the format output can 
always
-be processed by @code{read}.
address@hidden @code{~Q}
-Prints information and a copyright notice on the format implementation.
address@hidden @asis
address@hidden @code{~:Q}
-prints format version.
address@hidden table
address@hidden
address@hidden @code{~F, ~E, ~G, ~$}
-may also print number strings, i.e. passing a number as a string and
-format it accordingly.
address@hidden table
-
address@hidden Configuration Variables
-
-Format has some configuration variables at the beginning of
address@hidden to suit the systems and users needs. There should be
-no modification necessary for the configuration that comes with SLIB.
-If modification is desired the variable should be set after the format
-code is loaded. Format detects automatically if the running scheme
-system implements floating point numbers and complex numbers.
-
address@hidden @asis
-
address@hidden @var{format:symbol-case-conv}
-Symbols are converted by @code{symbol->string} so the case type of the
-printed symbols is implementation dependent.
address@hidden:symbol-case-conv} is a one arg closure which is either
address@hidden (no conversion), @code{string-upcase}, @code{string-downcase}
-or @code{string-capitalize}. (default @code{#f})
-
address@hidden @var{format:iobj-case-conv}
-As @var{format:symbol-case-conv} but applies for the representation of
-implementation internal objects. (default @code{#f})
-
address@hidden @var{format:expch}
-The character prefixing the exponent value in @code{~E} printing. (default
address@hidden)
-
address@hidden table
-
address@hidden Compatibility With Other Format Implementations
-
address@hidden @asis
address@hidden SLIB format 2.x:
-See @file{format.doc}.
-
address@hidden SLIB format 1.4:
-Downward compatible except for padding support and @code{~A}, @code{~S},
address@hidden, @code{~X} uppercase printing.  SLIB format 1.4 uses C-style
address@hidden padding support which is completely replaced by the CL
address@hidden padding style.
-
address@hidden MIT C-Scheme 7.1:
-Downward compatible except for @code{~}, which is not documented
-(ignores all characters inside the format string up to a newline
-character).  (7.1 implements @code{~a}, @code{~s},
address@hidden, @code{~~}, @code{~%}, numerical and variable
-parameters and @code{:/@@} modifiers in the CL sense)address@hidden
-
address@hidden Elk 1.5/2.0:
-Downward compatible except for @code{~A} and @code{~S} which print in
-uppercase.  (Elk implements @code{~a}, @code{~s}, @code{~~}, and
address@hidden (no directive parameters or modifiers))address@hidden
-
address@hidden Scheme->C 01nov91:
-Downward compatible except for an optional destination parameter: S2C
-accepts a format call without a destination which returns a formatted
-string. This is equivalent to a #f destination in S2C. (S2C implements
address@hidden, @code{~s}, @code{~c}, @code{~%}, and @code{~~} (no directive
-parameters or modifiers))address@hidden
-
address@hidden table
-
-This implementation of format is solely useful in the SLIB context
-because it requires other components provided by address@hidden
diff --git a/doc/sources/guile-slib.texi b/doc/sources/guile-slib.texi
deleted file mode 100644
index c8f07d1..0000000
--- a/doc/sources/guile-slib.texi
+++ /dev/null
@@ -1,2 +0,0 @@
address@hidden Guile and SLIB
address@hidden Guile and SLIB
diff --git a/doc/sources/jimb-org.texi b/doc/sources/jimb-org.texi
deleted file mode 100644
index c4ad9ea..0000000
--- a/doc/sources/jimb-org.texi
+++ /dev/null
@@ -1,131 +0,0 @@
address@hidden
-Preliminary
-
-* Introduction::
-* Using Guile::
-
-
-
address@hidden
-
->You can actually put any English text to break up the menu, so you
->could put the "Part n" headings in it.
-
-
-
-Introduction
-    --- Explains Guile's goals, and gives brief examples of how to use
-        Guile interactively (show off repl), as a script interpreter,
-        and as an embedded interpreter.
-
-Part I: Guile Scheme
-    R4RS Scheme as a Starting Point
-       --- Here we refer to R4RS, and explain that we're only
-           describing differences.
-    Block comments and interpreter triggers
-    Symbol case
-    Keywords
-    Exceptions
-    Modules
-       --- the preceding three come first, because we need them
-           in order to explain the behavior of some things later
-    Exception Handling
-        --- mention that repls usually establish default exception handlers
-    Dynamic Wind
-    Records
-    Structures
-    Arrays
-    Binary Numeric Operations
-    Shared and Read-Only Strings
-    Object Properties
-    Association Lists and Hash Tables
-        (Dictionaries In General)
-        association lists
-        hash tables (Hash Values)
-    Input/Output ports
-       file ports
-       soft ports
-       string ports
-       extended I/O (fseek; line read/write)
-    Garbage Collection
-    Threads and Dynamic Roots
-    Reflection
-        eval
-        Tag Values
-    Weak references
-    Regular Expressions
-    SLIB
-    POSIX system calls and networking
-       --- I think people will generally know whether they're looking
-           for a system call or not, so this should be an okay category.
-       conventions (includes error handling)
-       ports vs. file descriptors
-       file system (mknod goes here, no?)
-       user database
-       time (includes gettimeofday or whatever, strftime, strptime)
-       processes
-       terminals and pseudo-terminals
-       pipes
-       networking (includes databases, address conversion, and sockets)
-       system identification (uname)
-       locales (setlocale)
-       --- Note that there is no more 'misc'.  It's better to have
-           small sections than unhelpful names.
-    SCSH
-       --- includes info on how to get SCSH features (open this
-            module), but mostly just a pointer to the SCSH manual.
-            This should not be under POSIX.  SCSH includes plenty of
-           high-level stuff for starting processes and string
-           processing.  SCSH is not a subset of POSIX, nor the
-            reverse.
-    Tcl/Tk interface
-    Module internals
-        first-class variables
-       first-class modules
-    internal debugging interface
-       --- The name of this chapter needs to clearly distinguish it
-           from the appendix describing the debugger UI.  The intro
-           should have a pointer to the UI appendix.
-
-Part II: Using Scheme with C --- a Portable Interface
-    --- We cover gh in a completely separate section.  Why?  I admit
-        I'm on shaky ground, but here's my reasoning: People who want
-        to write portable C code need to restrict themselves to only
-        using GH, and GH's semantics are (necessarily) well-defined
-        without reference to Guile's particulars.  This makes life
-        more difficult for folks who just prefer to use the GH
-        interface when they can, but I really think the SCM interface
-        is not so bad, once you're used to it.  A *lot* of GH
-        functions are just wrappers for SCM functions.
-    --- We cover repls here too, since GH has repl functions.
-
-Part III: Using Scheme with C --- Guile's Interface
-    Scheme data representation
-    Relationship between Scheme and C functions
-        --- this is where we explain that all the functions marked as
-           "Primitive Functions" are also accessible from C, and how
-           to derive the C interface given the Scheme interface, when
-           we don't spell it out.
-    ... I think there's other stuff needed here ...
-    I/O internals
-    linking Guile with your code
-       --- Mark's "Tools to automate adding libraries" is not a
-            well-defined concept.  I think this is closer to what we
-            want to cover for now.
-    snarfing
-
-Appendices: 
-    Obtaining and Installing Guile
-    Invoking Guile
-        --- mentions read-eval-print loops
-       --- both the SCSH and GAWK manuals relegate invocation details
-            to an appendix.  We can give examples in the introduction.
-    debugger user interface
-       --- The title and introduction of this appendix need to
-            distinguish this clearly from the chapter on the internal
-            debugging interface.
-
-Indices:
-       --- At the top of the function/variable index, remind people
-            to look for functions under their Scheme names as well as
-            their C names.
diff --git a/doc/sources/libguile-overview.texi 
b/doc/sources/libguile-overview.texi
deleted file mode 100644
index 96a4a76..0000000
--- a/doc/sources/libguile-overview.texi
+++ /dev/null
@@ -1,30 +0,0 @@
address@hidden Libguile overview
address@hidden Libguile overview
address@hidden libguile - overview
-
-Extension languages, like Guile, Python and Tcl, can be embedded into a
-C program, @footnote{Or a C++ or Fortran or Pascal program if you want.}
-and thus allow the user to @emph{extend} the C program.
-
-The way this is done is by providing a C language library with a well
-defined interface.  The interface consists of a set of public and
-documented C-callable routines that offer the full interpreter
-functionality, and allow the conversion of data between C and the
-extension language.
-
address@hidden
-* An example of libguile functionality::  
-* What can be done with libguile::  
-* Schizofrenia -- two APIs::    
address@hidden menu
-
address@hidden An example of libguile functionality
address@hidden An example of libguile functionality
-
-[Two examples: using strings and using data conversion.]
-
address@hidden What can be done with libguile
address@hidden What can be done with libguile
-
address@hidden Schizofrenia -- two APIs
address@hidden Schizofrenia -- two APIs
diff --git a/doc/sources/libguile-tools.texi b/doc/sources/libguile-tools.texi
deleted file mode 100644
index d434406..0000000
--- a/doc/sources/libguile-tools.texi
+++ /dev/null
@@ -1,191 +0,0 @@
address@hidden Tools to automate adding libraries
address@hidden Tools to automate adding libraries
-
-You want to ...
-
-The chapters @ref{Libguile -- high level interface} and @ref{Libguile --
-SCM interface} showed how to make C libraries available from Scheme.
-Here I will describe some automated tools that the Guile team has made
-available.  Some have been written especially for Guile (the Guile Magic
-Snarfer), and some are also in use with other languages (Python, Perl,
-...)
-
address@hidden
-* By hand with gh_::            
-* By hand with Guile Magic Snarfer::  
-* Automatically using libtool::  
-* Automatically using SWIG::    
address@hidden menu
-
address@hidden By hand with gh_
address@hidden By hand with gh_
-
address@hidden By hand with Guile Magic Snarfer
address@hidden By hand with Guile Magic Snarfer
-
-When writing C code for use with Guile, you typically define a set of C
-functions, and then make some of them visible to the Scheme world by
-calling the @code{scm_make_gsubr} function; a C functions published in
-this way is called a @dfn{subr}.  If you have many subrs to publish, it
-can sometimes be annoying to keep the list of calls to
address@hidden in sync with the list of function definitions.
-Frequently, a programmer will define a new subr in C, recompile his
-application, and then discover that the Scheme interpreter cannot see
-the subr, because he forgot to call @code{scm_make_gsubr}.
-
-Guile provides the @code{guile-snarf} command to manage this problem.
-Using this tool, you can keep all the information needed to define the
-subr alongside the function definition itself; @code{guile-snarf} will
-extract this information from your source code, and automatically
-generate a file of calls to @code{scm_make_gsubr} which you can
address@hidden into an initialization function.  (The command name
-comes from the verb ``to snarf'', here meaning ``to unceremoniously
-extract information from a somewhat unwilling source.'')
-
address@hidden
-* How guile-snarf works::       Using the @code{guile-snarf} command.
-* Macros guile-snarf recognizes::  How to mark up code for @code{guile-snarf}.
address@hidden menu
-
address@hidden How guile-snarf works
address@hidden How @code{guile-snarf} works
-
-For example, here is how you might define a new subr called
address@hidden, implemented by the C function @code{clear_image}:
-
address@hidden
address@hidden
-#include <libguile.h>
-
address@hidden
-
-SCM_PROC (s_clear_image, "clear-image", 1, 0, 0, clear_image);
-
-SCM
-clear_image (SCM image_smob)
address@hidden
-  @dots{}
address@hidden
-
address@hidden
-
-void
-init_image_type ()
address@hidden
-#include "image-type.x"
address@hidden
address@hidden group
address@hidden example
-
-The @code{SCM_PROC} declaration says that the C function
address@hidden implements a Scheme subr called @code{clear-image},
-which takes one required argument, no optional arguments, and no tail
-argument.  @code{SCM_PROC} also declares a static array of characters
-named @code{s_clear_image}, initialized to the string
address@hidden"clear-image"}.  The body of @code{clear_image} may use the array
-in error messages, instead of writing out the literal string; this may
-save string space on some systems.
-
-Assuming the text above lives in a file named @file{image-type.c}, you will
-need to execute the following command to compile this file:
address@hidden
-guile-snarf image-type.c > image-type.x
address@hidden example
address@hidden This scans @file{image-type.c} for @code{SCM_PROC}
-declarations, and sends the following output to the file
address@hidden:
address@hidden
-scm_make_gsubr (s_clear_image, 1, 0, 0, clear_image);
address@hidden example
-When compiled normally, @code{SCM_PROC} is a macro which expands to a
-declaration of the @code{s_clear_image} string.
-
-In other words, @code{guile-snarf} scans source code looking for uses of
-the @code{SCM_PROC} macro, and generates C code to define the
-appropriate subrs.  You need to provide all the same information you
-would if you were using @code{scm_make_gsubr} yourself, but you can
-place the information near the function definition itself, so it is less
-likely to become incorrect or out-of-date.
-
-If you have many files that @code{guile-snarf} must process, you should
-consider using a rule like the following in your Makefile:
address@hidden
-.SUFFIXES: .x
-.c.x:
-       ./guile-snarf $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $< > $@
address@hidden example
-This tells make to run @code{guile-snarf} to produce each needed
address@hidden file from the corresponding @file{.c} file.
-
address@hidden passes all its command-line arguments directly to the
-C preprocessor, which it uses to extract the information it needs from
-the source code. this means you can pass normal compilation flags to
address@hidden to define preprocessor symbols, add header file
-directories, and so on.
-
-
-
address@hidden Macros guile-snarf recognizes
address@hidden Macros @code{guile-snarf} recognizes
-
-Here are the macros you can use in your source code from which
address@hidden can construct initialization code:
-
-
address@hidden SCM_PROC (@var{namestr}, @var{name}, @var{req}, @var{opt}, 
@var{tail}, @var{c_func})
-Declare a new Scheme primitive function, or @dfn{subr}.  The new subr
-will be named @var{name} in Scheme code, and be implemented by the C
-function @var{c_func}.  The subr will take @var{req} required arguments
-and @var{opt} optional arguments.  If @var{tail} is non-zero, the
-function will accept any remaining arguments as a list.
-
-Use this macro outside all function bodies, preferably above the
-definition of @var{c_func} itself.  When compiled, the @code{SCM_PROC}
-declaration will expand to a definition for the @var{namestr} array,
-initialized to @var{name}.  The @code{guile-snarf} command uses this
-declaration to automatically generate initialization code to create the
-subr and bind it in the top-level environment.  @xref{How guile-snarf
-works}, for more info.
-
address@hidden, for details on argument passing and how to write
address@hidden
address@hidden defmac
-
-
address@hidden SCM_GLOBAL (@var{var}, @var{scheme_name})
-Declare a global Scheme variable named @var{scheme_name}, and a static C
-variable named @var{var} to point to it.  The value of the Scheme
-variable lives in the @sc{cdr} of the cell @var{var} points to.
-Initialize the variable to @code{#f}.
-
-Use this macro outside all function bodies.  When compiled, the
address@hidden macro will expand to a definition for the variable
address@hidden, initialized to an innocuous value.  The @code{guile-snarf}
-command will use this declaration to automatically generate code to
-create a global variable named @var{scheme_name}, and store a pointer to
-its cell in @var{var}.
address@hidden defmac
-
-
address@hidden SCM_CONST_LONG (@var{var}, @var{scheme_name}, @var{value})
-Like @code{SCM_GLOBAL}, but initialize the variable to @var{value},
-which must be an integer.
address@hidden defmac
-
-
address@hidden SCM_SYMBOL (@var{var}, @var{name})
-Declare a C variable of type @code{SCM} named @var{var}, and initialize
-it to the Scheme symbol object whose name is @var{name}.
-
-Use this macro outside all function bodies.  When compiled, the
address@hidden macro will expand to a definition for the variable
address@hidden, initialized to an innocuous value.  The @code{guile-snarf}
-command will use this declaration to automatically generate code to
-create a symbol named @var{name}, and store it in @var{var}.
address@hidden defmac
-
address@hidden Automatically using libtool
address@hidden Automatically using libtool
-
address@hidden Automatically using SWIG
address@hidden Automatically using SWIG
diff --git a/doc/sources/new-types.texi b/doc/sources/new-types.texi
deleted file mode 100644
index 1840b21..0000000
--- a/doc/sources/new-types.texi
+++ /dev/null
@@ -1,2 +0,0 @@
address@hidden Adding types to Guile
address@hidden Adding types to Guile
diff --git a/doc/sources/old-intro.texi b/doc/sources/old-intro.texi
deleted file mode 100644
index 0774f64..0000000
--- a/doc/sources/old-intro.texi
+++ /dev/null
@@ -1,290 +0,0 @@
address@hidden Introduction
address@hidden Introduction
-
-Guile is an interpreter for Scheme, a clean, economical programming
-language in the Lisp family.  You can invoke Guile from the shell to
-evaluate Scheme expressions interactively, or use it as an interpreter
-for script files.  However, Guile is also packaged as a library, to be
-embedded as an extension language into other applications.  The
-application can supplement the base language with special-purpose
-functions and datatypes, allowing the user to customize and extend it by
-writing Scheme code.
-
-In its simplest form, Guile is an ordinary interpreter.  The
address@hidden program can read and evaluate Scheme expressions entered
-from the terminal.  Here is a sample interaction between Guile and a
-user; the user's input appears after the @code{$} and @code{guile>}
-prompts:
-
address@hidden
-$ guile
-guile> (+ 1 2 3)                ; add some numbers
-6
-guile> (define (factorial n)    ; define a function
-         (if (zero? n) 1 (* n (factorial (- n 1)))))
-guile> (factorial 20)
-2432902008176640000
-guile> (getpwnam "jimb")        ; find my entry in /etc/passwd
-#("jimb" ".0krIpK2VqNbU" 4008 10 "Jim Blandy" "/u/jimb"
-  "/usr/local/bin/bash")
-guile> @kbd{C-d}
-$
address@hidden example
-
-Guile can also interpret script files.  For example, here is a Guile script
-containing a script which displays the 
-
-
-application can
-supplement the base language with its own functions, datatypes and
-syntax, allowing the user to extend and 
-
-
- Guile interpret
-
-.  An
-application the Guile interpreter to allow 
-
-
-, allowing
-applications to incorporate the Scheme interpreter for customization
-
-[[interactive]]
-[[script interpreter]]
-[[embedded]]
-
-[[other languages]]
-The concept of an extension language library does not originate with
-Guile.  However, Guile is the first to offer users a choice of languages
-to program in.  
-
-
-Guile currently supports Scheme and Ctax , and we expect to support Emacs Lisp 
in the near future.  
-
-
-Scheme is powerful enough that other languages can be
-conveniently translated into it, 
-
-However, unlike other extension packages, Guile gives users a choice of
-languages to program in.  Guile can 
-
-
-In this sense, Guile resembles the Tcl and Python packages, providing
-both an ordinary interpreter and an extension language library.
-However, unlike those packages, Guile supports more than one programming
-language.  
-
-; users can
-write Scheme code to control and customize applications which
-incorporate Guile
-
-, adding their own functions,
-datatypes, and syntax, to allow the user to programm
-
-
-link it into your own programs to make them
-
-
-
-Guile is a library containing an interpreter for Scheme, a complete but
-economical programming language, which the developer can customize to
-suit the application at hand by adding new functions, data types, and
-control structures.  These may be implemented in C, and then
-``exported'' for use by the interpreted code.  Because Guile already
-provides a full-featured interpreter, the developer need not neglect the
-language's design in order to concentrate on code relevant to the task.
-In this way, Guile provides a framework for the construction of
-domain-specific languages.
-
-Guile provides first-class functions, a rich set of data types,
-exception handling, a module system, and a powerful macro facility.
-Guile also supports dynamic linking and direct access to Unix system
-calls.  Releases in the near future will support a source-level
-debugger and bindings for the Tk user interface toolkit.
-
-
-
-Guile is a framework for writing applications controlled by specialized
-languages.  In its simplest form, Guile is an interpreter for Scheme, a
-clean, economical programming language in the Lisp family.  However,
-Guile is packaged as a library, allowing applications to link against it
-and use Scheme as their extension language.  The application can add
-primitive functions to the language, implement new data types, and even
-adjust the language's syntax.
-
-
-
-[the introduction is probably not what Jim has in mind; I just took the
-one I had in earlier, since the file had the same name intro.texi]
-
-Guile is an implementation of the Scheme programming language, but, like
-other modern implementations of Scheme, it adds many features that the
-community of Scheme programmers considers necessary for an ``industrial
-strength'' language.
-
-Examples of extensions to Scheme are the module system
-(@pxref{Modules}), the Unix system programming tools (@pxref{POSIX
-system calls and networking} and @pxref{The Scheme shell (scsh)}), an
-interface to @emph{libtool} to make it easier to add C libraries as
-primitives (@pxref{Linking Guile with your code}), and (FIXME add more).
-
-On top of these extensions, which many other Scheme implementations
-provide, Guile also offers the possibility of writing routines in other
-languages and running them simultaneously with Scheme.  The desire to
-implement other languages (in particular Emacs Lisp) on top of Scheme is
-responsible for Guile's only deviation from the R4RS @footnote{R4RS is
-the Revised^4 Report on the Algorithmic Language Scheme, the closest
-thing to a standard Scheme specification today} Scheme standard
-(@cite{r4rs}): Guile is case sensitive, whereas ``standard'' Scheme is
-not.
-
-But even more fundamentally, Guile is meant to be an @emph{embeddable}
-Scheme interpreter.  This means that a lot of work has gone into
-packaging the interpreter as a C library (@pxref{A Portable C to Scheme 
Interface} and @pxref{Scheme data representation}).
-
-This reference manual is mainly driven by the need to document all the
-features that go beyond standard Scheme.
-
address@hidden
-* Getting started::             
-* Guile feature list::          
-* What you need to use Guile::  
-* Roadmap to the Manual::       
-* Motivation for Guile::        
-* History of Guile::            
address@hidden menu
-
address@hidden Getting started
address@hidden Getting started
-
-We assume that you know how to program in Scheme, although we do not
-assume advanced knowledge.  If you don't know Scheme, there are many
-good books on Scheme at all levels, and the Guile Tutorial might give
-you a good enough feel for the language.  We also assume that you know
-how to program in C, since there will be many examples of how to program
-in C using Guile as a library.
-
-Many diverse topics from the world of Unix hacking will be covered here,
-such as shared libraries, socket programming, garbage collection, and so
-forth.  If at any time you feel you don't have enough background on a
-given topic, just go up a level or two in the manual, and you will find
-that the chapter begins with a few paragraphs that introduce the topic.
-If you are still lost, read through the Guile tutorial and then come
-back to this reference manual.
-
-To run the core Guile interpreter and extension library you need no more
-than a basically configured GNU/Unix system and the Guile sources.  You
-should download and install the Guile sources (@pxref{Obtaining and
-Installing Guile}).
-
-
address@hidden Guile feature list
address@hidden Guile feature list
-
-In a reductionist view, Guile could be regarded as:
address@hidden @bullet
address@hidden
-An R4RS-compliant Scheme interpreter.
-
address@hidden
-Some Scheme features that go beyond the R4RS standard, notably a module
-system, exception handling primitives and an interface to Aubrey
-Jaffer's SLIB.
-
address@hidden
-A symbolic debugger for Scheme, and gdb extensions to facilitate
-debugging libguile programs.
-
address@hidden
-An embeddable version of the same interpreter, called @emph{libguile}.
-
address@hidden
-A portable high level API on top of libguile (the @code{gh_} interface).
-
address@hidden
-A collection of bundled C libraries with a Guile API.  As we write, this
-list includes:
-
address@hidden @strong
address@hidden Rx
-a regular expression library.
-
address@hidden Unix
-a low-level interface to the POSIX system calls, socket library
-and other Unix system services.
-
address@hidden Tk
-an interface to John Ousterhout's Tk toolkit.
-
address@hidden table
-
address@hidden
-A set of tools for implementing other languages @emph{on top of Scheme},
-and an example implementation of a language called @emph{Ctax}.
-
-
address@hidden itemize
-
-
address@hidden What you need to use Guile
address@hidden What you need to use Guile
-
-
address@hidden Roadmap to the Manual
address@hidden Roadmap to the Manual
-
address@hidden Motivation for Guile
address@hidden Motivation for Guile
-
address@hidden History of Guile
address@hidden History of Guile
-
address@hidden
address@hidden Using Guile
address@hidden Using Guile
-
-[I think that this might go in the appendix in Jim's view of the manual]
-
address@hidden
address@hidden Invoking Guile
address@hidden Invoking Guile
-        --- mentions read-eval-print loops
-       --- both the SCSH and GAWK manuals relegate invocation details
-            to an appendix.  We can give examples in the introduction.
-
address@hidden @samp
address@hidden -h
address@hidden --help
-Display a helpful message.
address@hidden -v
address@hidden --version
-Display the current version.
address@hidden --emacs
-To be used for emacs editing support.
address@hidden -s @var{file}
-Process @var{file} as a script then quit.  This is a terminating option:
-any further command line arguments can be accessed by the script using
-the @code{(program-arguments)} procedure.
-
-An executable script can start with the following:
-
address@hidden
-#!/usr/bin/guile -s
-!#
address@hidden smallexample
-
-Note the @code{!#} token on the second line.  It is very important
-to include this token when writing Guile scripts.  Guile and SCSH,
-the Scheme shell, share the convention that @code{#!}  and
address@hidden may be used to mark block comments (@pxref{Block
-comments and interpreter triggers}).  If the closing @code{!#}
-token is not included, then Guile will consider the block comment
-to be unclosed, and the script will probably not compile
-correctly.
-
-It is also important to include the @samp{-s} option at the
-beginning of the Guile script, so that Guile knows not to behave
-in an interactive fashion.
-
address@hidden table
-
diff --git a/doc/sources/sample-APIs.texi b/doc/sources/sample-APIs.texi
deleted file mode 100644
index c8c4b8e..0000000
--- a/doc/sources/sample-APIs.texi
+++ /dev/null
@@ -1,6 +0,0 @@
address@hidden Examples of adding libraries
address@hidden Examples of adding libraries
-
-Should contain examples of brute-force gh_, Guile magic snarfer,
-libtool, SWIG on a dummy API, followed by some real examples of how
-libraries are added.
diff --git a/doc/sources/scheme-concepts.texi b/doc/sources/scheme-concepts.texi
deleted file mode 100644
index 0e9ae6c..0000000
--- a/doc/sources/scheme-concepts.texi
+++ /dev/null
@@ -1,249 +0,0 @@
address@hidden Guile Scheme concepts
address@hidden Guile Scheme concepts
-
-Most Scheme implementations go beyond what is specified in the R4RS
-document @footnote{Remember?  R4RS is the Revised^4 report on the
-Algorithmic Language Scheme}, mostly because R4RS does not give
-specifications (or even recommendations) regarding some issues that are
-quite important in practical programming.
-
-Here is a list of how Guile implements some of these much-needed Scheme
-extensions; other Scheme implementations do so quite similarly.
-
address@hidden
-* Scheme slang::                
-* Read-eval-print loops::       
-* Extra data types::            
-* Miscellaneous features::      
address@hidden menu
-
address@hidden Scheme slang
address@hidden Scheme slang
address@hidden slang
-
-Even if you read some of the nice books on Scheme, or the R4RS report,
-you might not find some of the terms frequently used by Scheme hackers,
-both in the manual and in the @url{news:comp.lang.scheme} newsgroup.
-
-Here is a glossary of some of the terms that make Scheme beginners and
-intermediate users say ``huh?''
-
address@hidden @strong
address@hidden thunk
address@hidden thunk
-A Scheme procedure that takes no arguments.  In this example,
address@hidden and @code{another-thunk} are both thunks:
address@hidden
-(define (thunk)
-  (display "Dude, I'm a thunk!")
-  (newline))
-(define another-thunk
-  (lambda ()
-    (display "Me too!\n")
-    (newline)))
address@hidden lisp
-
address@hidden closure
address@hidden closure
-A closure is a procedure.  However, the term emphasizes the fact that a
-Scheme procedure remembers (or @dfn{closes over}) the variables that
-were visible when the @code{lambda} expression was
-evaluated.
-
-In the example below, we might refer to @code{q} as a closure, because
-it has closed over the value of @code{x}:
address@hidden
-(define p
-  (lambda (x)
-    (lambda (y)
-      (+ x y))))
-(define q (p 5.7))
-
-(q 10)
address@hidden 15.7
address@hidden lisp
-
-However, strictly speaking, every Scheme procedure is really a closure,
-since it closes over the top-level environment.
-
address@hidden alist
address@hidden association list
-
address@hidden plist
address@hidden property list
-
address@hidden table
-
-
address@hidden Read-eval-print loops
address@hidden Read-eval-print loops
address@hidden Read-eval-print loop
address@hidden REPL
-
-To explicitly mention the Scheme read-eval-print loop (REPL) seems weird
-because we are all accustomed to firing up an interpreter and having it
-read and execute commands.
-
-But the REPL is not specified in R4RS; rather, it is proposed by the
-Scheme Bible @cite{Structure and Interpretation of Computer Programs}
-(also known as @emph{SICP}), and implemented in some form in all Scheme
-interpreters.
address@hidden Structure and Interpretation of Computer Programs
address@hidden SICP
-
-[FIXME: Someone needs to tell me what needs to be said about Guile's
-REPL.]
-
address@hidden Extra data types
address@hidden Extra data types
-
-The fundamental Scheme data types specified in R4RS are @emph{numbers}
-(both exact and inexact), @emph{characters}, @emph{strings},
address@hidden, @emph{vectors}, @emph{pairs} and @emph{lists} [FIXME: is
-this complete?].
-
-Many Scheme interpreters offer more types, and Guile is no exception.
-Guile is based on Aubrey Jaffer's SCM interpreter, and thus inherits
address@hidden arrays}, [FIXME: any others?  How about records?].
-
-On top of that, Guile allows you to add extra types, but that is covered
-in @ref{Adding types to Guile}.  Here I will simply document all the
-extra Scheme types shipped with Guile.
-
address@hidden
-* Conventional arrays::         
-* Uniform arrays::              
-* Bit vectors::                 
-* Complex numbers::             
address@hidden menu
-
address@hidden Conventional arrays
address@hidden Conventional arrays
-
address@hidden Uniform arrays
address@hidden Uniform arrays
address@hidden arrays - uniform
-
-The motivation for uniform arrays in Scheme is performance.  A vector
-provides a performance increase over lists when you want a fixed-size
-indexable list.  But the elements in a vector can be of different types,
-and this makes for larger storage requirements and slightly lower
-performance.
-
-A uniform array is similar to a vector, but all elements have to be of
-the same type.
-
-arrays, uniform arrays, bit vectors:
-
address@hidden procedure array-fill ra fill
address@hidden deffn
address@hidden procedure serial-array-copy! src dst
address@hidden deffn
address@hidden procedure serial-array-map ra0 proc [lra]
address@hidden deffn
address@hidden procedure array-map ra0 proc [lra]
address@hidden deffn
address@hidden procedure array-for-each proc ra0 [lra]
address@hidden deffn
address@hidden procedure array-index-map! ra proc
address@hidden deffn
address@hidden procedure array-copy! src dst
address@hidden deffn
address@hidden procedure array-copy! src dst
address@hidden deffn
address@hidden procedure array-copy! src dst
address@hidden deffn
address@hidden procedure array-copy! src dst
address@hidden deffn
address@hidden procedure array-copy! src dst
address@hidden deffn
address@hidden procedure array? ra [prot]
address@hidden deffn
address@hidden procedure array-rank ra
address@hidden deffn
address@hidden procedure array-dimensions ra
address@hidden deffn
address@hidden procedure dimensions->uniform-array dims prot fill ...
address@hidden deffn
address@hidden procedure make-shared-array ra mapfunc dims ...
address@hidden deffn
address@hidden procedure transpose-array arg ...
address@hidden deffn
address@hidden procedure enclose-array axes ...
address@hidden deffn
address@hidden procedure array-in-bounds? arg ...
address@hidden deffn
address@hidden procedure array-ref ra arg ..
address@hidden deffn
address@hidden procedure uniform-vector-ref vec pos
address@hidden deffn
address@hidden procedure array-set! ra obj arg ...
address@hidden deffn
address@hidden procedure uniform-array-set1! ua obj arg
address@hidden deffn
address@hidden procedure array-contents ra [strict]
address@hidden deffn
address@hidden procedure uniform-array-read! ra [port-or-fd] [start] [end]
address@hidden deffn
address@hidden procedure uniform-array-write! ra [port-or-fd] [start] [end]
address@hidden deffn
address@hidden procedure bit-count item seq
address@hidden deffn
address@hidden procedure bit-position item v k
address@hidden deffn
address@hidden procedure bit-set! v kv obj
address@hidden deffn
address@hidden procedure bit-count* v kv obj
address@hidden deffn
address@hidden procedure bit-invert v
address@hidden deffn
address@hidden procedure array->list ra
address@hidden deffn
address@hidden procedure list->uniform-array ndim prot list
address@hidden deffn
address@hidden procedure array-prototype ra
address@hidden deffn
-
-Uniform arrays can be written and read, but @code{read} won't recognize
-them unless the optional @code{read-sharp} parameter is supplied,
-e.g, 
address@hidden
-(read port #t read-sharp)
address@hidden smalllisp
-
-where @code{read-sharp} is the default procedure for parsing extended
-sharp notations.
-
-Reading an array is not very efficient at present, since it's implemented
-by reading a list and converting the list to an array.
-
address@hidden FIXME: must use @deftp, but its generation of TeX code is buggy.
address@hidden Must fix it when TeXinfo gets fixed.
address@hidden {Scheme type} {uniform array}
-
address@hidden deftp
-
address@hidden Bit vectors
address@hidden Bit vectors
-
address@hidden Complex numbers
address@hidden Complex numbers
-
address@hidden FIXME: must use @deftp, but its generation of TeX code is buggy.
address@hidden Must fix it when TeXinfo gets fixed.
address@hidden {Scheme type} complex
-Standard complex numbers.
address@hidden deftp
-
address@hidden Miscellaneous features
address@hidden Miscellaneous features
-
address@hidden defined? symbol
-Returns @code{#t} if a symbol is bound to a value, @code{#f} otherwise.
-This kind of procedure is not specified in R4RS because @c FIXME: finish
-this thought
address@hidden defun
-
address@hidden object-properties OBJ
-and so forth
address@hidden defun
diff --git a/doc/sources/scm-ref.texi b/doc/sources/scm-ref.texi
deleted file mode 100644
index eca6725..0000000
--- a/doc/sources/scm-ref.texi
+++ /dev/null
@@ -1,4 +0,0 @@
address@hidden Libguile -- SCM interface
address@hidden Libguile -- SCM interface
-
-
diff --git a/doc/sources/strings.texi b/doc/sources/strings.texi
deleted file mode 100644
index 9a1ddc9..0000000
--- a/doc/sources/strings.texi
+++ /dev/null
@@ -1,45 +0,0 @@
address@hidden Strings
address@hidden Facilities for string manipulation
-
address@hidden procedure string? string
address@hidden deffn
address@hidden procedure read-only-string? string
address@hidden deffn
address@hidden procedure list->string list
address@hidden deffn
address@hidden procedure make-string length [char]
address@hidden deffn
address@hidden procedure string-length string
address@hidden deffn
address@hidden procedure string-ref string [index]
address@hidden deffn
address@hidden procedure string-set! string index char
address@hidden deffn
address@hidden procedure substring string start [end]
address@hidden deffn
address@hidden procedure string-append arg ...
address@hidden deffn
address@hidden procedure make-shared-substring string [from] [to]
address@hidden deffn
address@hidden procedure string-set! string index char
address@hidden deffn
address@hidden procedure string-index string char [from] [to]
address@hidden deffn
address@hidden procedure string-rindex string char [from] [to]
address@hidden deffn
address@hidden procedure substring-move-left! string1 start1 [end1] [string2] 
[start2]
address@hidden deffn
address@hidden procedure substring-move-right! string1 start1 [end1] [string2] 
[start2]
address@hidden deffn
address@hidden procedure substring-fill! string start [end] [fill]
address@hidden deffn
address@hidden procedure string-null? string
address@hidden deffn
address@hidden procedure string->list string
address@hidden deffn
address@hidden procedure string-copy string
address@hidden deffn
address@hidden procedure string-upcase! string
address@hidden deffn
address@hidden procedure string-downcase! string
address@hidden deffn
diff --git a/doc/sources/tk.texi b/doc/sources/tk.texi
deleted file mode 100644
index 176c8c7..0000000
--- a/doc/sources/tk.texi
+++ /dev/null
@@ -1,5 +0,0 @@
address@hidden Tk interface
address@hidden Tk interface
-
-For now Guile has no well-specified Tk interface.  It is an important part
-of Guile, though, and will be documented here when it is written.
diff --git a/doc/sources/unix-other.texi b/doc/sources/unix-other.texi
deleted file mode 100644
index 7b810d5..0000000
--- a/doc/sources/unix-other.texi
+++ /dev/null
@@ -1,132 +0,0 @@
address@hidden Other Unix
address@hidden Other Unix-specific facilities
-
address@hidden
-* Expect::              Expect, for pattern matching from a port.
address@hidden menu
-
address@hidden Expect
address@hidden Expect: Pattern Matching from a Port
-
address@hidden is a macro for selecting actions based on the output from
-a port.  The name comes from a tool of similar functionality by Don Libes.
-Actions can be taken when a particular string is matched, when a timeout
-occurs, or when end-of-file is seen on the port.  The @code{expect} macro
-is described below; @code{expect-strings} is a front-end to @code{expect}
-based on regexec @xref{Regular expressions}.
-
-Using these macros requires for now:
address@hidden
-(load-from-path "ice-9/expect")
address@hidden smalllisp
-
address@hidden expect-strings clause @dots{}
-By default, @code{expect-strings} will read from the current input port.
-The first term in each clause consists of an expression evaluating to
-a string pattern (regular expression).  As characters
-are read one-by-one from the port, they are accumulated in a buffer string
-which is matched against each of the patterns.  When a
-pattern matches, the remaining expression(s) in
-the clause are evaluated and the value of the last is returned.  For example:
-
address@hidden
-(with-input-from-file "/etc/passwd"
-  (lambda ()
-    (expect-strings
-      ("^nobody" (display "Got a nobody user.\n")
-                 (display "That's no problem.\n"))
-      ("^daemon" (display "Got a daemon user.\n")))))
address@hidden smalllisp
-
-The regular expression is compiled with the @code{REG_NEWLINE} flag, so
-that the @code{^} and @code{$} anchors will match at any newline, not
-just at the start
-and end of the string.
-
-There are two other ways to write a clause:
-
-The expression(s) to evaluate on a match
-can be omitted, in which case the result of the match
-(converted to strings, as obtained from regexec with @var{match-pick}
-set to @code{""}) will be returned if the pattern matches.
-
-The symbol @code{=>} can be used to indicate that there is a single
-expression to evaluate on a match, which must be a 
-procedure which will accept the result of a successful match (converted
-to strings, as obtained from regexec with @var{match-pick} set to
address@hidden""}).  E.g.,
-
address@hidden
-("^daemon" => write)
-("^d\\(aemon\\)" => (lambda args (map write args)))
-("^da\\(em\\)on" => (lambda (all sub)
-                         (write all)
-                         (write sub)))
address@hidden smalllisp
-
-The order of the substrings corresponds to the order in which the
-opening brackets occur in the regular expression.
-
-A number of variables can be used to control the behaviour
-of @code{expect} (and @code{expect-strings}).
-By default they are all bound at the top level to
-the value @code{#f}, which produces the default behaviour.
-They can be redefined at the
-top level or locally bound in a form enclosing the @code{expect} expression.
-
address@hidden @code
address@hidden expect-port
-A port to read characters from, instead of the current input port.
address@hidden expect-timeout
address@hidden will terminate after this number of
-seconds, returning @code{#f} or the value returned by
address@hidden
address@hidden expect-timeout-proc
-A procedure called if timeout occurs.  The procedure takes a single argument:
-the accumulated string.
address@hidden expect-eof-proc
-A procedure called if end-of-file is detected on the input port.  The
-procedure takes a single argument: the accumulated string.
address@hidden expect-char-proc
-A procedure to be called every time a character is read from the
-port.  The procedure takes a single argument: the character which was read.
address@hidden table
-
-Here's an example using all of the variables:
-
address@hidden
-(let ((expect-port (open-input-file "/etc/passwd"))
-      (expect-timeout 1)
-      (expect-timeout-proc
-        (lambda (s) (display "Times up!\n")))
-      (expect-eof-proc
-        (lambda (s) (display "Reached the end of the file!\n")))
-      (expect-char-proc display))
-   (expect-strings
-     ("^nobody"  (display "Got a nobody user\n"))))
address@hidden smalllisp
address@hidden defun
-
address@hidden expect clause @dots{}
address@hidden is used in the same way as @code{expect-strings},
-but tests are specified not as patterns, but as procedures.  The
-procedures are called in turn after each character is read from the
-port, with the value of the accumulated string as the argument.  The
-test is successful if the procedure returns a non-false value.
-
-If the @code{=>} syntax is used, then if the test succeeds it must return
-a list containing the arguments to be provided to the corresponding
-expression.
-
-In the following example, a string will only be matched at the beginning
-of the file:
address@hidden
-(let ((expect-port (open-input-file "/etc/passwd")))
-  (expect
-     ((lambda (s) (string=? s "fnord!"))
-        (display "Got a nobody user!\n"))))
address@hidden smalllisp
-
-The control variables described for @code{expect-strings} can also
-be used with @code{expect}.
address@hidden defun
diff --git a/doc/sources/unix.texi b/doc/sources/unix.texi
deleted file mode 100644
index b8bf2cd..0000000
--- a/doc/sources/unix.texi
+++ /dev/null
@@ -1,622 +0,0 @@
address@hidden Low level Unix
address@hidden Low level Unix interfaces
-
-The low level Unix interfaces are currently available by
-default in the Guile top level.  However in the future they will probably
-be placed in a module and @code{use-modules} or something similar will
-be required to make them available.
-
address@hidden
-* Unix conventions::            Conventions followed by the low level Unix
-                                interfaces.
-* Ports and descriptors::       Ports, file descriptors and how they
-                                interact.
-* Extended I/O::                Reading and writing to ports.
-* File system::                 Working in a hierarchical file system.
-* User database::               Information about users from system databases.
-* Processes::                   Information and control of Unix processes.
-* Terminals::                   Terminals and pseudo-terminals.
-* Network databases::           Network address conversion and information
-                                from system databases.
-* Network sockets::             An interface to the BSD socket library.
-* Miscellaneous Unix::          Miscellaneous Unix interfaces.
address@hidden menu
-
address@hidden Unix conventions
address@hidden Low level Unix conventions
-
-The low-level interfaces are designed to give Scheme programs
-access to as much functionality as possible from the underlying
-Unix system.  They can be used to implement higher level
-interfaces such as the Scheme shell @ref{scsh}.
-
-Generally there is a single procedure for each corresponding Unix
-facility.  However some of the procedures are implemented for
-speed and convenience in Scheme and have no Unix equivalent
-(e.g., @code{read-delimited}, @code{copy-file}.)
-
-This interface is intended as far as possible to be portable across
-different versions of Unix, so that Scheme programmers don't need to be
-concerned with implementation differences.  In some cases procedures
-which can't be implemented (or reimplemented) on particular systems may
-become no-ops, or perform limited actions.  In other cases they may
-throw errors.  It should be possible to use the feature system to
-determine what functionality is available.
-
-General naming conventions are as follows:
-
address@hidden @bullet
address@hidden
-The Scheme name is often identical to the name of the underlying Unix
-facility.
address@hidden
-Underscores in Unix names are converted to hyphens.
address@hidden
-Procedures which destructively modify Scheme data gain appended
-exclamation marks, e.g., @code{recv!}.
address@hidden
-Predicates have question marks appended, e.g., @code{access?}.
address@hidden
-Some names are changed to avoid conflict with dissimilar interfaces
-defined by scsh.
address@hidden
-Unix preprocessor names such as @code{EPERM} or @code{R_OK} are converted
-to Scheme variables of the same name (underscores are not replaced
-with hyphens)
address@hidden itemize
-
-Most of the Unix interface procedures can be relied on to return a
-well-specified value.  Unexpected conditions are handled by raising
-exceptions.
-
-There are a few procedures which return a special
-value if they don't succeed, e.g., @code{getenv} returns @code{#f}
-if it the requested string is not found in the environment.  These
-cases will be noted in the documentation.
-
-For ways to deal with exceptions, @ref{Exceptions}.
-
-Errors which the C-library would report by returning a NULL
-pointer or through some other means cause a @code{system-error} exception
-to be raised.  The value of the Unix @code{errno} variable is available
-in the data passed by the exception, so there is no need to access the
-global errno value (doing so would be unreliable in the presence of
-continuations or multiple threads).
-
address@hidden procedure errno [n]
address@hidden deffn
address@hidden procedure perror string
address@hidden deffn
-
address@hidden Ports and descriptors
address@hidden Ports and file descriptors
-
address@hidden procedure move->fdes port fd
address@hidden deffn
address@hidden procedure release-port-handle port
address@hidden deffn
address@hidden procedure set-port-revealed! @var{port} count
address@hidden deffn
address@hidden procedure fdes->ports fdes
address@hidden deffn
address@hidden procedure fileno port
address@hidden deffn
address@hidden procedure fdopen fdes modes
address@hidden deffn
address@hidden procedure duplicate-port port modes
address@hidden deffn
address@hidden procedure redirect-port into-port from-port
address@hidden deffn
address@hidden procedure freopen filename modes port
address@hidden deffn
-
address@hidden Extended I/O
address@hidden Extended I/O
-
-Extended I/O procedures are available which read or write lines of text,
-read text delimited by a specified set of characters, or report or
-set the current position of a port.
-
address@hidden fwrite
address@hidden fread
-Interfaces to @code{read}/@code{fread} and @code{write}/@code{fwrite} are
-also available, as @code{uniform-array-read!} and @code{uniform-array-write!},
address@hidden arrays}.
-
address@hidden procedure read-line [port] [handle-delim]
-Return a line of text from @var{port} if specified, otherwise from the
-value returned by @code{(current-input-port)}.  Under Unix, a line of text
-is terminated by the first end-of-line character or by end-of-file.
-
-If @var{handle-delim} is specified, it should be one of the following
-symbols:
address@hidden @code
address@hidden trim
-Discard the terminating delimiter.  This is the default, but it will
-be impossible to tell whether the read terminated with a delimiter or
-end-of-file.
address@hidden concat
-Append the terminating delimiter (if any) to the returned string.
address@hidden peek
-Push the terminating delimiter (if any) back on to the port.
address@hidden split
-Return a pair containing the string read from the port and the 
-terminating delimiter or end-of-file object.
-
-NOTE: if the scsh module is loaded then
-multiple values are returned instead of a pair.
address@hidden table
address@hidden deffn
address@hidden procedure read-line! buf [port]
-Read a line of text into the supplied string @var{buf} and return the
-number of characters added to @var{buf}.  If @var{buf} is filled, then
address@hidden is returned.
-Read from @var{port} if
-specified, otherwise from the value returned by @code{(current-input-port)}.
address@hidden deffn
address@hidden procedure read-delimited delims [port] [handle-delim]
-Read text until one of the characters in the string @var{delims} is found
-or end-of-file is reached.  Read from @var{port} if supplied, otherwise
-from the value returned by @code{(current-input-port)}.
address@hidden takes the same values as described for @code{read-line}.
-
-NOTE: if the scsh module is loaded then @var{delims} must be an scsh
-char-set, not a string.
address@hidden deffn
address@hidden procedure read-delimited! delims buf [port] [handle-delim] 
[start] [end]
-Read text into the supplied string @var{buf} and return the number of
-characters added to @var{buf} (subject to @var{handle-delim}, which takes
-the same values specified for @code{read-line}.  If @var{buf} is filled,
address@hidden is returned for both the number of characters read and the
-delimiter.  Also terminates if one of the characters in the string
address@hidden is found
-or end-of-file is reached.  Read from @var{port} if supplied, otherwise
-from the value returned by @code{(current-input-port)}.
-
-NOTE: if the scsh module is loaded then @var{delims} must be an scsh
-char-set, not a string.
address@hidden deffn
address@hidden procedure write-line obj [port]
-Display @var{obj} and a new-line character to @var{port} if specified,
-otherwise to the
-value returned by @code{(current-output-port)}; equivalent to:
-
address@hidden
-(display obj [port])
-(newline [port])
address@hidden smalllisp
address@hidden deffn
address@hidden procedure ftell port
-Returns an integer representing the current position of @var{port},
-measured from the beginning.
address@hidden deffn
address@hidden procedure fseek port offset whence
-Sets the current position of @var{port} to the integer @var{offset},
-which is interpreted according to the value of @var{whence}.
-
-One of the following variables should be supplied
-for @var{whence}:
address@hidden SEEK_SET
-Seek from the beginning of the file.
address@hidden defvar
address@hidden SEEK_CUR
-Seek from the current position.
address@hidden defvar
address@hidden SEEK_END
-Seek from the end of the file.
address@hidden defvar
address@hidden deffn
-
address@hidden File system
address@hidden File system
-
-These procedures query and set file system attributes (such as owner,
-permissions, sizes and types of files); deleting, copying, renaming and
-linking files; creating and removing directories and querying their
-contents; and the @code{sync} interface.
-
address@hidden procedure access? path how
-Evaluates to @code{#t} if @var{path} corresponds to an existing
-file and the current process
-has the type of access specified by @var{how}, otherwise 
address@hidden
address@hidden should be specified
-using the values of the variables listed below.  Multiple values can
-be combined using a bitwise or, in which case @code{#t} will only
-be returned if all accesses are granted.
-
-Permissions are checked using the real id of the current process,
-not the effective id, although it's the effective id which determines
-whether the access would actually be granted.
-
address@hidden R_OK
-test for read permission.
address@hidden defvar
address@hidden W_OK
-test for write permission.
address@hidden defvar
address@hidden X_OK
-test for execute permission.
address@hidden defvar
address@hidden F_OK
-test for existence of the file.
address@hidden defvar
address@hidden deffn
address@hidden fstat
address@hidden procedure stat obj
-Evaluates to an object containing various information
-about the file determined by @var{obj}.
address@hidden can be a string containing a file name or a port or file
-descriptor which is open on a file (in which case @code{fstat} is used
-as the underlying system call).
-
-The object returned by @code{stat} can be passed as a single parameter
-to the following procedures, all of which return integers:
-
address@hidden @r
address@hidden stat:dev
-The device containing the file.
address@hidden stat:ino
-The file serial number, which distinguishes this file from all other
-files on the same device.
address@hidden stat:mode
-The mode of the file.  This includes file type information
-and the file permission bits.  See @code{stat:type} and @code{stat:perms}
-below.
address@hidden stat:nlink
-The number of hard links to the file.
address@hidden stat:uid
-The user ID of the file's owner.
address@hidden stat:gid
-The group ID of the file.
address@hidden stat:rdev
-Device ID; this entry is defined only for character or block
-special files.
address@hidden stat:size
-The size of a regular file in bytes.
address@hidden stat:atime
-The last access time for the file.
address@hidden stat:mtime
-The last modification time for the file.
address@hidden stat:ctime
-The last modification time for the attributes of the file.
address@hidden stat:blksize
-The optimal block size for reading or writing the file, in bytes.
address@hidden stat:blocks
-The amount of disk space that the file occupies measured in units of
-512 byte blocks.
address@hidden table
-
-In addition, the following procedures return the information
-from stat:mode in a more convenient form:
-
address@hidden @r
address@hidden stat:type
-A symbol representing the type of file.  Possible values are
-currently: regular, directory, symlink, block-special, char-special,
-fifo, socket, unknown
address@hidden stat:perms
-An integer representing the access permission bits.
address@hidden table
address@hidden deffn
address@hidden procedure lstat path
-Similar to @code{stat}, but does not follow symbolic links, i.e.,
-it will return information about a symbolic link itself, not the 
-file it points to.  @var{path} must be a string.
address@hidden deffn
address@hidden procedure readlink path
address@hidden deffn
address@hidden procedure chown path owner group
address@hidden deffn
address@hidden procedure chmod port-or-path mode
address@hidden deffn
address@hidden procedure utime path [actime] [modtime]
address@hidden deffn
address@hidden procedure delete-file path
address@hidden deffn
address@hidden procedure copy-file path-from path-to
address@hidden deffn
address@hidden procedure rename-file path-from path-to
address@hidden deffn
address@hidden procedure link path-from path-to
address@hidden deffn
address@hidden procedure symlink path-from path-to
address@hidden deffn
address@hidden procedure mkdir path [mode]
address@hidden deffn
address@hidden procedure rmdir path
address@hidden deffn
address@hidden procedure opendir path
address@hidden deffn
address@hidden procedure readdir port
address@hidden deffn
address@hidden procedure rewinddir port
address@hidden deffn
address@hidden procedure closedir port
address@hidden deffn
address@hidden procedure sync
address@hidden deffn
-
address@hidden User database
address@hidden User database
-
address@hidden procedure getpwuid uid
address@hidden deffn
address@hidden procedure getpwnam name
address@hidden deffn
address@hidden procedure getpwent
address@hidden deffn
address@hidden procedure setpwent port
address@hidden deffn
address@hidden procedure endpwent
address@hidden deffn
address@hidden procedure getgrgid uid
address@hidden deffn
address@hidden procedure getgrnam name
address@hidden deffn
address@hidden procedure getgrent
address@hidden deffn
address@hidden procedure setgrent port
address@hidden deffn
address@hidden procedure endgrent
address@hidden deffn
-
address@hidden Processes
address@hidden Processes
-
address@hidden procedure chdir path
address@hidden deffn
address@hidden procedure getcwd
address@hidden deffn
address@hidden procedure umask [mode]
address@hidden deffn
address@hidden procedure getpid
address@hidden deffn
address@hidden procedure getgroups
address@hidden deffn
address@hidden procedure kill pid sig
-
address@hidden should be specified using a variable corresponding to
-the Unix symbolic name, e.g,
address@hidden SIGHUP
-Hang-up signal.
address@hidden defvar
address@hidden SIGINT
-Interrupt signal.
address@hidden defvar
address@hidden deffn
address@hidden procedure waitpid pid options
address@hidden WAIT_ANY
address@hidden defvar
address@hidden WAIT_MYPGRP
address@hidden defvar
address@hidden WNOHANG
address@hidden defvar
address@hidden WUNTRACED
address@hidden defvar
address@hidden deffn
address@hidden procedure getppid
address@hidden deffn
address@hidden procedure getuid
address@hidden deffn
address@hidden procedure getgid
address@hidden deffn
address@hidden procedure geteuid
address@hidden deffn
address@hidden procedure getegid
address@hidden deffn
address@hidden procedure setuid id
address@hidden deffn
address@hidden procedure setgid id
address@hidden deffn
address@hidden procedure seteuid id
address@hidden deffn
address@hidden procedure setegid id
address@hidden deffn
address@hidden procedure getpgrp
address@hidden deffn
address@hidden procedure setpgid pid pgid
address@hidden deffn
address@hidden procedure setsid
address@hidden deffn
address@hidden procedure execl arg ...
address@hidden deffn
address@hidden procedure execlp arg ...
address@hidden deffn
address@hidden procedure primitive-fork
address@hidden deffn
address@hidden procedure environ [env]
address@hidden deffn
address@hidden procedure putenv string
address@hidden deffn
address@hidden procedure nice incr
address@hidden deffn
-
address@hidden Terminals
address@hidden Terminals and pseudo-terminals
-
address@hidden procedure isatty? port
address@hidden deffn
address@hidden procedure ttyname port
address@hidden deffn
address@hidden procedure ctermid
address@hidden deffn
address@hidden procedure tcgetpgrp port
address@hidden deffn
address@hidden procedure tcsetpgrp port pgid
address@hidden deffn
-
address@hidden Network databases
address@hidden Network address conversion and system databases
-
address@hidden procedure inet-aton address
address@hidden deffn
address@hidden procedure inet-ntoa number
address@hidden deffn
address@hidden procedure inet-netof address
address@hidden deffn
address@hidden procedure inet-lnaof address
address@hidden deffn
address@hidden procedure inet-makeaddr net lna
address@hidden deffn
address@hidden procedure gethostbyname name
address@hidden deffn
address@hidden procedure gethostbyaddr address
address@hidden deffn
address@hidden procedure gethostent
address@hidden deffn
address@hidden procedure sethostent port
address@hidden deffn
address@hidden procedure endhostent
address@hidden deffn
address@hidden procedure getnetbyname name
address@hidden deffn
address@hidden procedure getnetbyaddr address
address@hidden deffn
address@hidden procedure getnetent
address@hidden deffn
address@hidden procedure setnetent port
address@hidden deffn
address@hidden procedure endnetent
address@hidden deffn
address@hidden procedure getprotobyname name
address@hidden deffn
address@hidden procedure getprotobynumber number
address@hidden deffn
address@hidden procedure getprotoent
address@hidden deffn
address@hidden procedure setprotoent port
address@hidden deffn
address@hidden procedure endprotoent
address@hidden deffn
address@hidden procedure getservbyname name protocol
address@hidden deffn
address@hidden procedure getservbyport port protocol
address@hidden deffn
address@hidden procedure getservent
address@hidden deffn
address@hidden procedure setservent port
address@hidden deffn
address@hidden procedure endservent
address@hidden deffn
-
address@hidden Network sockets
address@hidden BSD socket library interface
-
address@hidden procedure socket family style protocol
address@hidden deffn
address@hidden procedure socketpair family style protocol
address@hidden deffn
address@hidden procedure getsockopt socket level optname
address@hidden deffn
address@hidden procedure setsockopt socket level optname value
address@hidden deffn
address@hidden procedure shutdown socket how
address@hidden deffn
address@hidden procedure connect socket family address arg ...
address@hidden deffn
address@hidden procedure bind socket family address arg ...
address@hidden deffn
address@hidden procedure listen socket backlog
address@hidden deffn
address@hidden procedure accept socket
address@hidden deffn
address@hidden procedure getsockname socket
address@hidden deffn
address@hidden procedure getpeername socket
address@hidden deffn
address@hidden procedure recv! socket buf [flags]
address@hidden deffn
address@hidden procedure send socket message [flags]
address@hidden deffn
address@hidden procedure recvfrom! socket buf [flags] [start] [end]
address@hidden deffn
address@hidden procedure sendto socket message family address args ... [flags]
address@hidden deffn
-
address@hidden Miscellaneous Unix
address@hidden Miscellaneous Unix interfaces
-
-Things which haven't been classified elsewhere (yet?).
-
address@hidden procedure open path flags [mode]
address@hidden O_RDONLY
address@hidden defvar
address@hidden O_WRONLY
address@hidden defvar
address@hidden O_RDWR
address@hidden defvar
address@hidden O_CREAT
address@hidden defvar
address@hidden O_EXCL
address@hidden defvar
address@hidden O_NOCTTY
address@hidden defvar
address@hidden O_TRUNC
address@hidden defvar
address@hidden O_APPEND
address@hidden defvar
address@hidden O_NONBLOCK
address@hidden defvar
address@hidden O_NDELAY
address@hidden defvar
address@hidden O_SYNC
address@hidden defvar
address@hidden deffn
address@hidden procedure select reads writes excepts secs msecs
address@hidden deffn
address@hidden procedure uname
address@hidden deffn
address@hidden procedure pipe
address@hidden deffn
address@hidden procedure open-pipe command modes
address@hidden deffn
address@hidden procedure open-input-pipe command
address@hidden deffn
address@hidden procedure open-output-pipe command
address@hidden deffn
address@hidden procedure setlocale category [locale]
address@hidden LC_COLLATE
address@hidden defvar
address@hidden LC_CTYPE
address@hidden defvar
address@hidden LC_MONETARY
address@hidden defvar
address@hidden LC_NUMERIC
address@hidden defvar
address@hidden LC_TIME
address@hidden defvar
address@hidden LC_MESSAGES
address@hidden defvar
address@hidden LC_ALL
address@hidden defvar
address@hidden deffn
address@hidden procedure strftime format stime
address@hidden deffn
address@hidden procedure strptime format string
address@hidden deffn
address@hidden procedure mknod
address@hidden deffn
-
address@hidden scsh
address@hidden The Scheme shell (scsh) 
-
-Guile includes an incomplete port of the Scheme shell (scsh) 0.4.4.
-
-For information about scsh on the Web see
address@hidden://www-swiss.ai.mit.edu/scsh/scsh.html}.
-The original scsh is available by ftp from
address@hidden://swiss-ftp.ai.mit.edu:/pub/su}.
-
-This port of scsh does not currently use the Guile module system, but
-can be initialized using:
address@hidden
-(load-from-path "scsh/init")
address@hidden smalllisp
-
-Note that SLIB must be installed before scsh can be initialized, see
address@hidden for details.
-
address@hidden Threads
address@hidden Programming Threads.
-
diff --git a/libguile/alist.c b/libguile/alist.c
index fd2ccde..f33aa41 100644
--- a/libguile/alist.c
+++ b/libguile/alist.c
@@ -257,9 +257,9 @@ SCM_DEFINE (scm_assq_set_x, "assq-set!", 3, 0, 0,
             (SCM alist, SCM key, SCM val),
            "@deffnx {Scheme Procedure} assv-set! alist key value\n"
            "@deffnx {Scheme Procedure} assoc-set! alist key value\n"
-           "Reassociate @var{key} in @var{alist} with @var{value}: find any 
existing\n"
+           "Reassociate @var{key} in @var{alist} with @var{val}: find any 
existing\n"
            "@var{alist} entry for @var{key} and associate it with the new\n"
-           "@var{value}.  If @var{alist} does not contain an entry for 
@var{key},\n"
+           "@var{val}.  If @var{alist} does not contain an entry for 
@var{key},\n"
            "add a new one.  Return the (possibly new) alist.\n\n"
            "These functions do not attempt to verify the structure of 
@var{alist},\n"
            "and so may cause unusual results if passed an object that is not 
an\n"
diff --git a/libguile/array-map.c b/libguile/array-map.c
index ef6f80d..d4da152 100644
--- a/libguile/array-map.c
+++ b/libguile/array-map.c
@@ -320,8 +320,8 @@ scm_ramapc (void *cproc_ptr, SCM data, SCM ra0, SCM lra, 
const char *what)
 
 SCM_DEFINE (scm_array_fill_x, "array-fill!", 2, 0, 0,
            (SCM ra, SCM fill),
-           "Store @var{fill} in every element of @var{array}.  The value 
returned\n"
-           "is unspecified.")
+           "Store @var{fill} in every element of array @var{ra}.  The value\n"
+           "returned is unspecified.")
 #define FUNC_NAME s_scm_array_fill_x
 {
   scm_ramapc (scm_array_fill_int, fill, ra, SCM_EOL, FUNC_NAME);
@@ -374,9 +374,9 @@ SCM_REGISTER_PROC(s_array_copy_in_order_x, 
"array-copy-in-order!", 2, 0, 0, scm_
 SCM_DEFINE (scm_array_copy_x, "array-copy!", 2, 0, 0,
            (SCM src, SCM dst),
            "@deffnx {Scheme Procedure} array-copy-in-order! src dst\n"
-           "Copy every element from vector or array @var{source} to the\n"
-           "corresponding element of @var{destination}.  @var{destination} 
must have\n"
-           "the same rank as @var{source}, and be at least as large in each\n"
+           "Copy every element from vector or array @var{src} to the\n"
+           "corresponding element of @var{dst}.  @var{dst} must have the\n"
+           "same rank as @var{src}, and be at least as large in each\n"
            "dimension.  The order is unspecified.")
 #define FUNC_NAME s_scm_array_copy_x
 {
@@ -670,12 +670,13 @@ SCM_SYMBOL (sym_b, "b");
 SCM_DEFINE (scm_array_map_x, "array-map!", 2, 0, 1,
            (SCM ra0, SCM proc, SCM lra),
            "@deffnx {Scheme Procedure} array-map-in-order! ra0 proc . lra\n"
-           "@var{array1}, @dots{} must have the same number of dimensions as\n"
-           "@var{array0} and have a range for each index which includes the 
range\n"
-           "for the corresponding index in @var{array0}.  @var{proc} is 
applied to\n"
-           "each tuple of elements of @var{array1} @dots{} and the result is 
stored\n"
-           "as the corresponding element in @var{array0}.  The value returned 
is\n"
-           "unspecified.  The order of application is unspecified.")
+           "@var{array1}, @dots{} must have the same number of dimensions\n"
+           "as @var{ra0} and have a range for each index which includes the\n"
+           "range for the corresponding index in @var{ra0}.  @var{proc} is\n"
+           "applied to each tuple of elements of @var{array1}, @dots{} and\n"
+           "the result is stored as the corresponding element in @var{ra0}.\n"
+           "The value returned is unspecified.  The order of application is\n"
+           "unspecified.")
 #define FUNC_NAME s_scm_array_map_x
 {
   SCM_VALIDATE_PROC (2, proc);
@@ -722,7 +723,7 @@ rafe (SCM ra0, SCM proc, SCM ras)
 
 SCM_DEFINE (scm_array_for_each, "array-for-each", 2, 0, 1,
            (SCM proc, SCM ra0, SCM lra),
-           "Apply @var{proc} to each tuple of elements of @var{array0} 
@dots{}\n"
+           "Apply @var{proc} to each tuple of elements of @var{ra0} @dots{}\n"
            "in row-major order.  The value returned is unspecified.")
 #define FUNC_NAME s_scm_array_for_each
 {
@@ -735,7 +736,7 @@ SCM_DEFINE (scm_array_for_each, "array-for-each", 2, 0, 1,
 
 SCM_DEFINE (scm_array_index_map_x, "array-index-map!", 2, 0, 0,
            (SCM ra, SCM proc),
-           "Apply @var{proc} to the indices of each element of @var{array} 
in\n"
+           "Apply @var{proc} to the indices of each element of @var{ra} in\n"
            "turn, storing the result in the corresponding element.  The 
value\n"
            "returned and the order of application are unspecified.\n\n"
            "One can implement @var{array-indexes} as\n"
diff --git a/libguile/arrays.c b/libguile/arrays.c
index 97b5aad..a294f33 100644
--- a/libguile/arrays.c
+++ b/libguile/arrays.c
@@ -326,11 +326,12 @@ scm_i_ra_set_contp (SCM ra)
 
 SCM_DEFINE (scm_make_shared_array, "make-shared-array", 2, 0, 1,
            (SCM oldra, SCM mapfunc, SCM dims),
-           "@code{make-shared-array} can be used to create shared subarrays of 
other\n"
-           "arrays.  The @var{mapper} is a function that translates 
coordinates in\n"
-           "the new array into coordinates in the old array.  A @var{mapper} 
must be\n"
-           "linear, and its range must stay within the bounds of the old 
array, but\n"
-           "it can be otherwise arbitrary.  A simple example:\n"
+           "@code{make-shared-array} can be used to create shared subarrays\n"
+           "of other arrays.  The @var{mapfunc} is a function that\n"
+           "translates coordinates in the new array into coordinates in the\n"
+           "old array.  A @var{mapfunc} must be linear, and its range must\n"
+           "stay within the bounds of the old array, but it can be\n"
+           "otherwise arbitrary.  A simple example:\n"
            "@lisp\n"
            "(define fred (make-array #f 8 8))\n"
            "(define freds-diagonal\n"
@@ -444,18 +445,18 @@ SCM_DEFINE (scm_make_shared_array, "make-shared-array", 
2, 0, 1,
 /* args are RA . DIMS */
 SCM_DEFINE (scm_transpose_array, "transpose-array", 1, 0, 1, 
            (SCM ra, SCM args),
-           "Return an array sharing contents with @var{array}, but with\n"
+           "Return an array sharing contents with @var{ra}, but with\n"
            "dimensions arranged in a different order.  There must be one\n"
-           "@var{dim} argument for each dimension of @var{array}.\n"
+           "@var{dim} argument for each dimension of @var{ra}.\n"
            "@var{dim0}, @var{dim1}, @dots{} should be integers between 0\n"
            "and the rank of the array to be returned.  Each integer in that\n"
            "range must appear at least once in the argument list.\n"
            "\n"
            "The values of @var{dim0}, @var{dim1}, @dots{} correspond to\n"
            "dimensions in the array to be returned, their positions in the\n"
-           "argument list to dimensions of @var{array}.  Several @var{dim}s\n"
+           "argument list to dimensions of @var{ra}.  Several @var{dim}s\n"
            "may have the same value, in which case the returned array will\n"
-           "have smaller rank than @var{array}.\n"
+           "have smaller rank than @var{ra}.\n"
            "\n"
            "@lisp\n"
            "(transpose-array '#2((a b) (c d)) 1 0) @result{} #2((a c) (b d))\n"
@@ -546,15 +547,15 @@ SCM_DEFINE (scm_transpose_array, "transpose-array", 1, 0, 
1,
                     wouldn't have contiguous elements.  */
 SCM_DEFINE (scm_array_contents, "array-contents", 1, 1, 0,
            (SCM ra, SCM strict),
-           "If @var{array} may be @dfn{unrolled} into a one dimensional shared 
array\n"
-           "without changing their order (last subscript changing fastest), 
then\n"
-           "@code{array-contents} returns that shared array, otherwise it 
returns\n"
-           "@code{#f}.  All arrays made by @var{make-array} and\n"
-           "@var{make-uniform-array} may be unrolled, some arrays made by\n"
-           "@var{make-shared-array} may not be.\n\n"
-           "If the optional argument @var{strict} is provided, a shared array 
will\n"
-           "be returned only if its elements are stored internally contiguous 
in\n"
-           "memory.")
+           "If @var{ra} may be @dfn{unrolled} into a one dimensional shared\n"
+           "array without changing their order (last subscript changing\n"
+           "fastest), then @code{array-contents} returns that shared array,\n"
+           "otherwise it returns @code{#f}.  All arrays made by\n"
+           "@code{make-array} and @code{make-uniform-array} may be unrolled,\n"
+           "some arrays made by @code{make-shared-array} may not be.  If\n"
+           "the optional argument @var{strict} is provided, a shared array\n"
+           "will be returned only if its elements are stored internally\n"
+           "contiguous in memory.")
 #define FUNC_NAME s_scm_array_contents
 {
   SCM sra;
diff --git a/libguile/bitvectors.c b/libguile/bitvectors.c
index b0c21f5..0158490 100644
--- a/libguile/bitvectors.c
+++ b/libguile/bitvectors.c
@@ -497,7 +497,7 @@ SCM_DEFINE (scm_bit_position, "bit-position", 3, 0, 0,
            "Return the index of the first occurrence of @var{item} in bit\n"
            "vector @var{v}, starting from @var{k}.  If there is no\n"
            "@var{item} entry between @var{k} and the end of\n"
-           "@var{bitvector}, then return @code{#f}.  For example,\n"
+           "@var{v}, then return @code{#f}.  For example,\n"
            "\n"
            "@example\n"
            "(bit-position #t #*000101 0)  @result{} 3\n"
diff --git a/libguile/filesys.c b/libguile/filesys.c
index 18ad974..0211010 100644
--- a/libguile/filesys.c
+++ b/libguile/filesys.c
@@ -465,7 +465,7 @@ static int fstat_Win32 (int fdes, struct stat *buf)
 SCM_DEFINE (scm_stat, "stat", 1, 1, 0, 
             (SCM object, SCM exception_on_error),
            "Return an object containing various information about the file\n"
-           "determined by @var{obj}.  @var{obj} can be a string containing\n"
+           "determined by @var{object}.  @var{object} can be a string 
containing\n"
            "a file name or a port or integer file descriptor which is open\n"
            "on a file (in which case @code{fstat} is used as the underlying\n"
            "system call).\n"
@@ -586,7 +586,7 @@ SCM_DEFINE (scm_lstat, "lstat", 1, 0, 0,
             (SCM str),
            "Similar to @code{stat}, but does not follow symbolic links, 
i.e.,\n"
            "it will return information about a symbolic link itself, not the\n"
-           "file it points to.  @var{path} must be a string.")
+           "file it points to.  @var{str} must be a string.")
 #define FUNC_NAME s_scm_lstat
 {
   int rv;
@@ -640,7 +640,7 @@ SCM_DEFINE (scm_link, "link", 2, 0, 0,
 
 SCM_DEFINE (scm_chdir, "chdir", 1, 0, 0, 
             (SCM str),
-           "Change the current working directory to @var{path}.\n"
+           "Change the current working directory to @var{str}.\n"
            "The return value is unspecified.")
 #define FUNC_NAME s_scm_chdir
 {
@@ -942,10 +942,10 @@ SCM_DEFINE (scm_select, "select", 3, 2, 0,
 #ifdef HAVE_FCNTL
 SCM_DEFINE (scm_fcntl, "fcntl", 2, 1, 0,
             (SCM object, SCM cmd, SCM value),
-           "Apply @var{command} to the specified file descriptor or the 
underlying\n"
+           "Apply @var{cmd} to the specified file descriptor or the 
underlying\n"
            "file descriptor of the specified port.  @var{value} is an 
optional\n"
            "integer argument.\n\n"
-           "Values for @var{command} are:\n\n"
+           "Values for @var{cmd} are:\n\n"
            "@table @code\n"
            "@item F_DUPFD\n"
            "Duplicate a file descriptor\n"
@@ -993,9 +993,9 @@ SCM_DEFINE (scm_fcntl, "fcntl", 2, 1, 0,
 
 SCM_DEFINE (scm_fsync, "fsync", 1, 0, 0, 
             (SCM object),
-           "Copies any unwritten data for the specified output file descriptor 
to disk.\n"
-           "If @var{port/fd} is a port, its buffer is flushed before the 
underlying\n"
-           "file descriptor is fsync'd.\n"
+           "Copies any unwritten data for the specified output file\n"
+           "descriptor to disk.  If @var{object} is a port, its buffer is\n"
+           "flushed before the underlying file descriptor is fsync'd.\n"
            "The return value is unspecified.")
 #define FUNC_NAME s_scm_fsync
 {
@@ -1020,8 +1020,9 @@ SCM_DEFINE (scm_fsync, "fsync", 1, 0, 0,
 #ifdef HAVE_SYMLINK
 SCM_DEFINE (scm_symlink, "symlink", 2, 0, 0,
             (SCM oldpath, SCM newpath),
-           "Create a symbolic link named @var{path-to} with the value (i.e., 
pointing to)\n"
-           "@var{path-from}.  The return value is unspecified.")
+           "Create a symbolic link named @var{oldpath} with the value\n"
+           "(i.e., pointing to) @var{newpath}.  The return value is\n"
+           "unspecified.")
 #define FUNC_NAME s_scm_symlink
 {
   int val;
@@ -1079,7 +1080,7 @@ SCM_DEFINE (scm_readlink, "readlink", 1, 0, 0,
 
 SCM_DEFINE (scm_copy_file, "copy-file", 2, 0, 0,
             (SCM oldfile, SCM newfile),
-           "Copy the file specified by @var{path-from} to @var{path-to}.\n"
+           "Copy the file specified by @var{oldfile} to @var{newfile}.\n"
            "The return value is unspecified.")
 #define FUNC_NAME s_scm_copy_file
 {
@@ -1257,7 +1258,7 @@ SCM_DEFINE (scm_rename, "rename-file", 2, 0, 0,
 
 SCM_DEFINE (scm_delete_file, "delete-file", 1, 0, 0, 
            (SCM str),
-           "Deletes (or \"unlinks\") the file specified by @var{path}.")
+           "Deletes (or \"unlinks\") the file specified by @var{str}.")
 #define FUNC_NAME s_scm_delete_file
 {
   int ans;
@@ -1325,12 +1326,12 @@ SCM_DEFINE (scm_access, "access?", 2, 0, 0,
 
 SCM_DEFINE (scm_chmod, "chmod", 2, 0, 0,
             (SCM object, SCM mode),
-           "Changes the permissions of the file referred to by @var{obj}.\n"
-           "@var{obj} can be a string containing a file name or a port or 
integer file\n"
-           "descriptor which is open on a file (in which case @code{fchmod} is 
used\n"
-           "as the underlying system call).\n"
-           "@var{mode} specifies\n"
-           "the new permissions as a decimal number, e.g., @code{(chmod 
\"foo\" #o755)}.\n"
+           "Changes the permissions of the file referred to by\n"
+           "@var{object}.  @var{object} can be a string containing a file\n"
+           "name or a port or integer file descriptor which is open on a\n"
+           "file (in which case @code{fchmod} is used as the underlying\n"
+           "system call).  @var{mode} specifies the new permissions as a\n"
+           "decimal number, e.g., @code{(chmod \"foo\" #o755)}.\n"
            "The return value is unspecified.")
 #define FUNC_NAME s_scm_chmod
 {
@@ -1488,7 +1489,7 @@ SCM_DEFINE (scm_basename, "basename", 1, 1, 0,
            "Return the base name of the file name @var{filename}. The\n"
            "base name is the file name without any directory components.\n"
            "If @var{suffix} is provided, and is equal to the end of\n"
-           "@var{basename}, it is removed also.")
+           "@var{filename}, it is removed also.")
 #define FUNC_NAME s_scm_basename
 {
   int i, j, len, end;
@@ -1625,7 +1626,7 @@ scm_t_bits scm_tc16_dir;
 
 SCM_DEFINE (scm_directory_stream_p, "directory-stream?", 1, 0, 0,
            (SCM obj),
-           "Return a boolean indicating whether @var{object} is a directory\n"
+           "Return a boolean indicating whether @var{obj} is a directory\n"
            "stream as returned by @code{opendir}.")
 #define FUNC_NAME s_scm_directory_stream_p
 {
@@ -1636,7 +1637,7 @@ SCM_DEFINE (scm_directory_stream_p, "directory-stream?", 
1, 0, 0,
 
 SCM_DEFINE (scm_opendir, "opendir", 1, 0, 0,
            (SCM dirname),
-           "Open the directory specified by @var{path} and return a 
directory\n"
+           "Open the directory specified by @var{dirname} and return a 
directory\n"
            "stream.")
 #define FUNC_NAME s_scm_opendir
 {
@@ -1658,7 +1659,7 @@ SCM_DEFINE (scm_opendir, "opendir", 1, 0, 0,
 SCM_DEFINE (scm_readdir, "readdir", 1, 0, 0,
            (SCM port),
            "Return (as a string) the next directory entry from the directory 
stream\n"
-           "@var{stream}.  If there is no remaining entry to be read then 
the\n"
+           "@var{port}.  If there is no remaining entry to be read then the\n"
            "end of file object is returned.")
 #define FUNC_NAME s_scm_readdir
 {
@@ -1732,7 +1733,7 @@ SCM_DEFINE (scm_readdir, "readdir", 1, 0, 0,
 
 SCM_DEFINE (scm_rewinddir, "rewinddir", 1, 0, 0,
            (SCM port),
-           "Reset the directory port @var{stream} so that the next call to\n"
+           "Reset the directory port @var{port} so that the next call to\n"
            "@code{readdir} will return the first directory entry.")
 #define FUNC_NAME s_scm_rewinddir
 {
@@ -1749,7 +1750,7 @@ SCM_DEFINE (scm_rewinddir, "rewinddir", 1, 0, 0,
 
 SCM_DEFINE (scm_closedir, "closedir", 1, 0, 0,
            (SCM port),
-           "Close the directory stream @var{stream}.\n"
+           "Close the directory stream @var{port}.\n"
            "The return value is unspecified.")
 #define FUNC_NAME s_scm_closedir
 {
diff --git a/libguile/foreign.c b/libguile/foreign.c
index 0dc7ac6..611b08f 100644
--- a/libguile/foreign.c
+++ b/libguile/foreign.c
@@ -1141,11 +1141,11 @@ invoke_closure (ffi_cif *cif, void *ret, void **args, 
void *data)
 
 SCM_DEFINE (scm_procedure_to_pointer, "procedure->pointer", 3, 0, 0,
            (SCM return_type, SCM proc, SCM arg_types),
-           "Return a pointer to a C function of type @var{return-type}\n"
-           "taking arguments of types @var{arg-types} (a list) and\n"
+           "Return a pointer to a C function of type @var{return_type}\n"
+           "taking arguments of types @var{arg_types} (a list) and\n"
            "behaving as a proxy to procedure @var{proc}.  Thus\n"
            "@var{proc}'s arity, supported argument types, and return\n"
-           "type should match @var{return-type} and @var{arg-types}.\n")
+           "type should match @var{return_type} and @var{arg_types}.\n")
 #define FUNC_NAME s_scm_procedure_to_pointer
 {
   SCM cif_pointer, pointer;
diff --git a/libguile/generalized-arrays.c b/libguile/generalized-arrays.c
index a04b5fa..3a0ce25 100644
--- a/libguile/generalized-arrays.c
+++ b/libguile/generalized-arrays.c
@@ -198,7 +198,7 @@ SCM_DEFINE (scm_array_in_bounds_p, "array-in-bounds?", 1, 
0, 1,
 SCM_DEFINE (scm_array_ref, "array-ref", 1, 0, 1,
            (SCM v, SCM args),
            "Return the element at the @code{(index1, index2)} element in\n"
-           "@var{array}.")
+           "array @var{v}.")
 #define FUNC_NAME s_scm_array_ref
 {
   scm_t_array_handle handle;
@@ -214,8 +214,9 @@ SCM_DEFINE (scm_array_ref, "array-ref", 1, 0, 1,
 
 SCM_DEFINE (scm_array_set_x, "array-set!", 2, 0, 1, 
            (SCM v, SCM obj, SCM args),
-           "Set the element at the @code{(index1, index2)} element in 
@var{array} to\n"
-           "@var{new-value}.  The value returned by array-set! is 
unspecified.")
+           "Set the element at the @code{(index1, index2)} element in array\n"
+           "@var{v} to @var{obj}.  The value returned by @code{array-set!}\n"
+           "is unspecified.")
 #define FUNC_NAME s_scm_array_set_x           
 {
   scm_t_array_handle handle;
diff --git a/libguile/hashtab.c b/libguile/hashtab.c
index f337ebf..fe718b9 100644
--- a/libguile/hashtab.c
+++ b/libguile/hashtab.c
@@ -923,7 +923,7 @@ SCM_DEFINE (scm_hashq_ref, "hashq-ref", 2, 1, 0,
             (SCM table, SCM key, SCM dflt),
            "Look up @var{key} in the hash table @var{table}, and return the\n"
            "value (if any) associated with it.  If @var{key} is not found,\n"
-           "return @var{default} (or @code{#f} if no @var{default} argument\n"
+           "return @var{dflt} (or @code{#f} if no @var{dflt} argument\n"
            "is supplied).  Uses @code{eq?} for equality testing.")
 #define FUNC_NAME s_scm_hashq_ref
 {
@@ -941,7 +941,7 @@ SCM_DEFINE (scm_hashq_ref, "hashq-ref", 2, 1, 0,
 SCM_DEFINE (scm_hashq_set_x, "hashq-set!", 3, 0, 0,
             (SCM table, SCM key, SCM val),
            "Find the entry in @var{table} associated with @var{key}, and\n"
-           "store @var{value} there. Uses @code{eq?} for equality testing.")
+           "store @var{val} there. Uses @code{eq?} for equality testing.")
 #define FUNC_NAME s_scm_hashq_set_x
 {
   return scm_hash_fn_set_x (table, key, val,
@@ -1010,7 +1010,7 @@ SCM_DEFINE (scm_hashv_ref, "hashv-ref", 2, 1, 0,
             (SCM table, SCM key, SCM dflt),
            "Look up @var{key} in the hash table @var{table}, and return the\n"
            "value (if any) associated with it.  If @var{key} is not found,\n"
-           "return @var{default} (or @code{#f} if no @var{default} argument\n"
+           "return @var{dflt} (or @code{#f} if no @var{dflt} argument\n"
            "is supplied).  Uses @code{eqv?} for equality testing.")
 #define FUNC_NAME s_scm_hashv_ref
 {
@@ -1095,7 +1095,7 @@ SCM_DEFINE (scm_hash_ref, "hash-ref", 2, 1, 0,
             (SCM table, SCM key, SCM dflt),
            "Look up @var{key} in the hash table @var{table}, and return the\n"
            "value (if any) associated with it.  If @var{key} is not found,\n"
-           "return @var{default} (or @code{#f} if no @var{default} argument\n"
+           "return @var{dflt} (or @code{#f} if no @var{dflt} argument\n"
            "is supplied).  Uses @code{equal?} for equality testing.")
 #define FUNC_NAME s_scm_hash_ref
 {
@@ -1113,7 +1113,7 @@ SCM_DEFINE (scm_hash_ref, "hash-ref", 2, 1, 0,
 SCM_DEFINE (scm_hash_set_x, "hash-set!", 3, 0, 0,
             (SCM table, SCM key, SCM val),
            "Find the entry in @var{table} associated with @var{key}, and\n"
-           "store @var{value} there. Uses @code{equal?} for equality\n"
+           "store @var{val} there. Uses @code{equal?} for equality\n"
            "testing.")
 #define FUNC_NAME s_scm_hash_set_x
 {
diff --git a/libguile/ioext.c b/libguile/ioext.c
index 6b0c9b8..089ef1a 100644
--- a/libguile/ioext.c
+++ b/libguile/ioext.c
@@ -49,7 +49,7 @@
 SCM_DEFINE (scm_ftell, "ftell", 1, 0, 0, 
             (SCM fd_port),
            "Return an integer representing the current position of\n"
-           "@var{fd/port}, measured from the beginning.  Equivalent to:\n"
+           "@var{fd_port}, measured from the beginning.  Equivalent to:\n"
            "\n"
            "@lisp\n"
            "(seek port 0 SEEK_CUR)\n"
@@ -63,8 +63,8 @@ SCM_DEFINE (scm_ftell, "ftell", 1, 0, 0,
 SCM_DEFINE (scm_redirect_port, "redirect-port", 2, 0, 0,
             (SCM old, SCM new),
            "This procedure takes two ports and duplicates the underlying 
file\n"
-           "descriptor from @var{old-port} into @var{new-port}.  The\n"
-           "current file descriptor in @var{new-port} will be closed.\n"
+           "descriptor from @var{old} into @var{new}.  The\n"
+           "current file descriptor in @var{new} will be closed.\n"
            "After the redirection the two ports will share a file position\n"
            "and file status flags.\n\n"
            "The return value is unspecified.\n\n"
@@ -236,7 +236,7 @@ SCM_DEFINE (scm_fdopen, "fdopen", 2, 0, 0,
 SCM_DEFINE (scm_primitive_move_to_fdes, "primitive-move->fdes", 2, 0, 0,
             (SCM port, SCM fd),
            "Moves the underlying file descriptor for @var{port} to the 
integer\n"
-           "value @var{fdes} without changing the revealed count of 
@var{port}.\n"
+           "value @var{fd} without changing the revealed count of 
@var{port}.\n"
            "Any other ports already using this descriptor will be 
automatically\n"
            "shifted to new descriptors and their revealed counts reset to 
zero.\n"
            "The return value is @code{#f} if the file descriptor already had 
the\n"
@@ -284,7 +284,7 @@ get_matching_port (void *closure, SCM port, SCM val, SCM 
result)
 /* Return a list of ports using a given file descriptor.  */
 SCM_DEFINE (scm_fdes_to_ports, "fdes->ports", 1, 0, 0, 
            (SCM fd),
-           "Return a list of existing ports which have @var{fdes} as an\n"
+           "Return a list of existing ports which have @var{fd} as an\n"
            "underlying file descriptor, without changing their revealed\n"
            "counts.")
 #define FUNC_NAME s_scm_fdes_to_ports
diff --git a/libguile/load.c b/libguile/load.c
index 74eab19..af2ca45 100644
--- a/libguile/load.c
+++ b/libguile/load.c
@@ -571,9 +571,9 @@ SCM_DEFINE (scm_search_path, "search-path", 2, 0, 1,
            "@var{filename}. The file must be readable, and not a directory.\n"
            "If we find one, return its full filename; otherwise, return\n"
            "@code{#f}.  If @var{filename} is absolute, return it unchanged.\n"
-           "If given, @var{extensions} is a list of strings; for each\n"
+           "If given, @var{rest} is a list of extension strings; for each\n"
            "directory in @var{path}, we search for @var{filename}\n"
-           "concatenated with each @var{extension}.")
+           "concatenated with each extension.")
 #define FUNC_NAME s_scm_search_path
 {
   SCM extensions, require_exts;
diff --git a/libguile/numbers.c b/libguile/numbers.c
index 6938381..25e9533 100644
--- a/libguile/numbers.c
+++ b/libguile/numbers.c
@@ -8701,8 +8701,8 @@ scm_c_make_rectangular (double re, double im)
 
 SCM_DEFINE (scm_make_rectangular, "make-rectangular", 2, 0, 0,
             (SCM real_part, SCM imaginary_part),
-           "Return a complex number constructed of the given @var{real-part} "
-           "and @var{imaginary-part} parts.")
+           "Return a complex number constructed of the given @var{real_part} "
+           "and @var{imaginary_part} parts.")
 #define FUNC_NAME s_scm_make_rectangular
 {
   SCM_ASSERT_TYPE (scm_is_real (real_part), real_part,
diff --git a/libguile/ports.c b/libguile/ports.c
index a631100..12efce8 100644
--- a/libguile/ports.c
+++ b/libguile/ports.c
@@ -1,5 +1,5 @@
 /* Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004,
- *   2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ *   2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public License
@@ -940,9 +940,9 @@ SCM_DEFINE (scm_port_for_each, "port-for-each", 1, 0, 0,
            "Apply @var{proc} to each port in the Guile port table\n"
            "in turn.  The return value is unspecified.  More specifically,\n"
            "@var{proc} is applied exactly once to every port that exists\n"
-           "in the system at the time @var{port-for-each} is invoked.\n"
-           "Changes to the port table while @var{port-for-each} is running\n"
-           "have no effect as far as @var{port-for-each} is concerned.") 
+           "in the system at the time @code{port-for-each} is invoked.\n"
+           "Changes to the port table while @code{port-for-each} is running\n"
+           "have no effect as far as @code{port-for-each} is concerned.") 
 #define FUNC_NAME s_scm_port_for_each
 {
   SCM ports;
@@ -1861,10 +1861,11 @@ SCM_DEFINE (scm_peek_char, "peek-char", 0, 1, 0,
 
 SCM_DEFINE (scm_unread_char, "unread-char", 1, 1, 0,
             (SCM cobj, SCM port),
-           "Place @var{char} in @var{port} so that it will be read by the\n"
-           "next read operation.  If called multiple times, the unread 
characters\n"
-           "will be read again in last-in first-out order.  If @var{port} is\n"
-           "not supplied, the current input port is used.")
+           "Place character @var{cobj} in @var{port} so that it will be\n"
+           "read by the next read operation.  If called multiple times, the\n"
+           "unread characters will be read again in last-in first-out\n"
+           "order.  If @var{port} is not supplied, the current input port\n"
+           "is used.")
 #define FUNC_NAME s_scm_unread_char
 {
   int c;
@@ -1906,7 +1907,7 @@ SCM_DEFINE (scm_unread_string, "unread-string", 2, 0, 0,
 
 SCM_DEFINE (scm_seek, "seek", 3, 0, 0,
             (SCM fd_port, SCM offset, SCM whence),
-           "Sets the current position of @var{fd/port} to the integer\n"
+           "Sets the current position of @var{fd_port} to the integer\n"
            "@var{offset}, which is interpreted according to the value of\n"
            "@var{whence}.\n"
            "\n"
@@ -1921,7 +1922,7 @@ SCM_DEFINE (scm_seek, "seek", 3, 0, 0,
            "@defvar SEEK_END\n"
            "Seek from the end of the file.\n"
            "@end defvar\n"
-           "If @var{fd/port} is a file descriptor, the underlying system\n"
+           "If @var{fd_port} is a file descriptor, the underlying system\n"
            "call is @code{lseek}.  @var{port} may be a string port.\n"
            "\n"
            "The value returned is the new position in the file.  This means\n"
@@ -1995,8 +1996,9 @@ truncate (const char *file, off_t length)
 
 SCM_DEFINE (scm_truncate_file, "truncate-file", 1, 1, 0,
             (SCM object, SCM length),
-           "Truncate @var{file} to @var{length} bytes.  @var{file} can be a\n"
-           "filename string, a port object, or an integer file descriptor.\n"
+           "Truncate file @var{object} to @var{length} bytes.  @var{object}\n"
+           "can be a filename string, a port object, or an integer file\n"
+           "descriptor.\n"
            "The return value is unspecified.\n"
            "\n"
            "For a port or file descriptor @var{length} can be omitted, in\n"
diff --git a/libguile/posix.c b/libguile/posix.c
index ea406ae..154d26a 100644
--- a/libguile/posix.c
+++ b/libguile/posix.c
@@ -285,7 +285,7 @@ SCM_DEFINE (scm_getgroups, "getgroups", 0, 0, 0,
 SCM_DEFINE (scm_setgroups, "setgroups", 1, 0, 0,
             (SCM group_vec),
            "Set the current set of supplementary group IDs to the integers\n"
-           "in the given vector @var{vec}.  The return value is\n"
+           "in the given vector @var{group_vec}.  The return value is\n"
            "unspecified.\n"
            "\n"
            "Generally only the superuser can set the process group IDs.")
@@ -335,9 +335,10 @@ SCM_DEFINE (scm_setgroups, "setgroups", 1, 0, 0,
 #ifdef HAVE_GETPWENT
 SCM_DEFINE (scm_getpwuid, "getpw", 0, 1, 0,
             (SCM user),
-           "Look up an entry in the user database.  @var{obj} can be an 
integer,\n"
-           "a string, or omitted, giving the behaviour of getpwuid, getpwnam\n"
-           "or getpwent respectively.")
+           "Look up an entry in the user database.  @var{user} can be an\n"
+           "integer, a string, or omitted, giving the behaviour of\n"
+           "@code{getpwuid}, @code{getpwnam} or @code{getpwent}\n"
+           "respectively.")
 #define FUNC_NAME s_scm_getpwuid
 {
   struct passwd *entry;
@@ -404,9 +405,10 @@ SCM_DEFINE (scm_setpwent, "setpw", 0, 1, 0,
 /* Combines getgrgid and getgrnam.  */
 SCM_DEFINE (scm_getgrgid, "getgr", 0, 1, 0,
             (SCM name),
-           "Look up an entry in the group database.  @var{obj} can be an 
integer,\n"
-           "a string, or omitted, giving the behaviour of getgrgid, getgrnam\n"
-           "or getgrent respectively.")
+           "Look up an entry in the group database.  @var{name} can be an\n"
+           "integer, a string, or omitted, giving the behaviour of\n"
+           "@code{getgrgid}, @code{getgrnam} or @code{getgrent}\n"
+           "respectively.")
 #define FUNC_NAME s_scm_getgrgid
 {
   struct group *entry;
@@ -698,7 +700,7 @@ SCM_DEFINE (scm_waitpid, "waitpid", 1, 1, 0,
            "group.\n"
            "@item @var{pid} less than -1\n"
            "Request status information for any child process whose process 
group ID\n"
-           "is address@hidden"
+           "is address@hidden"
            "@end table\n\n"
            "The @var{options} argument, if supplied, should be the bitwise OR 
of the\n"
            "values of zero or more of the following variables:\n\n"
@@ -1122,10 +1124,10 @@ SCM_DEFINE (scm_tcsetpgrp, "tcsetpgrp", 2, 0, 0,
 
 SCM_DEFINE (scm_execl, "execl", 1, 0, 1, 
             (SCM filename, SCM args),
-           "Executes the file named by @var{path} as a new process image.\n"
+           "Executes the file named by @var{filename} as a new process 
image.\n"
            "The remaining arguments are supplied to the process; from a C 
program\n"
            "they are accessible as the @code{argv} argument to @code{main}.\n"
-           "Conventionally the first @var{arg} is the same as @var{path}.\n"
+           "Conventionally the first @var{arg} is the same as 
@var{filename}.\n"
            "All arguments must be strings.\n\n"
            "If @var{arg} is missing, @var{path} is executed with a null\n"
            "argument list, which may have system-dependent side-effects.\n\n"
@@ -1359,7 +1361,7 @@ SCM_DEFINE (scm_utime, "utime", 1, 5, 0,
             (SCM pathname, SCM actime, SCM modtime, SCM actimens, SCM 
modtimens,
              SCM flags),
            "@code{utime} sets the access and modification times for the\n"
-           "file named by @var{path}.  If @var{actime} or @var{modtime} is\n"
+           "file named by @var{pathname}.  If @var{actime} or @var{modtime} 
is\n"
            "not supplied, then the current time is used.  @var{actime} and\n"
            "@var{modtime} must be integer time values as returned by the\n"
            "@code{current-time} procedure.\n\n"
@@ -1461,14 +1463,14 @@ SCM_DEFINE (scm_getpid, "getpid", 0, 0, 0,
 
 SCM_DEFINE (scm_putenv, "putenv", 1, 0, 0, 
             (SCM str),
-           "Modifies the environment of the current process, which is\n"
-           "also the default environment inherited by child processes.\n\n"
-           "If @var{string} is of the form @code{NAME=VALUE} then it will be 
written\n"
-           "directly into the environment, replacing any existing environment 
string\n"
-           "with\n"
-           "name matching @code{NAME}.  If @var{string} does not contain an 
equal\n"
-           "sign, then any existing string with name matching @var{string} 
will\n"
-           "be removed.\n\n"
+           "Modifies the environment of the current process, which is also\n"
+           "the default environment inherited by child processes.  If\n"
+           "@var{str} is of the form @code{NAME=VALUE} then it will be\n"
+           "written directly into the environment, replacing any existing\n"
+           "environment string with name matching @code{NAME}.  If\n"
+           "@var{str} does not contain an equal sign, then any existing\n"
+           "string with name matching @var{str} will be removed.\n"
+           "\n"
            "The return value is unspecified.")
 #define FUNC_NAME s_scm_putenv
 {
diff --git a/libguile/print.c b/libguile/print.c
index 2eda4bb..c2dcd28 100644
--- a/libguile/print.c
+++ b/libguile/print.c
@@ -1350,7 +1350,7 @@ SCM_DEFINE (scm_simple_format, "simple-format", 2, 0, 1,
            "@var{message} can contain @code{~A} (was @code{%s}) and\n"
            "@code{~S} (was @code{%S}) escapes.  When printed,\n"
            "the escapes are replaced with corresponding members of\n"
-           "@var{ARGS}:\n"
+           "@var{args}:\n"
            "@code{~A} formats using @code{display} and @code{~S} formats\n"
            "using @code{write}.\n"
            "If @var{destination} is @code{#t}, then use the current output\n"
diff --git a/libguile/procprop.c b/libguile/procprop.c
index 428d63f..9a75254 100644
--- a/libguile/procprop.c
+++ b/libguile/procprop.c
@@ -141,7 +141,7 @@ SCM_DEFINE (scm_procedure_minimum_arity, 
"procedure-minimum-arity", 1, 0, 0,
 
 SCM_DEFINE (scm_procedure_properties, "procedure-properties", 1, 0, 0, 
            (SCM proc),
-           "Return @var{obj}'s property list.")
+           "Return @var{proc}'s property list.")
 #define FUNC_NAME s_scm_procedure_properties
 {
   SCM ret;
diff --git a/libguile/promises.c b/libguile/promises.c
index 4aff150..3bbb489 100644
--- a/libguile/promises.c
+++ b/libguile/promises.c
@@ -98,8 +98,8 @@ promise_print (SCM exp, SCM port, scm_print_state *pstate)
 
 SCM_DEFINE (scm_force, "force", 1, 0, 0, 
            (SCM promise),
-           "If the promise @var{x} has not been computed yet, compute and\n"
-           "return @var{x}, otherwise just return the previously computed\n"
+           "If @var{promise} has not been computed yet, compute and\n"
+           "return @var{promise}, otherwise just return the previously 
computed\n"
            "value.")
 #define FUNC_NAME s_scm_force
 {
diff --git a/libguile/simpos.c b/libguile/simpos.c
index 84b8b9d..5c8fe96 100644
--- a/libguile/simpos.c
+++ b/libguile/simpos.c
@@ -169,7 +169,7 @@ SCM_DEFINE (scm_system_star, "system*", 0, 0, 1,
 
 SCM_DEFINE (scm_getenv, "getenv", 1, 0, 0, 
             (SCM nam),
-           "Looks up the string @var{name} in the current environment.  The 
return\n"
+           "Looks up the string @var{nam} in the current environment.  The 
return\n"
            "value is @code{#f} unless a string of the form @code{NAME=VALUE} 
is\n"
            "found, in which case the string @code{VALUE} is returned.")
 #define FUNC_NAME s_scm_getenv
diff --git a/libguile/socket.c b/libguile/socket.c
index 7d0049b..2314377 100644
--- a/libguile/socket.c
+++ b/libguile/socket.c
@@ -519,10 +519,10 @@ SCM_DEFINE (scm_getsockopt, "getsockopt", 3, 0, 0,
            "@end defvar\n"
            "\n"
            "@defvar SO_LINGER\n"
-           "The @var{value} returned is a pair of integers\n"
-           "@code{(@var{ENABLE} . @var{TIMEOUT})}.  On old systems without\n"
+           "The value returned is a pair of integers\n"
+           "@code{(@var{enable} . @var{timeout})}.  On old systems without\n"
            "timeout support (ie.@: without @code{struct linger}), only\n"
-           "@var{ENABLE} has an effect but the value in Guile is always a\n"
+           "@var{enable} has an effect but the value in Guile is always a\n"
            "pair.\n"
            "@end defvar")
 #define FUNC_NAME s_scm_getsockopt
@@ -1632,7 +1632,7 @@ SCM_DEFINE (scm_sendto, "sendto", 3, 1, 1,
             (SCM sock, SCM message, SCM fam_or_sockaddr, SCM address, SCM 
args_and_flags),
            "Transmit bytevector @var{message} on socket port\n"
            "@var{sock}.  The\n"
-           "destination address is specified using the @var{fam},\n"
+           "destination address is specified using the 
@var{fam_or_sockaddr},\n"
            "@var{address} and\n"
            "@var{args_and_flags} arguments, or just a socket address object "
            "returned by @code{make-socket-address}, in a similar way to the\n"
diff --git a/libguile/srfi-1.c b/libguile/srfi-1.c
index ed6d3d9..54c7e2a 100644
--- a/libguile/srfi-1.c
+++ b/libguile/srfi-1.c
@@ -714,8 +714,8 @@ SCM_DEFINE (scm_srfi1_lset_difference_x, 
"lset-difference!", 2, 0, 1,
 
 SCM_DEFINE (scm_srfi1_assoc, "assoc", 2, 1, 0,
            (SCM key, SCM alist, SCM pred),
-           "Behaves like @code{assq} but uses third argument @var{pred?}\n"
-           "for key comparison.  If @var{pred?} is not supplied,\n"
+           "Behaves like @code{assq} but uses third argument @var{pred}\n"
+           "for key comparison.  If @var{pred} is not supplied,\n"
            "@code{equal?} is used.  (Extended from R5RS.)\n")
 #define FUNC_NAME s_scm_srfi1_assoc
 {
@@ -844,9 +844,9 @@ SCM_DEFINE (scm_srfi1_partition_x, "partition!", 2, 0, 0,
 
 SCM_DEFINE (scm_srfi1_remove, "remove", 2, 0, 0,
            (SCM pred, SCM list),
-           "Return a list containing all elements from @var{lst} which do\n"
+           "Return a list containing all elements from @var{list} which do\n"
            "not satisfy the predicate @var{pred}.  The elements in the\n"
-           "result list have the same order as in @var{lst}.  The order in\n"
+           "result list have the same order as in @var{list}.  The order in\n"
            "which @var{pred} is applied to the list elements is not\n"
            "specified.")
 #define FUNC_NAME s_scm_srfi1_remove
diff --git a/libguile/srfi-13.c b/libguile/srfi-13.c
index 92d4a9d..75feae3 100644
--- a/libguile/srfi-13.c
+++ b/libguile/srfi-13.c
@@ -375,7 +375,7 @@ SCM_SYMBOL (scm_sym_prefix, "prefix");
 SCM_DEFINE (scm_string_join, "string-join", 1, 2, 0,
             (SCM ls, SCM delimiter, SCM grammar),
            "Append the string in the string list @var{ls}, using the string\n"
-           "@var{delim} as a delimiter between the elements of @var{ls}.\n"
+           "@var{delimiter} as a delimiter between the elements of @var{ls}.\n"
            "@var{grammar} is a symbol which specifies how the delimiter is\n"
            "placed between the strings, and defaults to the symbol\n"
            "@code{infix}.\n"
@@ -1356,7 +1356,7 @@ SCM_DEFINE (scm_string_ci_ge, "string-ci>=", 2, 4, 0,
 
 SCM_DEFINE (scm_substring_hash, "string-hash", 1, 3, 0,
            (SCM s, SCM bound, SCM start, SCM end),
-           "Compute a hash value for @var{S}.  the optional argument "
+           "Compute a hash value for @var{s}.  the optional argument "
            "@var{bound} is a non-negative exact "
             "integer specifying the range of the hash function. "
            "A positive value restricts the return value to the "
@@ -1373,7 +1373,7 @@ SCM_DEFINE (scm_substring_hash, "string-hash", 1, 3, 0,
 
 SCM_DEFINE (scm_substring_hash_ci, "string-hash-ci", 1, 3, 0,
            (SCM s, SCM bound, SCM start, SCM end),
-           "Compute a hash value for @var{S}.  the optional argument "
+           "Compute a hash value for @var{s}.  the optional argument "
            "@var{bound} is a non-negative exact "
             "integer specifying the range of the hash function. "
            "A positive value restricts the return value to the "
diff --git a/libguile/srfi-14.c b/libguile/srfi-14.c
index e2f6668..af7c1d9 100644
--- a/libguile/srfi-14.c
+++ b/libguile/srfi-14.c
@@ -698,8 +698,8 @@ SCM_DEFINE (scm_char_set_eq, "char-set=", 0, 0, 1,
 
 SCM_DEFINE (scm_char_set_leq, "char-set<=", 0, 0, 1,
            (SCM char_sets),
-           "Return @code{#t} if every character set @var{cs}i is a subset\n"
-           "of character set @var{cs}i+1.")
+           "Return @code{#t} if every character set @var{char_set}i is a 
subset\n"
+           "of character set @var{char_set}i+1.")
 #define FUNC_NAME s_scm_char_set_leq
 {
   int argnum = 1;
@@ -732,7 +732,7 @@ SCM_DEFINE (scm_char_set_hash, "char-set-hash", 1, 1, 0,
            (SCM cs, SCM bound),
            "Compute a hash value for the character set @var{cs}.  If\n"
            "@var{bound} is given and non-zero, it restricts the\n"
-           "returned value to the range 0 @dots{} @var{bound - 1}.")
+           "returned value to the range 0 @dots{} @var{bound} - 1.")
 #define FUNC_NAME s_scm_char_set_hash
 {
   const unsigned long default_bnd = 871;
diff --git a/libguile/stacks.c b/libguile/stacks.c
index d0e82f7..9599554 100644
--- a/libguile/stacks.c
+++ b/libguile/stacks.c
@@ -225,7 +225,7 @@ SCM_DEFINE (scm_make_stack, "make-stack", 1, 0, 1,
            "@code{(@var{inner_cut_1} @var{outer_cut_1} @var{inner_cut_2}\n"
            "@var{outer_cut_2} @dots{})}.\n"
             "\n"
-           "Each @var{inner_cut_N} can be @code{#t}, an integer, a prompt\n"
+           "Each @var{inner_cut_i} can be @code{#t}, an integer, a prompt\n"
             "tag, or a procedure.  @code{#t} means to cut away all frames up\n"
             "to but excluding the first user module frame.  An integer means\n"
             "to cut away exactly that number of frames.  A prompt tag means\n"
@@ -234,14 +234,14 @@ SCM_DEFINE (scm_make_stack, "make-stack", 1, 0, 1,
             "excluding the application frame whose procedure matches the\n"
             "specified one.\n"
             "\n"
-           "Each @var{outer_cut_N} can be an integer, a prompt tag, or a\n"
+           "Each @var{outer_cut_i} can be an integer, a prompt tag, or a\n"
             "procedure.  An integer means to cut away that number of frames.\n"
             "A prompt tag means to cut away all frames that are outside a\n"
             "prompt with the given tag. A procedure means to cut away\n"
             "frames down to but excluding the application frame whose\n"
             "procedure matches the specified one.\n"
             "\n"
-           "If the @var{outer_cut_N} of the last pair is missing, it is\n"
+           "If the @var{outer_cut_i} of the last pair is missing, it is\n"
            "taken as 0.")
 #define FUNC_NAME s_scm_make_stack
 {
diff --git a/libguile/stime.c b/libguile/stime.c
index dda82e7..7fdbba9 100644
--- a/libguile/stime.c
+++ b/libguile/stime.c
@@ -551,13 +551,14 @@ bdtime2c (SCM sbd_time, struct tm *lt, int pos, const 
char *subr)
 
 SCM_DEFINE (scm_mktime, "mktime", 1, 1, 0,
             (SCM sbd_time, SCM zone),
-           "@var{bd-time} is an object representing broken down time and 
@code{zone}\n"
-           "is an optional time zone specifier (otherwise the TZ environment 
variable\n"
-           "or the system default is used).\n\n"
-           "Returns a pair: the car is a corresponding\n"
-           "integer time value like that returned\n"
-           "by @code{current-time}; the cdr is a broken down time object, 
similar to\n"
-           "as @var{bd-time} but with normalized values.")
+           "@var{sbd_time} is an object representing broken down time and\n"
+           "@code{zone} is an optional time zone specifier (otherwise the\n"
+           "TZ environment variable or the system default is used).\n"
+           "\n"
+           "Returns a pair: the car is a corresponding integer time value\n"
+           "like that returned by @code{current-time}; the cdr is a broken\n"
+           "down time object, similar to as @var{sbd_time} but with\n"
+           "normalized values.")
 #define FUNC_NAME s_scm_mktime
 {
   timet itime;
@@ -763,7 +764,7 @@ SCM_DEFINE (scm_strptime, "strptime", 2, 0, 0,
             (SCM format, SCM string),
            "Performs the reverse action to @code{strftime}, parsing\n"
            "@var{string} according to the specification supplied in\n"
-           "@var{template}.  The interpretation of month and day names is\n"
+           "@var{format}.  The interpretation of month and day names is\n"
            "dependent on the current locale.  The value returned is a pair.\n"
            "The car has an object with time components\n"
            "in the form returned by @code{localtime} or @code{gmtime},\n"
diff --git a/libguile/strings.c b/libguile/strings.c
index 8491b1e..a5960bc 100644
--- a/libguile/strings.c
+++ b/libguile/strings.c
@@ -1157,7 +1157,7 @@ SCM_DEFINE (scm_make_string, "make-string", 1, 1, 0,
            "Return a newly allocated string of\n"
             "length @var{k}.  If @var{chr} is given, then all elements of\n"
            "the string are initialized to @var{chr}, otherwise the contents\n"
-           "of the @var{string} are all set to @var{#\nul}.")
+           "of the string are all set to @code{#\nul}.")
 #define FUNC_NAME s_scm_make_string
 {
   return scm_c_make_string (scm_to_size_t (k), chr);
diff --git a/libguile/struct.c b/libguile/struct.c
index 4a2a9d7..2aa5c11 100644
--- a/libguile/struct.c
+++ b/libguile/struct.c
@@ -527,9 +527,9 @@ scm_c_make_struct (SCM vtable, size_t n_tail, size_t 
n_init, scm_t_bits init, ..
 SCM_DEFINE (scm_make_struct, "make-struct", 2, 0, 1, 
             (SCM vtable, SCM tail_array_size, SCM init),
            "Create a new structure.\n\n"
-           "@var{type} must be a vtable structure (@pxref{Vtables}).\n\n"
-           "@var{tail-elts} must be a non-negative integer.  If the layout\n"
-           "specification indicated by @var{type} includes a tail-array,\n"
+           "@var{vtable} must be a vtable structure (@pxref{Vtables}).\n\n"
+           "@var{tail_array_size} must be a non-negative integer.  If the 
layout\n"
+           "specification indicated by @var{vtable} includes a tail-array,\n"
            "this is the number of elements allocated to that array.\n\n"
            "The @var{init1}, @dots{} are optional arguments describing how\n"
            "successive fields of the structure should be initialized.  Only 
fields\n"
@@ -576,7 +576,7 @@ SCM_DEFINE (scm_make_vtable_vtable, "make-vtable-vtable", 
2, 0, 1,
            "@var{user-fields} is a string describing user defined fields of 
the\n"
            "vtable beginning at index @code{vtable-offset-user}\n"
            "(see @code{make-struct-layout}).\n\n"
-           "@var{tail-size} specifies the size of the tail-array (if any) of\n"
+           "@var{tail_array_size} specifies the size of the tail-array (if 
any) of\n"
            "this vtable.\n\n"
            "@var{init1}, @dots{} are the optional initializers for the fields 
of\n"
            "the vtable.\n\n"
@@ -738,10 +738,15 @@ scm_i_struct_equalp (SCM s1, SCM s2)
 
 SCM_DEFINE (scm_struct_ref, "struct-ref", 2, 0, 0,
             (SCM handle, SCM pos),
-           "Access the @var{n}th field of @var{struct}.\n\n"
-           "If the field is of type 'p', then it can be set to an arbitrary 
value.\n\n"
-           "If the field is of type 'u', then it can only be set to a 
non-negative\n"
-           "integer value small enough to fit in one machine word.")
+           "Access the @var{pos}th field of struct associated with\n"
+           "@var{handle}.\n"
+           "\n"
+           "If the field is of type 'p', then it can be set to an arbitrary\n"
+           "value.\n"
+           "\n"
+           "If the field is of type 'u', then it can only be set to a\n"
+           "non-negative integer value small enough to fit in one machine\n"
+           "word.")
 #define FUNC_NAME s_scm_struct_ref
 {
   SCM vtable, answer = SCM_UNDEFINED;
@@ -910,7 +915,8 @@ SCM_DEFINE (scm_struct_set_x, "struct-set!", 3, 0, 0,
 
 SCM_DEFINE (scm_struct_vtable, "struct-vtable", 1, 0, 0, 
             (SCM handle),
-           "Return the vtable structure that describes the type of 
@var{struct}.")
+           "Return the vtable structure that describes the type of struct\n"
+           "associated with @var{handle}.")
 #define FUNC_NAME s_scm_struct_vtable
 {
   SCM_VALIDATE_STRUCT (1, handle);
diff --git a/libguile/symbols.c b/libguile/symbols.c
index 59aca00..08512a6 100644
--- a/libguile/symbols.c
+++ b/libguile/symbols.c
@@ -384,7 +384,7 @@ SCM_DEFINE (scm_symbol_hash, "symbol-hash", 1, 0, 0,
 
 SCM_DEFINE (scm_symbol_fref, "symbol-fref", 1, 0, 0, 
            (SCM s),
-           "Return the contents of @var{symbol}'s @dfn{function slot}.")
+           "Return the contents of the symbol @var{s}'s @dfn{function slot}.")
 #define FUNC_NAME s_scm_symbol_fref
 {
   SCM_VALIDATE_SYMBOL (1, s);
@@ -395,7 +395,8 @@ SCM_DEFINE (scm_symbol_fref, "symbol-fref", 1, 0, 0,
 
 SCM_DEFINE (scm_symbol_pref, "symbol-pref", 1, 0, 0, 
            (SCM s),
-           "Return the @dfn{property list} currently associated with 
@var{symbol}.")
+           "Return the @dfn{property list} currently associated with the\n"
+           "symbol @var{s}.")
 #define FUNC_NAME s_scm_symbol_pref
 {
   SCM_VALIDATE_SYMBOL (1, s);
@@ -406,7 +407,7 @@ SCM_DEFINE (scm_symbol_pref, "symbol-pref", 1, 0, 0,
 
 SCM_DEFINE (scm_symbol_fset_x, "symbol-fset!", 2, 0, 0, 
            (SCM s, SCM val),
-           "Change the binding of @var{symbol}'s function slot.")
+           "Change the binding of the symbol @var{s}'s function slot.")
 #define FUNC_NAME s_scm_symbol_fset_x
 {
   SCM_VALIDATE_SYMBOL (1, s);
@@ -418,7 +419,7 @@ SCM_DEFINE (scm_symbol_fset_x, "symbol-fset!", 2, 0, 0,
 
 SCM_DEFINE (scm_symbol_pset_x, "symbol-pset!", 2, 0, 0,
            (SCM s, SCM val),
-           "Change the binding of @var{symbol}'s property slot.")
+           "Change the binding of the symbol @var{s}'s property slot.")
 #define FUNC_NAME s_scm_symbol_pset_x
 {
   SCM_VALIDATE_SYMBOL (1, s);
diff --git a/libguile/threads.c b/libguile/threads.c
index 5a13e5c..7944f48 100644
--- a/libguile/threads.c
+++ b/libguile/threads.c
@@ -1475,11 +1475,12 @@ SCM scm_lock_mutex (SCM mx)
 
 SCM_DEFINE (scm_lock_mutex_timed, "lock-mutex", 1, 2, 0,
            (SCM m, SCM timeout, SCM owner),
-"Lock @var{mutex}. If the mutex is already locked, the calling thread "
-"blocks until the mutex becomes available. The function returns when "
-"the calling thread owns the lock on @var{mutex}.  Locking a mutex that "
-"a thread already owns will succeed right away and will not block the "
-"thread.  That is, Guile's mutexes are @emph{recursive}. ")
+           "Lock mutex @var{m}. If the mutex is already locked, the calling\n"
+           "thread blocks until the mutex becomes available. The function\n"
+           "returns when the calling thread owns the lock on @var{m}.\n"
+           "Locking a mutex that a thread already owns will succeed right\n"
+           "away and will not block the thread.  That is, Guile's mutexes\n"
+           "are @emph{recursive}.")
 #define FUNC_NAME s_scm_lock_mutex_timed
 {
   SCM exception;
@@ -1769,9 +1770,9 @@ SCM_DEFINE (scm_make_condition_variable, 
"make-condition-variable", 0, 0, 0,
 
 SCM_DEFINE (scm_timed_wait_condition_variable, "wait-condition-variable", 2, 
1, 0,
            (SCM cv, SCM mx, SCM t),
-"Wait until @var{cond-var} has been signalled.  While waiting, "
-"@var{mutex} is atomically unlocked (as with @code{unlock-mutex}) and "
-"is locked again when this function returns.  When @var{time} is given, "
+"Wait until condition variable @var{cv} has been signalled.  While waiting, "
+"mutex @var{mx} is atomically unlocked (as with @code{unlock-mutex}) and "
+"is locked again when this function returns.  When @var{t} is given, "
 "it specifies a point in time where the waiting should be aborted.  It "
 "can be either a integer as returned by @code{current-time} or a pair "
 "as returned by @code{gettimeofday}.  When the waiting is aborted the "
diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm
index c8a56e0..d1bbd95 100644
--- a/module/ice-9/boot-9.scm
+++ b/module/ice-9/boot-9.scm
@@ -161,7 +161,7 @@ non-locally, that exit determines the continuation."
   (set! with-throw-handler
         (lambda (k thunk pre-unwind-handler)
           "Add @var{handler} to the dynamic context as a throw handler
-for key @var{key}, then invoke @var{thunk}."
+for key @var{k}, then invoke @var{thunk}."
           (if (not (or (symbol? k) (eqv? k #t)))
               (scm-error 'wrong-type-arg "with-throw-handler"
                          "Wrong type argument in position ~a: ~a"
diff --git a/module/ice-9/popen.scm b/module/ice-9/popen.scm
index b3def4a..b9debd4 100644
--- a/module/ice-9/popen.scm
+++ b/module/ice-9/popen.scm
@@ -136,7 +136,7 @@
   "Executes the program @var{command} with optional arguments
 @var{args} (all strings) in a subprocess.
 A port to the process (based on pipes) is created and returned.
address@hidden specifies whether an input, an output or an input-output
address@hidden specifies whether an input, an output or an input-output
 port to the process is created: it should be the value of
 @code{OPEN_READ}, @code{OPEN_WRITE} or @code{OPEN_BOTH}."
   (let* ((port/pid (apply open-process mode command args))
@@ -148,7 +148,7 @@ port to the process is created: it should be the value of
 (define (open-pipe command mode)
   "Executes the shell command @var{command} (a string) in a subprocess.
 A port to the process (based on pipes) is created and returned.
address@hidden specifies whether an input, an output or an input-output
address@hidden specifies whether an input, an output or an input-output
 port to the process is created: it should be the value of
 @code{OPEN_READ}, @code{OPEN_WRITE} or @code{OPEN_BOTH}."
   (open-pipe* mode "/bin/sh" "-c" command))
diff --git a/module/ice-9/pretty-print.scm b/module/ice-9/pretty-print.scm
index 5ea66c7..8a0c0b8 100644
--- a/module/ice-9/pretty-print.scm
+++ b/module/ice-9/pretty-print.scm
@@ -298,7 +298,7 @@ port directly after OBJ, like (pretty-print OBJ PORT)."
                           (width 79)
                           (display? #f)
                           (breadth-first? #f))
-  "Print @var{obj}, truncating the output, if necessary, to make it fit
+  "Print @var{x}, truncating the output, if necessary, to make it fit
 into @var{width} characters. By default, @var{x} will be printed using
 @code{write}, though that behavior can be overriden via the
 @var{display?} keyword argument.
diff --git a/module/ice-9/r4rs.scm b/module/ice-9/r4rs.scm
index 86b6e94..072c8c6 100644
--- a/module/ice-9/r4rs.scm
+++ b/module/ice-9/r4rs.scm
@@ -39,14 +39,14 @@
   (@call-with-values producer consumer))
 (define (dynamic-wind in thunk out)
   "All three arguments must be 0-argument procedures.
address@hidden is called, then @var{thunk}, then
address@hidden
+Guard @var{in} is called, then @var{thunk}, then
+guard @var{out}.
 
 If, any time during the execution of @var{thunk}, the
 continuation of the @code{dynamic_wind} expression is escaped
-non-locally, @var{out_guard} is called.  If the continuation of
-the dynamic-wind is re-entered, @var{in_guard} is called.  Thus
address@hidden and @var{out_guard} may be called any number of
+non-locally, @var{out} is called.  If the continuation of
+the dynamic-wind is re-entered, @var{in} is called.  Thus
address@hidden and @var{out} may be called any number of
 times.
 @lisp
  (define x 'normal-binding)
diff --git a/module/rnrs/io/ports.scm b/module/rnrs/io/ports.scm
index 246e46b..fddb491 100644
--- a/module/rnrs/io/ports.scm
+++ b/module/rnrs/io/ports.scm
@@ -237,7 +237,7 @@ if the port has no transcoder."
   (not (port-encoding port)))
 
 (define (textual-port? port)
-  "Always returns @var{#t}, as all ports can be used for textual I/O in
+  "Always returns @code{#t}, as all ports can be used for textual I/O in
 Guile."
   #t)
 
diff --git a/module/texinfo/string-utils.scm b/module/texinfo/string-utils.scm
index eff9143..7675149 100644
--- a/module/texinfo/string-utils.scm
+++ b/module/texinfo/string-utils.scm
@@ -160,7 +160,7 @@ characters.  Any needed padding is done by character 
@var{chr}, which
 defaults to @samp{#\\space}.  If @var{rchr} is provided, then the
 padding to the right will use it instead.  See the examples below.
 left and @var{rchr} on the right.  The default @var{width} is 80.  The
-default @var{lchr} and @var{rchr} is @samp{#\\space}.  The string is
+default @var{chr} and @var{rchr} is @samp{#\\space}.  The string is
 never truncated.
 @lisp
  (center-string \"Richard Todd\" 24)
@@ -392,7 +392,7 @@ in @code{make-text-wrapper}."
 
 (define (fill-string str . kwargs)
   "Wraps the text given in string @var{str} according to the parameters
-provided in @var{keywds}, or the default setting if they are not
+provided in @var{kwargs}, or the default setting if they are not
 given.  Returns a single string with the wrapped text.  Valid keyword
 arguments are discussed in @code{make-text-wrapper}."
   (string-join (apply string->wrapped-lines str kwargs)
diff --git a/module/web/http.scm b/module/web/http.scm
index b060af9..c15bc3e 100644
--- a/module/web/http.scm
+++ b/module/web/http.scm
@@ -205,7 +205,7 @@ header with name @var{sym}."
 (define (write-header sym val port)
   "Writes the given header name and value to @var{port}.  If @var{sym}
 is a known header, uses the specific writer registered for that header.
-Otherwise the value is written using @var{display}."
+Otherwise the value is written using @code{display}."
   (display (header->string sym) port)
   (display ": " port)
   ((header-writer sym) val port)
diff --git a/module/web/request.scm b/module/web/request.scm
index c9204a4..8259887 100644
--- a/module/web/request.scm
+++ b/module/web/request.scm
@@ -217,7 +217,7 @@ on @var{port}, perhaps using some transfer encoding."
                             (bytevector-length bv) nbytes))))))
 
 (define (write-request-body r bv)
-  "Write @var{body}, a bytevector, to the port corresponding to the HTTP
+  "Write @var{bv}, a bytevector, to the port corresponding to the HTTP
 request @var{r}."
   (put-bytevector (request-port r) bv))
 
diff --git a/module/web/response.scm b/module/web/response.scm
index 6283772..f49a602 100644
--- a/module/web/response.scm
+++ b/module/web/response.scm
@@ -226,7 +226,7 @@ on @var{port}, perhaps using some transfer encoding."
                             (bytevector-length bv) nbytes))))))
 
 (define (write-response-body r bv)
-  "Write @var{body}, a bytevector, to the port corresponding to the HTTP
+  "Write @var{bv}, a bytevector, to the port corresponding to the HTTP
 response @var{r}."
   (put-bytevector (response-port r) bv))
 
diff --git a/test-suite/vm/run-vm-tests.scm b/test-suite/vm/run-vm-tests.scm
index f23dff6..9304e81 100644
--- a/test-suite/vm/run-vm-tests.scm
+++ b/test-suite/vm/run-vm-tests.scm
@@ -67,7 +67,7 @@ it succeeded."
 (define (run-vm-tests files)
   "For each file listed in @var{files}, load it and run it through both the
 interpreter and the VM (after having it compiled).  Both results must be
-equal in the sense of @var{equal?}."
+equal in the sense of @code{equal?}."
   (let* ((res (map (lambda (file)
                     (format #t "running `~a'...  " file)
                     (if (catch #t


hooks/post-receive
-- 
GNU Guile



reply via email to

[Prev in Thread] Current Thread [Next in Thread]