编译成机器码的话就没遇到什么方案可用,但是打包成exe倒是有不少方案。
目前比较易用的是ocra:https://github.com/larsch/ocra
先安装:gem install ocra
然后:ocra script.rb 就能生成script.exe了
区别是 MRuby 不支持超过 512 个局部变量.CRuby 的字节码在内存使用上是比较奢侈的, 而 MRuby 为了削减内存使用, 字节码设计得和 Lua 的很相似, 而其压缩表示限制了局部变量的个数
Lua 的字节码编码方式 (32bit, A, B, C 一般为局部变量编号), 可以看到操作数最少都有 8 位, 可以表示高达 256 个局部变量!