emacs-devel
[Top][All Lists]
Advanced

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

Re: functionp bug


From: Stefan Monnier
Subject: Re: functionp bug
Date: Wed, 09 Apr 2008 10:22:51 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)

> 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 via email to

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