Почти съм сигурен, че бихте могли да увеличите това число (8000
) чрез промяна на LUAI_MAXCSTACK
стойност в luaconf.h
на вашата среда и възстановяването му (Lua среда).
По подразбиране е, както вече забелязахте:
/*
@@ LUAI_MAXCSTACK limits the number of Lua stack slots that a C function
@* can use.
** CHANGE it if you need lots of (Lua) stack space for your C
** functions. This limit is arbitrary; its only purpose is to stop C
** functions to consume unlimited stack space. (must be smaller than
** -LUA_REGISTRYINDEX)
*/
#define LUAI_MAXCSTACK 8000
Само че малко прилича на порнография.
Какво ще кажете за използването на таблица и итерацията през table.concat()
парчета от <=8000
ключове?