* bug#46818: leim bootstrap: Variable binding depth exceeds max-specpdl-size
@ 2021-02-27 18:17 Glenn Morris
2021-02-27 18:34 ` Basil L. Contovounesios
2021-02-27 18:44 ` Eli Zaretskii
0 siblings, 2 replies; 15+ messages in thread
From: Glenn Morris @ 2021-02-27 18:17 UTC (permalink / raw)
To: 46818
Package: emacs
Version: 28.0.50
When building in a completely clean tree (new checkout or make extraclean)
at rev a4d7235f1a, I see the following errors when building the leim files:
GEN ../lisp/language/pinyin.el
GEN ../lisp/leim/leim-list.el
Eager macro-expansion failure: (error "Variable binding depth exceeds
max-specpdl-size")
[...]
INFO Processing OKURI-NASI entries...done
Eager macro-expansion failure: (error "Variable binding depth exceeds
max-specpdl-size")
These issues don't seem to be present at rev 6bf56a; ref
https://hydra.nixos.org/build/137524247
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#46818: leim bootstrap: Variable binding depth exceeds max-specpdl-size
2021-02-27 18:17 bug#46818: leim bootstrap: Variable binding depth exceeds max-specpdl-size Glenn Morris
@ 2021-02-27 18:34 ` Basil L. Contovounesios
2021-02-27 20:55 ` Stefan Monnier
2021-02-27 18:44 ` Eli Zaretskii
1 sibling, 1 reply; 15+ messages in thread
From: Basil L. Contovounesios @ 2021-02-27 18:34 UTC (permalink / raw)
To: Glenn Morris; +Cc: Stefan Monnier, 46818
Glenn Morris <rgm@gnu.org> writes:
> When building in a completely clean tree (new checkout or make extraclean)
> at rev a4d7235f1a, I see the following errors when building the leim files:
>
> GEN ../lisp/language/pinyin.el
> GEN ../lisp/leim/leim-list.el
> Eager macro-expansion failure: (error "Variable binding depth exceeds
> max-specpdl-size")
>
> [...]
> INFO Processing OKURI-NASI entries...done
> Eager macro-expansion failure: (error "Variable binding depth exceeds
> max-specpdl-size")
>
> These issues don't seem to be present at rev 6bf56a; ref
> https://hydra.nixos.org/build/137524247
I see them with 'make bootstrap', and I think they started with:
* lisp/emacs-lisp/cconv.el: Improve line-nb info of unused var warnings
a350ae058c 2021-02-26 20:24:52 -0500
https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=a350ae058caedcb7be7d332564817954e3624e60
--
Basil
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#46818: leim bootstrap: Variable binding depth exceeds max-specpdl-size
2021-02-27 18:17 bug#46818: leim bootstrap: Variable binding depth exceeds max-specpdl-size Glenn Morris
2021-02-27 18:34 ` Basil L. Contovounesios
@ 2021-02-27 18:44 ` Eli Zaretskii
2021-02-27 18:50 ` Basil L. Contovounesios
1 sibling, 1 reply; 15+ messages in thread
From: Eli Zaretskii @ 2021-02-27 18:44 UTC (permalink / raw)
To: Glenn Morris; +Cc: 46818
> From: Glenn Morris <rgm@gnu.org>
> Date: Sat, 27 Feb 2021 13:17:54 -0500
>
> GEN ../lisp/language/pinyin.el
> GEN ../lisp/leim/leim-list.el
> Eager macro-expansion failure: (error "Variable binding depth exceeds
> max-specpdl-size")
>
> [...]
> INFO Processing OKURI-NASI entries...done
> Eager macro-expansion failure: (error "Variable binding depth exceeds
> max-specpdl-size")
>
> These issues don't seem to be present at rev 6bf56a; ref
> https://hydra.nixos.org/build/137524247
You are saying that 6bf56a broke bootstrap? I'd be surprised.
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#46818: leim bootstrap: Variable binding depth exceeds max-specpdl-size
2021-02-27 18:44 ` Eli Zaretskii
@ 2021-02-27 18:50 ` Basil L. Contovounesios
2021-02-27 18:51 ` Eli Zaretskii
0 siblings, 1 reply; 15+ messages in thread
From: Basil L. Contovounesios @ 2021-02-27 18:50 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Glenn Morris, 46818
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Glenn Morris <rgm@gnu.org>
>> Date: Sat, 27 Feb 2021 13:17:54 -0500
>>
>> GEN ../lisp/language/pinyin.el
>> GEN ../lisp/leim/leim-list.el
>> Eager macro-expansion failure: (error "Variable binding depth exceeds
>> max-specpdl-size")
>>
>> [...]
>> INFO Processing OKURI-NASI entries...done
>> Eager macro-expansion failure: (error "Variable binding depth exceeds
>> max-specpdl-size")
>>
>> These issues don't seem to be present at rev 6bf56a; ref
>> https://hydra.nixos.org/build/137524247
>
> You are saying that 6bf56a broke bootstrap? I'd be surprised.
No, Glenn's saying the opposite, that 6bf56a (among other revisions) is
free of the eager macro-expansion failure.
--
Basil
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#46818: leim bootstrap: Variable binding depth exceeds max-specpdl-size
2021-02-27 18:50 ` Basil L. Contovounesios
@ 2021-02-27 18:51 ` Eli Zaretskii
0 siblings, 0 replies; 15+ messages in thread
From: Eli Zaretskii @ 2021-02-27 18:51 UTC (permalink / raw)
To: Basil L. Contovounesios; +Cc: rgm, 46818
> From: "Basil L. Contovounesios" <contovob@tcd.ie>
> Cc: Glenn Morris <rgm@gnu.org>, 46818@debbugs.gnu.org
> Date: Sat, 27 Feb 2021 18:50:04 +0000
>
> >> These issues don't seem to be present at rev 6bf56a; ref
> >> https://hydra.nixos.org/build/137524247
> >
> > You are saying that 6bf56a broke bootstrap? I'd be surprised.
>
> No, Glenn's saying the opposite, that 6bf56a (among other revisions) is
> free of the eager macro-expansion failure.
Sorry for my misunderstanding.
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#46818: leim bootstrap: Variable binding depth exceeds max-specpdl-size
2021-02-27 18:34 ` Basil L. Contovounesios
@ 2021-02-27 20:55 ` Stefan Monnier
2021-02-27 21:03 ` Stefan Monnier
0 siblings, 1 reply; 15+ messages in thread
From: Stefan Monnier @ 2021-02-27 20:55 UTC (permalink / raw)
To: Basil L. Contovounesios; +Cc: Glenn Morris, 46818
> I see them with 'make bootstrap', and I think they started with:
>
> * lisp/emacs-lisp/cconv.el: Improve line-nb info of unused var warnings
> a350ae058c 2021-02-26 20:24:52 -0500
> https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=a350ae058caedcb7be7d332564817954e3624e60
I can't reproduce it here, neither with `make bootstrap` nor after `make
extraclean`. Any chance that a5ad6747c9da238bd2bcd335b9744ce9f4972ff1
fixed it?
Stefan
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#46818: leim bootstrap: Variable binding depth exceeds max-specpdl-size
2021-02-27 20:55 ` Stefan Monnier
@ 2021-02-27 21:03 ` Stefan Monnier
2021-02-28 0:01 ` Basil L. Contovounesios
2021-02-28 0:02 ` Stefan Monnier
0 siblings, 2 replies; 15+ messages in thread
From: Stefan Monnier @ 2021-02-27 21:03 UTC (permalink / raw)
To: Basil L. Contovounesios; +Cc: Glenn Morris, 46818
>> I see them with 'make bootstrap', and I think they started with:
>>
>> * lisp/emacs-lisp/cconv.el: Improve line-nb info of unused var warnings
>> a350ae058c 2021-02-26 20:24:52 -0500
>> https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=a350ae058caedcb7be7d332564817954e3624e60
>
> I can't reproduce it here, neither with `make bootstrap` nor after `make
> extraclean`. Any chance that a5ad6747c9da238bd2bcd335b9744ce9f4972ff1
> fixed it?
Oh, wait, no, I see it now, so it's clearly not fixed,
Stefan
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#46818: leim bootstrap: Variable binding depth exceeds max-specpdl-size
2021-02-27 21:03 ` Stefan Monnier
@ 2021-02-28 0:01 ` Basil L. Contovounesios
2021-02-28 0:02 ` Stefan Monnier
1 sibling, 0 replies; 15+ messages in thread
From: Basil L. Contovounesios @ 2021-02-28 0:01 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Glenn Morris, 46818
Stefan Monnier <monnier@iro.umontreal.ca> writes:
> Oh, wait, no, I see it now, so it's clearly not fixed,
With 'make bootstrap' it happens only once, after GENing leim-list.el,
but after 'git clean -dfx' it happens a few more times after that:
...
GEN ../lisp/leim/leim-list.el
Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
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...done
...
INFO Processing OKURI-NASI entries...done
Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
make[3]: Leaving directory '/home/blc/.local/src/emacs/leim'
make -C ../admin/grammars all EMACS="../../src/bootstrap-emacs"
make[3]: Entering directory '/home/blc/.local/src/emacs/admin/grammars'
GEN ../../lisp/cedet/semantic/bovine/c-by.el
Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
GEN ../../lisp/cedet/semantic/bovine/make-by.el
Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
GEN ../../lisp/cedet/semantic/bovine/scm-by.el
Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
GEN ../../lisp/cedet/semantic/wisent/javat-wy.el
Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
GEN ../../lisp/cedet/semantic/wisent/js-wy.el
Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
GEN ../../lisp/cedet/semantic/wisent/python-wy.el
Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
GEN ../../lisp/cedet/srecode/srt-wy.el
Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
...
--
Basil
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#46818: leim bootstrap: Variable binding depth exceeds max-specpdl-size
2021-02-27 21:03 ` Stefan Monnier
2021-02-28 0:01 ` Basil L. Contovounesios
@ 2021-02-28 0:02 ` Stefan Monnier
2021-02-28 0:22 ` Basil L. Contovounesios
` (2 more replies)
1 sibling, 3 replies; 15+ messages in thread
From: Stefan Monnier @ 2021-02-28 0:02 UTC (permalink / raw)
To: Basil L. Contovounesios; +Cc: Glenn Morris, 46818
>>> I see them with 'make bootstrap', and I think they started with:
>>> * lisp/emacs-lisp/cconv.el: Improve line-nb info of unused var warnings
>>> a350ae058c 2021-02-26 20:24:52 -0500
>>> https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=a350ae058caedcb7be7d332564817954e3624e60
>>
>> I can't reproduce it here, neither with `make bootstrap` nor after `make
>> extraclean`. Any chance that a5ad6747c9da238bd2bcd335b9744ce9f4972ff1
>> fixed it?
> Oh, wait, no, I see it now, so it's clearly not fixed,
It's a fleeting thing, fairly delicate to catch.
I can now reproduce it and it seems that it's just a "slightly too deep"
recursion when `quail-update-leim-list-file` calls `find-file-noselect`
which ends up loading `vc-git` which in turn loads `diff-mode` and
where the macroexpansion of some pcase macros hits the limit.
I suspect (but have not been able to confirm) that it might be due to the
change in `pcase--if` where we now return `(progn (ignore ,test) ,then)`
instead of just `then`, which causes the macroexpansion of `pcase-let`s
to be slightly more deeply nested.
Then again, I had to increase max_specpdl_size from 1600 to 1740 to get
past that problem, which seems like a higher impact than what I expect
from this little change in `pcase--if`.
In any case, rather than bump the pdl limit, I suggest the patch below,
which completely avoids the need to macroexpand all that code we won't
be using anyway.
Stefan
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index e4bdf50f52..a3685b564d 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -1312,8 +1312,13 @@ update-leim-list-functions
(defun update-leim-list-file (&rest dirs)
"Update LEIM list file in directories DIRS."
- (dolist (function update-leim-list-functions)
- (apply function dirs)))
+ ;; bug#46818: This `let'-binding is not indispensable, but
+ ;; it reduces the recursion depth during bootstrap (at which
+ ;; point some of the core ELisp files haven't been byte-compiled
+ ;; yet, which causes deeper-than-normal recursion).
+ (let ((vc-handled-backends nil))
+ (dolist (function update-leim-list-functions)
+ (apply function dirs))))
(defvar-local current-input-method nil
"The current input method for multilingual text.
^ permalink raw reply related [flat|nested] 15+ messages in thread
* bug#46818: leim bootstrap: Variable binding depth exceeds max-specpdl-size
2021-02-28 0:02 ` Stefan Monnier
@ 2021-02-28 0:22 ` Basil L. Contovounesios
2021-02-28 0:51 ` Stefan Monnier
2021-02-28 2:31 ` Glenn Morris
2021-02-28 3:42 ` Eli Zaretskii
2 siblings, 1 reply; 15+ messages in thread
From: Basil L. Contovounesios @ 2021-02-28 0:22 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Glenn Morris, 46818
Stefan Monnier <monnier@iro.umontreal.ca> writes:
> In any case, rather than bump the pdl limit, I suggest the patch below,
> which completely avoids the need to macroexpand all that code we won't
> be using anyway.
Works here, thanks,
--
Basil
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#46818: leim bootstrap: Variable binding depth exceeds max-specpdl-size
2021-02-28 0:22 ` Basil L. Contovounesios
@ 2021-02-28 0:51 ` Stefan Monnier
2021-02-28 2:18 ` Basil L. Contovounesios
0 siblings, 1 reply; 15+ messages in thread
From: Stefan Monnier @ 2021-02-28 0:51 UTC (permalink / raw)
To: Basil L. Contovounesios; +Cc: Glenn Morris, 46818
>> In any case, rather than bump the pdl limit, I suggest the patch below,
>> which completely avoids the need to macroexpand all that code we won't
>> be using anyway.
> Works here, thanks,
It's really strange that it also fixes the eager macroexpansion errors
you're seeing in
GEN ../../lisp/cedet/semantic/bovine/c-by.el
Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
GEN ../../lisp/cedet/semantic/bovine/make-by.el
Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
GEN ../../lisp/cedet/semantic/bovine/scm-by.el
Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
GEN ../../lisp/cedet/semantic/wisent/javat-wy.el
Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
GEN ../../lisp/cedet/semantic/wisent/js-wy.el
Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
GEN ../../lisp/cedet/semantic/wisent/python-wy.el
Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
GEN ../../lisp/cedet/srecode/srt-wy.el
Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
-- Stefan
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#46818: leim bootstrap: Variable binding depth exceeds max-specpdl-size
2021-02-28 0:51 ` Stefan Monnier
@ 2021-02-28 2:18 ` Basil L. Contovounesios
0 siblings, 0 replies; 15+ messages in thread
From: Basil L. Contovounesios @ 2021-02-28 2:18 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Glenn Morris, 46818
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>> In any case, rather than bump the pdl limit, I suggest the patch below,
>>> which completely avoids the need to macroexpand all that code we won't
>>> be using anyway.
>> Works here, thanks,
>
> It's really strange that it also fixes the eager macroexpansion errors
> you're seeing in
>
> GEN ../../lisp/cedet/semantic/bovine/c-by.el
> Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
> GEN ../../lisp/cedet/semantic/bovine/make-by.el
> Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
> GEN ../../lisp/cedet/semantic/bovine/scm-by.el
> Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
> GEN ../../lisp/cedet/semantic/wisent/javat-wy.el
> Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
> GEN ../../lisp/cedet/semantic/wisent/js-wy.el
> Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
> GEN ../../lisp/cedet/semantic/wisent/python-wy.el
> Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
> GEN ../../lisp/cedet/srecode/srt-wy.el
> Eager macro-expansion failure: (error "Variable binding depth exceeds max-specpdl-size")
Oops, sorry, forgot to 'git clean'. These are of course still with us.
--
Basil
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#46818: leim bootstrap: Variable binding depth exceeds max-specpdl-size
2021-02-28 0:02 ` Stefan Monnier
2021-02-28 0:22 ` Basil L. Contovounesios
@ 2021-02-28 2:31 ` Glenn Morris
2021-02-28 3:42 ` Eli Zaretskii
2 siblings, 0 replies; 15+ messages in thread
From: Glenn Morris @ 2021-02-28 2:31 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Basil L. Contovounesios, 46818
Stefan Monnier wrote:
> It's a fleeting thing, fairly delicate to catch.
I enjoyed this poetic turn. :)
> + (let ((vc-handled-backends nil))
This reminds me that locally I add
--eval '(setq vc-handled-backends nil)'
to EMACSOPT in eg lisp/Makefile.in.
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#46818: leim bootstrap: Variable binding depth exceeds max-specpdl-size
2021-02-28 0:02 ` Stefan Monnier
2021-02-28 0:22 ` Basil L. Contovounesios
2021-02-28 2:31 ` Glenn Morris
@ 2021-02-28 3:42 ` Eli Zaretskii
[not found] ` <87wnusnx0n.fsf@gnus.org>
2 siblings, 1 reply; 15+ messages in thread
From: Eli Zaretskii @ 2021-02-28 3:42 UTC (permalink / raw)
To: Stefan Monnier; +Cc: contovob, rgm, 46818
> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Date: Sat, 27 Feb 2021 19:02:13 -0500
> Cc: Glenn Morris <rgm@gnu.org>, 46818@debbugs.gnu.org
>
> Then again, I had to increase max_specpdl_size from 1600 to 1740 to get
> past that problem, which seems like a higher impact than what I expect
> from this little change in `pcase--if`.
>
> In any case, rather than bump the pdl limit, I suggest the patch below,
> which completely avoids the need to macroexpand all that code we won't
> be using anyway.
I'd rather increase the pdl limit. Having code that subtly evades
using our normal machinery sounds a maintenance headache in the long
run.
Thanks.
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#46818: leim bootstrap: Variable binding depth exceeds max-specpdl-size
[not found] ` <87wnusnx0n.fsf@gnus.org>
@ 2021-03-01 17:02 ` Stefan Monnier
0 siblings, 0 replies; 15+ messages in thread
From: Stefan Monnier @ 2021-03-01 17:02 UTC (permalink / raw)
To: Lars Ingebrigtsen; +Cc: contovob, rgm, 46818-done
>>> In any case, rather than bump the pdl limit, I suggest the patch below,
>>> which completely avoids the need to macroexpand all that code we won't
>>> be using anyway.
>> I'd rather increase the pdl limit. Having code that subtly evades
>> using our normal machinery sounds a maintenance headache in the long
>> run.
> I agree with Eli here -- increasing the pdl limit here certainly sounds
> like a less subtle fix.
OK, I've done that now, thanks,
Stefan
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2021-03-01 17:02 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-02-27 18:17 bug#46818: leim bootstrap: Variable binding depth exceeds max-specpdl-size Glenn Morris
2021-02-27 18:34 ` Basil L. Contovounesios
2021-02-27 20:55 ` Stefan Monnier
2021-02-27 21:03 ` Stefan Monnier
2021-02-28 0:01 ` Basil L. Contovounesios
2021-02-28 0:02 ` Stefan Monnier
2021-02-28 0:22 ` Basil L. Contovounesios
2021-02-28 0:51 ` Stefan Monnier
2021-02-28 2:18 ` Basil L. Contovounesios
2021-02-28 2:31 ` Glenn Morris
2021-02-28 3:42 ` Eli Zaretskii
[not found] ` <87wnusnx0n.fsf@gnus.org>
2021-03-01 17:02 ` Stefan Monnier
2021-02-27 18:44 ` Eli Zaretskii
2021-02-27 18:50 ` Basil L. Contovounesios
2021-02-27 18:51 ` Eli Zaretskii
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).