1个稳定版本

使用旧的Rust 2015

2.0.50 2017年12月1日

#1128编程语言

MIT 许可证

2MB
55K SLoC

C 43K SLoC // 0.1% comments Lua 9K SLoC // 0.1% comments GNU Style Assembly 2.5K SLoC Batch 356 SLoC Rust 169 SLoC // 0.2% comments

包含 (ELF可执行文件/库,465KB) src/LuaJIT-2.0.5/src/luajit,(ELF可执行文件/库,140KB) src/LuaJIT-2.0.5/src/host/minilua,(ELF可执行文件/库,95KB) src/LuaJIT-2.0.5/src/host/buildvm

luajit-sys

关于此库

此库提供对Lua API的系统绑定。库是静态链接的。当前版本为 2.0.5。Cargo的版本号是 2.0.50 (如 2.0.50,但Cargo不允许4位版本号)。如果Rust版本(即此库)有更改,则最后一个数字是保留的。然而,从技术上讲,这种情况不应该发生。

您可以为LuaJIT的新版本更新此库 但是

如果您更新Lua,则需要

- delete the /docs folder, useless for this
- delete the /src/
- run `make amalg` once (manually)
- run `find . -type f -name '*.o' -delete` to delete the object files

这将生成 ljamalg.c 文件,这对于构建此库非常重要。否则,您将无法构建库,因为LuaJIT将抱怨缺少 lj_ffdef.hlj_ffdef.h (可能) 在构建时生成,然而LuaJIT的Makefile难以阅读,我看不到文件是在哪里生成的,LuaJIT的开发人员只是不想提供任何答案,因为他们认为 make 是最好的构建系统,从未听说过cargo。

此解决方案会消耗更多内存,但至少库可以构建。

现在需要调整的只有标志。我已经尝试重新导出所有可能的LuaJIT编译标志,使其与Rust兼容,但这还是一个正在进行中的工作。

cargo features

选择您的目标架构(只能选择一个,否则无法编译)

arch_arm = []
arch_mips = []
arch_mipsel = []
arch_powerpc = []
arch_powerpc_spe = []
arch_x64 = []
arch_x86 = []

默认为 arch_x64。然后选择您的附加标志

  • force_32_bit
  • extra_warnings
  • enable_lua52_compat
  • disable_jit
  • nummode_1|nummode_2
  • use_sysmalloc
  • use_valgrind
  • use_gdb_jit
  • use_apicheck
  • use_assert
  • optimize_size
  • ps3
  • cellos_lv2

有关信息,请参阅 Cargo.toml 文件。

rluahlua 的兼容性

我将尝试让 rluahlua 运作。然而,这个库目前使用 Lua 5.1 API,而 hlua 使用 5.2,rlua 使用 5.3 - 我不知道这些 API 是否兼容。

无运行时依赖