Subject: 24.0.50; getting the "Forgot to expand macro XXXX" error - problem? solution?

From: "Drew Adams" <[email-masked]>
Date: Sat, 21 May 2011 14:00:49 -0700

When byte-compiling I'm getting the famous "Forgot to expand macro XXXX"
error.
 
AFAICT, the email threads about that error just said, in effect:
 
1. Stefan thinks he found a bug that caused this, and fixed it, but he
isn't sure.
 
2. Concerning Emacs sources, just do a make -k clean and then try again.

But I'm seeing this for my own code.  I guess I need to understand the
solution (what to do) and, preferably, the cause of the problem.
 
I put the source files in a new directory, load the file with the
defmacros, and try to byte-compile a file that uses them.  I get the
above error, with XXXX = `push'.
 
These are the files: icicles-mac.el has the macros; icicles-cmd1.el is
the file whose byte-compiling raises the error.
 
With the source files (only) in new directory foo, cd to foo,
(add-to-list 'load-path "."), then M-x load-library icicles.
Then try to byte-compile icicles-cmd1.el.
 
The files you will need are here:
http://www.emacswiki.org/cgi-bin/wiki?action=index;match=%5C.(el%7Ctar)(%5C.gz)%
3F%24
 
You will need these files, in order to load library `icicles':
 
hexrgb.el
icicles-cmd1.el
icicles-cmd2.el
icicles-face.el
icicles-fn.el
icicles-mac.el
icicles-mcmd.el
icicles-mode.el
icicles-opt.el
icicles-var.el
icicles.el
 
To reproduce, after loading those source files try to byte-compile
icicles-cmd1.el.  You'll get this error:
 
icicles-cmd1.el:3066:91:Error: Wrong type argument: listp, "Forgot to
expand macro push"
 
I really don't understand.  Please advise.  Is this an Emacs bug that
has been fixed or will be fixed?  Is there something that I need to do
to make the code compatible with lexbind?  What's the story?  Thx.
 
In GNU Emacs 24.0.50.1 (i386-mingw-nt5.1.2600)
 of 2011-05-16 on 3249CTO
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (4.5) --no-opt --cflags
-Ic:/build/include'