fixed source file debug reference in required modules
diff --git a/metalua/loader.lua b/metalua/loader.lua index 9c4754f..e535fef 100644 --- a/metalua/loader.lua +++ b/metalua/loader.lua
@@ -52,9 +52,9 @@ --printf('path = %s, rpath_mark=%s, name=%s', path, resc(path_mark), name) local filename = path:gsub (resc (path_mark), name) --printf('filename = %s', filename) - local file = io.open (filename, 'r') + local file = io.open (filename, 'rb') if file then return file, filename end - table.insert(errors, string.format("\tno lua file %q", filename)) + table.insert(errors, string.format("\tno file %q", filename)) end return false, '\n'..table.concat(errors, "\n")..'\n' end @@ -80,7 +80,7 @@ local bytecode, file, msg if delta <= 0 then --print ("(need to recompile "..src_filename.." into "..dst_filename..")") - bytecode = mlc :src_to_bytecode (src, name) + bytecode = mlc :src_to_bytecode (src, '@'..src_filename) for x in dst_filename :gmatch('()'..dir_sep) do lfs.mkdir(dst_filename:sub(1,x)) end @@ -94,7 +94,7 @@ bytecode = file :read '*a' file :close() end - return mlc :bytecode_to_function (bytecode) + return mlc :bytecode_to_function (bytecode, '@'..src_filename) end ---------------------------------------------------------------------- @@ -107,7 +107,7 @@ file:close() if M.mcache and pcall(require, 'lfs') then return metalua_cache_loader(name, filename_or_msg, luastring) - else return require 'metalua.compiler'.new() :src_to_function (luastring, name) end + else return require 'metalua.compiler'.new() :src_to_function (luastring, '@'..filename_or_msg) end end