--- Begin Message ---
Subject: |
25.0.50; Let pp-macroexpand-expression expand only once |
Date: |
Sat, 25 Oct 2014 01:13:36 +0200 |
Hello,
this is a feature request.
The problem is the following:
When writing a complex macro, one often wants to check some examples to
see if it expands code as intended.
There are different ways of doing that: M-x pp-macroexpand-expression or
M-x emacs-lisp-macroexpand for example.
But there is a problem: if the macro expansion is a toplevel call to
some other macro, this one will also be expanded, because the above
commands use `macroexpand' which successively expands until the result
is not a macro call. This is not useful for checking macro expansions.
I want to suggest to alter `pp-macroexpand-expression', or to provide a
new command, based on a function that expands only one time like
(defun macroexpand1 (expr)
(apply (cdr (symbol-function (car expr))) (cdr expr)))
(This can no doubt be improved, e.g. to DTRT for autoloaded macros.)
Or did I miss something? Opinions?
Thanks,
Michael.
In GNU Emacs 25.0.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.14.1)
of 2014-10-17 on drachen
Windowing system distributor `The X.Org Foundation', version 11.0.11601000
System Description: Debian GNU/Linux testing (jessie)
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#18821: 25.0.50; Let pp-macroexpand-expression expand only once |
Date: |
Sun, 02 Nov 2014 01:46:23 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux) |
>> I installed my macroexpand-1 into trunk.
> Thanks!
> Do you think that `pp-macroexpand-expression' and
> `pp-macroexpand-last-sexp' should use it?
Oh, yes, of course. Same for emacs-lisp-macroexpand.
Sorry for forgetting about the actual bug report. It's done now,
Stefan
--- End Message ---