Gnus development mailing list
 help / color / mirror / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: rms@gnu.org
Cc: Katsumi Yamaoka <yamaoka@jpl.org>, ding@gnus.org, emacs-devel@gnu.org
Subject: Re: functionp bug
Date: Wed, 09 Apr 2008 10:22:51 -0400	[thread overview]
Message-ID: <jwvtzibi02b.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <E1JjXcv-00005u-Fa@fencepost.gnu.org> (Richard Stallman's message of "Wed, 09 Apr 2008 06:34:01 -0400")

> I think that change in functionp should be reverted.  Any change in
> such things tends to cause problems, so it is better to leave them alone
> unless there is an important problem to be fixed.

The old definition lead to bugs in *all* uses I've seen.  All the uses
I've seen fall in the following 2 categories:
1 - (if (functionp <foo>) (funcall <foo> ...))
    with the old definition, this signalled an error if <foo> was
    a special form.
2 - the kind of use that is discussed in this thread, where the code
    wants to check "can <foo> be the `car' of an valid Elisp
    expression", where using `functionp' made the test reject uses of
    `when' while it accepted uses of `if'.

> Theoretical arguments trying to show that "this behavior couldn't
> possibly be right for any caller" tend to be unreliable.  Whatever
> functionp does, code will have come to depend on it.

Yes, the change is an incompatible one.  But it will get rid of bugs.


        Stefan




  reply	other threads:[~2008-04-09 14:22 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-07  1:20 Katsumi Yamaoka
2008-04-07 16:04 ` Stefan Monnier
2008-04-07 18:34   ` Romain Francoise
2008-04-07 19:26     ` Stefan Monnier
2008-04-07 21:27       ` Manoj Srivastava
2008-04-07 21:50         ` Reiner Steib
2008-04-07 18:40   ` Reiner Steib
2008-04-07 19:23     ` Stefan Monnier
2008-04-09  7:56       ` Katsumi Yamaoka
2008-04-09  8:54         ` Andreas Schwab
2008-04-09 10:34         ` Richard Stallman
2008-04-09 14:22           ` Stefan Monnier [this message]
2008-04-09 14:26         ` Stefan Monnier
2008-04-09 22:53           ` Katsumi Yamaoka
2008-04-10  1:36             ` Stefan Monnier
2008-04-10  2:02               ` Katsumi Yamaoka
2008-04-10 10:44                 ` Reiner Steib
2008-04-10 11:19                   ` Katsumi Yamaoka
2008-04-10 11:38                     ` Reiner Steib
2008-04-10 11:57                       ` Katsumi Yamaoka
2008-04-10 18:24                   ` Stefan Monnier
2008-04-10 19:12                     ` Reiner Steib
2008-04-10 21:17                       ` Stefan Monnier
2008-04-10 22:13                         ` Reiner Steib
2008-04-09 22:34       ` Johan Bockgård

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=jwvtzibi02b.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=ding@gnus.org \
    --cc=emacs-devel@gnu.org \
    --cc=rms@gnu.org \
    --cc=yamaoka@jpl.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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).