mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-09 21:40:33 +02:00
Merge remote-tracking branch 'origin/stable-2.0'
This commit is contained in:
commit
521c542199
4 changed files with 11 additions and 7 deletions
|
@ -459,8 +459,8 @@ list results if the last argument is not a proper list.
|
||||||
@end lisp
|
@end lisp
|
||||||
|
|
||||||
@code{append} doesn't modify the given lists, but the return may share
|
@code{append} doesn't modify the given lists, but the return may share
|
||||||
structure with the final @var{obj}. @code{append!} modifies the
|
structure with the final @var{obj}. @code{append!} is permitted, but
|
||||||
given lists to form its return.
|
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
|
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}
|
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)
|
@deffnx {C Function} scm_reverse_x (lst, newtail)
|
||||||
Return a list comprising the elements of @var{lst}, in reverse order.
|
Return a list comprising the elements of @var{lst}, in reverse order.
|
||||||
|
|
||||||
@code{reverse} constructs a new list, @code{reverse!} modifies
|
@code{reverse} constructs a new list. @code{reverse!} is permitted, but
|
||||||
@var{lst} in constructing its return.
|
not required, to modify @var{lst} in constructing its return.
|
||||||
|
|
||||||
For @code{reverse!}, the optional @var{newtail} is appended to the
|
For @code{reverse!}, the optional @var{newtail} is appended to the
|
||||||
result. @var{newtail} isn't reversed, it simply becomes the list
|
result. @var{newtail} isn't reversed, it simply becomes the list
|
||||||
|
|
|
@ -36,6 +36,7 @@ VM_TARGETS := system/vm/assembler.go system/vm/disassembler.go
|
||||||
$(VM_TARGETS): $(top_builddir)/libguile/vm-operations.h
|
$(VM_TARGETS): $(top_builddir)/libguile/vm-operations.h
|
||||||
|
|
||||||
ice-9/boot-9.go: ice-9/boot-9.scm ice-9/quasisyntax.scm ice-9/r6rs-libraries.scm
|
ice-9/boot-9.go: ice-9/boot-9.scm ice-9/quasisyntax.scm ice-9/r6rs-libraries.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
|
# 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
|
# psyntax and boot-9 first, then the compiler itself, then the rest of
|
||||||
|
|
|
@ -24,9 +24,9 @@
|
||||||
match-let*
|
match-let*
|
||||||
match-letrec))
|
match-letrec))
|
||||||
|
|
||||||
(define (error _ msg)
|
(define (error _ . args)
|
||||||
;; Error procedure for run-time "no matching pattern" errors.
|
;; Error procedure for run-time "no matching pattern" errors.
|
||||||
(throw 'match-error "match" msg))
|
(apply throw 'match-error "match" args))
|
||||||
|
|
||||||
;; Support for record matching.
|
;; Support for record matching.
|
||||||
|
|
||||||
|
|
|
@ -284,7 +284,10 @@
|
||||||
(syntax-rules (=>)
|
(syntax-rules (=>)
|
||||||
;; no more clauses, the match failed
|
;; no more clauses, the match failed
|
||||||
((match-next v g+s)
|
((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
|
;; named failure continuation
|
||||||
((match-next v g+s (pat (=> failure) . body) . rest)
|
((match-next v g+s (pat (=> failure) . body) . rest)
|
||||||
(let ((failure (lambda () (match-next v g+s . rest))))
|
(let ((failure (lambda () (match-next v g+s . rest))))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue