Tenho quase certeza, você poderia aumentar esse número (
8000
) alterando LUAI_MAXCSTACK
valor no luaconf.h
do seu ambiente e reconstruindo-o (ambiente Lua). O padrão é, como você já notou:
/*
@@ 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
Só que parece um pouco pornografia.
Que tal usar uma tabela e iterar através de
table.concat()
pedaços de <=8000
chaves?