all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
To: "'Chong Yidong'" <cyd@stupidchicken.com>
Cc: 6591@debbugs.gnu.org, 'Richard Stallman' <rms@gnu.org>
Subject: bug#6591: 24.0.50; incorrect doc for `catch'
Date: Sun, 11 Jul 2010 10:58:18 -0700	[thread overview]
Message-ID: <8A949316C82741F4A96534DCD3EB7F58@us.oracle.com> (raw)
In-Reply-To: <87eifagcvr.fsf@stupidchicken.com>

> >> The dots are important, because BODY normally implies one 
> >> single form.  We are somewhat abusing notation by using
> >> `BODY...' to denote one or more forms, but the convention
> >> is well-established and easy to grasp,
> >> and there are no better alternatives.
> >
> > No better alternative?  Did you read the thread?  What about doing
> > what the rest of the world does: (catch TAG FORM...)?
> 
> Either BODY... or FORM... seems fine by me.  It seems clearer to use
> BODY... and refer to "BODY forms" in the text, than to use FORM... and
> refer to "each FORM" in the text.  But it is a marginal difference,

You are missing the point, but I won't beat a dead horse.  I explained myself
clearly, I think, for anyone who is willing and able to read.

> and I don't think anyone gets confused in practice.

If you read the thread, then you should not think that.  _I_ got confused in
practice, which is why I filed the bug report.

I could not remember whether `catch' allows multiple sexps after the tag (i.e.
has an implicit `progn'), so I consulted the doc, which I found misleading and
confusing.[*]

IOW, just to find out whether I needed to use an explicit `progn' after the tag
in order to eval multiple sexps, I landed in a doc morass where `BODY...' does
not in fact mean repetitions of BODY as it does in the rest of the known
universe.

For further clarity, I grepped the Emacs Lisp sources for examples, and I found
_only_ uses of `catch' with a _single_ sexp.  That added to my confusion.  And
when I finally figured that an implicit `progn' was used, the exclusive use of
only one sexp in our source code suggested to me that perhaps some Emacs
developers might also have been confused and so never tried using more than one
sexp.


[* I sometimes forget such things.  One that I keep coming back to is
`unwind-protect', which does _not_ protect multiple sexps (you need to use an
explicit `progn' if you want to do that).  

Note, BTW, that in MacLisp the syntax was `(catch FORM TAG)', where _only one_
sexp was allowed.  Note too that the MacLisp doc for `*catch' (which replaced
`catch') shows its syntax as `(*catch tagspec . body)' - note the use of dot
notation in a syntax description. http://maclisp.info/pitmanual/contro.html]







  reply	other threads:[~2010-07-11 17:58 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-09 15:52 bug#6591: 24.0.50; incorrect doc for `catch' Drew Adams
2010-07-09 17:48 ` Eli Zaretskii
2010-07-09 19:36   ` Drew Adams
2010-07-10  7:48     ` Eli Zaretskii
2010-07-10 14:14       ` Drew Adams
2010-07-10 14:38         ` Eli Zaretskii
2010-07-10 15:44           ` Drew Adams
2010-07-10 15:55             ` Eli Zaretskii
2010-07-11  4:21               ` Drew Adams
2010-07-11  6:15                 ` Eli Zaretskii
2010-07-11  8:14                   ` Štěpán Němec
2010-07-11  9:22                     ` Eli Zaretskii
2010-07-11 10:59                       ` Štěpán Němec
2010-07-11 13:23                         ` Eli Zaretskii
2010-07-11 13:44                           ` Štěpán Němec
2010-07-11 14:00                             ` Eli Zaretskii
2010-07-11 15:26                               ` Andreas Schwab
2010-07-11 15:33                                 ` Drew Adams
2010-07-11 17:22                                 ` Eli Zaretskii
     [not found]                               ` <mailman.11.1278862210.6344.bug-gnu-emacs@gnu.org>
2010-07-11 22:36                                 ` Tim X
     [not found]                           ` <mailman.2.1278856813.6344.bug-gnu-emacs@gnu.org>
2010-07-11 22:34                             ` Tim X
2010-12-08 15:52                               ` Drew Adams
2010-12-20 12:25                                 ` Chong Yidong
2010-07-11 15:33                   ` Drew Adams
2010-07-11 17:25                     ` Eli Zaretskii
2010-07-11 16:33                   ` Chong Yidong
2010-07-11 16:52                     ` Drew Adams
2010-07-11 17:13                       ` Chong Yidong
2010-07-11 17:58                         ` Drew Adams [this message]
2010-07-11 18:14                       ` Andreas Schwab
2010-07-11 19:10                         ` Drew Adams
2010-07-11 19:40                           ` Andreas Schwab
2010-07-11 20:07                             ` Drew Adams
2010-07-11 21:22                               ` Andreas Schwab
2010-07-11 21:42                                 ` Chong Yidong
2010-07-11 21:44                                 ` Drew Adams
2010-07-12  8:43                                   ` Andreas Schwab
2010-07-12 14:56                                     ` Drew Adams
2010-07-12 15:26                                       ` Andreas Schwab
2010-07-12 16:01                                         ` Drew Adams
2010-07-12 16:11                                           ` Andreas Schwab
2010-07-12 16:31                                             ` Drew Adams
2010-07-12 16:36                                               ` Andreas Schwab
2010-07-12 16:50                                                 ` Drew Adams
2010-07-12 18:14                                                   ` Andreas Schwab
2010-07-12 18:35                                                     ` Drew Adams
2010-07-12 18:41                                                       ` Andreas Schwab
2010-07-12 18:49                                                         ` Drew Adams
2010-07-12 17:02                                           ` Eli Zaretskii
2010-07-12 18:30                                             ` Drew Adams
2010-07-10  5:44 ` MON KEY

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8A949316C82741F4A96534DCD3EB7F58@us.oracle.com \
    --to=drew.adams@oracle.com \
    --cc=6591@debbugs.gnu.org \
    --cc=cyd@stupidchicken.com \
    --cc=rms@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.