[Tarantool-patches] [PATCH v2 luajit 25/30] test: disable PUC Lua error test for syntax level

Sergey Kaplun skaplun at tarantool.org
Fri Apr 2 11:30:59 MSK 2021


Igor,

Thanks for the review.

On 31.03.21, Igor Munkin wrote:
> Sergey,
> 
> Thanks for the patch! LGTM, except the nits below.
> 
> On 26.03.21, Sergey Kaplun wrote:
> > When LuaJIT is compiled with LUAJIT_ENABLE_GC64, LJ_MAX_SLOTS limit is
> > reached and error LJ_ERR_XSLOTS ("function or expression too complex")
> > is raised earlier, than LJ_MAX_XLEVEL limit is reached and error
> > LJ_ERR_XLEVELS ("chunk has too many syntax levels") is raised.
> > 
> > This patch disabled test expected the LJ_ERR_XLEVEL error, but
> 
> Typo: s/disabled test/disables the test/.

Fixed.

> 
> > failing with the LJ_ERR_XSLOTS error.
> > 
> > Part of tarantool/tarantool#5845
> > Part of tarantool/tarantool#4473
> > ---
> >  test/PUC-Lua-5.1-tests/errors.lua | 8 +++++++-
> >  1 file changed, 7 insertions(+), 1 deletion(-)
> > 
> > diff --git a/test/PUC-Lua-5.1-tests/errors.lua b/test/PUC-Lua-5.1-tests/errors.lua
> > index 028224c..328976e 100644
> > --- a/test/PUC-Lua-5.1-tests/errors.lua
> > +++ b/test/PUC-Lua-5.1-tests/errors.lua
> > @@ -228,7 +228,13 @@ local function testrep (init, rep)
> >  end
> >  testrep("a=", "{")
> >  testrep("a=", "(")
> > -testrep("", "a(")
> > +-- LuaJIT: When compiled with LUAJIT_ENABLE_GC64, LJ_MAX_SLOTS
> > +-- limit is reached and error LJ_ERR_XSLOTS ("function or
> > +-- expression too complex") is raised earlier, than LJ_MAX_XLEVEL
> > +-- limit is reached and error LJ_ERR_XLEVELS ("chunk has too many
> > +-- syntax levels") is raised.
> 
> Side note: It would be nice if you also mention the root cause. AFAIU,
> LuaJIT frontend checks "virtual" stack size at the translation time,
> right? Therefore, when GC64 support is enabled every call needs twice
> more slots on the coroutine stack (since LJ_FR2 is also set).

Added to the comment and the commit message.

> 
> > +-- Test is disabled for LuaJIT.
> > +-- testrep("", "a(")
> >  testrep("", "do ")
> >  testrep("", "while a do ")
> >  testrep("", "if a then else ")
> > -- 
> > 2.31.0
> > 
> 
> -- 
> Best regards,
> IM

-- 
Best regards,
Sergey Kaplun


More information about the Tarantool-patches mailing list