[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.5-27-gbc0202
From: |
Andy Wingo |
Subject: |
[Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.5-27-gbc02028 |
Date: |
Fri, 03 Feb 2012 23:10:54 +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=bc02028b52297bd33247435a573b76a873b2f4ba
The branch, stable-2.0 has been updated
via bc02028b52297bd33247435a573b76a873b2f4ba (commit)
via 5f6ffd66523e4777ed90348b86296ca6715013bf (commit)
via 5556c17511ce19f6dfa9fc6cef0e12cf90282e9b (commit)
via df0a100250a8eea3bfb6b8999cad54d01633567c (commit)
from e7f7691f5f5c2ecc2b6b828322e6bf3ccb130622 (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 bc02028b52297bd33247435a573b76a873b2f4ba
Author: Andy Wingo <address@hidden>
Date: Fri Feb 3 16:22:50 2012 +0100
fix check for when libc already has clock_gettime / clock_getcpuclockid
* acinclude.m4 (gl_CLOCK_TIME): If both clock_gettime and
clock_getcpuclockid are present without -lrt and -lposix4, don't add
any libs to LIB_CLOCK_GETTIME. Thanks to address@hidden
commit 5f6ffd66523e4777ed90348b86296ca6715013bf
Author: Bake Timmons <address@hidden>
Date: Sun Jan 15 22:18:08 2012 -0500
Improve consistency of definitions of C functions in manual.
* doc/ref/api-compound.texi
* doc/ref/api-evaluation.texi
* doc/ref/api-foreign.texi
* doc/ref/api-io.texi
* doc/ref/posix.texi
* doc/ref/srfi-modules.texi: Add missing parentheses and commas to
definitions
of C functions.
* doc/ref/api-data.texi: Change from @deffn to @deftypefn for C function
with arguments not of SCM type.
commit 5556c17511ce19f6dfa9fc6cef0e12cf90282e9b
Author: Andy Wingo <address@hidden>
Date: Fri Feb 3 13:57:32 2012 +0100
fix compilation of control.c, continuations.c when SCM_ALIGNED is not
defined
* libguile/control.c:
* libguile/continuations.c: Fix for the case in which SCM_ALIGNED is not
defined. Though I wonder, perhaps we should just error out in those
cases.
commit df0a100250a8eea3bfb6b8999cad54d01633567c
Author: Bake Timmons <address@hidden>
Date: Sun Jan 15 10:56:53 2012 -0500
Make notation for Scheme repeated arguments more consistent in manual.
* doc/ref/api-compound.texi
* doc/ref/api-control.texi
* doc/ref/api-data.texi
* doc/ref/api-debug.texi
* doc/ref/api-evaluation.texi
* doc/ref/api-macros.texi
* doc/ref/api-memory.texi
* doc/ref/api-modules.texi
* doc/ref/api-procedures.texi
* doc/ref/api-regex.texi
* doc/ref/api-scheduling.texi
* doc/ref/api-utility.texi
* doc/ref/goops.texi
* doc/ref/match.texi
* doc/ref/misc-modules.texi
* doc/ref/posix.texi
* doc/ref/r6rs.texi
* doc/ref/scheme-using.texi
* doc/ref/srfi-modules.texi
* doc/ref/sxml-match.texi: Make notation for Scheme repeated arguments more
consistent in manual.
-----------------------------------------------------------------------
Summary of changes:
acinclude.m4 | 3 +-
doc/ref/api-compound.texi | 48 +++++----
doc/ref/api-control.texi | 42 ++++----
doc/ref/api-data.texi | 169 +++++++++++++++--------------
doc/ref/api-debug.texi | 6 +-
doc/ref/api-evaluation.texi | 17 ++--
doc/ref/api-foreign.texi | 12 +-
doc/ref/api-io.texi | 2 +-
doc/ref/api-macros.texi | 10 +-
doc/ref/api-memory.texi | 2 +-
doc/ref/api-modules.texi | 6 +-
doc/ref/api-procedures.texi | 39 ++++----
doc/ref/api-regex.texi | 4 +-
doc/ref/api-scheduling.texi | 48 ++++----
doc/ref/api-utility.texi | 8 +-
doc/ref/goops.texi | 71 +++++++------
doc/ref/match.texi | 20 ++--
doc/ref/misc-modules.texi | 20 ++--
doc/ref/posix.texi | 20 ++--
doc/ref/r6rs.texi | 35 ++++---
doc/ref/scheme-using.texi | 4 +-
doc/ref/srfi-modules.texi | 245 ++++++++++++++++++++++---------------------
doc/ref/sxml-match.texi | 2 +-
libguile/continuations.c | 35 +++---
libguile/control.c | 35 +++---
25 files changed, 462 insertions(+), 441 deletions(-)
diff --git a/acinclude.m4 b/acinclude.m4
index f9603d9..0edd4b8 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -614,7 +614,8 @@ AC_DEFUN([gl_CLOCK_TIME],
AC_SEARCH_LIBS([clock_getcpuclockid], [rt posix4],
[test "$ac_cv_search_clock_getcpuclockid"
= "none required" \
||
LIB_CLOCK_GETTIME=$ac_cv_search_clock_getcpuclockid],
-
[LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
+ [test "$ac_cv_search_clock_gettime" =
"none required" \
+ ||
LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
else
LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime
fi])
diff --git a/doc/ref/api-compound.texi b/doc/ref/api-compound.texi
index 765d5d4..6fc5b2e 100644
--- a/doc/ref/api-compound.texi
+++ b/doc/ref/api-compound.texi
@@ -326,7 +326,7 @@ the last pair of the list.
@c no-op since it does nothing but return the list the caller must
@c have already created.
@c
address@hidden {Scheme Procedure} list elem1 @dots{} elemN
address@hidden {Scheme Procedure} list elem @dots{}
@deffnx {C Function} scm_list_1 (elem1)
@deffnx {C Function} scm_list_2 (elem1, elem2)
@deffnx {C Function} scm_list_3 (elem1, elem2, elem3)
@@ -334,11 +334,11 @@ the last pair of the list.
@deffnx {C Function} scm_list_5 (elem1, elem2, elem3, elem4, elem5)
@deffnx {C Function} scm_list_n (elem1, @dots{}, elemN, @nicode{SCM_UNDEFINED})
@rnindex list
-Return a new list containing elements @var{elem1} to @var{elemN}.
+Return a new list containing elements @var{elem} @enddots{}.
@code{scm_list_n} takes a variable number of arguments, terminated by
the special @code{SCM_UNDEFINED}. That final @code{SCM_UNDEFINED} is
-not included in the list. None of @var{elem1} to @var{elemN} can
+not included in the list. None of @var{elem} @dots{} can
themselves be @code{SCM_UNDEFINED}, or @code{scm_list_n} will
terminate at that point.
@end deffn
@@ -430,12 +430,14 @@ pairs. This is why you should be careful when using the
side-effecting
variants.
@rnindex append
address@hidden {Scheme Procedure} append lst1 @dots{} lstN
address@hidden {Scheme Procedure} append! lst1 @dots{} lstN
address@hidden {Scheme Procedure} append lst @dots{} obj
address@hidden {Scheme Procedure} append
address@hidden {Scheme Procedure} append! lst @dots{} obj
address@hidden {Scheme Procedure} append!
@deffnx {C Function} scm_append (lstlst)
@deffnx {C Function} scm_append_x (lstlst)
-Return a list comprising all the elements of lists @var{lst1} to
address@hidden
+Return a list comprising all the elements of lists @var{lst} @dots{}
address@hidden If called with no arguments, return the empty list.
@lisp
(append '(x) '(y)) @result{} (x y)
@@ -443,7 +445,7 @@ Return a list comprising all the elements of lists
@var{lst1} to
(append '(a (b)) '((c))) @result{} (a (b) (c))
@end lisp
-The last argument @var{lstN} may actually be any object; an improper
+The last argument @var{obj} may actually be any object; an improper
list results if the last argument is not a proper list.
@lisp
@@ -452,11 +454,11 @@ list results if the last argument is not a proper list.
@end lisp
@code{append} doesn't modify the given lists, but the return may share
-structure with the final @var{lstN}. @code{append!} modifies the
+structure with the final @var{obj}. @code{append!} modifies the
given lists to form its return.
For @code{scm_append} and @code{scm_append_x}, @var{lstlst} is a list
-of the list operands @var{lst1} @dots{} @var{lstN}. That @var{lstlst}
+of the list operands @var{lst} @dots{} @var{obj}. That @var{lstlst}
itself is not modified or used in the return.
@end deffn
@@ -709,7 +711,7 @@ thus created is determined implicitly by the number of
arguments given.
@rnindex vector
@rnindex list->vector
address@hidden {Scheme Procedure} vector . l
address@hidden {Scheme Procedure} vector arg @dots{}
@deffnx {Scheme Procedure} list->vector l
@deffnx {C Function} scm_vector (l)
Return a newly allocated vector composed of the
@@ -775,7 +777,7 @@ in the vector.
@rnindex vector-length
@deffn {Scheme Procedure} vector-length vector
address@hidden {C Function} scm_vector_length vector
address@hidden {C Function} scm_vector_length (vector)
Return the number of elements in @var{vector} as an exact integer.
@end deffn
@@ -785,7 +787,7 @@ Return the number of elements in @var{vec} as a
@code{size_t}.
@rnindex vector-ref
@deffn {Scheme Procedure} vector-ref vec k
address@hidden {C Function} scm_vector_ref vec k
address@hidden {C Function} scm_vector_ref (vec, k)
Return the contents of position @var{k} of @var{vec}.
@var{k} must be a valid index of @var{vec}.
@lisp
@@ -814,7 +816,7 @@ error.
@rnindex vector-set!
@deffn {Scheme Procedure} vector-set! vec k obj
address@hidden {C Function} scm_vector_set_x vec k obj
address@hidden {C Function} scm_vector_set_x (vec, k, obj)
Store @var{obj} in position @var{k} of @var{vec}.
@var{k} must be a valid index of @var{vec}.
The value returned by @samp{vector-set!} is unspecified.
@@ -1010,7 +1012,7 @@ Like @code{scm_make_bitvector}, but the length is given
as a
@code{size_t}.
@end deftypefn
address@hidden {Scheme Procedure} bitvector . bits
address@hidden {Scheme Procedure} bitvector bit @dots{}
@deffnx {C Function} scm_bitvector (bits)
Create a new bitvector with the arguments as elements.
@end deffn
@@ -1546,7 +1548,7 @@ is unspecified.
@end deffn
@c begin (texi-doc-string "guile" "array-equal?")
address@hidden {Scheme Procedure} array-equal? array1 array2 @dots{}
address@hidden {Scheme Procedure} array-equal? array @dots{}
Return @code{#t} if all arguments are arrays with the same shape, the
same type, and have corresponding elements which are either
@code{equal?} or @code{array-equal?}. This function differs from
@@ -1563,7 +1565,7 @@ same type, and have corresponding elements which are
either
@c at least vaguely matches array-map!, but is it meant to be a
@c documented feature?
address@hidden {Scheme Procedure} array-map! dst proc src1 @dots{} srcN
address@hidden {Scheme Procedure} array-map! dst proc src @dots{}
@deffnx {Scheme Procedure} array-map-in-order! dst proc src1 @dots{} srcN
@deffnx {C Function} scm_array_map_x (dst, proc, srclist)
Set each element of the @var{dst} array to values obtained from calls
@@ -1580,10 +1582,10 @@ range in @var{dst}. This ensures all @var{dst} indices
are valid in
each @var{src}.
@end deffn
address@hidden {Scheme Procedure} array-for-each proc src1 @dots{} srcN
address@hidden {Scheme Procedure} array-for-each proc src1 src2 @dots{}
@deffnx {C Function} scm_array_for_each (proc, src1, srclist)
-Apply @var{proc} to each tuple of elements of @var{src1} @dots{}
address@hidden, in row-major order. The value returned is unspecified.
+Apply @var{proc} to each tuple of elements of @var{src1} @var{src2}
address@hidden, in row-major order. The value returned is unspecified.
@end deffn
@deffn {Scheme Procedure} array-index-map! dst proc
@@ -1793,7 +1795,7 @@ be returned only if its elements are stored internally
contiguous in
memory.
@end deffn
address@hidden {Scheme Procedure} transpose-array array dim1 @dots{}
address@hidden {Scheme Procedure} transpose-array array dim1 dim2 @dots{}
@deffnx {C Function} scm_transpose_array (array, dimlist)
Return an array sharing contents with @var{array}, but with
dimensions arranged in a different order. There must be one
@@ -2235,7 +2237,7 @@ Return a new vlist, as for SRFI-1 @code{unfold} and
@code{unfold-right}
(@pxref{SRFI-1, @code{unfold}}).
@end deffn
address@hidden {Scheme Procedure} vlist-append vlists ...
address@hidden {Scheme Procedure} vlist-append vlist @dots{}
Append the given vlists and return the resulting vlist.
@end deffn
@@ -2465,7 +2467,7 @@ This section describes the basic procedures for working
with
structures. @code{make-struct} creates a structure, and
@code{struct-ref} and @code{struct-set!} access write fields.
address@hidden {Scheme Procedure} make-struct vtable tail-size [init...]
address@hidden {Scheme Procedure} make-struct vtable tail-size init @dots{}
@deffnx {C Function} scm_make_struct (vtable, tail_size, init_list)
Create a new structure, with layout per the given @var{vtable}
(@pxref{Vtables}).
diff --git a/doc/ref/api-control.texi b/doc/ref/api-control.texi
index 7935d56..fc59350 100644
--- a/doc/ref/api-control.texi
+++ b/doc/ref/api-control.texi
@@ -44,7 +44,7 @@ If the test is true, we want to display ``greater'' to the
current
output port, then display a newline. We use @code{begin} to form a
compound expression out of this sequence of sub-expressions.
address@hidden syntax begin expr1 expr2 @dots{}
address@hidden syntax begin expr @dots{}
The expression(s) are evaluated in left-to-right order and the value of
the last expression is returned as the value of the
@code{begin}-expression. This expression type is used when the
@@ -277,7 +277,7 @@ Scheme programs is normally expressed using recursion.
Nevertheless,
R5RS defines a construct for programming loops, calling @code{do}. In
addition, Guile has an explicit looping syntax called @code{while}.
address@hidden syntax do ((variable init [step]) @dots{}) (test [expr @dots{}])
body @dots{}
address@hidden syntax do ((variable init [step]) @dots{}) (test expr @dots{})
body @dots{}
Bind @var{variable}s and evaluate @var{body} until @var{test} is true.
The return value is the last @var{expr} after @var{test}, if given. A
simple example will illustrate the basic form,
@@ -348,7 +348,7 @@ Run a loop executing the @var{body} forms while @var{cond}
is true.
Within @code{while}, two extra bindings are provided, they can be used
from both @var{cond} and @var{body}.
address@hidden {Scheme Procedure} break break-arg...
address@hidden {Scheme Procedure} break break-arg @dots{}
Break out of the @code{while} form.
@end deffn
@@ -487,7 +487,7 @@ tag allows some useful prompt and abort idioms, discussed
in the next
section.
@end deffn
address@hidden {Scheme Procedure} abort-to-prompt tag val ...
address@hidden {Scheme Procedure} abort-to-prompt tag val1 val2 @dots{}
Unwind the dynamic and control context to the nearest prompt named @var{tag},
also passing the given values.
@end deffn
@@ -599,8 +599,9 @@ The @code{%} symbol is chosen because it looks like a
prompt.
Likewise there is an abbreviation for @code{abort-to-prompt}, which
assumes the default prompt tag:
address@hidden {Scheme Procedure} abort val...
-Abort to the default prompt tag, passing @var{val...} to the handler.
address@hidden {Scheme Procedure} abort val1 val2 @dots{}
+Abort to the default prompt tag, passing @var{val1} @var{val2} @dots{}
+to the handler.
@end deffn
As mentioned before, @code{(ice-9 control)} also provides other
@@ -627,19 +628,22 @@ If both continuation and handler implicitly add prompts,
then the
operator is @dfn{+F+}. @code{shift} and @code{reset} are such
operators.
address@hidden {Scheme Syntax} reset body...
-Establish a prompt, and evaluate @var{body...} within that prompt.
address@hidden {Scheme Syntax} reset body1 body2 @dots{}
+Establish a prompt, and evaluate @var{body1} @var{body2} @dots{} within
+that prompt.
The prompt handler is designed to work with @code{shift}, described
below.
@end deffn
address@hidden {Scheme Syntax} shift cont body...
-Abort to the nearest @code{reset}, and evaluate @var{body...} in a
-context in which the captured continuation is bound to @var{cont}.
address@hidden {Scheme Syntax} shift cont body1 body2 @dots{}
+Abort to the nearest @code{reset}, and evaluate @var{body1} @var{body2}
address@hidden in a context in which the captured continuation is bound to
address@hidden
-As mentioned above, both the @var{body...} expression and invocations of
address@hidden implicitly establish a prompt.
+As mentioned above, taken together, the @var{body1} @var{body2} @dots{}
+expressions and the invocations of @var{cont} implicitly establish a
+prompt.
@end deffn
Interested readers are invited to explore Oleg Kiselyov's wonderful web
@@ -803,7 +807,7 @@ multiple values with a procedure which accepts these values
as
parameters.
@rnindex values
address@hidden {Scheme Procedure} values arg1 @dots{} argN
address@hidden {Scheme Procedure} values arg @dots{}
@deffnx {C Function} scm_values (args)
Delivers all of its arguments to its continuation. Except for
continuations created by the @code{call-with-values} procedure,
@@ -1220,10 +1224,10 @@ depends on the exception type. The documentation for
each possible type
of exception should specify the additional arguments that are expected
for that kind of exception.
address@hidden {Scheme Procedure} throw key . args
address@hidden {Scheme Procedure} throw key arg @dots{}
@deffnx {C Function} scm_throw (key, args)
-Invoke the catch form matching @var{key}, passing @var{args} to the
address@hidden
+Invoke the catch form matching @var{key}, passing @var{arg} @dots{} to
+the @var{handler}.
@var{key} is a symbol. It will match catches of the same symbol or of
@code{#t}.
@@ -1312,9 +1316,9 @@ Guile provides a set of convenience procedures for
signaling error
conditions that are implemented on top of the exception primitives just
described.
address@hidden {Scheme Procedure} error msg args @dots{}
address@hidden {Scheme Procedure} error msg arg @dots{}
Raise an error with key @code{misc-error} and a message constructed by
-displaying @var{msg} and writing @var{args}.
+displaying @var{msg} and writing @var{arg} @enddots{}.
@end deffn
@deffn {Scheme Procedure} scm-error key subr message args data
diff --git a/doc/ref/api-data.texi b/doc/ref/api-data.texi
index 2cbbdd2..4fc11c8 100644
--- a/doc/ref/api-data.texi
+++ b/doc/ref/api-data.texi
@@ -2324,12 +2324,12 @@ Return @code{#t} if @var{obj} is a character set,
@code{#f}
otherwise.
@end deffn
address@hidden {Scheme Procedure} char-set= . char_sets
address@hidden {Scheme Procedure} char-set= char_set @dots{}
@deffnx {C Function} scm_char_set_eq (char_sets)
Return @code{#t} if all given character sets are equal.
@end deffn
address@hidden {Scheme Procedure} char-set<= . char_sets
address@hidden {Scheme Procedure} char-set<= char_set @dots{}
@deffnx {C Function} scm_char_set_leq (char_sets)
Return @code{#t} if every character set @var{char_set}i is a subset
of character set @var{char_set}i+1.
@@ -2339,7 +2339,7 @@ of character set @var{char_set}i+1.
@deffnx {C Function} scm_char_set_hash (cs, bound)
Compute a hash value for the character set @var{cs}. If
@var{bound} is given and non-zero, it restricts the
-returned value to the range 0 @dots{} @var{bound - 1}.
+returned value to the range 0 @dots{} @var{bound} - 1.
@end deffn
@c ===================================================================
@@ -2443,8 +2443,8 @@ Return a newly allocated character set containing all
characters in @var{cs}.
@end deffn
address@hidden {Scheme Procedure} char-set . rest
address@hidden {C Function} scm_char_set (rest)
address@hidden {Scheme Procedure} char-set chr @dots{}
address@hidden {C Function} scm_char_set (chrs)
Return a character set containing all given characters.
@end deffn
@@ -2607,26 +2607,26 @@ such as union, complement, intersection etc. All of
these procedures
provide side-effecting variants, which modify their character set
argument(s).
address@hidden {Scheme Procedure} char-set-adjoin cs . rest
address@hidden {C Function} scm_char_set_adjoin (cs, rest)
address@hidden {Scheme Procedure} char-set-adjoin cs chr @dots{}
address@hidden {C Function} scm_char_set_adjoin (cs, chrs)
Add all character arguments to the first argument, which must
be a character set.
@end deffn
address@hidden {Scheme Procedure} char-set-delete cs . rest
address@hidden {C Function} scm_char_set_delete (cs, rest)
address@hidden {Scheme Procedure} char-set-delete cs chr @dots{}
address@hidden {C Function} scm_char_set_delete (cs, chrs)
Delete all character arguments from the first argument, which
must be a character set.
@end deffn
address@hidden {Scheme Procedure} char-set-adjoin! cs . rest
address@hidden {C Function} scm_char_set_adjoin_x (cs, rest)
address@hidden {Scheme Procedure} char-set-adjoin! cs chr @dots{}
address@hidden {C Function} scm_char_set_adjoin_x (cs, chrs)
Add all character arguments to the first argument, which must
be a character set.
@end deffn
address@hidden {Scheme Procedure} char-set-delete! cs . rest
address@hidden {C Function} scm_char_set_delete_x (cs, rest)
address@hidden {Scheme Procedure} char-set-delete! cs chr @dots{}
address@hidden {C Function} scm_char_set_delete_x (cs, chrs)
Delete all character arguments from the first argument, which
must be a character set.
@end deffn
@@ -2642,28 +2642,28 @@ characters). It may be helpful to modify the output of
@code{char-set-complement} by computing its intersection with the set
of designated code points, @code{char-set:designated}.
address@hidden {Scheme Procedure} char-set-union . rest
address@hidden {C Function} scm_char_set_union (rest)
address@hidden {Scheme Procedure} char-set-union cs @dots{}
address@hidden {C Function} scm_char_set_union (char_sets)
Return the union of all argument character sets.
@end deffn
address@hidden {Scheme Procedure} char-set-intersection . rest
address@hidden {C Function} scm_char_set_intersection (rest)
address@hidden {Scheme Procedure} char-set-intersection cs @dots{}
address@hidden {C Function} scm_char_set_intersection (char_sets)
Return the intersection of all argument character sets.
@end deffn
address@hidden {Scheme Procedure} char-set-difference cs1 . rest
address@hidden {C Function} scm_char_set_difference (cs1, rest)
address@hidden {Scheme Procedure} char-set-difference cs1 cs @dots{}
address@hidden {C Function} scm_char_set_difference (cs1, char_sets)
Return the difference of all argument character sets.
@end deffn
address@hidden {Scheme Procedure} char-set-xor . rest
address@hidden {C Function} scm_char_set_xor (rest)
address@hidden {Scheme Procedure} char-set-xor cs @dots{}
address@hidden {C Function} scm_char_set_xor (char_sets)
Return the exclusive-or of all argument character sets.
@end deffn
address@hidden {Scheme Procedure} char-set-diff+intersection cs1 . rest
address@hidden {C Function} scm_char_set_diff_plus_intersection (cs1, rest)
address@hidden {Scheme Procedure} char-set-diff+intersection cs1 cs @dots{}
address@hidden {C Function} scm_char_set_diff_plus_intersection (cs1, char_sets)
Return the difference and the intersection of all argument
character sets.
@end deffn
@@ -2673,28 +2673,28 @@ character sets.
Return the complement of the character set @var{cs}.
@end deffn
address@hidden {Scheme Procedure} char-set-union! cs1 . rest
address@hidden {C Function} scm_char_set_union_x (cs1, rest)
address@hidden {Scheme Procedure} char-set-union! cs1 cs @dots{}
address@hidden {C Function} scm_char_set_union_x (cs1, char_sets)
Return the union of all argument character sets.
@end deffn
address@hidden {Scheme Procedure} char-set-intersection! cs1 . rest
address@hidden {C Function} scm_char_set_intersection_x (cs1, rest)
address@hidden {Scheme Procedure} char-set-intersection! cs1 cs @dots{}
address@hidden {C Function} scm_char_set_intersection_x (cs1, char_sets)
Return the intersection of all argument character sets.
@end deffn
address@hidden {Scheme Procedure} char-set-difference! cs1 . rest
address@hidden {C Function} scm_char_set_difference_x (cs1, rest)
address@hidden {Scheme Procedure} char-set-difference! cs1 cs @dots{}
address@hidden {C Function} scm_char_set_difference_x (cs1, char_sets)
Return the difference of all argument character sets.
@end deffn
address@hidden {Scheme Procedure} char-set-xor! cs1 . rest
address@hidden {C Function} scm_char_set_xor_x (cs1, rest)
address@hidden {Scheme Procedure} char-set-xor! cs1 cs @dots{}
address@hidden {C Function} scm_char_set_xor_x (cs1, char_sets)
Return the exclusive-or of all argument character sets.
@end deffn
address@hidden {Scheme Procedure} char-set-diff+intersection! cs1 cs2 . rest
address@hidden {C Function} scm_char_set_diff_plus_intersection_x (cs1, cs2,
rest)
address@hidden {Scheme Procedure} char-set-diff+intersection! cs1 cs2 cs @dots{}
address@hidden {C Function} scm_char_set_diff_plus_intersection_x (cs1, cs2,
char_sets)
Return the difference and the intersection of all argument
character sets.
@end deffn
@@ -3404,11 +3404,11 @@ comparison. See @xref{Text Collation, the @code{(ice-9
i18n)} module}, for locale-dependent string comparison.
@rnindex string=?
address@hidden {Scheme Procedure} string=? [s1 [s2 . rest]]
address@hidden {Scheme Procedure} string=? s1 s2 s3 @dots{}
@deffnx {C Function} scm_i_string_equal_p (s1, s2, rest)
-Lexicographic equality predicate; return @code{#t} if the two
-strings are the same length and contain the same characters in
-the same positions, otherwise return @code{#f}.
+Lexicographic equality predicate; return @code{#t} if all strings are
+the same length and contain the same characters in the same positions,
+otherwise return @code{#f}.
The procedure @code{string-ci=?} treats upper and lower case
letters as though they were the same character, but
@@ -3417,72 +3417,80 @@ characters.
@end deffn
@rnindex string<?
address@hidden {Scheme Procedure} string<? [s1 [s2 . rest]]
address@hidden {Scheme Procedure} string<? s1 s2 s3 @dots{}
@deffnx {C Function} scm_i_string_less_p (s1, s2, rest)
-Lexicographic ordering predicate; return @code{#t} if @var{s1}
-is lexicographically less than @var{s2}.
+Lexicographic ordering predicate; return @code{#t} if, for every pair of
+consecutive string arguments @var{str_i} and @var{str_i+1}, @var{str_i} is
+lexicographically less than @var{str_i+1}.
@end deffn
@rnindex string<=?
address@hidden {Scheme Procedure} string<=? [s1 [s2 . rest]]
address@hidden {Scheme Procedure} string<=? s1 s2 s3 @dots{}
@deffnx {C Function} scm_i_string_leq_p (s1, s2, rest)
-Lexicographic ordering predicate; return @code{#t} if @var{s1}
-is lexicographically less than or equal to @var{s2}.
+Lexicographic ordering predicate; return @code{#t} if, for every pair of
+consecutive string arguments @var{str_i} and @var{str_i+1}, @var{str_i} is
+lexicographically less than or equal to @var{str_i+1}.
@end deffn
@rnindex string>?
address@hidden {Scheme Procedure} string>? [s1 [s2 . rest]]
address@hidden {Scheme Procedure} string>? s1 s2 s3 @dots{}
@deffnx {C Function} scm_i_string_gr_p (s1, s2, rest)
-Lexicographic ordering predicate; return @code{#t} if @var{s1}
-is lexicographically greater than @var{s2}.
+Lexicographic ordering predicate; return @code{#t} if, for every pair of
+consecutive string arguments @var{str_i} and @var{str_i+1}, @var{str_i} is
+lexicographically greater than @var{str_i+1}.
@end deffn
@rnindex string>=?
address@hidden {Scheme Procedure} string>=? [s1 [s2 . rest]]
address@hidden {Scheme Procedure} string>=? s1 s2 s3 @dots{}
@deffnx {C Function} scm_i_string_geq_p (s1, s2, rest)
-Lexicographic ordering predicate; return @code{#t} if @var{s1}
-is lexicographically greater than or equal to @var{s2}.
+Lexicographic ordering predicate; return @code{#t} if, for every pair of
+consecutive string arguments @var{str_i} and @var{str_i+1}, @var{str_i} is
+lexicographically greater than or equal to @var{str_i+1}.
@end deffn
@rnindex string-ci=?
address@hidden {Scheme Procedure} string-ci=? [s1 [s2 . rest]]
address@hidden {Scheme Procedure} string-ci=? s1 s2 s3 @dots{}
@deffnx {C Function} scm_i_string_ci_equal_p (s1, s2, rest)
Case-insensitive string equality predicate; return @code{#t} if
-the two strings are the same length and their component
+all strings are the same length and their component
characters match (ignoring case) at each position; otherwise
return @code{#f}.
@end deffn
@rnindex string-ci<?
address@hidden {Scheme Procedure} string-ci<? [s1 [s2 . rest]]
address@hidden {Scheme Procedure} string-ci<? s1 s2 s3 @dots{}
@deffnx {C Function} scm_i_string_ci_less_p (s1, s2, rest)
-Case insensitive lexicographic ordering predicate; return
address@hidden if @var{s1} is lexicographically less than @var{s2}
+Case insensitive lexicographic ordering predicate; return @code{#t} if,
+for every pair of consecutive string arguments @var{str_i} and
address@hidden, @var{str_i} is lexicographically less than @var{str_i+1}
regardless of case.
@end deffn
@rnindex string<=?
address@hidden {Scheme Procedure} string-ci<=? [s1 [s2 . rest]]
address@hidden {Scheme Procedure} string-ci<=? s1 s2 s3 @dots{}
@deffnx {C Function} scm_i_string_ci_leq_p (s1, s2, rest)
-Case insensitive lexicographic ordering predicate; return
address@hidden if @var{s1} is lexicographically less than or equal
-to @var{s2} regardless of case.
+Case insensitive lexicographic ordering predicate; return @code{#t} if,
+for every pair of consecutive string arguments @var{str_i} and
address@hidden, @var{str_i} is lexicographically less than or equal to
address@hidden regardless of case.
@end deffn
@rnindex string-ci>?
address@hidden {Scheme Procedure} string-ci>? [s1 [s2 . rest]]
address@hidden {Scheme Procedure} string-ci>? s1 s2 s3 @dots{}
@deffnx {C Function} scm_i_string_ci_gr_p (s1, s2, rest)
-Case insensitive lexicographic ordering predicate; return
address@hidden if @var{s1} is lexicographically greater than
address@hidden regardless of case.
+Case insensitive lexicographic ordering predicate; return @code{#t} if,
+for every pair of consecutive string arguments @var{str_i} and
address@hidden, @var{str_i} is lexicographically greater than
address@hidden regardless of case.
@end deffn
@rnindex string-ci>=?
address@hidden {Scheme Procedure} string-ci>=? [s1 [s2 . rest]]
address@hidden {Scheme Procedure} string-ci>=? s1 s2 s3 @dots{}
@deffnx {C Function} scm_i_string_ci_geq_p (s1, s2, rest)
-Case insensitive lexicographic ordering predicate; return
address@hidden if @var{s1} is lexicographically greater than or
-equal to @var{s2} regardless of case.
+Case insensitive lexicographic ordering predicate; return @code{#t} if,
+for every pair of consecutive string arguments @var{str_i} and
address@hidden, @var{str_i} is lexicographically greater than or equal to
address@hidden regardless of case.
@end deffn
@deffn {Scheme Procedure} string-compare s1 s2 proc_lt proc_eq proc_gt [start1
[end1 [start2 [end2]]]]
@@ -3934,10 +3942,10 @@ operate on. The return value is unspecified.
@end deffn
@rnindex string-append
address@hidden {Scheme Procedure} string-append . args
address@hidden {Scheme Procedure} string-append arg @dots{}
@deffnx {C Function} scm_string_append (args)
Return a newly allocated string whose characters form the
-concatenation of the given strings, @var{args}.
+concatenation of the given strings, @var{arg} @enddots{}.
@example
(let ((h "hello "))
@@ -3946,17 +3954,16 @@ concatenation of the given strings, @var{args}.
@end example
@end deffn
address@hidden {Scheme Procedure} string-append/shared . rest
address@hidden {C Function} scm_string_append_shared (rest)
address@hidden {Scheme Procedure} string-append/shared arg @dots{}
address@hidden {C Function} scm_string_append_shared (args)
Like @code{string-append}, but the result may share memory
with the argument strings.
@end deffn
@deffn {Scheme Procedure} string-concatenate ls
@deffnx {C Function} scm_string_concatenate (ls)
-Append the elements of @var{ls} (which must be strings)
-together into a single string. Guaranteed to return a freshly
-allocated string.
+Append the elements (which must be strings) of @var{ls} together into a
+single string. Guaranteed to return a freshly allocated string.
@end deffn
@deffn {Scheme Procedure} string-concatenate-reverse ls [final_string [end]]
@@ -5181,9 +5188,9 @@ Return a newly allocated symbol made from a list of
characters.
@end deffn
@rnindex symbol-append
address@hidden {Scheme Procedure} symbol-append . args
address@hidden {Scheme Procedure} symbol-append arg @dots{}
Return a newly allocated symbol whose characters form the
-concatenation of the given symbols, @var{args}.
+concatenation of the given symbols, @var{arg} @enddots{}.
@example
(let ((h 'hello))
@@ -5253,15 +5260,15 @@ When you want to do more from C, you should convert
between symbols
and strings using @code{scm_symbol_to_string} and
@code{scm_string_to_symbol} and work with the strings.
address@hidden {C Function} scm_from_latin1_symbol (const char *name)
address@hidden {C Function} scm_from_utf8_symbol (const char *name)
address@hidden {C Function} scm_from_latin1_symbol (const char *name)
address@hidden {C Function} scm_from_utf8_symbol (const char *name)
Construct and return a Scheme symbol whose name is specified by the
null-terminated C string @var{name}. These are appropriate when
the C string is hard-coded in the source code.
address@hidden deffn
address@hidden deftypefn
address@hidden {C Function} scm_from_locale_symbol (const char *name)
address@hidden {C Function} scm_from_locale_symboln (const char *name, size_t
len)
address@hidden {C Function} scm_from_locale_symbol (const char *name)
address@hidden {C Function} scm_from_locale_symboln (const char *name, size_t
len)
Construct and return a Scheme symbol whose name is specified by
@var{name}. For @code{scm_from_locale_symbol}, @var{name} must be null
terminated; for @code{scm_from_locale_symboln} the length of @var{name} is
@@ -5271,7 +5278,7 @@ Note that these functions should @emph{not} be used when
@var{name} is a
C string constant, because there is no guarantee that the current locale
will match that of the source code. In such cases, use
@code{scm_from_latin1_symbol} or @code{scm_from_utf8_symbol}.
address@hidden deffn
address@hidden deftypefn
@deftypefn {C Function} SCM scm_take_locale_symbol (char *str)
@deftypefnx {C Function} SCM scm_take_locale_symboln (char *str, size_t len)
diff --git a/doc/ref/api-debug.texi b/doc/ref/api-debug.texi
index 57c7533..cf9ea5a 100644
--- a/doc/ref/api-debug.texi
+++ b/doc/ref/api-debug.texi
@@ -80,15 +80,15 @@ describes the Scheme stack at that point.
Use @code{start-stack} to limit the stack extent captured by future
@code{make-stack} calls.
address@hidden {Scheme Procedure} make-stack obj . args
address@hidden {Scheme Procedure} make-stack obj arg @dots{}
@deffnx {C Function} scm_make_stack (obj, args)
Create a new stack. If @var{obj} is @code{#t}, the current
evaluation stack is used for creating the stack frames,
otherwise the frames are taken from @var{obj} (which must be
a continuation or a frame object).
address@hidden should be a list containing any combination of
-integer, procedure, prompt tag and @code{#t} values.
address@hidden @dots{} can be any combination of integer, procedure, prompt
+tag and @code{#t} values.
These values specify various ways of cutting away uninteresting
stack frames from the top and bottom of the stack that
diff --git a/doc/ref/api-evaluation.texi b/doc/ref/api-evaluation.texi
index 8aa3888..6112832 100644
--- a/doc/ref/api-evaluation.texi
+++ b/doc/ref/api-evaluation.texi
@@ -504,23 +504,22 @@ eval-string)}, evaluating within @var{module} or the
current module.
of an @code{SCM}.
@end deftypefn
address@hidden {Scheme Procedure} apply proc arg1 @dots{} argN arglst
address@hidden {Scheme Procedure} apply proc arg @dots{} arglst
@deffnx {C Function} scm_apply_0 (proc, arglst)
@deffnx {C Function} scm_apply_1 (proc, arg1, arglst)
@deffnx {C Function} scm_apply_2 (proc, arg1, arg2, arglst)
@deffnx {C Function} scm_apply_3 (proc, arg1, arg2, arg3, arglst)
@deffnx {C Function} scm_apply (proc, arg, rest)
@rnindex apply
-Call @var{proc} with arguments @var{arg1} @dots{} @var{argN} plus the
+Call @var{proc} with arguments @var{arg} @dots{} and the
elements of the @var{arglst} list.
@code{scm_apply} takes parameters corresponding to a Scheme level
address@hidden(lambda (proc arg . rest) ...)}. So @var{arg} and all but the
-last element of the @var{rest} list make up
address@hidden@address@hidden and the last element of @var{rest} is the
address@hidden list. Or if @var{rest} is the empty list @code{SCM_EOL}
-then there's no @address@hidden@var{argN} and @var{arg} is the
address@hidden
address@hidden(lambda (proc arg1 . rest) ...)}. So @var{arg1} and all but the
+last element of the @var{rest} list make up @var{arg} @dots{}, and the
+last element of @var{rest} is the @var{arglst} list. Or if @var{rest}
+is the empty list @code{SCM_EOL} then there's no @var{arg} @dots{}, and
+(@var{arg1}) is the @var{arglst}.
@var{arglst} is not modified, but the @var{rest} list passed to
@code{scm_apply} is modified.
@@ -1013,7 +1012,7 @@ by @code{file-encoding}, if any, again by using
@code{set-port-encoding!}. Then the code can be read as normal.
@deffn {Scheme Procedure} file-encoding port
address@hidden {C Function} scm_file_encoding port
address@hidden {C Function} scm_file_encoding (port)
Scan the port for an Emacs-like character coding declaration near the
top of the contents of a port with random-accessible contents
(@pxref{Recognize Coding, how Emacs recognizes file encoding,, emacs,
diff --git a/doc/ref/api-foreign.texi b/doc/ref/api-foreign.texi
index 6ece7f8..2e60d8a 100644
--- a/doc/ref/api-foreign.texi
+++ b/doc/ref/api-foreign.texi
@@ -540,7 +540,7 @@ A value returned by @code{dynamic-pointer} is a Scheme
wrapper for a C
pointer.
@deffn {Scheme Procedure} pointer-address pointer
address@hidden {C Function} scm_pointer_address pointer
address@hidden {C Function} scm_pointer_address (pointer)
Return the numerical value of @var{pointer}.
@example
@@ -594,7 +594,7 @@ module contains procedures that can be used to convert byte
sequences to
Scheme objects such as strings, floating point numbers, or integers.
@deffn {Scheme Procedure} pointer->bytevector pointer len [offset [uvec_type]]
address@hidden {C Function} scm_foreign_to_bytevector pointer len offset
uvec_type
address@hidden {C Function} scm_foreign_to_bytevector (pointer, len, offset,
uvec_type)
Return a bytevector aliasing the @var{len} bytes pointed to by
@var{pointer}.
@@ -614,7 +614,7 @@ Mutating the returned bytevector mutates the memory pointed
to by
@end deffn
@deffn {Scheme Procedure} bytevector->pointer bv [offset]
address@hidden {C Function} scm_bytevector_to_pointer bv offset
address@hidden {C Function} scm_bytevector_to_pointer (bv, offset)
Return a pointer pointer aliasing the memory pointed to by @var{bv} or
@var{offset} bytes after @var{bv} when @var{offset} is passed.
@end deffn
@@ -740,7 +740,7 @@ its type, offset, and alignment. Guile has some primitives
to support
this.
@deffn {Scheme Procedure} sizeof type
address@hidden {C Function} scm_sizeof type
address@hidden {C Function} scm_sizeof (type)
Return the size of @var{type}, in bytes.
@var{type} should be a valid C type, like @code{int}.
@@ -751,7 +751,7 @@ also be a list of types, in which case the size of a
@end deffn
@deffn {Scheme Procedure} alignof type
address@hidden {C Function} scm_alignof type
address@hidden {C Function} scm_alignof (type)
Return the alignment of @var{type}, in bytes.
@var{type} should be a valid C type, like @code{int}.
@@ -801,7 +801,7 @@ Of course, the land of C is not all nouns and no verbs:
there are
functions too, and Guile allows you to call them.
@deffn {Scheme Procedure} pointer->procedure return_type func_ptr arg_types
address@hidden {C Procedure} scm_pointer_to_procedure return_type func_ptr
arg_types
address@hidden {C Procedure} scm_pointer_to_procedure (return_type, func_ptr,
arg_types)
Make a foreign function.
Given the foreign void pointer @var{func_ptr}, its argument and
diff --git a/doc/ref/api-io.texi b/doc/ref/api-io.texi
index 9b52766..24c2706 100644
--- a/doc/ref/api-io.texi
+++ b/doc/ref/api-io.texi
@@ -129,7 +129,7 @@ this fluid otherwise.
@end defvr
@deffn {Scheme Procedure} port-encoding port
address@hidden {C Function} scm_port_encoding
address@hidden {C Function} scm_port_encoding (port)
Returns, as a string, the character encoding that @var{port} uses to interpret
its input and output. The value @code{#f} is equivalent to
@code{"ISO-8859-1"}.
@end deffn
diff --git a/doc/ref/api-macros.texi b/doc/ref/api-macros.texi
index f6a03bc..347d025 100644
--- a/doc/ref/api-macros.texi
+++ b/doc/ref/api-macros.texi
@@ -81,8 +81,9 @@ source code will invoke the syntax transformer defined by
@var{transformer}.
One can also establish local syntactic bindings with @code{let-syntax}.
address@hidden {Syntax} let-syntax ((keyword transformer) ...) exp...
-Bind @var{keyword...} to @var{transformer...} while expanding @var{exp...}.
address@hidden {Syntax} let-syntax ((keyword transformer) @dots{}) exp1 exp2
@dots{}
+Bind each @var{keyword} to its corresponding @var{transformer} while
+expanding @var{exp1} @var{exp2} @enddots{}.
A @code{let-syntax} binding only exists at expansion-time.
@@ -104,8 +105,9 @@ top-level, or locally. Just as a local @code{define}
expands out to an instance
of @code{letrec}, a local @code{define-syntax} expands out to
@code{letrec-syntax}.
address@hidden {Syntax} letrec-syntax ((keyword transformer) ...) exp...
-Bind @var{keyword...} to @var{transformer...} while expanding @var{exp...}.
address@hidden {Syntax} letrec-syntax ((keyword transformer) @dots{}) exp1 exp2
@dots{}
+Bind each @var{keyword} to its corresponding @var{transformer} while
+expanding @var{exp1} @var{exp2} @enddots{}.
In the spirit of @code{letrec} versus @code{let}, an expansion produced by
@var{transformer} may reference a @var{keyword} bound by the
diff --git a/doc/ref/api-memory.texi b/doc/ref/api-memory.texi
index 6dca7a2..ff202e0 100644
--- a/doc/ref/api-memory.texi
+++ b/doc/ref/api-memory.texi
@@ -398,7 +398,7 @@ set to @var{fill}. The default value for @var{fill} is the
empty list.
@end deffn
address@hidden {Scheme Procedure} weak-vector . l
address@hidden {Scheme Procedure} weak-vector elem @dots{}
@deffnx {Scheme Procedure} list->weak-vector l
@deffnx {C Function} scm_weak_vector (l)
Construct a weak vector from a list: @code{weak-vector} uses
diff --git a/doc/ref/api-modules.texi b/doc/ref/api-modules.texi
index 8afe728..c91c2d4 100644
--- a/doc/ref/api-modules.texi
+++ b/doc/ref/api-modules.texi
@@ -250,7 +250,7 @@ Export all bindings which should be in the public
interface, either
by using @code{define-public} or @code{export} (both documented below).
@end itemize
address@hidden syntax define-module module-name [options @dots{}]
address@hidden syntax define-module module-name option @dots{}
@var{module-name} is a list of one or more symbols.
@lisp
@@ -260,8 +260,8 @@ by using @code{define-public} or @code{export} (both
documented below).
@code{define-module} makes this module available to Guile programs under
the given @var{module-name}.
-The @var{options} are keyword/value pairs which specify more about the
-defined module. The recognized options and their meaning is shown in
address@hidden @dots{} are keyword/value pairs which specify more about the
+defined module. The recognized options and their meaning are shown in
the following table.
@table @code
diff --git a/doc/ref/api-procedures.texi b/doc/ref/api-procedures.texi
index aaad0cc..0e0ad15 100644
--- a/doc/ref/api-procedures.texi
+++ b/doc/ref/api-procedures.texi
@@ -418,8 +418,8 @@ elements. @code{let-optional} binds all variables
simultaneously, while
@code{let-optional*} binds them sequentially, consistent with @code{let}
and @code{let*} (@pxref{Local Bindings}).
address@hidden {library syntax} let-optional rest-arg (binding @dots{}) expr
@dots{}
address@hidden {library syntax} let-optional* rest-arg (binding @dots{}) expr
@dots{}
address@hidden {library syntax} let-optional rest-arg (binding @dots{}) body1
body2 @dots{}
address@hidden {library syntax} let-optional* rest-arg (binding @dots{}) body1
body2 @dots{}
These two macros give you an optional argument interface that is very
@dfn{Schemey} and introduces no fancy syntax. They are compatible with
the scsh macros of the same name, but are slightly extended. Each of
@@ -431,22 +431,22 @@ runs out, the remaining vars are bound either to the
default values or
@code{#f} if no default value was specified. @var{rest-arg} remains
bound to whatever may have been left of @var{rest-arg}.
-After binding the variables, the expressions @var{expr} @dots{} are
-evaluated in order.
+After binding the variables, the expressions @var{body1} @var{body2} @dots{}
+are evaluated in order.
@end deffn
Similarly, @code{let-keywords} and @code{let-keywords*} extract values
from keyword style argument lists, binding local variables to those
values or to defaults.
address@hidden {library syntax} let-keywords args allow-other-keys? (binding
@dots{}) body @dots{}
address@hidden {library syntax} let-keywords* args allow-other-keys? (binding
@dots{}) body @dots{}
address@hidden {library syntax} let-keywords args allow-other-keys? (binding
@dots{}) body1 body2 @dots{}
address@hidden {library syntax} let-keywords* args allow-other-keys? (binding
@dots{}) body1 body2 @dots{}
@var{args} is evaluated and should give a list of the form
@code{(#:keyword1 value1 #:keyword2 value2 @dots{})}. The
address@hidden are variables and default expressions, with the
-variables to be set (by name) from the keyword values. The @var{body}
-forms are then evaluated and the last is the result. An example will
-make the syntax clearest,
address@hidden are variables and default expressions, with the variables
+to be set (by name) from the keyword values. The @var{body1}
address@hidden @dots{} forms are then evaluated and the last is the
+result. An example will make the syntax clearest,
@example
(define args '(#:xyzzy "hello" #:foo "world"))
@@ -478,12 +478,12 @@ exist for defining macros with the improved argument list
handling
possibilities. The @code{-public} versions not only define the
procedures/macros, but also export them from the current module.
address@hidden {library syntax} define*-public formals body
address@hidden {library syntax} define*-public formals body1 body2 @dots{}
Like a mix of @code{define*} and @code{define-public}.
@end deffn
address@hidden {library syntax} defmacro* name formals body
address@hidden {library syntax} defmacro*-public name formals body
address@hidden {library syntax} defmacro* name formals body1 body2 @dots{}
address@hidden {library syntax} defmacro*-public name formals body1 body2
@dots{}
These are just like @code{defmacro} and @code{defmacro-public} except that they
take @code{lambda*}-style extended parameter lists, where @code{#:optional},
@code{#:key}, @code{#:allow-other-keys} and @code{#:rest} are allowed with the
usual
@@ -611,10 +611,11 @@ Return a procedure with the same arity as @var{proc} that
returns the
@end lisp
@end deffn
address@hidden {Scheme Procedure} compose proc rest ...
-Compose @var{proc} with the procedures in @var{rest}, such that the last
-one in @var{rest} is applied first and @var{proc} last, and return the
-resulting procedure. The given procedures must have compatible arity.
address@hidden {Scheme Procedure} compose proc1 proc2 @dots{}
+Compose @var{proc1} with the procedures @var{proc2} @dots{} such that
+the last @var{proc} argument is applied first and @var{proc1} last, and
+return the resulting procedure. The given procedures must have
+compatible arity.
@lisp
(procedure? (compose 1+ 1-)) @result{} #t
@@ -835,9 +836,9 @@ making large procedures inlinable will probably result in
an increase in
code size. Additionally, the elimination of the call overhead rarely
matters for large procedures.
address@hidden {Scheme Syntax} define-inlinable (name parameter ...) body ...
address@hidden {Scheme Syntax} define-inlinable (name parameter @dots{}) body1
body2 @dots{}
Define @var{name} as a procedure with parameters @var{parameter}s and
-body @var{body}.
+bodies @var{body1}, @var{body2}, @enddots{}.
@end deffn
@c Local Variables:
diff --git a/doc/ref/api-regex.texi b/doc/ref/api-regex.texi
index 1435aeb..11a31fc 100644
--- a/doc/ref/api-regex.texi
+++ b/doc/ref/api-regex.texi
@@ -228,7 +228,7 @@ and replace them with the contents of another string. The
following
functions are convenient ways to do this.
@c begin (scm-doc-string "regex.scm" "regexp-substitute")
address@hidden {Scheme Procedure} regexp-substitute port match address@hidden
address@hidden {Scheme Procedure} regexp-substitute port match item @dots{}
Write to @var{port} selected parts of the match structure @var{match}.
Or if @var{port} is @code{#f} then form a string from those parts and
return that.
@@ -276,7 +276,7 @@ re-ordering and hyphenating the fields.
@c begin (scm-doc-string "regex.scm" "regexp-substitute")
address@hidden {Scheme Procedure} regexp-substitute/global port regexp target
address@hidden
address@hidden {Scheme Procedure} regexp-substitute/global port regexp target
address@hidden
@cindex search and replace
Write to @var{port} selected parts of matches of @var{regexp} in
@var{target}. If @var{port} is @code{#f} then form a string from
diff --git a/doc/ref/api-scheduling.texi b/doc/ref/api-scheduling.texi
index 9320cb5..a301663 100644
--- a/doc/ref/api-scheduling.texi
+++ b/doc/ref/api-scheduling.texi
@@ -323,8 +323,8 @@ the error to the current error port. The @var{arg} @dots{}
expressions are evaluated in the new thread.
@end deffn
address@hidden macro begin-thread first address@hidden
-Evaluate forms @var{first} and @var{rest} in a new thread formed by
address@hidden macro begin-thread expr1 expr2 @dots{}
+Evaluate forms @var{expr1} @var{expr2} @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.
@end deffn
@@ -353,10 +353,10 @@ Acquiring requisite mutexes in a fixed order (like always
A before B)
in all threads is one way to avoid such problems.
@sp 1
address@hidden {Scheme Procedure} make-mutex . flags
address@hidden {Scheme Procedure} make-mutex flag @dots{}
@deffnx {C Function} scm_make_mutex ()
@deffnx {C Function} scm_make_mutex_with_flags (SCM flags)
-Return a new mutex. It is initially unlocked. If @var{flags} is
+Return a new mutex. It is initially unlocked. If @var{flag} @dots{} is
specified, it must be a list of symbols specifying configuration flags
for the newly-created mutex. The supported flags are:
@table @code
@@ -523,25 +523,25 @@ available from
(use-modules (ice-9 threads))
@end example
address@hidden macro with-mutex mutex address@hidden
-Lock @var{mutex}, evaluate the @var{body} forms, then unlock
address@hidden The return value is the return from the last @var{body}
-form.
address@hidden macro with-mutex mutex body1 body2 @dots{}
+Lock @var{mutex}, evaluate the body @var{body1} @var{body2} @dots{},
+then unlock @var{mutex}. The return value is that returned by the last
+body form.
The lock, body and unlock form the branches of a @code{dynamic-wind}
(@pxref{Dynamic Wind}), so @var{mutex} is automatically unlocked if an
-error or new continuation exits @var{body}, and is re-locked if
address@hidden is re-entered by a captured continuation.
+error or new continuation exits the body, and is re-locked if
+the body is re-entered by a captured continuation.
@end deffn
address@hidden macro monitor address@hidden
-Evaluate the @var{body} forms, with a mutex locked so only one thread
-can execute that code at any one time. The return value is the return
-from the last @var{body} form.
address@hidden macro monitor body1 body2 @dots{}
+Evaluate the body form @var{body1} @var{body2} @dots{} with a mutex
+locked so only one thread can execute that code at any one time. The
+return value is the return from the last body form.
Each @code{monitor} form has its own private mutex and the locking and
evaluation is as per @code{with-mutex} above. A standard mutex
-(@code{make-mutex}) is used, which means @var{body} must not
+(@code{make-mutex}) is used, which means the body must not
recursively re-enter the @code{monitor} form.
The term ``monitor'' comes from operating system theory, where it
@@ -890,11 +890,11 @@ canonical form. For example,
@end example
@end defun
address@hidden {Scheme Syntax} parameterize ((param value) @dots{}) body @dots{}
address@hidden {library syntax} parameterize ((param value) @dots{}) body1
body2 @dots{}
Establish a new dynamic scope with the given @var{param}s bound to new
-locations and set to the given @var{value}s. @var{body} is evaluated
-in that environment, the result is the return from the last form in
address@hidden
+locations and set to the given @var{value}s. @var{body1} @var{body2}
address@hidden is evaluated in that environment. The value returned is that of
+last body form.
Each @var{param} is an expression which is evaluated to get the
parameter object. Often this will just be the name of a variable
@@ -1058,8 +1058,8 @@ the results to the corresponding @var{var} variables, and
then evaluate
expressions for the bindings are evaluated in parallel.
@end deffn
address@hidden {Scheme Procedure} par-map proc lst1 @dots{} lstN
address@hidden {Scheme Procedure} par-for-each proc lst1 @dots{} lstN
address@hidden {Scheme Procedure} par-map proc lst1 lst2 @dots{}
address@hidden {Scheme Procedure} par-for-each proc lst1 lst2 @dots{}
Call @var{proc} on the elements of the given lists. @code{par-map}
returns a list comprising the return values from @var{proc}.
@code{par-for-each} returns an unspecified value, but waits for all
@@ -1084,8 +1084,8 @@ completion, which makes them quite expensive.
Therefore, they should be avoided.
address@hidden {Scheme Procedure} n-par-map n proc lst1 @dots{} lstN
address@hidden {Scheme Procedure} n-par-for-each n proc lst1 @dots{} lstN
address@hidden {Scheme Procedure} n-par-map n proc lst1 lst2 @dots{}
address@hidden {Scheme Procedure} n-par-for-each n proc lst1 lst2 @dots{}
Call @var{proc} on the elements of the given lists, in the same way as
@code{par-map} and @code{par-for-each} above, but use no more than
@var{n} threads at any one time. The order in which calls are
@@ -1097,7 +1097,7 @@ a dual-CPU system for instance @address@hidden might be
enough to
keep the CPUs utilized, and not consume too much memory.
@end deffn
address@hidden {Scheme Procedure} n-for-each-par-map n sproc pproc lst1 @dots{}
lstN
address@hidden {Scheme Procedure} n-for-each-par-map n sproc pproc lst1 lst2
@dots{}
Apply @var{pproc} to the elements of the given lists, and apply
@var{sproc} to each result returned by @var{pproc}. The final return
value is unspecified, but all calls will have been completed before
diff --git a/doc/ref/api-utility.texi b/doc/ref/api-utility.texi
index ba6139f..9ab1eee 100644
--- a/doc/ref/api-utility.texi
+++ b/doc/ref/api-utility.texi
@@ -583,11 +583,11 @@ value of this procedure is not specified.
Convert the procedure list of @var{hook} to a list.
@end deffn
address@hidden {Scheme Procedure} run-hook hook . args
address@hidden {Scheme Procedure} run-hook hook arg @dots{}
@deffnx {C Function} scm_run_hook (hook, args)
-Apply all procedures from the hook @var{hook} to the arguments
address@hidden The order of the procedure application is first to
-last. The return value of this procedure is not specified.
+Apply all procedures from the hook @var{hook} to the arguments @var{arg}
address@hidden The order of the procedure application is first to last.
+The return value of this procedure is not specified.
@end deffn
If, in C code, you are certain that you have a hook object and well
diff --git a/doc/ref/goops.texi b/doc/ref/goops.texi
index 10192eb..bc04985 100644
--- a/doc/ref/goops.texi
+++ b/doc/ref/goops.texi
@@ -97,11 +97,12 @@ Class options, slot descriptions and inheritance are
discussed more
below.
@cindex slot
address@hidden syntax define-class name (super @dots{}) slot-definition @dots{}
. options
address@hidden syntax define-class name (super @dots{}) @
+ slot-definition @dots{} class-option @dots{}
Define a class called @var{name} that inherits from @var{super}s, with
-direct slots defined by @var{slot-definition}s and class options
address@hidden The newly created class is bound to the variable name
address@hidden in the current environment.
+direct slots defined by @var{slot-definition}s and @var{class-option}s.
+The newly created class is bound to the variable name @var{name} in the
+current environment.
Each @var{slot-definition} is either a symbol that names the slot or a
list,
@@ -115,8 +116,7 @@ list with an even number of elements. The even-numbered
elements of
@var{slot-options} (counting from zero) are slot option keywords; the
odd-numbered elements are the corresponding values for those keywords.
address@hidden is a similarly structured list containing class option
-keywords and corresponding values.
+Each @var{class-option} is an option keyword and corresponding value.
@end deffn
As an example, let us define a type for representing a complex number
@@ -183,13 +183,13 @@ creates a new @code{<my-complex>} object and binds it to
the Scheme
variable @code{c}.
@deffn generic make
address@hidden method make (class <class>) . initargs
address@hidden method make (class <class>) initarg @dots{}
Create and return a new instance of class @var{class}, initialized using
address@hidden
address@hidden @enddots{}.
-In theory, @var{initargs} can have any structure that is understood by
-whatever methods get applied when the @code{initialize} generic function
-is applied to the newly allocated instance.
+In theory, @var{initarg} @dots{} can have any structure that is
+understood by whatever methods get applied when the @code{initialize}
+generic function is applied to the newly allocated instance.
In practice, specialized @code{initialize} methods would normally call
@code{(next-method)}, and so eventually the standard GOOPS
@@ -206,7 +206,7 @@ instance's class. Any unprocessed keyword value pairs are
ignored.
@end deffn
@deffn generic make-instance
address@hidden method make-instance (class <class>) . initargs
address@hidden method make-instance (class <class>) initarg @dots{}
@code{make-instance} is an alias for @code{make}.
@end deffn
@@ -674,9 +674,9 @@ setter). Any other previous value, including an existing
generic
function, is discarded and replaced by a new, empty generic function.
@end deffn
address@hidden syntax define-method (generic parameter @dots{}) . body
address@hidden syntax define-method (generic parameter @dots{}) body @dots{}
Define a method for the generic function or accessor @var{generic} with
-parameters @var{parameter}s and body @var{body}.
+parameters @var{parameter}s and body @var{body} @enddots{}.
@var{generic} is a generic function. If @var{generic} is a variable
which is not yet bound to a generic function object, the expansion of
@@ -688,12 +688,12 @@ generic-with-setter object, the expansion will include a
call to
Each @var{parameter} must be either a symbol or a two-element list
@code{(@var{symbol} @var{class})}. The symbols refer to variables in
-the @var{body} that will be bound to the parameters supplied by the
+the body forms that will be bound to the parameters supplied by the
caller when calling this method. The @var{class}es, if present,
specify the possible combinations of parameters to which this method
can be applied.
address@hidden is the body of the method definition.
address@hidden @dots{} are the bodies of the method definition.
@end deffn
@code{define-method} expressions look a little like Scheme procedure
@@ -1698,10 +1698,10 @@ If you customize these functions for particular classes
or metaclasses,
you may still want to use @code{goops-error} to signal any error
conditions that you detect.
address@hidden procedure goops-error format-string . args
address@hidden procedure goops-error format-string arg @dots{}
Raise an error with key @code{goops-error} and error message constructed
-from @var{format-string} and @var{args}. Error message formatting is
-as done by @code{scm-error}.
+from @var{format-string} and @var{arg} @enddots{}. Error message
+formatting is as done by @code{scm-error}.
@end deffn
@@ -2228,11 +2228,12 @@ handles the redefinition by invoking
@code{class-redefinition}
(@pxref{Redefining a Class}).
@end itemize
address@hidden syntax class name (super @dots{}) slot-definition @dots{} .
options
address@hidden syntax class name (super @dots{}) @
+ slot-definition @dots{} class-option @dots{}
Return a newly created class that inherits from @var{super}s, with
-direct slots defined by @var{slot-definition}s and class options
address@hidden For the format of @var{slot-definition}s and
address@hidden, see @ref{Class Definition,, define-class}.
+direct slots defined by @var{slot-definition}s and @var{class-option}s.
+For the format of @var{slot-definition}s and @var{class-option}s, see
address@hidden Definition,, define-class}.
@end deffn
@noindent @code{class} expands to an expression which
@@ -2250,13 +2251,12 @@ calls @code{make-class} to create the class with the
processed and
evaluated parameters.
@end itemize
address@hidden procedure make-class supers slots . options
address@hidden procedure make-class supers slots class-option @dots{}
Return a newly created class that inherits from @var{supers}, with
-direct slots defined by @var{slots} and class options @var{options}.
-For the format of @var{slots} and @var{options}, see @ref{Class
+direct slots defined by @var{slots} and @var{class-option}s. For the
+format of @var{slots} and @var{class-option}s, see @ref{Class
Definition,, define-class}, except note that for @code{make-class},
address@hidden and @var{options} are separate list parameters: @var{slots}
-here is a list of slot definitions.
address@hidden is a separate list of slot definitions.
@end deffn
@noindent @code{make-class}
@@ -2307,18 +2307,19 @@ has to be created once.
The @code{env} parameter is ignored.
@end deffn
address@hidden generic make metaclass @dots{}
address@hidden generic make metaclass initarg @dots{}
@var{metaclass} is the metaclass of the class being defined, either
taken from the @code{#:metaclass} class option or computed by
@code{ensure-metaclass}. The applied method must create and return the
fully initialized class metaobject for the new class definition.
@end deffn
-The @code{(make @var{metaclass} @dots{})} invocation is a particular
-case of the instance creation protocol covered in the previous section.
-It will create an class metaobject with metaclass @var{metaclass}. By
-default, this metaobject will be initialized by the @code{initialize}
-method that is specialized for instances of type @code{<class>}.
+The @code{(make @var{metaclass} @var{initarg} @dots{})} invocation is a
+particular case of the instance creation protocol covered in the
+previous section. It will create an class metaobject with metaclass
address@hidden By default, this metaobject will be initialized by the
address@hidden method that is specialized for instances of type
address@hidden<class>}.
The @code{initialize} method for classes (signature @code{(initialize
<class> initargs)}) calls the following generic functions.
@@ -2565,7 +2566,7 @@ calls @code{add-method!} to add this method to the
relevant generic
function.
@end itemize
address@hidden syntax method (parameter @dots{}) . body
address@hidden syntax method (parameter @dots{}) body @dots{}
Make a method whose specializers are defined by the classes in
@var{parameter}s and whose procedure definition is constructed from the
@var{parameter} symbols and @var{body} forms.
diff --git a/doc/ref/match.texi b/doc/ref/match.texi
index d1618ce..40b5be8 100644
--- a/doc/ref/match.texi
+++ b/doc/ref/match.texi
@@ -64,16 +64,16 @@ bound to, respectively, the first and second element of
@var{l}.
The pattern matcher is defined as follows:
address@hidden {Scheme Syntax} match exp clause ...
-Match object @var{exp} against the patterns in the given @var{clause}s,
-in the order in which they appear. Return the value produced by the
-first matching clause. If no @var{clause} matches, throw an exception
-with key @code{match-error}.
-
-Each @var{clause} has the form @code{(pattern body)}. Each
address@hidden must follow the syntax described below. Each @var{body}
-is an arbitrary Scheme expression, possibly referring to pattern
-variables of @var{pattern}.
address@hidden {Scheme Syntax} match exp clause1 clause2 @dots{}
+Match object @var{exp} against the patterns in @var{clause1}
address@hidden @dots{} in the order in which they appear. Return the
+value produced by the first matching clause. If no clause matches,
+throw an exception with key @code{match-error}.
+
+Each clause has the form @code{(pattern body1 body2 @dots{})}. Each
address@hidden must follow the syntax described below. Each body is an
+arbitrary Scheme expression, possibly referring to pattern variables of
address@hidden
@end deffn
@c FIXME: Document other forms:
diff --git a/doc/ref/misc-modules.texi b/doc/ref/misc-modules.texi
index 022b7cb..cf1e0e4 100644
--- a/doc/ref/misc-modules.texi
+++ b/doc/ref/misc-modules.texi
@@ -156,7 +156,7 @@ C programmers will note the similarity between
@code{format} and
instead of @nicode{%}, and are more powerful.
@sp 1
address@hidden {Scheme Procedure} format dest fmt address@hidden
address@hidden {Scheme Procedure} format dest fmt arg @dots{}
Write output specified by the @var{fmt} string to @var{dest}.
@var{dest} can be an output port, @code{#t} for
@code{current-output-port} (@pxref{Default Ports}), or @code{#f} to
@@ -1695,35 +1695,35 @@ secondly the number of elements in that list.
Return a vector which is the entire contents of @var{stream}.
@end deffn
address@hidden {Scheme Procedure} stream-fold proc init stream0 @dots{} streamN
address@hidden stream-fold proc init stream1 stream2 @dots{}
Apply @var{proc} successively over the elements of the given streams,
from first to last until the end of the shortest stream is reached.
Return the result from the last @var{proc} call.
-Each call is @code{(@var{proc} elem0 @dots{} elemN prev)}, where each
+Each call is @code{(@var{proc} elem1 elem2 @dots{} prev)}, where each
@var{elem} is from the corresponding @var{stream}. @var{prev} is the
return from the previous @var{proc} call, or the given @var{init} for
the first call.
address@hidden deffn
address@hidden defun
address@hidden {Scheme Procedure} stream-for-each proc stream0 @dots{} streamN
address@hidden stream-for-each proc stream1 stream2 @dots{}
Call @var{proc} on the elements from the given @var{stream}s. The
return value is unspecified.
-Each call is @code{(@var{proc} elem0 @dots{} elemN)}, where each
+Each call is @code{(@var{proc} elem1 elem2 @dots{})}, where each
@var{elem} is from the corresponding @var{stream}.
@code{stream-for-each} stops when it reaches the end of the shortest
@var{stream}.
address@hidden deffn
address@hidden defun
address@hidden {Scheme Procedure} stream-map proc stream0 @dots{} streamN
address@hidden stream-map proc stream1 stream2 @dots{}
Return a new stream which is the results of applying @var{proc} to the
elements of the given @var{stream}s.
-Each call is @code{(@var{proc} elem0 @dots{} elemN)}, where each
+Each call is @code{(@var{proc} elem1 elem2 @dots{})}, where each
@var{elem} is from the corresponding @var{stream}. The new stream
ends when the end of the shortest given @var{stream} is reached.
address@hidden deffn
address@hidden defun
@node Buffered Input
diff --git a/doc/ref/posix.texi b/doc/ref/posix.texi
index 9933495..0a688e9 100644
--- a/doc/ref/posix.texi
+++ b/doc/ref/posix.texi
@@ -953,7 +953,7 @@ which is usual for ordinary file creation,
@end deffn
@deffn {Scheme Procedure} tmpfile
address@hidden {C Function} scm_tmpfile
address@hidden {C Function} scm_tmpfile ()
Return an input/output port to a unique temporary file
named using the path prefix @code{P_tmpdir} defined in
@file{stdio.h}.
@@ -1698,12 +1698,12 @@ If @code{system} is called without arguments, return a
boolean
indicating whether the command processor is available.
@end deffn
address@hidden {Scheme Procedure} system* . args
address@hidden {Scheme Procedure} system* arg1 arg2 @dots{}
@deffnx {C Function} scm_system_star (args)
-Execute the command indicated by @var{args}. The first element must
-be a string indicating the command to be executed, and the remaining
-items must be strings representing each of the arguments to that
-command.
+Execute the command indicated by @var{arg1} @var{arg2} @enddots{}. The
+first element must be a string indicating the command to be executed,
+and the remaining items must be strings representing each of the
+arguments to that command.
This function returns the exit status of the command as provided by
@code{waitpid}. This value can be handled with @code{status:exit-val}
@@ -1743,7 +1743,7 @@ in the child would upset the protocol in the parent, so
@code{primitive-_exit} should be used to exit without that.
@end deffn
address@hidden {Scheme Procedure} execl filename . args
address@hidden {Scheme Procedure} execl filename arg @dots{}
@deffnx {C Function} scm_execl (filename, args)
Executes the file named by @var{filename} as a new process image.
The remaining arguments are supplied to the process; from a C program
@@ -1758,7 +1758,7 @@ This procedure is currently implemented using the
@code{execv} system
call, but we call it @code{execl} because of its Scheme calling interface.
@end deffn
address@hidden {Scheme Procedure} execlp filename . args
address@hidden {Scheme Procedure} execlp filename arg @dots{}
@deffnx {C Function} scm_execlp (filename, args)
Similar to @code{execl}, however if
@var{filename} does not contain a slash
@@ -1769,7 +1769,7 @@ This procedure is currently implemented using the
@code{execvp} system
call, but we call it @code{execlp} because of its Scheme calling interface.
@end deffn
address@hidden {Scheme Procedure} execle filename env . args
address@hidden {Scheme Procedure} execle filename env arg @dots{}
@deffnx {C Function} scm_execle (filename, env, args)
Similar to @code{execl}, but the environment of the new process is
specified by @var{env}, which must be a list of strings as returned by the
@@ -2841,7 +2841,7 @@ created with,
@deffn {Scheme Procedure} make-socket-address AF_INET ipv4addr port
@deffnx {Scheme Procedure} make-socket-address AF_INET6 ipv6addr port
[flowinfo [scopeid]]
@deffnx {Scheme Procedure} make-socket-address AF_UNIX path
address@hidden {C Function} scm_make_socket_address family address arglist
address@hidden {C Function} scm_make_socket_address (family, address, arglist)
Return a new socket address object. The first argument is the address
family, one of the @code{AF} constants, then the arguments vary
according to the family.
diff --git a/doc/ref/r6rs.texi b/doc/ref/r6rs.texi
index df14cc0..f9bc9e9 100644
--- a/doc/ref/r6rs.texi
+++ b/doc/ref/r6rs.texi
@@ -273,8 +273,10 @@ grouped below by the existing manual sections to which
they correspond.
@end deffn
@deffn {Scheme Syntax} define-syntax keyword expression
address@hidden {Scheme Syntax} let-syntax ((keyword transformer) ...) exp ...
address@hidden {Scheme Syntax} letrec-syntax ((keyword transformer) ...) exp ...
address@hidden {Scheme Syntax} let-syntax ((keyword transformer) @dots{})
+ exp1 exp2 @dots{}
address@hidden {Scheme Syntax} letrec-syntax ((keyword transformer) @dots{})
+ exp1 exp2 @dots{}
@xref{Defining Macros}, for documentation.
@end deffn
@@ -403,7 +405,7 @@ grouped below by the existing manual sections to which they
correspond.
@xref{SRFI-1 Fold and Map}, for documentation.
@end deffn
address@hidden {Scheme Procedure} list elem1 ... elemN
address@hidden {Scheme Procedure} list elem @dots{}
@xref{List Constructors}, for documentation.
@end deffn
@@ -413,7 +415,8 @@ grouped below by the existing manual sections to which they
correspond.
@xref{List Selection}, for documentation.
@end deffn
address@hidden {Scheme Procedure} append lst1 ... lstN
address@hidden {Scheme Procedure} append lst @dots{} obj
address@hidden {Scheme Procedure} append
@deffnx {Scheme Procedure} reverse lst
@xref{Append/Reverse}, for documentation.
@end deffn
@@ -440,15 +443,15 @@ grouped below by the existing manual sections to which
they correspond.
@xref{String Selection}, for documentation.
@end deffn
address@hidden {Scheme Procedure} string=? [s1 [s2 . rest]]
address@hidden {Scheme Procedure} string<? [s1 [s2 . rest]]
address@hidden {Scheme Procedure} string>? [s1 [s2 . rest]]
address@hidden {Scheme Procedure} string<=? [s1 [s2 . rest]]
address@hidden {Scheme Procedure} string>=? [s1 [s2 . rest]]
address@hidden {Scheme Procedure} string=? s1 s2 s3 @dots{}
address@hidden {Scheme Procedure} string<? s1 s2 s3 @dots{}
address@hidden {Scheme Procedure} string>? s1 s2 s3 @dots{}
address@hidden {Scheme Procedure} string<=? s1 s2 s3 @dots{}
address@hidden {Scheme Procedure} string>=? s1 s2 s3 @dots{}
@xref{String Comparison}, for documentation.
@end deffn
address@hidden {Scheme Procedure} string-append . args
address@hidden {Scheme Procedure} string-append arg @dots{}
@xref{Reversing and Appending Strings}, for documentation.
@end deffn
@@ -579,7 +582,7 @@ These procedures implement the @code{map} and
@code{for-each} contracts
over vectors.
@end deffn
address@hidden {Scheme Procedure} vector . l
address@hidden {Scheme Procedure} vector arg @dots{}
@deffnx {Scheme Procedure} vector? obj
@deffnx {Scheme Procedure} make-vector len
@deffnx {Scheme Procedure} make-vector len fill
@@ -600,7 +603,7 @@ over vectors.
@xref{Continuations}, for documentation.
@end deffn
address@hidden {Scheme Procedure} values arg1 ... argN
address@hidden {Scheme Procedure} values arg @dots{}
@deffnx {Scheme Procedure} call-with-values producer consumer
@xref{Multiple Values}, for documentation.
@end deffn
@@ -609,7 +612,7 @@ over vectors.
@xref{Dynamic Wind}, for documentation.
@end deffn
address@hidden {Scheme Procedure} apply proc arg1 ... argN arglst
address@hidden {Scheme Procedure} apply proc arg @dots{} arglst
@xref{Fly Evaluation}, for documentation.
@end deffn
@@ -717,8 +720,8 @@ These procedures are identical to the ones provided by
SRFI-1.
@xref{SRFI-1 Filtering and Partitioning}, for @code{partition}.
@end deffn
address@hidden {Scheme Procedure} fold-left combine nil list1 list2 ... listn
address@hidden {Scheme Procedure} fold-right combine nil list1 list2 ... listn
address@hidden {Scheme Procedure} fold-left combine nil list1 list2 @dots{}
address@hidden {Scheme Procedure} fold-right combine nil list1 list2 @dots{}
These procedures are identical to the @code{fold} and @code{fold-right}
procedures provided by SRFI-1. @xref{SRFI-1 Fold and Map}, for
documentation.
@@ -903,7 +906,7 @@ compatible with either.
The @code{(rnrs records syntactic (6))} library exports the syntactic
API for working with R6RS records.
address@hidden {Scheme Syntax} define-record-type name-spec record-clause*
address@hidden {Scheme Syntax} define-record-type name-spec record-clause
@dots{}
Defines a new record type, introducing bindings for a record-type
descriptor, a record constructor descriptor, a constructor procedure,
a record predicate, and accessor and mutator procedures for the new
diff --git a/doc/ref/scheme-using.texi b/doc/ref/scheme-using.texi
index 64510ca..3d43913 100644
--- a/doc/ref/scheme-using.texi
+++ b/doc/ref/scheme-using.texi
@@ -230,7 +230,7 @@ Show description/documentation.
Change modules / Show current module.
@end deffn
address@hidden {REPL Command} import [module ...]
address@hidden {REPL Command} import module @dots{}
Import modules / List those imported.
@end deffn
@@ -247,7 +247,7 @@ List current bindings.
@end deffn
@deffn {REPL Command} in module expression
address@hidden {REPL Command} in module command [args ...]
address@hidden {REPL Command} in module command arg @dots{}
Evaluate an expression, or alternatively, execute another meta-command
in the context of a module. For example, @samp{,in (foo bar) ,binding}
will show the bindings in the module @code{(foo bar)}.
diff --git a/doc/ref/srfi-modules.texi b/doc/ref/srfi-modules.texi
index cb29f18..fdc316f 100644
--- a/doc/ref/srfi-modules.texi
+++ b/doc/ref/srfi-modules.texi
@@ -475,15 +475,14 @@ first containing the first elements of each lists and the
second
containing the second elements of each lists, and so on.
@end deffn
address@hidden {Scheme Procedure} count pred lst1 @dots{} lstN
address@hidden {Scheme Procedure} count pred lst1 lst2 @dots{}
Return a count of the number of times @var{pred} returns true when
called on elements from the given lists.
@var{pred} is called with @var{N} parameters @code{(@var{pred}
address@hidden @dots{} @var{elemN})}, each element being from the
-corresponding @var{lst1} @dots{} @var{lstN}. The first call is with
-the first element of each list, the second with the second element
-from each, and so on.
address@hidden @dots{} @var{elemN} )}, each element being from the
+corresponding list. The first call is with the first element of each
+list, the second with the second element from each, and so on.
Counting stops when the end of the shortest list is reached. At least
one list must be non-circular.
@@ -497,14 +496,14 @@ one list must be non-circular.
@c FIXME::martin: Review me!
address@hidden {Scheme Procedure} fold proc init lst1 @dots{} lstN
address@hidden {Scheme Procedure} fold-right proc init lst1 @dots{} lstN
-Apply @var{proc} to the elements of @var{lst1} @dots{} @var{lstN} to
address@hidden {Scheme Procedure} fold proc init lst1 lst2 @dots{}
address@hidden {Scheme Procedure} fold-right proc init lst1 lst2 @dots{}
+Apply @var{proc} to the elements of @var{lst1} @var{lst2} @dots{} to
build a result, and return that result.
-Each @var{proc} call is @code{(@var{proc} @var{elem1} @dots{}
address@hidden @var{previous})}, where @var{elem1} is from @var{lst1},
-through @var{elemN} from @var{lstN}. @var{previous} is the return
+Each @var{proc} call is @code{(@var{proc} @var{elem1} @var{elem2}
address@hidden @var{previous})}, where @var{elem1} is from @var{lst1},
address@hidden is from @var{lst2}, and so on. @var{previous} is the return
from the previous call to @var{proc}, or the given @var{init} for the
first call. If any list is empty, just @var{init} is returned.
@@ -534,11 +533,11 @@ string, and the last among equal longest,
@result{} "xyz"
@end example
-If @var{lst1} through @var{lstN} have different lengths, @code{fold}
+If @var{lst1} @var{lst2} @dots{} have different lengths, @code{fold}
stops when the end of the shortest is reached; @code{fold-right}
-commences at the last element of the shortest. Ie.@: elements past
-the length of the shortest are ignored in the other @var{lst}s. At
-least one @var{lst} must be non-circular.
+commences at the last element of the shortest. Ie.@: elements past the
+length of the shortest are ignored in the other @var{lst}s. At least
+one @var{lst} must be non-circular.
@code{fold} should be preferred over @code{fold-right} if the order of
processing doesn't matter, or can be arranged either way, since
@@ -567,8 +566,8 @@ a variable in which to build the result, but a
self-contained
@code{for-each} would have to be written out each time.
@end deffn
address@hidden {Scheme Procedure} pair-fold proc init lst1 @dots{} lstN
address@hidden {Scheme Procedure} pair-fold-right proc init lst1 @dots{} lstN
address@hidden {Scheme Procedure} pair-fold proc init lst1 lst2 @dots{}
address@hidden {Scheme Procedure} pair-fold-right proc init lst1 lst2 @dots{}
The same as @code{fold} and @code{fold-right}, but apply @var{proc} to
the pairs of the lists instead of the list elements.
@end deffn
@@ -839,48 +838,51 @@ wanting to use @code{break} from within a @code{while}
loop will need
to make a new define under a different name.
@end deffn
address@hidden {Scheme Procedure} any pred lst1 lst2 @dots{} lstN
-Test whether any set of elements from @var{lst1} @dots{} lstN
-satisfies @var{pred}. If so the return value is the return from the
-successful @var{pred} call, or if not the return is @code{#f}.
address@hidden {Scheme Procedure} any pred lst1 lst2 @dots{}
+Test whether any set of elements from @var{lst1} @var{lst2} @dots{}
+satisfies @var{pred}. If so, the return value is the return value from
+the successful @var{pred} call, or if not, the return value is
address@hidden
-Each @var{pred} call is @code{(@var{pred} @var{elem1} @dots{}
address@hidden)} taking an element from each @var{lst}. The calls are
-made successively for the first, second, etc elements of the lists,
-stopping when @var{pred} returns address@hidden, or when the end of the
-shortest list is reached.
+If there are n list arguments, then @var{pred} must be a predicate
+taking n arguments. Each @var{pred} call is @code{(@var{pred}
address@hidden @var{elem2} @dots{} )} taking an element from each
address@hidden The calls are made successively for the first, second, etc.
+elements of the lists, stopping when @var{pred} returns address@hidden,
+or when the end of the shortest list is reached.
-The @var{pred} call on the last set of elements (ie.@: when the end of
+The @var{pred} call on the last set of elements (i.e., when the end of
the shortest list has been reached), if that point is reached, is a
tail call.
@end deffn
address@hidden {Scheme Procedure} every pred lst1 lst2 @dots{} lstN
-Test whether every set of elements from @var{lst1} @dots{} lstN
-satisfies @var{pred}. If so the return value is the return from the
-final @var{pred} call, or if not the return is @code{#f}.
address@hidden {Scheme Procedure} every pred lst1 lst2 @dots{}
+Test whether every set of elements from @var{lst1} @var{lst2} @dots{}
+satisfies @var{pred}. If so, the return value is the return from the
+final @var{pred} call, or if not, the return value is @code{#f}.
-Each @var{pred} call is @code{(@var{pred} @var{elem1} @dots{}
address@hidden)} taking an element from each @var{lst}. The calls are
-made successively for the first, second, etc elements of the lists,
-stopping if @var{pred} returns @code{#f}, or when the end of any of
-the lists is reached.
+If there are n list arguments, then @var{pred} must be a predicate
+taking n arguments. Each @var{pred} call is @code{(@var{pred}
address@hidden @var{elem2 @dots{}})} taking an element from each
address@hidden The calls are made successively for the first, second, etc.
+elements of the lists, stopping if @var{pred} returns @code{#f}, or when
+the end of any of the lists is reached.
-The @var{pred} call on the last set of elements (ie.@: when the end of
+The @var{pred} call on the last set of elements (i.e., when the end of
the shortest list has been reached) is a tail call.
-If one of @var{lst1} @dots{} @var{lstN} is empty then no calls to
address@hidden are made, and the return is @code{#t}.
+If one of @var{lst1} @var{lst2} @dots{}is empty then no calls to
address@hidden are made, and the return value is @code{#t}.
@end deffn
address@hidden {Scheme Procedure} list-index pred lst1 @dots{} lstN
address@hidden {Scheme Procedure} list-index pred lst1 lst2 @dots{}
Return the index of the first set of elements, one from each of
address@hidden@address@hidden, which satisfies @var{pred}.
address@hidden @var{lst2} @dots{}, which satisfies @var{pred}.
address@hidden is called as @code{(@var{pred} elem1 @dots{} elemN)}.
address@hidden is called as @code{(@var{elem1} @var{elem2 @dots{}})}.
Searching stops when the end of the shortest @var{lst} is reached.
The return index starts from 0 for the first set of elements. If no
-set of elements pass then the return is @code{#f}.
+set of elements pass, then the return value is @code{#f}.
@example
(list-index odd? '(2 4 6 9)) @result{} 3
@@ -1045,11 +1047,11 @@ sameness. This predicate must be consistent with
@code{eq?}
@code{eq?} then they must also be equal under the predicate. This
simply means a given object must be equal to itself.
address@hidden {Scheme Procedure} lset<= = list1 list2 @dots{}
address@hidden {Scheme Procedure} lset<= = list @dots{}
Return @code{#t} if each list is a subset of the one following it.
-Ie.@: @var{list1} a subset of @var{list2}, @var{list2} a subset of
address@hidden, etc, for as many lists as given. If only one list or no
-lists are given then the return is @code{#t}.
+I.e., @var{list1} is a subset of @var{list2}, @var{list2} is a subset of
address@hidden, etc., for as many lists as given. If only one list or no
+lists are given, the return value is @code{#t}.
A list @var{x} is a subset of @var{y} if each element of @var{x} is
equal to some element in @var{y}. Elements are compared using the
@@ -1062,11 +1064,11 @@ given @var{=} procedure, called as @code{(@var{=} xelem
yelem)}.
@end example
@end deffn
address@hidden {Scheme Procedure} lset= = list1 list2 @dots{}
address@hidden {Scheme Procedure} lset= = list @dots{}
Return @code{#t} if all argument lists are set-equal. @var{list1} is
-compared to @var{list2}, @var{list2} to @var{list3}, etc, for as many
-lists as given. If only one list or no lists are given then the
-return is @code{#t}.
+compared to @var{list2}, @var{list2} to @var{list3}, etc., for as many
+lists as given. If only one list or no lists are given, the return
+value is @code{#t}.
Two lists @var{x} and @var{y} are set-equal if each element of @var{x}
is equal to some element of @var{y} and conversely each element of
@@ -1082,14 +1084,14 @@ yelem)}, but exactly which calls are made is
unspecified.
@end example
@end deffn
address@hidden {Scheme Procedure} lset-adjoin = list elem1 @dots{}
-Add to @var{list} any of the given @var{elem}s not already in the
-list. @var{elem}s are @code{cons}ed onto the start of @var{list} (so
-the return shares a common tail with @var{list}), but the order
-they're added is unspecified.
address@hidden {Scheme Procedure} lset-adjoin = list elem @dots{}
+Add to @var{list} any of the given @var{elem}s not already in the list.
address@hidden are @code{cons}ed onto the start of @var{list} (so the
+return value shares a common tail with @var{list}), but the order that
+the @var{elem}s are added is unspecified.
The given @var{=} procedure is used for comparing elements, called as
address@hidden(@var{=} listelem elem)}, ie.@: the second argument is one of
address@hidden(@var{=} listelem elem)}, i.e., the second argument is one of
the given @var{elem} parameters.
@example
@@ -1097,11 +1099,11 @@ the given @var{elem} parameters.
@end example
@end deffn
address@hidden {Scheme Procedure} lset-union = list1 list2 @dots{}
address@hidden {Scheme Procedure} lset-union! = list1 list2 @dots{}
address@hidden {Scheme Procedure} lset-union = list @dots{}
address@hidden {Scheme Procedure} lset-union! = list @dots{}
Return the union of the argument list sets. The result is built by
taking the union of @var{list1} and @var{list2}, then the union of
-that with @var{list3}, etc, for as many lists as given. For one list
+that with @var{list3}, etc., for as many lists as given. For one list
argument that list itself is the result, for no list arguments the
result is the empty list.
@@ -1197,8 +1199,8 @@ a tail with @var{list1}. @code{lset-diff+intersection!}
may modify
@var{list1} to form its results.
@end deffn
address@hidden {Scheme Procedure} lset-xor = list1 list2 @dots{}
address@hidden {Scheme Procedure} lset-xor! = list1 list2 @dots{}
address@hidden {Scheme Procedure} lset-xor = list @dots{}
address@hidden {Scheme Procedure} lset-xor! = list @dots{}
Return an XOR of the argument lists. For two lists this means those
elements which are in exactly one of the lists. For more than two
lists it means those elements which appear in an odd number of the
@@ -1461,18 +1463,18 @@ indicated type.
@deffnx {Scheme Procedure} make-f64vector n [value]
@deffnx {Scheme Procedure} make-c32vector n [value]
@deffnx {Scheme Procedure} make-c64vector n [value]
address@hidden {C Function} scm_make_u8vector n [value]
address@hidden {C Function} scm_make_s8vector n [value]
address@hidden {C Function} scm_make_u16vector n [value]
address@hidden {C Function} scm_make_s16vector n [value]
address@hidden {C Function} scm_make_u32vector n [value]
address@hidden {C Function} scm_make_s32vector n [value]
address@hidden {C Function} scm_make_u64vector n [value]
address@hidden {C Function} scm_make_s64vector n [value]
address@hidden {C Function} scm_make_f32vector n [value]
address@hidden {C Function} scm_make_f64vector n [value]
address@hidden {C Function} scm_make_c32vector n [value]
address@hidden {C Function} scm_make_c64vector n [value]
address@hidden {C Function} scm_make_u8vector (n, value)
address@hidden {C Function} scm_make_s8vector (n, value)
address@hidden {C Function} scm_make_u16vector (n, value)
address@hidden {C Function} scm_make_s16vector (n, value)
address@hidden {C Function} scm_make_u32vector (n, value)
address@hidden {C Function} scm_make_s32vector (n, value)
address@hidden {C Function} scm_make_u64vector (n, value)
address@hidden {C Function} scm_make_s64vector (n, value)
address@hidden {C Function} scm_make_f32vector (n, value)
address@hidden {C Function} scm_make_f64vector (n, value)
address@hidden {C Function} scm_make_c32vector (n, value)
address@hidden {C Function} scm_make_c64vector (n, value)
Return a newly allocated homogeneous numeric vector holding @var{n}
elements of the indicated type. If @var{value} is given, the vector
is initialized with that value, otherwise the contents are
@@ -1547,18 +1549,18 @@ Return the number of elements in @var{vec}.
@deffnx {Scheme Procedure} f64vector-ref vec i
@deffnx {Scheme Procedure} c32vector-ref vec i
@deffnx {Scheme Procedure} c64vector-ref vec i
address@hidden {C Function} scm_u8vector_ref (vec i)
address@hidden {C Function} scm_s8vector_ref (vec i)
address@hidden {C Function} scm_u16vector_ref (vec i)
address@hidden {C Function} scm_s16vector_ref (vec i)
address@hidden {C Function} scm_u32vector_ref (vec i)
address@hidden {C Function} scm_s32vector_ref (vec i)
address@hidden {C Function} scm_u64vector_ref (vec i)
address@hidden {C Function} scm_s64vector_ref (vec i)
address@hidden {C Function} scm_f32vector_ref (vec i)
address@hidden {C Function} scm_f64vector_ref (vec i)
address@hidden {C Function} scm_c32vector_ref (vec i)
address@hidden {C Function} scm_c64vector_ref (vec i)
address@hidden {C Function} scm_u8vector_ref (vec, i)
address@hidden {C Function} scm_s8vector_ref (vec, i)
address@hidden {C Function} scm_u16vector_ref (vec, i)
address@hidden {C Function} scm_s16vector_ref (vec, i)
address@hidden {C Function} scm_u32vector_ref (vec, i)
address@hidden {C Function} scm_s32vector_ref (vec, i)
address@hidden {C Function} scm_u64vector_ref (vec, i)
address@hidden {C Function} scm_s64vector_ref (vec, i)
address@hidden {C Function} scm_f32vector_ref (vec, i)
address@hidden {C Function} scm_f64vector_ref (vec, i)
address@hidden {C Function} scm_c32vector_ref (vec, i)
address@hidden {C Function} scm_c64vector_ref (vec, i)
Return the element at index @var{i} in @var{vec}. The first element
in @var{vec} is index 0.
@end deffn
@@ -1575,18 +1577,18 @@ in @var{vec} is index 0.
@deffnx {Scheme Procedure} f64vector-set! vec i value
@deffnx {Scheme Procedure} c32vector-set! vec i value
@deffnx {Scheme Procedure} c64vector-set! vec i value
address@hidden {C Function} scm_u8vector_set_x (vec i value)
address@hidden {C Function} scm_s8vector_set_x (vec i value)
address@hidden {C Function} scm_u16vector_set_x (vec i value)
address@hidden {C Function} scm_s16vector_set_x (vec i value)
address@hidden {C Function} scm_u32vector_set_x (vec i value)
address@hidden {C Function} scm_s32vector_set_x (vec i value)
address@hidden {C Function} scm_u64vector_set_x (vec i value)
address@hidden {C Function} scm_s64vector_set_x (vec i value)
address@hidden {C Function} scm_f32vector_set_x (vec i value)
address@hidden {C Function} scm_f64vector_set_x (vec i value)
address@hidden {C Function} scm_c32vector_set_x (vec i value)
address@hidden {C Function} scm_c64vector_set_x (vec i value)
address@hidden {C Function} scm_u8vector_set_x (vec, i, value)
address@hidden {C Function} scm_s8vector_set_x (vec, i, value)
address@hidden {C Function} scm_u16vector_set_x (vec, i, value)
address@hidden {C Function} scm_s16vector_set_x (vec, i, value)
address@hidden {C Function} scm_u32vector_set_x (vec, i, value)
address@hidden {C Function} scm_s32vector_set_x (vec, i, value)
address@hidden {C Function} scm_u64vector_set_x (vec, i, value)
address@hidden {C Function} scm_s64vector_set_x (vec, i, value)
address@hidden {C Function} scm_f32vector_set_x (vec, i, value)
address@hidden {C Function} scm_f64vector_set_x (vec, i, value)
address@hidden {C Function} scm_c32vector_set_x (vec, i, value)
address@hidden {C Function} scm_c64vector_set_x (vec, i, value)
Set the element at index @var{i} in @var{vec} to @var{value}. The
first element in @var{vec} is index 0. The return value is
unspecified.
@@ -1734,13 +1736,13 @@ Return the number of elements in @var{vec}.
@end deffn
@deffn {Scheme Procedure} uniform-vector-ref vec i
address@hidden {C Function} scm_uniform_vector_ref (vec i)
address@hidden {C Function} scm_uniform_vector_ref (vec, i)
Return the element at index @var{i} in @var{vec}. The first element
in @var{vec} is index 0.
@end deffn
@deffn {Scheme Procedure} uniform-vector-set! vec i value
address@hidden {C Function} scm_uniform_vector_set_x (vec i value)
address@hidden {C Function} scm_uniform_vector_set_x (vec, i, value)
Set the element at index @var{i} in @var{vec} to @var{value}. The
first element in @var{vec} is index 0. The return value is
unspecified.
@@ -3156,10 +3158,10 @@ parameters of a function. It can be used with,
(use-modules (srfi srfi-26))
@end example
address@hidden {library syntax} cut slot @dots{}
address@hidden {library syntax} cute slot @dots{}
-Return a new procedure which will make a call (@var{slot} @dots{}) but
-with selected parameters specialized to given expressions.
address@hidden {library syntax} cut slot1 slot2 @dots{}
address@hidden {library syntax} cute slot1 slot2 @dots{}
+Return a new procedure which will make a call (@var{slot1} @var{slot2}
address@hidden) but with selected parameters specialized to given expressions.
An example will illustrate the idea. The following is a
specialization of @code{write}, sending output to
@@ -3517,7 +3519,7 @@ values as in the following example:
Note that all fields of @var{type} and its supertypes must be specified.
@end deffn
address@hidden {Scheme Procedure} make-compound-condition . conditions
address@hidden {Scheme Procedure} make-compound-condition condition1 condition2
@dots{}
Return a new compound condition composed of @var{conditions}. The
returned condition has the type of each condition of @var{conditions}
(per @code{condition-has-type?}).
@@ -3569,13 +3571,14 @@ The example below defines condition type @code{&foo},
inheriting from
@end lisp
@end deffn
address@hidden {library syntax} condition type-field-bindings...
-Return a new condition, or compound condition, initialized according to
address@hidden Each @var{type-field-binding} must have the
-form @code{(type field-specs...)}, where @var{type} is the name of a
-variable bound to condition type; each @var{field-spec} must have the
-form @code{(field-name value)} where @var{field-name} is a symbol
-denoting the field being initialized to @var{value}. As for
address@hidden {library syntax} condition type-field-binding1
type-field-binding2 @dots{}
+Return a new condition or compound condition, initialized according to
address@hidden @var{type-field-binding2} @enddots{}. Each
address@hidden must have the form @code{(type
+field-specs...)}, where @var{type} is the name of a variable bound to a
+condition type; each @var{field-spec} must have the form
address@hidden(field-name value)} where @var{field-name} is a symbol denoting
+the field being initialized to @var{value}. As for
@code{make-condition}, all fields must be specified.
The following example returns a simple condition:
@@ -3703,12 +3706,12 @@ Return the specified field of @var{opt}, an option
object, as
described above for @code{option}.
@end deffn
address@hidden {Scheme Procedure} args-fold args options
unrecognized-option-proc operand-proc seeds @dots{}
-Process @var{args}, a list of program arguments such as that returned
-by @code{(cdr (program-arguments))}, in order against @var{options}, a
-list of option objects as described above. All functions called take
-the ``seeds'', or the last multiple-values as multiple arguments,
-starting with @var{seeds}, and must return the new seeds. Return the
address@hidden {Scheme Procedure} args-fold args options
unrecognized-option-proc operand-proc seed @dots{}
+Process @var{args}, a list of program arguments such as that returned by
address@hidden(cdr (program-arguments))}, in order against @var{options}, a list
+of option objects as described above. All functions called take the
+``seeds'', or the last multiple-values as multiple arguments, starting
+with @var{seed} @dots{}, and must return the new seeds. Return the
final seeds.
Call @code{unrecognized-option-proc}, which is like an option object's
@@ -4021,9 +4024,9 @@ SRFI-55 provides @code{require-extension} which is a
portable
mechanism to load selected SRFI modules. This is implemented in the
Guile core, there's no module needed to get SRFI-55 itself.
address@hidden {library syntax} require-extension address@hidden
-Require each of the given @var{clause} features, throwing an error if
-any are unavailable.
address@hidden {library syntax} require-extension clause1 clause2 @dots{}
+Require the features of @var{clause1} @var{clause2} @dots{} , throwing
+an error if any are unavailable.
A @var{clause} is of the form @code{(@var{identifier} arg...)}. The
only @var{identifier} currently supported is @code{srfi} and the
diff --git a/doc/ref/sxml-match.texi b/doc/ref/sxml-match.texi
index cf5c5d3..7a1a9ac 100644
--- a/doc/ref/sxml-match.texi
+++ b/doc/ref/sxml-match.texi
@@ -64,7 +64,7 @@ Dybvig at Indiana University.
@code{sxml-match} provides @code{case}-like form for pattern matching of XML
nodes.
address@hidden {Scheme Syntax} sxml-match input-expression clause ...
address@hidden {Scheme Syntax} sxml-match input-expression clause1 clause2
@dots{}
Match @var{input-expression}, an SXML tree, according to the given
@var{clause}s
(one or more), each consisting of a pattern and one or more expressions to be
evaluated if the pattern match succeeds. Optionally, each @var{clause} within
diff --git a/libguile/continuations.c b/libguile/continuations.c
index cf8b6ac..d991278 100644
--- a/libguile/continuations.c
+++ b/libguile/continuations.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995,1996,1998,2000,2001,2004, 2006, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1998,2000,2001,2004, 2006, 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
@@ -71,36 +71,35 @@ static scm_t_bits tc16_continuation;
#define META_HEADER(meta) meta, 0, 0, 0, 0, 0, 0, 0
#endif
-#define ALIGN_PTR(type,p,align) (type*)(ROUND_UP (((scm_t_bits)p), align))
+#define OBJCODE_TAG SCM_MAKE_OBJCODE_TAG (SCM_OBJCODE_TYPE_STATIC, 0)
-#ifdef SCM_ALIGNED
+#if defined (SCM_ALIGNED) && 0
#define SCM_DECLARE_STATIC_ALIGNED_ARRAY(type, sym) \
static const type sym[]
#define SCM_STATIC_ALIGNED_ARRAY(alignment, type, sym) \
static SCM_ALIGNED (alignment) const type sym[]
-#else
-#define SCM_DECLARE_STATIC_ALIGNED_ARRAY(type, sym) \
-static type *sym
-#define SCM_STATIC_ALIGNED_ARRAY(alignment, type, sym) \
-SCM_SNARF_INIT(sym = scm_malloc_pointerless (sizeof(sym##__unaligned)); \
- memcpy (sym, sym##__unaligned, sizeof(sym##__unaligned));) \
-static type *sym = NULL; \
-static const type sym##__unaligned[]
-#endif
-
-#define STATIC_OBJCODE_TAG \
- SCM_PACK (SCM_MAKE_OBJCODE_TAG (SCM_OBJCODE_TYPE_STATIC, 0))
-
#define SCM_STATIC_OBJCODE(sym) \
SCM_DECLARE_STATIC_ALIGNED_ARRAY (scm_t_uint8, sym##__bytecode); \
SCM_STATIC_ALIGNED_ARRAY (8, scm_t_cell, sym##__cells) = { \
- { STATIC_OBJCODE_TAG, SCM_PACK (sym##__bytecode) }, \
+ { SCM_PACK (OBJCODE_TAG), SCM_PACK (sym##__bytecode) }, \
{ SCM_BOOL_F, SCM_PACK (0) } \
}; \
static const SCM sym = SCM_PACK (sym##__cells); \
SCM_STATIC_ALIGNED_ARRAY (8, scm_t_uint8, sym##__bytecode)
+#else
+#define SCM_STATIC_OBJCODE(sym) \
+static SCM sym; \
+static scm_t_uint8 *sym##_bytecode; \
+SCM_SNARF_INIT(sym##_bytecode = scm_gc_malloc_pointerless
(sizeof(sym##_bytecode__unaligned), "partial continuation stub"); \
+ memcpy (sym##_bytecode, sym##_bytecode__unaligned,
sizeof(sym##_bytecode__unaligned));) \
+SCM_SNARF_INIT(sym = scm_double_cell (OBJCODE_TAG, \
+ (scm_t_bits)sym##_bytecode, \
+ SCM_UNPACK (SCM_BOOL_F), \
+ 0);) \
+static const scm_t_uint8 sym##_bytecode__unaligned[]
+#endif
+
-
SCM_STATIC_OBJCODE (cont_objcode) = {
/* This code is the same as in gsubr.c, except we use continuation_call
instead of subr_call. */
diff --git a/libguile/control.c b/libguile/control.c
index 661de8f..f8d2d60 100644
--- a/libguile/control.c
+++ b/libguile/control.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 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
@@ -81,36 +81,35 @@ scm_i_prompt_pop_abort_args_x (SCM vm)
#define META_HEADER(meta) meta, 0, 0, 0, 0, 0, 0, 0
#endif
-#define ALIGN_PTR(type,p,align) (type*)(ROUND_UP (((scm_t_bits)p), align))
+#define OBJCODE_TAG SCM_MAKE_OBJCODE_TAG (SCM_OBJCODE_TYPE_STATIC, 0)
-#ifdef SCM_ALIGNED
+#if defined (SCM_ALIGNED)
#define SCM_DECLARE_STATIC_ALIGNED_ARRAY(type, sym) \
static const type sym[]
#define SCM_STATIC_ALIGNED_ARRAY(alignment, type, sym) \
static SCM_ALIGNED (alignment) const type sym[]
-#else
-#define SCM_DECLARE_STATIC_ALIGNED_ARRAY(type, sym) \
-static type *sym
-#define SCM_STATIC_ALIGNED_ARRAY(alignment, type, sym) \
-SCM_SNARF_INIT(sym = scm_malloc_pointerless (sizeof(sym##__unaligned); \
- memcpy (sym, sym##__unaligned, sizeof(sym##__unaligned));) \
-static type *sym = NULL; \
-static const type sym##__unaligned[]
-#endif
-
-#define STATIC_OBJCODE_TAG \
- SCM_PACK (SCM_MAKE_OBJCODE_TAG (SCM_OBJCODE_TYPE_STATIC, 0))
-
#define SCM_STATIC_OBJCODE(sym) \
SCM_DECLARE_STATIC_ALIGNED_ARRAY (scm_t_uint8, sym##__bytecode); \
SCM_STATIC_ALIGNED_ARRAY (8, scm_t_cell, sym##__cells) = { \
- { STATIC_OBJCODE_TAG, SCM_PACK (sym##__bytecode) }, \
+ { SCM_PACK (OBJCODE_TAG), SCM_PACK (sym##__bytecode) }, \
{ SCM_BOOL_F, SCM_PACK (0) } \
}; \
static const SCM sym = SCM_PACK (sym##__cells); \
SCM_STATIC_ALIGNED_ARRAY (8, scm_t_uint8, sym##__bytecode)
+#else
+#define SCM_STATIC_OBJCODE(sym) \
+static SCM sym; \
+static scm_t_uint8 *sym##_bytecode; \
+SCM_SNARF_INIT(sym##_bytecode = scm_gc_malloc_pointerless
(sizeof(sym##_bytecode__unaligned), "partial continuation stub"); \
+ memcpy (sym##_bytecode, sym##_bytecode__unaligned,
sizeof(sym##_bytecode__unaligned));) \
+SCM_SNARF_INIT(sym = scm_double_cell (OBJCODE_TAG, \
+ (scm_t_bits)sym##_bytecode, \
+ SCM_UNPACK (SCM_BOOL_F), \
+ 0);) \
+static const scm_t_uint8 sym##_bytecode__unaligned[]
+#endif
+
-
SCM_STATIC_OBJCODE (cont_objcode) = {
/* Like in continuations.c, but with partial-cont-call. */
OBJCODE_HEADER (8, 19),
hooks/post-receive
--
GNU Guile
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.5-27-gbc02028,
Andy Wingo <=