问题标签 [lua-5.3]

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 回答
1349 浏览

lua - 如何在 Lua 5.3 中保持整数浮动

在 Lua 5.2 中,所有数字都是双精度数。上述代码的输出是:

Lua 5.3 支持整数并在整数和浮点表示之间进行自动转换。相同的代码输出:

我想得到浮动结果。2.0^64有效,但如果它不是文字怎么办:

一种可能的解决方案是将数字除以1: (n/1)^64因为在/除法中,操作数始终转换为浮点数,但我正在寻找更优雅的解决方案。

Lua 5.3.0 (work2)上测试。

0 投票
1 回答
957 浏览

c - lua_Integer 和 lua_createtable(表大小限制)

在 Lua 5.3 中,C API 中的表相关函数接收和返回lua_Integer

但是,lua_createtable还是收到int

在下面的示例函数中,源表的长度用于创建相同大小的副本。

但是,需要强制转换才能使警告静音:

警告:从 'lua_Integer' 转换为 'int' 可能会改变其值 [-Wconversion]

在 Lua 邮件列表中搜索,我发现以下关于 Lua 5.2 的线程(我假设也适用于早期版本):

引用:Roberto Ierusalimschy(2012 年 8 月 7 日)

表的大小已经限制为 2147483647 个元素。Lua 内部使用 'int' 来索引它的所有数组(字符串/字节数组除外)。在任何地方都使用无符号值(例如 size_t)是一种痛苦;ptrdiff_t 根本没有任何保证。

long long使用for的 Lua 5.3 仍然是这种情况lua_Integer吗?在 Lua 5.3 中,上面示例中使用的转换为intfrom是否安全?lua_Integer

0 投票
1 回答
574 浏览

c - 我们应该从 Lua 的 luaL_checkinteger() 等显式转换吗?

Lua 5.3 弃用了 luaL_checkintluaL_checklongluaL_optintluaL_optlong,它们只是方便的宏调用luaL_{check|opt}integer

虽然我们仍然可以使用它们(因为),但用户手册-DLUA_COMPAT_5_2中没有提到它们,我们建议使用“使用类型转换”。luaL_{check|opt}integer

现在,我不是 C 方面的专家,我想知道:

  1. 在以下简单情况下是否需要演员表?

    /li>
  2. 如果这里不需要演员表,在哪里需要

  3. 如果我们可以没有它们,为什么首先会诞生那些已弃用的宏?换句话说:他们提供了什么服务?

  4. 我们不是因为没有在函数名中嵌入“int”/“long”字样而丢失了“文档”吗?

0 投票
2 回答
668 浏览

string - Lua 5.3 字符串库中所有函数的名称是什么?

这是我用来注册库名称的函数名称注册闭包:

池对象:

创建一个池对象

注册已知的库函数

0 投票
1 回答
2140 浏览

lua - 如何在 Lua 5.3 中打印 lld

在其第一个参数(必须是字符串)中给出的描述之后,返回其可变数量参数的格式化版本。格式字符串遵循与 ISO C 函数 sprintf 相同的规则。唯一的区别是*, h, L, l, n, and p不支持选项/修饰符,并且有一个额外的选项q.

Lua 5.3 不支持lld,如何lld在 Lua 5.3 中打印?

0 投票
1 回答
204 浏览

lua - lua 元表错误或功能?

如果我有这个构造:

并且 a 都有一个附加的元表,b 有一个附加的元表。然后会调用 b 的 metatable setter 将 key 设置为 b。这是 lua 5.3.0 的错误吗?

编辑: a 和 b 是字符串。

0 投票
1 回答
621 浏览

c - luaL_setmetatable() 覆盖其他值的元表

我的项目中有不同的元表。但是,如果我创建一个值 A 并分配元表“X”并创建第二个值 B 并附加元表“Y”,那么 A 也会获得 Y 元表!这是一个用于演示的简化 C 函数:

卢阿代码:

输出是“OtherType”,但应该是“Obj”。似乎第二次调用 lua_setmetatable() 会覆盖其他值的表?!

0 投票
0 回答
241 浏览

c - Lua UTString 如何确保字符串的最大对齐?

我正在阅读 lua (5.3.0) 的源代码,lobject.h我发现它使用一种奇怪的方法来操作字符串,如下所示:

关于在那里使用这种方法的原因,我找到了一个很好的答案。但我想知道ensures maximum alignment for strings,这是什么意思?为什么我们需要maximum alignment以及如何确保?

0 投票
0 回答
269 浏览

lua - Lua 测试套件:协程测试在 vxWorks 6.9 下失败

我正在尝试在 vxWorks 6.9 下集成 Lua 5.3。我目前在运行测试套件以检查 Lua 与我的系统集成时遇到问题。我正在运行 lua.org 网站 ( http://www.lua.org/tests/ ) 上提出的测试。我已经尝试过很多次来了解究竟是什么失败了,但这并不容易:系统在执行“coroutine.lua”文件时自行重启或崩溃返回页面错误。有没有其他人尝试过这种类型的集成?

我用这些定义编辑了 luaconf.h,也许知道它可能会有所帮助:

非常感谢您的帮助 :)

编辑:有一些罕见的情况下测试通过了......然后系统通常在执行“goto.lua”时以相同的行为崩溃

编辑:即使在定义LUA_COMPAT_5_1and时它也会再次失败LUA_COMPAT_5_2。行为总是相同的:在执行“coroutine.lua”测试或“goto.lua”测试期间出现页面错误

0 投票
2 回答
125 浏览

for-loop - 工厂函数无法将本地迭代器返回到lua中的for循环?

为什么工厂函数不能fromto将本地函数iter作为迭代器返回到 for 循环?