问题标签 [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 投票
1 回答
453 浏览

compiler-construction - 有没有办法冻结 luajit(或一些 jit)生成的代码,并在没有 jit 编译器的情况下使用它?

由于 luajit 或其他地方的 jit 编译器需要相当多的内存(对于嵌入式系统),我想知道:

有没有办法在具有大量内存的系统上运行 luajit(或其他基于 jit 的 VM),而不是冻结代码并在没有 jit 的情况下重用程序?

0 投票
1 回答
921 浏览

c - Luajit FFI 直接取消引用不需要转换的值的语义

当我取消引用指向双精度的指针时,下面的代码中发生了什么?

我的理由是,由于它是与 c 类型 1:1 对应的第一类类型,它应该能够在遵从之后直接使用值,特别是当指针跨越执行上下文而不是值时。

那么,当我从值中读取时,Lua 会创建一个临时的 double,复制到其中,然后打印它吗?还是会直接使用底层的双精度?

同样对于写作,Lua 是否能够生成直接写入双精度的程序集?

C代码:

lua代码

0 投票
1 回答
848 浏览

compilation - Suricata luajit 编译错误

我目前正在尝试使用以下命令在我的 arch linux 发行版上使用 luajit 支持编译 suricata ( http://suricata-ids.org/ ):

然后:

但是当我制作项目时出现以下错误:

我首先认为这是来自 lua 版本的问题。所以我尝试安装 lua 5.1.5 和 5.2.2,重新制作库和符号链接,但没有任何效果。谢谢你的帮助

0 投票
1 回答
955 浏览

c - 如何在 Linux 下的 luajit 中捕获 SIGUSR1?

我想在 luajit 中捕获 SIGINT。最终我希望能够捕获 SIGUSR1。目的是允许我编写 logrotate 兼容日志记录,在收到 SIGUSR1 后,日志文件关闭然后重新打开。

我怎样才能使用 FFI?

这是我到目前为止所拥有的。


实际上,我认为这里发生了一些事情。我注意到您必须按 ctrl+c 两次,然后程序退出。并且两次都没有调用“caught sig”。我认为 lua 解释器的 C 端已经在捕获 SIGINT 了。

所以我决定将 SIGINT 更改为 SIGUSR1,因为这最终是我需要的。我注意到它触发了捕获,但我得到了

听起来我的回调函数的格式有问题,但我不确定如何纠正。Lua 对我来说还是很新鲜的东西。

0 投票
2 回答
5406 浏览

c - 从 C 运行 luajit 目标文件

从文档: http: //luajit.org/running.html

但没有解释如何做这些事情。我猜他们假设任何使用 Lua 的人也是 C 程序员,但我不是这样!我能得到一些帮助吗?以 GCC 为例。

除了 C 字节数组头之外,我也想做同样的事情。我也找不到这方面的文档。

这会创建头文件,但我不知道如何从 C 中运行它。谢谢。

0 投票
1 回答
1220 浏览

lua - LuaJIT 是否支持表的 __gc?

Lua 5.2(与 5.1 相比)支持表的 __gc。

LuaJIT 是否借用了这个不错的功能?

(我进行了谷歌搜索,并检查了 LuaJIT 的变更历史,但无法找到答案。)

0 投票
0 回答
260 浏览

lua - LuaJIT - lint 选项

我一直在寻找lintutils 的类型Lua,并阅读了LuaInspect,LuaLintMetaLlint. 我正在使用LuaJIT-2.0.2,我的需求非常简单,我需要能够只检查MODNAME:function(). 除了MetaLint(需要MetaLua运行时)之外,其余的似乎都在进行字节码转储和解析,检查全局访问。

所以,如果我想为我的源代码实现一个简单的实用程序,在类似的行上,我应该在输出中寻找GGET和操作码,例如:TGETSluajit -b -l source.lua

有更好的选择/方法吗?

谢谢。

0 投票
1 回答
3023 浏览

lua - 将 LuaJIT 模块嵌入 C 应用程序

在我的应用程序中,我拥有从 C 后端公开的所有 Lua 库。现在,我需要加载一个 Lua 模块。这个方法似乎是:

它将搜索package.path以找到<libname>.lua并加载它。

是否可以将 Lua 模块内置到 C 应用程序中(以便模块成为 C 应用程序的一部分)?这样我就不用单独打包Lua模块了。不知何故,我无法找到任何参考或示例!:(

ps我正在使用LuaJIT-2.0.2,有问题的库是SciLua/Time(使用ffi

0 投票
1 回答
4899 浏览

module - 如何在命令行中列出模块并检查函数是否存在?

像许多“(windows)用户”一样,我不想花时间学习从源代码编译任何东西。所以Lua对于一个爱好者来说似乎是一个非常不错的选择。

对不起,如果这是一个非常简单的问题 - 但是......

Q1。如何列出可用于任何给定解释器实例的模块?

一些二进制发行版有许多编译为 DLL 的模块,还有一些将它们添加到主 EXE 中。很高兴知道 EXE 中内置了哪些模块,并检查 cpath 是否找到任何其他 DLL 模块。

Q2。有没有办法在 Lua 的命令行中获得帮助?

由于我是 Lua 新手,我想要一种简单的方法来获得任何给定功能的帮助。在一些解释语言中有一个 help("fname") 函数,Matlab 就是一个很好的例子。

Q3。GSL-Shell 的这个功能可以修改为帮助系统的基础吗?(即使它只是确认给定功能的存在也会有所帮助)

0 投票
1 回答
534 浏览

c++ - C++ 使用 loadbuffer 和 runbuffer 链接和运行 LuaJit 编译文件

我已经用 LuaJit 将 test.lua 编译成 test.obj 和 test.h。如何正确使用我拥有的 loadBuffer 或 runBuffer 函数?我需要知道的基本上是如何将 test.lua、test.obj 和 test.h 放入命令中,但我就是不能,我尝试了数百种方法,但似乎没有任何效果。我已经从 main 等中剥离了一些其他功能,这样它只会让问题可见,而不是其他可以正常工作的东西。

C++:这是主要的

这是 loadBuffer 函数:

这是 runBuffer 函数:

下面是 test.h 的内部: