now that i implemented nun boxing, and values fit in one register, i was able to also implement copy&patch compilation. with some additional optimizations im now finally faster than luajit's interpreter-only mode on a few benchmarks as well 🥳
| Command | Mean [s] | Min [s] | Max [s] | Relative |
|:---|---:|---:|---:|---:|
| lua5.1 bench.lua -- lua_benchmarking/benchmarks/life/bench 5000 \|\| true | 1.967 ± 0.021 | 1.947 | 2.008 | 2.86 ± 0.04 |
| luajit -joff bench.lua -- lua_benchmarking/benchmarks/life/bench 5000 | 1.114 ± 0.012 | 1.103 | 1.139 | 1.62 ± 0.02 |
| luajit bench.lua -- lua_benchmarking/benchmarks/life/bench 5000 | 0.687 ± 0.004 | 0.682 | 0.694 | 1.00 |
| ./target/interpreter/release/bench life.bin 5000 | 2.689 ± 0.036 | 2.659 | 2.783 | 3.91 ± 0.06 |
| ./target/release/bench life.bin 5000 | 1.068 ± 0.003 | 1.063 | 1.073 | 1.56 ± 0.01 |
| ./target/unsafe/bench life.bin 5000 | 0.939 ± 0.005 | 0.933 | 0.946 | 1.37 ± 0.01 |