]> git.lizzy.rs Git - metalua.git/commitdiff
better runtime error msg qhen running a program with metalua
authorFabien Fleutot <fabien@MacFabien.home>
Thu, 18 Dec 2008 19:40:02 +0000 (20:40 +0100)
committerFabien Fleutot <fabien@MacFabien.home>
Thu, 18 Dec 2008 19:40:02 +0000 (20:40 +0100)
src/compiler/metalua.mlua

index 265f06b8e79f37c80bccea964c2a397a89a44955..9e1fdc38a9a1886cae2203715cecc05eb61191b4 100644 (file)
@@ -233,7 +233,10 @@ local function main (...)
       -- FIXME: check for failures
 
       runargs = table.icat(cfg.params or { }, runargs)
-      local st, msg = pcall(f, unpack (runargs))
+      local function print_traceback (errmsg)
+         return errmsg .. '\n' .. debug.traceback ('',2) .. '\n'
+      end
+      local st, msg = xpcall(|| f(unpack (runargs)), print_traceback)
       if not st then
          io.stderr:write(msg)
          os.exit(RUNTIME_ERROR_NUMBER)