lua-users home
lua-l archive

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


> On Fri, Dec 25, 2015 at 12:00 AM, Jonathan Goble <jcgoble3@gmail.com> wrote:
> 
> > On Thu, Dec 24, 2015 at 3:54 PM, Egor Skriptunoff
> > <egor.skriptunoff@gmail.com> wrote:
> > > On Thu, Dec 24, 2015 at 12:29 PM, Jonathan Goble <jcgoble3@gmail.com>
> > wrote:
> > >>
> > >> This metatable chaining could theoretically continue indefinitely.
> > >
> > > The nested metatable limit is 2000 levels for Lua 5.3 (and 100 for
> > LuaJIT).
> >
> > Hence "theoretically". :)
> >
> > I figured there were recursion limits, as in practice stack overflow
> > become a concern.
> >
> 
> It seems that nesting of "__index" metamethods results in tail calls.

The nesting of "__index" metamethods is done in a C loop, with no
calls at all. The limit is there only to avoid infinite loops (with
a table inheriting from itself).

-- Roberto