This is the reference Lua interpreter with the Yk JIT retrofitted.
This is experimental!
GNU make is required.
Run:
export PATH=/path/to/yk/bin:${PATH} # local path to https://github.com/ykjit/yk/blob/master/bin/yk-config (yk needs to be compiled)
export YK_BUILD_TYPE=<debug|release>
make -j "$(nproc)"
./src/lua -e "print('Hello World')" # execute program passed in as string
./src/lua ./tests/utf8.lua # execute lua program file
./src/luac ./tests/utf8.lua -o ./utf8.out # translates lua programs into Lua bytecode
Make sure to build the project first.
cd tests # navigate to tests directory
../src/lua -e"_U=true" db.lua # run single file
../src/lua -e"_U=true" all.lua # run complete test suite (Currently failing)
run_docker_ci_job # local path to https://github.com/softdevteam/buildbot_config/blob/master/bin/run_docker_ci_job
Use LYK_VERBOSE
environment variable to print LYK (lua yk) debug logs:
LYK_VERBOSE=1 gdb --batch -ex 'r' -ex 'bt' --args ../src/lua all.lua
LYK_VERBOSE=1 ../src/lua all.lua
LYK_VERBOSE=1 sh ./test.sh
Test | Status | Issue |
---|---|---|
api.lua | Working | |
bwcoercion.lua | Working | |
closure.lua | Working | |
code.lua | Working | |
events.lua | Working | |
files.lua | Working | |
gengc.lua | Working | |
goto.lua | Working | |
pm.lua | Working | |
tpack.lua | Working | |
tracegc.lua | Working | |
vararg.lua | Working | |
cstack.lua | Working | |
locals.lua | Working | |
db.lua | Failing | issue |
attrib.lua | Failing | issue |
bitwise.lua | Failing | issue |
strings.lua | Failing | issue |
calls.lua | Failing | issue |
constructs.lua | Failing | issue |
errors.lua | Failing | issue |
math.lua | Failing | issue |
sort.lua | Failing | issue |
nextvar.lua | Failing | issue |
gc.lua | Failing | issue |
utf8.lua | Failing | issue |
big.lua | Failing | issue |
literals.lua | Failing | issue |
coroutine.lua | Failing | issue |
heavy.lua | Failing | issue |
verybig.lua | Failing | issue |
main.lua | Failing | issue |
all.lua | Failing | issue |