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

c++ - 将 Lua 脚本嵌入 C++ 应用程序会将 Lua 部分编译为机器代码吗?

我有一个关于 Lua 的新手问题。

如果我在我的 C++ 应用程序中嵌入了一些 Lua 脚本。当我编译我的 C++ 应用程序时,Lua 脚本部分会被编译成机器代码还是 C++ 应用程序每次都使用 Lua 解释器运行 Lua 脚本部分?

网上说使用 LuaJIT 会大大提高嵌入式脚本的性能,那么我猜 C++ 应用程序中的 Lua 脚本永远不会编译成机器码。

如果我想在这种情况下充分发挥性能,即我想用 Lua 编写我的程序的一部分以嵌入到 C++ 应用程序中。我最好的选择是什么?有什么东西可以用来将 Lua 部分编译成 C++/C 部分,这会提高性能吗?

0 投票
1 回答
367 浏览

c - lua中的动态ffi函数调用

我们可以从字符串动态创建一个函数并调用 ffi.C 绑定吗?例子 :

我收到错误:缺少符号“foo_bar_var_get_info”的声明

我在网上搜索了很多,但找不到任何方法,所以想在这里发布它,以便有人可以提供帮助。

0 投票
2 回答
1077 浏览

postgresql - PostgreSQL 和 pllua

我正在尝试构建 pllua 模块,但遇到了一些麻烦。

我认为问题出在错误的 PostgreSQL 版本上,但我不确定,如果有人可以帮助我,我将不胜感激。

Postgres 位置:/opt/PostgreSQL/9.3/bin (是enterpriceb版本,不支持)

Lua 位置:/opt/myLua(使用 luaDist 构建)

我已经修改了 pllua makefile:

但是编译会产生错误和警告:

非常感谢

### - 更新 - -

我解决了(仅部分)这个问题。从 enterpriceb 下载 postgreSQL 9.2,现在编译正常,pllua.so 安装在 /opt/PostgreSQL/9.2/lib/postgresql 中。

当我运行时: root@lua:/opt/PostgreSQL/9.2/bin# ./psql -U postgres -p 5435 -c "CREATE EXTENSION pllua" postgres

它引发了一个错误:

错误:无法加载库“/opt/PostgreSQL/9.2/lib/postgresql/pllua.so”:/opt/PostgreSQL/9.2/lib/postgresql/pllua.so:未定义符号:luaopen_math

现在 luaopen_math 有什么问题?可能我需要在编译之前加载一些 luaJit 库吗?

0 投票
2 回答
792 浏览

c++ - 从 LuaJIT 调用 C++ DLL

我知道我不能使用 FFI 加载 C++ DLL(只有 C 可以工作),那么我该怎么做呢?如果我需要使用包装器,我该如何开始呢?

编辑:我无法以任何方式更改 DLL。

0 投票
1 回答
1121 浏览

c++ - 创建一个回调结构以传递给 LuaJIT FFI

所以首先我加载我需要的 DLL

在 ffi cdef 我有两种不同的结构

我在cdef中也有这个功能

现在我想调用这个函数

vars a 和 b 显然是占位符,问题是我怎样才能传递函数需要的结构?假设我们让 StructSession 正常工作,是否对 StructCallbacks 内的函数进行回调甚至是可能的?

0 投票
1 回答
339 浏览

lua - 如何在 luajit 中使用 strtok?

我的代码如下:

当我运行我的 nginx 时,发生了一些错误!由while循环返回后,nginx工作进程崩溃,信号11。最后一个ngx.log无法运行。我该如何处理?

0 投票
3 回答
2975 浏览

pointers - 如何使用 LuaJIT FFI 创建指向现有数据的指针?

我知道有一些使用 LuaJIT FFI 创建指针的示例,但其中大多数都没有指向现有数据。一个这样的例子在这里: 如何传递一个指向 LuaJIT ffi 的指针作为输出参数?

我无法成功做的一件事是创建一个指向现有值的指针。据我所知,为了有一个指针类型,我必须知道我希望在将来的某个时候有一个指向它的指针,如:

在这里,我知道 glGenVertexArrays 需要一个指向 的指针vao,所以我将它指定为 GLuint[1]。在 C 中,我将执行以下操作:

在这里,我不知道我需要一个指向 的指针vao,所以我可以正常指定它。

换句话说,有没有办法获取现有值的地址或创建指向现有值的指针?在创造价值之前,我是否必须预见我将如何处理价值?

谢谢!

0 投票
2 回答
3036 浏览

lua - 常规 Lua 解释器与 LuaJIT 解释器?

所以,我只是想知道使用普通的 Lua 解释器而不是 LuaJIT 解释器是否有任何优势?

0 投票
1 回答
635 浏览

c - 在 LuaJIT FFI 中创建回调结构

所以首先我加载我需要的 DLL

在 ffi cdef 我有这个结构

我在cdef中也有这个功能

现在我想调用这个函数

问题是如何传递函数所需的结构(如何使 myCallbacks 成为 Lua 函数的回调结构)?

0 投票
2 回答
2531 浏览

lua - 安装 luarocks 以在 Ubuntu 上同时使用 lua5.1 和 luajit

我希望能够运行类似的东西luarocks-jit install X并让新安装的 rock 使用 luajit 作为它的解释器。最终,我试图通过 luajit 运行我失败的测试

这是我尝试过的:

当前版本的 luarocks 在配置脚本中有一个“--lua-version”标志,但它只接受“5.1”或“5.2”,所以没有骰子。我也考虑过编辑该脚本以接受“jit”,但我还没有这样做。

我试图关注这个wiki 页面,但它是为不同的操作系统编写的,我怀疑它已经过时了,原因有几个:

  • 我找不到它引用的许多变量的任何文档(LUA_BINDIR 等)
  • 我机器上 /usr/local/bin/luarocks5.1 的脚本看起来与页面上的完全不同。
  • 页面上显示的 config-X.lua 文件看起来也与我安装的不同。

但实际上,我不得不在一个不幸的旧版本 Ubuntu (7.10) 上执行此操作,所以可能更有可能是我的系统已经过时了。无论哪种方式,我都无法让 luarocks-jit 工作。

谢谢你的帮助。