lua-users home
lua-l archive

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


On Sun, Apr 10, 2016 at 9:54 PM, Soni L. <fakedme@gmail.com> wrote:
>
>
> On 10/04/16 06:49 PM, Nagaev Boris wrote:
>>
>> On Sun, Apr 10, 2016 at 8:44 PM, Soni L. <fakedme@gmail.com> wrote:
>>>
>>>
>>> On 10/04/16 05:06 PM, Nagaev Boris wrote:
>>>>
>>>> On Sun, Apr 10, 2016 at 6:40 PM, Jura Pk <marsgpl@gmail.com> wrote:
>>>>>
>>>>> Problem solved, thanks to Shmuel Zeigerman and Soni L.
>>>>> After wrapping in lua_checkstack, the code works perfectly even with
>>>>> 1000
>>>>> tables.
>>>>> Seems, like lua_checkstack grows the stack =)
>>>>>
>>>>> 2016-04-10 21:27 GMT+03:00 Shmuel Zeigerman <shmuz@013net.net>:
>>>>>>
>>>>>> On 10/04/2016 20:16, Jura Pk wrote:
>>>>>>>
>>>>>>> I am stuck with a problem: when I'm trying to add 100 tables in Lua c
>>>>>>> stack, I receive segfault on function end.
>>>>>>> Code example:
>>>>>>> lua_example.c: http://pastebin.com/GFvLwMY2
>>>>>>> Makefile: http://pastebin.com/3EWJiVz7
>>>>>>> test.lua: http://pastebin.com/1y22XvzK
>>>>>>>
>>>>>> See https://www.lua.org/manual/5.3/manual.html#lua_checkstack
>>>>>>
>>>>>> --
>>>>>> Shmuel
>>>>>>
>>>>>>
>>>> By the way, why not to grow the stack automatically in pushing API
>>>> functions?
>>>>
>>> Because of overhead. Imagine checking the stack every operation vs
>>> checking
>>> the stack once for 1000 operations, or however many you need.
>>>
>> If the stack has room for new element, than the check is just one
>> comparison, which would be perfectly predicted.
>>
> And a branch.
... perfectly predicted branch



-- 


Best regards,
Boris Nagaev