From f16a3d523afc1a0c6bf7095f5f755ca16f8419d0 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sun, 2 Feb 2014 18:58:13 -0800 Subject: [PATCH] * doc/misc/cl.texi (Blocks and Exits): Mention cl-tagbody. * etc/NEWS: Related edit. --- doc/misc/ChangeLog | 4 ++++ doc/misc/cl.texi | 13 +++++++++++++ etc/NEWS | 2 ++ 3 files changed, 19 insertions(+) diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index f0ad9e709a..c64e5e695d 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,7 @@ +2014-02-03 Glenn Morris + + * cl.texi (Blocks and Exits): Mention cl-tagbody. + 2014-02-02 Glenn Morris * efaq-w32.texi (Tramp ssh): Remove deleted tramp methods. diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi index 0490cf639a..2e3dd7434e 100644 --- a/doc/misc/cl.texi +++ b/doc/misc/cl.texi @@ -1556,6 +1556,19 @@ Common Lisp loops like @code{cl-do} and @code{cl-dolist} implicitly enclose themselves in @code{nil} blocks. @end defmac +@c FIXME? Maybe this should be in a separate section? +@defmac cl-tagbody &rest labels-or-statements +This macro executes statements while allowing for control transfer to +user-defined labels. Each element of @var{labels-or-statements} can +be either a label (an integer or a symbol), or a cons-cell +(a statement). This distinction is made before macroexpansion. +Statements are executed in sequence, discarding any return value. +Any statement can transfer control at any time to the statements that follow +one of the labels with the special form @code{(go LABEL)}. +Labels have lexical scope and dynamic extent. +@end defmac + + @node Iteration @section Iteration diff --git a/etc/NEWS b/etc/NEWS index 21480b02cd..cfcb74cf78 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -424,7 +424,9 @@ For example, this enables parsing of macros that open new namespaces. ** cl-lib ++++ *** New macro `cl-tagbody'. +This executes statements while allowing for control transfer to labels. +++ *** letf is now just an alias for cl-letf. -- 2.20.1