问题标签 [luajit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
485 浏览

lua - LuaJIT,损坏的 Lua 堆栈,并获取全局表

我目前正在将游戏(Bitfighter)从 Lua 5.1 迁移到 LuaJIT 2.0.2。我已经得到了适当的编译和链接;但是,当运行游戏并实际尝试运行 lua 脚本(用于机器人)时,我似乎得到了一个损坏的堆栈。

尝试为脚本设置环境时会出现问题 - 我在制作副本之前获取全局环境:

但是,当在这里转储堆栈时,堆栈有 1 项是 a LUA_TSTRING,其值为NULL(堆栈事先为空)。这在链接到普通 Lua 5.1 库时没有问题,并且上述调用正确地将全局表推入堆栈。

我读到这可能意味着堆栈在其他地方已损坏,并且 LuaJIT 不如普通 VM 宽容。我打开了 LuaJIT-DLUA_USE_ASSERT-DLUA_USE_APICHECK编译器标志,但没有被触发。

在设置脚本环境之前,我们lua_pcall使用 C API 将几个脚本加载到全局环境中,并设置几个其他全局变量。这些会导致像这样的未知堆栈损坏吗?

如何找到堆栈损坏?或者,我是否遗漏了 LuaJIT 的其他重要内容?

0 投票
2 回答
2403 浏览

c++ - 嵌入 LuaJIT - 创建包含文件夹

我对 LuaJIT 没有任何问题,它非常好,而且很容易从好的旧 Lua 切换。
但现在我使用srcLuaJIT 发行版中的文件夹作为 lib 的包含。
这有点乱,因为有makefile, batch scripts, c files, dasc files,src/jit folder与我知道与luajit.exeetc一起使用的脚本
我想创建一个干净include的文件夹,其中只有h文件(和其他如果需要)用于在 c++ windows 应用程序中使用 LuaJIT 作为共享库,但完全不要知道要排除什么。

我当前的排除列表

  • 主机文件夹
  • jit 文件夹
  • c 文件
  • .dasc 文件
  • c 文件
  • luajit.lib - 进入 lib 文件夹
  • luajit.exp
  • luajit.exe
  • luajit.dll - 进入 bin 文件夹
  • 生成文件
  • 生成文件.dep
  • 蝙蝠文件
0 投票
0 回答
481 浏览

xcode - 如何使用 i386 和 x86_64 二进制部分的单独编译或链接选项在 Mac OS X 上编译通用库?

我正在为带有 Xcode 5.02 的 Mac OSX 编译一个使用 luajit 库(以静态链接方式)的程序。

luajit 的运行时内存机制要求在 Mac OSX 的 x86_64 构建上添加链接选项“-pagezero_size 10000 -image_base 100000000”,否则初始化时会崩溃,因为函数 luaL_newstate() 将返回 NULL。

(有关崩溃发生原因的详细技术信息,请参考此网址,因为它不是此问题帖子的主题: http ://www.freelists.org/post/luajit/luaL-newstate-fails-on-64bit- Mac-cant-set-linker-flags,2 )

但对于 i386 构建,此链接选项不是必需的,实际上它是无效的,因为图像库超过了 32 位限制。

所以现在的情况是我可以成功地在单一架构中构建程序。(使用 x86_64 架构中的链接选项和 i386 架构中的无链接选项)。但我不知道如何构建通用二进制文件。因为我找不到在通用二进制构建设置中为不同架构指定单独链接选项的地方。

有谁知道如何解决这个问题?

谢谢!

0 投票
1 回答
880 浏览

curl - Lua (LuaJit) cURL curl_easy_perform 总是返回 CURLE_URL_MALFORMAT (3)

我正在尝试将 libcurl.dll 与 LuaJit 一起使用,但curl_easy_perform总是返回CURLE_URL_MALFORMAT(3)

这是我的实际代码(代码已修复):

具有两个 .dll 版本的脚本的输出:

我对两个 .dll 进行了尝试,它们的行为相同。

我从以下位置下载的第二个 .dll:http: //www.confusedbycode.com/curl/curl-7.35.0-win32-fix1.zip

有人知道如何让 LuaJit/cURL 一起工作吗?

0 投票
1 回答
878 浏览

curl - Lua (LuaJit) cURL curl_easy_getinfo 无法按预期工作

我正在尝试获取信息CURLINFO_RESPONSE_CODECURLINFO_CONTENT_TYPEwith curl_easy_getinfo,但两次尝试似乎都失败了。

就像在 LuaJit/scanf 示例中一样,我正在分配ffi.new("int[1]")以获取一个元素作为指针并将其用作参数,以便在保存后读取值。

输出是(错误的旧输出):

结果 0 表示 CURLE_OK 并且文件已真正下载(我已经使用我的自定义游戏 FS 函数进行了测试)。虽然我无法获得响应代码或内容类型。有人知道我做错了什么吗?

0 投票
2 回答
1585 浏览

cygwin - 无法让 LuaJIT 用 cygwin 编译

我正在尝试在 Windows 上安装最新版本的 LuaJIT。我尽可能按照安装 LuaJIT 的说明进行操作。我安装了 cygwin 和make软件包,打开 cygwin,cd编辑到解压缩的源文件夹,然后输入make. 我得到这个输出:

搜索这些错误消息中的任何一个都没有结果。我做错什么了?

0 投票
1 回答
847 浏览

luajit - luasocket 3.0,未定义符号:lua_callk

我正在使用luajit 2.0.3,我想在我的项目中使用luasocket。当require socket in 时jit,它报错

luasocket 3.0我用debian 5.0lua5.1编译。我搜索了很多答案,但没有任何帮助。我用 lua5.1 在 debian 5.0 中编译了 luasocket 3.0。

0 投票
2 回答
1076 浏览

lua - LuaJIT 的 FFI 可以像 JIT 一样禁用吗?

对于一个项目,我需要为 API 的用户禁用 LuaJIT 的 FFI。我一直在查看 LuaJIT 的 wiki 和 Stack Overflow,但没有发现任何关于此的内容。

0 投票
1 回答
1719 浏览

c - Convert C function to Lua

I need convert this C function to a Lua function

I'm porting a simple project to LuaJIT, my port is 99% done, but this function has some problem. What am I missing?

At moment, my current Lua function is this:

Thanks in advance

0 投票
1 回答
975 浏览

lua - LUA FFI:在执行多个 ffi.cdef 时尝试重新定义错误

让我简单点。

我有多个测试要运行,每次测试后我都会使用 package.loaded[] = nil 清除当前测试的所有要求。

问题是虽然我们从全局命名空间中删除了所需的文件,但我看到这些文件完成的 ffi.cdef 保持不变,当我确实需要 agian 时,它会引发错误,因为“尝试重新定义 ''”

我们有什么方法可以清除加载的 cdef 吗?或者可以检索加载的 cdef,以便我可以保存旧的 cdef 并在测试完成后恢复?或者有没有其他方法可以完成相同的任务?

我只是在寻找类似 ffi.uncdef 的东西。