From unknown Sun Jun 22 07:48:14 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#18821 <18821@debbugs.gnu.org> To: bug#18821 <18821@debbugs.gnu.org> Subject: Status: 25.0.50; Let pp-macroexpand-expression expand only once Reply-To: bug#18821 <18821@debbugs.gnu.org> Date: Sun, 22 Jun 2025 14:48:14 +0000 retitle 18821 25.0.50; Let pp-macroexpand-expression expand only once reassign 18821 emacs submitter 18821 michael_heerdegen@web.de severity 18821 wishlist thanks From debbugs-submit-bounces@debbugs.gnu.org Fri Oct 24 19:14:35 2014 Received: (at submit) by debbugs.gnu.org; 24 Oct 2014 23:14:35 +0000 Received: from localhost ([127.0.0.1]:34407 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xho43-0000pa-2u for submit@debbugs.gnu.org; Fri, 24 Oct 2014 19:14:35 -0400 Received: from eggs.gnu.org ([208.118.235.92]:60846) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xho41-0000pM-BM for submit@debbugs.gnu.org; Fri, 24 Oct 2014 19:14:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xho3o-0004P4-Nt for submit@debbugs.gnu.org; Fri, 24 Oct 2014 19:14:28 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:43148) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xho3o-0004Oy-LH for submit@debbugs.gnu.org; Fri, 24 Oct 2014 19:14:20 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34333) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xho3i-0002it-DA for bug-gnu-emacs@gnu.org; Fri, 24 Oct 2014 19:14:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xho3c-0004OF-61 for bug-gnu-emacs@gnu.org; Fri, 24 Oct 2014 19:14:14 -0400 Received: from mout.web.de ([212.227.17.11]:49643) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xho3b-0004Nz-Sn for bug-gnu-emacs@gnu.org; Fri, 24 Oct 2014 19:14:08 -0400 Received: from drachen.dragon ([90.187.217.112]) by smtp.web.de (mrweb101) with ESMTPSA (Nemesis) id 0LetYx-1YShFK0mb9-00qhjW for ; Sat, 25 Oct 2014 01:14:05 +0200 From: Michael Heerdegen To: bug-gnu-emacs@gnu.org Subject: 25.0.50; Let pp-macroexpand-expression expand only once Date: Sat, 25 Oct 2014 01:13:36 +0200 Message-ID: <87bnp1ukm7.fsf@web.de> MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K0:DBE/evF5kBaiXF7X7CJyZiMfDpQm1t/P/dQcaFnnl3CRvWdV2mb VhpWJ1GUHk2XynFmW10uJfkln0kPD5wrfGI2F7nXlwuas+4GJG0byxB4r/5srdHWDZFpl+f nETCJTriECulh/YvfQilRLqudmw3glTJ317aE0busIDaJpCHuHLl8kX9V4H//q6bcU8xxYi +oP27WxphGlEyG5QRxS6w== X-UI-Out-Filterresults: notjunk:1; X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: michael_heerdegen@web.de List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.1 (----) 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) From debbugs-submit-bounces@debbugs.gnu.org Tue Oct 28 13:00:40 2014 Received: (at 18821) by debbugs.gnu.org; 28 Oct 2014 17:00:40 +0000 Received: from localhost ([127.0.0.1]:37950 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XjA8N-0001Ka-Th for submit@debbugs.gnu.org; Tue, 28 Oct 2014 13:00:40 -0400 Received: from mercure.iro.umontreal.ca ([132.204.24.67]:35989) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XjA8L-0001KR-DH for 18821@debbugs.gnu.org; Tue, 28 Oct 2014 13:00:38 -0400 Received: from hidalgo.iro.umontreal.ca (hidalgo.iro.umontreal.ca [132.204.27.50]) by mercure.iro.umontreal.ca (Postfix) with ESMTP id CA5E484FCC; Tue, 28 Oct 2014 13:00:35 -0400 (EDT) Received: from lechon.iro.umontreal.ca (lechon.iro.umontreal.ca [132.204.27.242]) by hidalgo.iro.umontreal.ca (Postfix) with ESMTP id E527A1E5874; Tue, 28 Oct 2014 13:00:09 -0400 (EDT) Received: by lechon.iro.umontreal.ca (Postfix, from userid 20848) id 98646B4245; Tue, 28 Oct 2014 13:00:09 -0400 (EDT) From: Stefan Monnier To: Michael Heerdegen Subject: Re: bug#18821: 25.0.50; Let pp-macroexpand-expression expand only once Message-ID: References: <87bnp1ukm7.fsf@web.de> Date: Tue, 28 Oct 2014 13:00:09 -0400 In-Reply-To: <87bnp1ukm7.fsf@web.de> (Michael Heerdegen's message of "Sat, 25 Oct 2014 01:13:36 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-DIRO-MailScanner-Information: Please contact the ISP for more information X-DIRO-MailScanner: Found to be clean X-DIRO-MailScanner-SpamCheck: n'est pas un polluriel, SpamAssassin (score=-2.82, requis 5, autolearn=not spam, ALL_TRUSTED -2.82, MC_TSTLAST 0.00) X-DIRO-MailScanner-From: monnier@iro.umontreal.ca X-Spam-Status: No X-Spam-Score: -2.9 (--) X-Debbugs-Envelope-To: 18821 Cc: 18821@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.9 (--) > (defun macroexpand1 (expr) > (apply (cdr (symbol-function (car expr))) (cdr expr))) Daniel Colascione already submitted a patch that provides a macroexpand1. And if that's not sufficient I also wrote my own. The only reason I haven't installed it is because it would make a lot of sense to reimplement `macroexpand' (in Elisp) on top of `macroexpand1', but when I tried that, byte-compilation slowed down by about 5%, which seemed excessive (especially since it reflects an even larger slowdown of macroexpansion itself, tho I haven't measured that in more detail). Stefan (defun macroexp-expand-1 (form environment) "Perform (at most) one step of macroexpansion." (cond ((consp form) (let* ((head (car form)) (env-expander (assq head environment))) (if env-expander (if (cdr env-expander) (apply (cdr env-expander) (cdr form)) form) (if (not (and (symbolp head) (fboundp head))) form (let ((def (autoload-do-load (symbol-function head) head 'macro))) (cond ;; Follow alias, but only for macros, otherwise we may end up ;; skipping an important compiler-macro (e.g. cl--block-wrapper). ((and (symbolp def) (macrop def)) (cons def (cdr form))) ((not (consp def)) form) (t (if (eq 'macro (car def)) (apply (cdr def) (cdr form)) form)))))))) (t form))) From debbugs-submit-bounces@debbugs.gnu.org Tue Oct 28 23:54:14 2014 Received: (at 18821) by debbugs.gnu.org; 29 Oct 2014 03:54:14 +0000 Received: from localhost ([127.0.0.1]:38174 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XjKKr-0000iQ-Mg for submit@debbugs.gnu.org; Tue, 28 Oct 2014 23:54:13 -0400 Received: from mout.web.de ([212.227.17.12]:56593) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XjKKo-0000iA-MU for 18821@debbugs.gnu.org; Tue, 28 Oct 2014 23:54:11 -0400 Received: from drachen.dragon ([90.187.250.99]) by smtp.web.de (mrweb103) with ESMTPSA (Nemesis) id 0M9XM3-1XwDyP3NnD-00D1NY; Wed, 29 Oct 2014 04:54:03 +0100 From: Michael Heerdegen To: Stefan Monnier Subject: Re: bug#18821: 25.0.50; Let pp-macroexpand-expression expand only once References: <87bnp1ukm7.fsf@web.de> Date: Wed, 29 Oct 2014 04:53:56 +0100 In-Reply-To: (Stefan Monnier's message of "Tue, 28 Oct 2014 13:00:09 -0400") Message-ID: <87r3xrttt7.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K0:N9IimmMxftcqEHQZ4H++Zf2n3rJs1oczsT8dXSU6HV8xI4nb84F Ld3JA79HTgtR0+3xWQVEPWpWBhxD8rV/kANBeXb4e235jGqPdydv6+/j0rzT0Fh51A55N87 HYk8w1B5taQyWRNRz4RelGEYP8OQjbzR4vNYsYoVWPYPW2ytoZEjGZrfXBIrIifndF1ARMD nfgID9ziW4m7lOcbqu+hw== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: -0.6 (/) X-Debbugs-Envelope-To: 18821 Cc: 18821@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.6 (/) Stefan Monnier writes: > Daniel Colascione already submitted a patch that provides a > macroexpand1. And if that's not sufficient I also wrote my own. The > only reason I haven't installed it is because it [...] Ok, thanks for the info. I think that this macroexpand1 should also be made available via some command. Michael. From debbugs-submit-bounces@debbugs.gnu.org Fri Oct 31 17:37:08 2014 Received: (at 18821) by debbugs.gnu.org; 31 Oct 2014 21:37:08 +0000 Received: from localhost ([127.0.0.1]:44174 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XkJsZ-0000YW-Jc for submit@debbugs.gnu.org; Fri, 31 Oct 2014 17:37:07 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.181]:32333) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XkJsX-0000Xy-5c for 18821@debbugs.gnu.org; Fri, 31 Oct 2014 17:37:05 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvAMAOatTlRFpY87/2dsb2JhbABcgw6DYoZ+yDmDGgQCAoEcFwEBfIQDAQEDAVYjEAs0EhQYDSSISwnLcgEBAQEBAQQBAQEBHpEIB4RLBbIggW+EFCGCegEBAQ X-IPAS-Result: AvAMAOatTlRFpY87/2dsb2JhbABcgw6DYoZ+yDmDGgQCAoEcFwEBfIQDAQEDAVYjEAs0EhQYDSSISwnLcgEBAQEBAQQBAQEBHpEIB4RLBbIggW+EFCGCegEBAQ X-IronPort-AV: E=Sophos;i="5.04,797,1406606400"; d="scan'208";a="95701902" Received: from 69-165-143-59.dsl.teksavvy.com (HELO pastel.home) ([69.165.143.59]) by ironport2-out.teksavvy.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 31 Oct 2014 17:36:59 -0400 Received: by pastel.home (Postfix, from userid 20848) id 51F3D8592; Fri, 31 Oct 2014 17:36:59 -0400 (EDT) From: Stefan Monnier To: Michael Heerdegen Subject: Re: bug#18821: 25.0.50; Let pp-macroexpand-expression expand only once Message-ID: References: <87bnp1ukm7.fsf@web.de> <87r3xrttt7.fsf@web.de> Date: Fri, 31 Oct 2014 17:36:59 -0400 In-Reply-To: <87r3xrttt7.fsf@web.de> (Michael Heerdegen's message of "Wed, 29 Oct 2014 04:53:56 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 18821 Cc: 18821@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) >> Daniel Colascione already submitted a patch that provides a >> macroexpand1. And if that's not sufficient I also wrote my own. The >> only reason I haven't installed it is because it [...] > Ok, thanks for the info. I think that this macroexpand1 should also be > made available via some command. I installed my macroexpand-1 into trunk. Stefan From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 02 00:07:47 2014 Received: (at 18821) by debbugs.gnu.org; 2 Nov 2014 04:07:47 +0000 Received: from localhost ([127.0.0.1]:44984 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XkmSA-000482-Rp for submit@debbugs.gnu.org; Sun, 02 Nov 2014 00:07:47 -0400 Received: from mout.web.de ([212.227.17.11]:56562) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XkmS9-00047n-3m for 18821@debbugs.gnu.org; Sun, 02 Nov 2014 00:07:45 -0400 Received: from drachen.dragon ([90.186.247.135]) by smtp.web.de (mrweb102) with ESMTPSA (Nemesis) id 0M89z3-1Xxefm313h-00vffw; Sun, 02 Nov 2014 05:07:35 +0100 From: Michael Heerdegen To: Stefan Monnier Subject: Re: bug#18821: 25.0.50; Let pp-macroexpand-expression expand only once References: <87bnp1ukm7.fsf@web.de> <87r3xrttt7.fsf@web.de> Date: Sun, 02 Nov 2014 05:07:29 +0100 In-Reply-To: (Stefan Monnier's message of "Fri, 31 Oct 2014 17:36:59 -0400") Message-ID: <87wq7eutxa.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K0:2Cd8NzB8pEsb4cuMg30UgGA+nVlRrqQy8LXs/sa/3FXjxqQhOEp wNmUciAjQWr2egcY7SHtdhcfWfMEoZMOn9MZ1l/YQ7g4gV9s/2JAHxN9k3JKevk7bVmP8yO 7iws4Pq5AcdGCyt9UC7ScYq6GLAaZ7Yv+CVNJ5p+l833tQrmKO4hK+f8MsR+HKQo3b+HV82 FIGobu4/Xe2U+5jyLY3YQ== X-UI-Out-Filterresults: notjunk:1; X-Spam-Score: -0.6 (/) X-Debbugs-Envelope-To: 18821 Cc: 18821@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.6 (/) Stefan Monnier writes: > I installed my macroexpand-1 into trunk. Thanks! Do you think that `pp-macroexpand-expression' and `pp-macroexpand-last-sexp' should use it? I don't use these, but they seem to be intended mainly for testing, where `macroexpand-1' would makes more sense then `macroexpand'. If you think the question is not important cause nobody uses the pp-macroexpand stuff (dunno), feel free to close. Thanks, Michael. From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 02 01:46:32 2014 Received: (at 18821-done) by debbugs.gnu.org; 2 Nov 2014 05:46:32 +0000 Received: from localhost ([127.0.0.1]:45000 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xknzj-0006ko-PZ for submit@debbugs.gnu.org; Sun, 02 Nov 2014 01:46:31 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.181]:20835) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xknzh-0006ka-7v for 18821-done@debbugs.gnu.org; Sun, 02 Nov 2014 01:46:29 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvAMAOatTlRFpY87/2dsb2JhbABcgw6DYoZ+yDmDGgQCAoEcFwEBfIQDAQEDAVYjEAs0EhQYDSSISwnLcgEBAQEBAQQBAQEBHpEIB4RLBbIggW+EFCGCegEBAQ X-IPAS-Result: AvAMAOatTlRFpY87/2dsb2JhbABcgw6DYoZ+yDmDGgQCAoEcFwEBfIQDAQEDAVYjEAs0EhQYDSSISwnLcgEBAQEBAQQBAQEBHpEIB4RLBbIggW+EFCGCegEBAQ X-IronPort-AV: E=Sophos;i="5.04,797,1406606400"; d="scan'208";a="95781768" Received: from 69-165-143-59.dsl.teksavvy.com (HELO ceviche.home) ([69.165.143.59]) by ironport2-out.teksavvy.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 02 Nov 2014 01:46:23 -0400 Received: by ceviche.home (Postfix, from userid 20848) id 640E766108; Sun, 2 Nov 2014 01:46:23 -0400 (EDT) From: Stefan Monnier To: Michael Heerdegen Subject: Re: bug#18821: 25.0.50; Let pp-macroexpand-expression expand only once Message-ID: References: <87bnp1ukm7.fsf@web.de> <87r3xrttt7.fsf@web.de> <87wq7eutxa.fsf@web.de> Date: Sun, 02 Nov 2014 01:46:23 -0400 In-Reply-To: <87wq7eutxa.fsf@web.de> (Michael Heerdegen's message of "Sun, 02 Nov 2014 05:07:29 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 18821-done Cc: 18821-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) >> 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 From unknown Sun Jun 22 07:48:14 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 30 Nov 2014 12:24:03 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator