Subject: 24.1; CL argument list error
From: Joe Wells <[email-masked]>
To: [email-masked]
Date: Fri, 15 Jun 2012 14:44:06 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Dear Emacs maintainers and bug fixers,

In Emacs 22.1, evaluating

  (funcall (function* (lambda ((x . y)) (cons y x))) '(1 . 2))

returns (2 . 1), as expected and documented.

In Emacs 24.1, evaluating the above sexp yields this error message:

  Wrong type argument: listp, y

This happens because

  (cl--make-usage-args '((x . y)))

recursively descends into it argument list and evaluates this:

  (memq '&cl-defs '(x . y))

In the older Emacs, cl--make-usage-args did not even exist and only a
simpler portion of its code is present instead of the call to
cl--make-usage-args.  In particular, the recursive descent is missing.

I hope this bug report is somehow helpful.

By the way, I have personally worked around the bug by disabling
cl--make-usage-args completely, which is okay because it is only used
to build a doc string for the anonymous function.  I disabled it like
this:

  (defadvice cl--make-usage-args (around jbw-fix-brokenness activate))

-- 
With my best wishes,

Joe Wells

----------------------------------------------------------------------
In GNU Emacs 24.1.1 (i686-redhat-linux-gnu, GTK+ Version 2.10.4)
 of 2012-06-12 on jove
Configured using:
 `configure '--build=i686-redhat-linux-gnu'
 '--host=i686-redhat-linux-gnu' '--target=i386-redhat-linux-gnu'
 '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr'
 '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc'
 '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib'
 '--libexecdir=/usr/libexec' '--localstatedir=/var'
 '--sharedstatedir=/usr/com' '--mandir=/usr/share/man'
 '--infodir=/usr/share/info' '--with-dbus' '--with-gif' '--with-jpeg'
 '--with-png' '--with-rsvg' '--with-tiff' '--with-xft' '--with-xpm'
 '--with-x-toolkit=gtk' 'build_alias=i686-redhat-linux-gnu'
 'host_alias=i686-redhat-linux-gnu' 'target_alias=i386-redhat-linux-gnu'
 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2
 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32
 -march=i386 -mtune=generic -fasynchronous-unwind-tables''