问题标签 [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 回答
997 浏览

windows - LuaJIT 相当于 wlua.exe

在 Windows 中,我想知道是否有使用 LuaJIT 的等效方法,例如标准 Lua 发行版 wlua.exe,它是无窗口的。或者我应该编译模块并在标准 Lua 解释器中使用它们?(不确定这是否可能)。

0 投票
1 回答
437 浏览

c - 及时编译外部函数接口:编译“运行时”的是什么

我的问题一般是关于 JIT 的外部函数接口,但我将使用 LuaJIT 作为具体示例。据说 LuaJIT 的 FFI 比直接绑定到 C 更快,因为调用 C 函数可以得到 JIT 编译。

谁能解释一下。通常,被绑定的 C 函数已经存在于库中,因此它已经被编译,所以究竟是什么得到了 JIT'ed。

0 投票
2 回答
4562 浏览

lua - LuaJIT 的跟踪编译器是如何工作的?

我一直在阅读 JIT 和 LuaJIT 的跟踪编译器,特别是我遇到了一些问题。

据我了解,LuaJIT 的 JIT 不像 Java 的 HotSpot 那样编译热方法,它编译源自循环的热路径。这是否意味着如果某些东西不是源自循环(例如,我从 C-api 调用 Lua 函数),那么代码将永远不会被 jitted?当你遇到另一个循环时会发生什么?到第二个循环的路径是否会被 JIT,然后来自该循环的新路径也会被 jitted,或者第二个循环是否是同一路径的一部分?

解释器如何选择最优的热路径?假设我有一个整数哈希表 -> 字符串。现在想象一下,我已经调用 table[x] 并且 x 是 3 和 5 次,它们已经成为热路径并被 jitted,解释器如何决定为 x 为 4 的 table[x] 调用哪个 jitted 代码?

另一件事一直在绞尽脑汁。由于编译的是路径而不是函数,因此跟踪编译器不需要更多内存吗?因为你不能真正重用另一条路径的编译代码,我的意思是,因为在一般情况下,路径可能比单个函数大......

0 投票
4 回答
26275 浏览

lua - 如何使用 Luarocks 为 Lua5.2 和 5.1 安装库?

我正在编写一个小型 Lua 项目并使用 Luarocks 安装我的第 3 方依赖项。我机器上的默认 Lua 版本是 5.2,到目前为止一切正常。

然而,今天我偶然发现了一个让我感到困惑的问题。我想在 Lua 5.1 和 Luajit 上运行我的程序,看看它是否也适用于这些版本,但我很难让 Luarocks 下载适当版本的依赖项。作为最后的手段,我试图告诉 Lua5.1 使用 Luarocks 安装的 5.2 库(通过将LUA_PATH环境变量设置为与 相同的值LUA_PATH_5_2)但不幸的是这还不够:我的项目依赖于 LuaFileSystem,一个 C-基于模块,所以我需要为 5.1 和 5.2 安装单独的版本。

我需要做什么来安装我的依赖项的 5.1 和 5.2 版本?我需要将一些参数传递给luarocks install命令吗?我需要在我的机器上安装多个 Luarocks 实例吗?让我感到困惑的一件事是.luarocks文件夹内部的东西被归类在 5.2 子文件夹(~/.luarocks/share/lua/5.2/)下,这表明也许有一种方法可以将东西安装在同级5.1文件夹中,但在同时只有一个bin文件夹,说明 luarocks 一次只能处理一个版本的 Lua...

0 投票
1 回答
3306 浏览

lua - 如果我正在运行 Luajit 或 PUC Lua 5.1,如何在运行时检测到?

我正在为我的 Lua 项目编写一些测试脚本,我想确保它们在可用的不同 Lua 版本下正确运行。如果我的单元测试框架配置错误,它可能会使用错误的 Lua 版本,因此我想更加安全,并在运行时检查我的测试运行在哪个 Lua 版本下。最好的方法是什么?

我知道区分 5.1 和 5.2 的快速方法是检查_VERSION全局,但我怎样才能区分常规 Lua 5.1 和 LuaJIT?

0 投票
1 回答
866 浏览

date - Lua中的日期格式为UTCString

我对Lua (Luajit)中的日期格式有疑问。例如,我需要获取 UTC 字符串,就像我在 JavaScript 中那样:

不幸的是,在 Lua 中,我找不到以这种方式格式化日期的可能性:

0 投票
1 回答
545 浏览

lua - 垃圾收集上的 luajit 段错误

我对使用ffi.metatype. 当对象被垃圾收集时,我得到一个段错误。这是代码。

跑步 :

我错过了什么吗?我应该定义一个 __gc 元方法吗?如果是这样,我应该在那里放什么?

0 投票
1 回答
2548 浏览

c++ - lua_open 使用 luaJIT 返回 null

使用最近的 luaJITlua_open返回null。常规 lua 库不会发生这种情况。

输出:0x0

我怎样才能让 luaJIT 工作?

SSCCE:

附加信息:使用makemake install. 使用编译器:

(使用 luajit 命令行应用程序luajit工作正常,测试脚本执行时没有错误。)

0 投票
2 回答
1489 浏览

lua - MetaLua 可以和 LuaJIT 一起使用吗?

MetaLua 可以和 LuaJIT 一起使用吗?

如果是这样,那怎么办?

(我找不到任何可靠的信息)

0 投票
1 回答
2003 浏览

ffi - 在 LUA FFI 中传递指向 int 的指针

我有一个C函数如下

ffi.cdef[[

]]

我在传递“int *”时遇到问题,我尝试了以下变体,

本地 err_val = ffi.new("int[1]") 本地 err_val = ffi.new("int *")

程序崩溃,因为传递给函数的“err”为 NULL。(请注意,我可以在执行 ffi.new("entry_key_t[1]") 后传递指针'key')

我错过了什么?我正在使用 LuaJIT 2.0.2。