Large concatenation loops not caught by "Terminate Hung Script" dialog

It seems string concatenations will not be caught by the ‘Tool taking long time, do you want to quit?’ warning.

I found this by a coding error where I was concatenating to the wrong string in a functions loop. It wasn’t an infinite loop but ran long enough to cause this error. Basically renoise freezes as your machine goes up to max memory usage. You do eventually get a system out of memory warning.

Test code:

Take a long string:

local string = “asdlfkjlisfjdlkdjslkjlewjrtpvwjrtvjerltkvjtjuvrkaebtljerbotjeratbjoraetjboeraibtoirjaebotjaerotijboraetjborjetb”

Concatinate in an infinite loop

    while true do
      string = string..string
    end

Terminal Output when run in testpad.lua:

*** not enough memory

Error when run from tool::

mem error

1 Like