问题标签 [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.
c++ - 将 Lua 脚本嵌入 C++ 应用程序会将 Lua 部分编译为机器代码吗?
我有一个关于 Lua 的新手问题。
如果我在我的 C++ 应用程序中嵌入了一些 Lua 脚本。当我编译我的 C++ 应用程序时,Lua 脚本部分会被编译成机器代码还是 C++ 应用程序每次都使用 Lua 解释器运行 Lua 脚本部分?
网上说使用 LuaJIT 会大大提高嵌入式脚本的性能,那么我猜 C++ 应用程序中的 Lua 脚本永远不会编译成机器码。
如果我想在这种情况下充分发挥性能,即我想用 Lua 编写我的程序的一部分以嵌入到 C++ 应用程序中。我最好的选择是什么?有什么东西可以用来将 Lua 部分编译成 C++/C 部分,这会提高性能吗?
c - lua中的动态ffi函数调用
我们可以从字符串动态创建一个函数并调用 ffi.C 绑定吗?例子 :
我收到错误:缺少符号“foo_bar_var_get_info”的声明
我在网上搜索了很多,但找不到任何方法,所以想在这里发布它,以便有人可以提供帮助。
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 库吗?
c++ - 从 LuaJIT 调用 C++ DLL
我知道我不能使用 FFI 加载 C++ DLL(只有 C 可以工作),那么我该怎么做呢?如果我需要使用包装器,我该如何开始呢?
编辑:我无法以任何方式更改 DLL。
c++ - 创建一个回调结构以传递给 LuaJIT FFI
所以首先我加载我需要的 DLL
在 ffi cdef 我有两种不同的结构
我在cdef中也有这个功能
现在我想调用这个函数
vars a 和 b 显然是占位符,问题是我怎样才能传递函数需要的结构?假设我们让 StructSession 正常工作,是否对 StructCallbacks 内的函数进行回调甚至是可能的?
lua - 如何在 luajit 中使用 strtok?
我的代码如下:
当我运行我的 nginx 时,发生了一些错误!由while循环返回后,nginx工作进程崩溃,信号11。最后一个ngx.log无法运行。我该如何处理?
pointers - 如何使用 LuaJIT FFI 创建指向现有数据的指针?
我知道有一些使用 LuaJIT FFI 创建指针的示例,但其中大多数都没有指向现有数据。一个这样的例子在这里: 如何传递一个指向 LuaJIT ffi 的指针作为输出参数?
我无法成功做的一件事是创建一个指向现有值的指针。据我所知,为了有一个指针类型,我必须知道我希望在将来的某个时候有一个指向它的指针,如:
在这里,我知道 glGenVertexArrays 需要一个指向 的指针vao
,所以我将它指定为 GLuint[1]。在 C 中,我将执行以下操作:
在这里,我不知道我需要一个指向 的指针vao
,所以我可以正常指定它。
换句话说,有没有办法获取现有值的地址或创建指向现有值的指针?在创造价值之前,我是否必须预见我将如何处理价值?
谢谢!
lua - 常规 Lua 解释器与 LuaJIT 解释器?
所以,我只是想知道使用普通的 Lua 解释器而不是 LuaJIT 解释器是否有任何优势?
c - 在 LuaJIT FFI 中创建回调结构
所以首先我加载我需要的 DLL
在 ffi cdef 我有这个结构
我在cdef中也有这个功能
现在我想调用这个函数
问题是如何传递函数所需的结构(如何使 myCallbacks 成为 Lua 函数的回调结构)?
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 工作。
谢谢你的帮助。