Hi David,
On Sun, 2025-12-21 at 17:21 -0800, David Chiang wrote:
> Is this the intended behavior,
I wouldn't say that it's intended, but it's definitely expected. You can
replicate fairly similar errors with just TeX code. Although I can't
replicate your error with only 10 000 loops, I needed 100 000 instead:
\directlua{
for i = 1, 100000 do
tex.runtoks(function () end)
end
}
\end
> and is there a way to pop from the stack to avoid the overflow?
Probably the easiest solution in this case is to insert an \expandafter
every time that you call tex.runtoks:
\directlua{
local expandafter = token.create("expandafter")
for i = 1, 100000 do
tex.runtoks(function ()
token.put_next(expandafter)
end)
end
}
\end
There's also a coroutine trick that you can use
https://tug.org/TUGboat/tb39-1/tb121hagen-exec.pdf
although you'll need probably need to modify that code a little bit to
work with the latest LuaTeX.
Probably a better solution is to not call tex.runtoks a hundred thousand
times since I can't really think of a scenario where that makes
sense---it usually makes more sense to just use tex.runtoks only a few
dozen times, even if that means that you need to include way more code
in each call.
Thanks,
-- Max
_______________________________________________
dev-luatex mailing list -- [email protected]
To unsubscribe send an email to [email protected]