cortav  luac.lua at [f673b2abfe]

File tool/luac.lua artifact e99572ed87 part of check-in f673b2abfe


-- luac is broken in some distributions, and cannot take more than one
-- argument without crashing on a double free or similar. this
-- completely breaks the cortav build process, so we supply our own
-- ultra-simplistic and painfully primitive luac replacement.
-- this does not generate very good object code.
-- pass luac-broken=1 when building to use
local pgm = ""
local strip = os.getenv("strip")=="1"
if #arg > 1 then
	local chunks = {}
	for i, f in ipairs(arg) do
		local nc = assert(loadfile(f))
		nc = string.format("load%q(...)", string.dump(nc))
		table.insert(chunks, nc)
	end
	pgm = assert(string.dump(load(table.concat(chunks))))
else
	pgm = assert(string.dump(loadfile(arg[1])))
end

io.stdout:write(pgm)