Subject: bug#11735: 24.1.50; "Warning: Unknown defun property ... in ..."

From: "Drew Adams" <[email-masked]>
Date: Tue, 19 Jun 2012 10:08:38 -0700

> Common Lisp does not try to enforce particular
> behaviors with respect to compilation warnings.

OK.

> >> Perhaps this kind of message is a candidate for a :debug 
> >> warning level?  I already said that it is useful for
> >> programmers.  I do not see it as helpful for general users
> >> just loading a library.  On the contrary: some might become
> >> confused, if not downright worried.  That's all I'm trying to say.
> 
> Just to put things in perspective, this message only occurs 
> for uses of `declare' which use declarations not supported
> directly by Elisp (that's fairly uncommon)

Maybe not so uncommon for code that either is designed to work also with other
Emacsen (XEmacs? dunno) or for code that was originally taken from some other
Lisp.

The latter seems to be the case for `el-swank-fuzzy.el'.

> and only for those `declare's that are inside a `defun' rather
> than a `defun*' (even less common),

Less common: doubtful in the latter case I mentioned.  `el-swank-fuzzy.el' is an
example here too.  It uses both `defun*' and `defun', and it uses the
unsupported `declare' settings only with `defun'.

The point is not that that library is a model or does things the way they should
be done.  The point is that that library is perhaps not atypical or rare as an
example of code that was moved to Emacs Lisp from Common Lisp.

The author presumably used `defun' when that was straightforward, and used
`defun*' when s?he needed Common Lisp `defun' thingies that are not available in
Emacs `defun'.  (Doing that instead of just using `defun*' everywhere has the
advantage of making it clear which function definitions really need the added
juice of `defun*'.)

> and then only for code that's not byte-compiled.
> That's sufficiently rare that I'm not worried about it.

Maybe not worrying.  But worth a bug report.  And it would be good to give this
message a :debug warning level so it does not annoy or confuse users.  Any
reason not to do that?  At least as a wishlist item?