''+ud: bad argument #1 to '?' ()
ud+'': [string "return ... + ''"]:1: bad argument #2 to 'add' ()
42+ud: [string "return 42+..."]:1: bad argument #1 to 'add' ()
Adding a string with a userdata has no information about the failing function.
But adding a userdata with a string has a good error message.
Same with number + userdata.
Different meta-methods like __sub, __mul, ... have the same problem.
Loading modules on threads has now a very limited require-depth.
Requiring t1.lua which itself requires t2.lua and so on stops
after 5 levels with "C stack overflow". The number of C-frames when
the error happens is in my case 53 and so quite low.