bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#36216: 27.0.50; Variable binding depth exceeds max-specpld-size duri


From: Stefan Monnier
Subject: bug#36216: 27.0.50; Variable binding depth exceeds max-specpld-size during bootstrap
Date: Sun, 16 Jun 2019 17:32:53 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

> In this case, with max-specpdl-size = 1300 it was working, now it
> requires on the order of 1435 or so, which is at least a 10% increment
> (likely a bit more, assuming it didn't need exactly 1300 before).
> That's not very big, but certainly significant.

Exactly, 10% is quite significant.  It can easily happen for perfectly
legitimate reasons, but there's a chance it's an undesirable side-effect
of some change which has a more global impact.


        Stefan


PS: When I tried it here, `git bisect` pointed the finger at:

    commit afdc20d73c8588e5a744ecf7bffaf4401a557d20 (HEAD, refs/bisect/bad)
    Author: Mattias EngdegÄrd <mattiase@acm.org>
    Date:   Wed May 15 22:44:00 2019 +0200
    
        Allow zero-argument rx `or' and `seq' forms
        
        Make the rx `or' and `seq' forms accept zero arguments to produce a
        never-matching regexp and an empty string, respectively.
        
        * lisp/emacs-lisp/rx.el: Require cl-extra.
        (rx-constituents, rx-or): Permit zero args.
        (rx): Amend doc string for `or' and `seq'.
        * test/lisp/emacs-lisp/rx-tests.el (rx-or, rx-seq): Test the change.
        * etc/NEWS (Changes in Specialized Modes and Packages): Mention the 
change.

which suggests the 10% increase is localized: I guess we "require
cl-extra" right when we happen to be (near) the deepest recursion and
since it's not yet byte-compiled it causes yet more recursive
eager-macroexpansion.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]