[Top][All Lists]

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

[Guile-commits] GNU Guile branch, master, updated. v2.1.0-155-g521c542

From: Mark H Weaver
Subject: [Guile-commits] GNU Guile branch, master, updated. v2.1.0-155-g521c542
Date: Thu, 15 Aug 2013 08:09:31 +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".

The branch, master has been updated
       via  521c542199afa4f199746d5bbffc18a988cb30bc (commit)
       via  8d5d0425ce10dcf035fbf717852938291261bd7e (commit)
       via  b57162c3d21fdc9e48572d7a9d4009c37f2c647a (commit)
       via  62744c1a6a6d5fb3f2d6036ce82023beebbff2c1 (commit)
      from  f499d6e31a8554b3191c80c0e8c25e274ee5671d (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 521c542199afa4f199746d5bbffc18a988cb30bc
Merge: f499d6e 8d5d042
Author: Mark H Weaver <address@hidden>
Date:   Thu Aug 15 04:09:04 2013 -0400

    Merge remote-tracking branch 'origin/stable-2.0'


Summary of changes:
 doc/ref/api-compound.texi       |    8 ++++----
 module/              |    1 +
 module/ice-9/match.scm          |    4 ++--
 module/ice-9/match.upstream.scm |    5 ++++-
 4 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/doc/ref/api-compound.texi b/doc/ref/api-compound.texi
index 699e760..1990d77 100644
--- a/doc/ref/api-compound.texi
+++ b/doc/ref/api-compound.texi
@@ -459,8 +459,8 @@ 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{obj}.  @code{append!} modifies the
-given lists to form its return.
+structure with the final @var{obj}.  @code{append!} is permitted, but
+not required, to modify 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{lst} @dots{} @var{obj}.  That @var{lstlst}
@@ -474,8 +474,8 @@ itself is not modified or used in the return.
 @deffnx {C Function} scm_reverse_x (lst, newtail)
 Return a list comprising the elements of @var{lst}, in reverse order.
address@hidden constructs a new list, @code{reverse!} modifies
address@hidden in constructing its return.
address@hidden constructs a new list.  @code{reverse!} is permitted, but
+not required, to modify @var{lst} in constructing its return.
 For @code{reverse!}, the optional @var{newtail} is appended to the
 result.  @var{newtail} isn't reversed, it simply becomes the list
diff --git a/module/ b/module/
index 6d3b31f..dc7d058 100644
--- a/module/
+++ b/module/
@@ -36,6 +36,7 @@ VM_TARGETS := system/vm/assembler.go system/vm/disassembler.go
 $(VM_TARGETS): $(top_builddir)/libguile/vm-operations.h
 ice-9/boot-9.go: ice-9/boot-9.scm ice-9/quasisyntax.scm 
+ice-9/match.go: ice-9/match.scm ice-9/match.upstream.scm
 # We can compile these in any order, but it's fastest if we compile
 # psyntax and boot-9 first, then the compiler itself, then the rest of
diff --git a/module/ice-9/match.scm b/module/ice-9/match.scm
index 7fd191a..099afb5 100644
--- a/module/ice-9/match.scm
+++ b/module/ice-9/match.scm
@@ -24,9 +24,9 @@
-(define (error _ msg)
+(define (error _ . args)
   ;; Error procedure for run-time "no matching pattern" errors.
-  (throw 'match-error "match" msg))
+  (apply throw 'match-error "match" args))
 ;; Support for record matching.
diff --git a/module/ice-9/match.upstream.scm b/module/ice-9/match.upstream.scm
index 29f9dbe..4609883 100644
--- a/module/ice-9/match.upstream.scm
+++ b/module/ice-9/match.upstream.scm
@@ -284,7 +284,10 @@
   (syntax-rules (=>)
     ;; no more clauses, the match failed
     ((match-next v g+s)
-     (error 'match "no matching pattern"))
+     ;; Here we wrap error within a double set of parentheses, so that
+     ;; the call to 'error' won't be in tail position.  This allows the
+     ;; backtrace to show the source location of the failing match form.
+     ((error 'match "no matching pattern" v)))
     ;; named failure continuation
     ((match-next v g+s (pat (=> failure) . body) . rest)
      (let ((failure (lambda () (match-next v g+s . rest))))

GNU Guile

reply via email to

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