GNU bug report logs - #54816
29.0.50; Silent "Compiler-macro error for cl-member" when building from scratch

Previous Next

Package: emacs;

Reported by: Kévin Le Gouguec <kevin.legouguec <at> gmail.com>

Date: Sat, 9 Apr 2022 14:11:02 UTC

Severity: normal

Tags: patch

Found in version 29.0.50

Fixed in version 29.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 54816 in the body.
You can then email your comments to 54816 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#54816; Package emacs. (Sat, 09 Apr 2022 14:11:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Kévin Le Gouguec <kevin.legouguec <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 09 Apr 2022 14:11:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Kévin Le Gouguec <kevin.legouguec <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.0.50; Silent "Compiler-macro error for cl-member" when building
 from scratch
Date: Sat, 09 Apr 2022 16:10:15 +0200
When building from scratch ("./autogen.sh && ./configure && make" from a
fresh clone), I spot the following error, which does not interrupt
compilation:

> make[2]: Entering directory '/home/peniblec/src/emacs/lisp'
>   ELC      international/titdic-cnv.elc
> make -C ../leim all EMACS="../src/bootstrap-emacs"
> make[3]: Entering directory '/home/peniblec/src/emacs/leim'
>   GEN      ../lisp/leim/quail/CCDOSPY.el
>   […]
>   GEN      ../lisp/leim/leim-list.el
> /usr/bin/mkdir -p ../lisp/leim/ja-dic
>   GEN      ../lisp/leim/ja-dic/ja-dic.el
>   INFO     Processing OKURI-ARI entries
>   INFO     Processing POSTFIX entries
>   INFO     Processing PREFIX entries
>   INFO     Collecting OKURI-NASI entries
>   INFO     Collecting OKURI-NASI entries... 
>   […]
>   INFO     Collecting OKURI-NASI entries...done
>   INFO     Processing OKURI-NASI entries
>   INFO     Processing OKURI-NASI entries... 
>   […]
>   INFO     Processing OKURI-NASI entries...done
> Compiler-macro error for cl-member: Handler: cl--compiler-macro-member
> (excessive-variable-binding)
> Eager macro-expansion failure: (excessive-variable-binding)
> make[3]: Leaving directory '/home/peniblec/src/emacs/leim'

(For the avoidance of doubt: this is a -j1 run; the […] lines are
regular "GEN/INFO" messages)

As far as I can tell the resulting Emacs is mostly functional; I'm using
it to write this report and have not observed any problem so far.

I have not bisected the problem yet (I noticed it yesterday); I tried to
find a faster recipe than "git clean -fdx && ./autogen.sh && ./configure
&& make", e.g. variations of "touch foo && make bar" from leim/Makefile
and lisp/Makefile, but the error does not show up unless I rebuild
everything from scratch.

"make V=1" says that this is the command that runs when the error comes
(run from the leim subdirectory):

'../src/bootstrap-emacs' -batch --no-site-file --no-site-lisp -batch -l ja-dic-cnv \
  -f batch-skkdic-convert -dir "./../lisp/leim/ja-dic" "SKK-DIC/SKK-JISYO.L"

Unfortunately running this after Emacs is built does not trigger the
error for me.  The "simplest" recipe I have is:

git clean -dfx
./autogen.sh
./configure
make -j16 -C src bootstrap-emacs
cd leim
mkdir ../lisp/leim/ja-dic
'../src/bootstrap-emacs' -batch --no-site-file --no-site-lisp -batch -l ja-dic-cnv -f batch-skkdic-convert -dir "./../lisp/leim/ja-dic" "SKK-DIC/SKK-JISYO.L"

Hope someone can make sense of that, and this is not some setup-specific
thing; FWIW I'm seeing this on openSUSE Tumbleweed and Debian bullseye.


In GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.33, cairo version 1.16.0)
 of 2022-04-08 built on amdahl30
Repository revision: e9849939549010529e180ffb2509922f1bcc4843
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101003
System Description: openSUSE Tumbleweed




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#54816; Package emacs. (Sun, 10 Apr 2022 09:21:02 GMT) Full text and rfc822 format available.

Message #8 received at 54816 <at> debbugs.gnu.org (full text, mbox):

From: Kévin Le Gouguec <kevin.legouguec <at> gmail.com>
To: 54816 <at> debbugs.gnu.org
Cc: Alan Mackenzie <acm <at> muc.de>
Subject: Re: bug#54816: 29.0.50; Silent "Compiler-macro error for cl-member"
 when building from scratch
Date: Sun, 10 Apr 2022 11:20:26 +0200
[Message part 1 (text/plain, inline)]
tags 54816 patch
thanks

Kévin Le Gouguec <kevin.legouguec <at> gmail.com> writes:

>> Compiler-macro error for cl-member: Handler: cl--compiler-macro-member
>> (excessive-variable-binding)
>> Eager macro-expansion failure: (excessive-variable-binding)

That bit about excessive-variable-binding rang a bell; I dimly
remembered seeing a couple of commits increasing max-specpdl-size "not
too long ago".  git-log turned these up:

* 2022-01-31 "Enlarge max-specpdl-size for generation of files in
  .../admin/grammars" (be2566eeab)
* 2022-01-30 "Enlarge max-specpdl-size for generation of leim-list.el in
  bootstrap" (46611aa468)

So here's a "monkey see; monkey do" patch that causes this error to go
away; no idea if it's The Right Thing™ though?

[max-specpdl-size.patch (text/x-patch, inline)]
diff --git a/leim/Makefile.in b/leim/Makefile.in
index 6cf0abb40c..4e70e8b7e9 100644
--- a/leim/Makefile.in
+++ b/leim/Makefile.in
@@ -131,6 +131,7 @@ ${leimdir}/ja-dic/ja-dic.el:
 
 ${leimdir}/ja-dic/ja-dic.el: $(srcdir)/SKK-DIC/SKK-JISYO.L
 	$(AM_V_GEN)$(RUN_EMACS) -batch -l ja-dic-cnv \
+	  --eval "(setq max-specpdl-size 5000)" \
 	  -f batch-skkdic-convert -dir "$(leimdir)/ja-dic" "$<"
 
 ${srcdir}/../lisp/language/pinyin.el: ${srcdir}/MISC-DIC/pinyin.map

Added tag(s) patch. Request was from Kévin Le Gouguec <kevin.legouguec <at> gmail.com> to control <at> debbugs.gnu.org. (Sun, 10 Apr 2022 09:21:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#54816; Package emacs. (Sun, 10 Apr 2022 12:44:01 GMT) Full text and rfc822 format available.

Message #13 received at 54816 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Kévin Le Gouguec <kevin.legouguec <at> gmail.com>
Cc: Alan Mackenzie <acm <at> muc.de>, 54816 <at> debbugs.gnu.org
Subject: Re: bug#54816: 29.0.50; Silent "Compiler-macro error for cl-member"
 when building from scratch
Date: Sun, 10 Apr 2022 14:43:22 +0200
Kévin Le Gouguec <kevin.legouguec <at> gmail.com> writes:

> So here's a "monkey see; monkey do" patch that causes this error to go
> away; no idea if it's The Right Thing™ though?

Looks like the right thing to me; pushed to Emacs 29 now.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




bug marked as fixed in version 29.1, send any further explanations to 54816 <at> debbugs.gnu.org and Kévin Le Gouguec <kevin.legouguec <at> gmail.com> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sun, 10 Apr 2022 12:44:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 09 May 2022 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 43 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.