On Fri, 1 May 2020, Hans Hagen wrote: > On 5/1/2020 6:12 AM, Jairo A. del Rio wrote: >> I've adapted the following code to make mazes in LuaLaTeX and ConTeXt: >> https://www.rosettacode.org/wiki/Maze_generation#Lua >> >> I defined a modified version to make content visible to TeX and I saved in >> a file named maze.lua: >> >> function make_maze_tex(w, h, m) >>   w = w or 16 >>   h = h or 8 >> >>   local map = initialize_grid(w*2+1, h*2+1) >> >>   function walk(x, y) >>     map[y][x] = false >> >>     local d = { 1, 2, 3, 4 } >>     shuffle(d) >>     for i, dirnum in ipairs(d) do >>       local xx = x + dirs[dirnum].x >>       local yy = y + dirs[dirnum].y >>       if map[yy] and map[yy][xx] then >>         map[avg(y, yy)][avg(x, xx)] = false >>         walk(xx, yy) >>       end >>     end >>   end >> >>   walk(math.random(1, w)*2, math.random(1, h)*2) >> >> ...ext/tex/texmf-context/tex/context/base/mkiv/supp-ran.lua:30: C stack >> overflow >> Why does it happen? I guess it has something to do with math.randomseed, >> but I don't know how to avoid this error message. > no, it's just lua running out of stack space so it depends on the binary > (and als the initial random value) But why is it running out of stack? Isn't the walk function tail recursive, in which case it should not cause a stack overflow (https://www.lua.org/pil/6.3.html). Aditya