Lua 新闻

lua-users home
wiki

Lua 邮件列表和其他 Lua 世界的最新动态摘要。有关其他新闻,请参阅 [lua.org 新闻][Lua 错误]/[勘误表]、wiki 最近更改[lua-l 存档]

状态:需要帮助才能向此页面添加条目(请参阅页面底部)。一些最近的新闻项目缺失。


[Lua on Twitter]

(2008-12-14) 公告:Lua 编程宝石 书籍 [1][2] 出版,由 Luiz Henrique de Figueiredo 宣布。 [68]

(2008-12-12) 公告:LuaDist [3]LuaRocks 的变体,由 Peter Drahos 宣布。 [69]

(2008-12-02) 主题:使用 Alchemy 编译 Lua 以在 ActionScript?(Flash)下使用 [70],由 Robert Stehwien 发布。

(2008-11-17) 公告:Mochalua [4],Lua 运行时和 API 的 Java J2ME 移植,由 Patrick Meehan 宣布。 [71]

(2008-11-13) 公告:LuCI 项目 [5],嵌入式设备/网络的 Lua 软件集合,由 Steven Barth 宣布 [72]

(2008-11-12) 公告:复数运算库(基于 C99) [6] 由 Luiz Henrique de Figueiredo 宣布。 [73]

[缺少条目]

(2008-05-xx) 公告:Lua for Windows [7],一个用于 Windows 的 Lua 脚本环境,包含安装程序、Lua 二进制文件、许多 Lua 库和文档,由 Ryan Pusztai 宣布 [74][75][76][77][78]

[缺少条目]

(2008-05-07) 公告:patch-lua-5.1.3,一个修复 Lua 5.1.3 中所有已知 [错误] 的补丁文件,由 LuizHenriqueDeFigueiredo 发布。 [79]

[缺少条目]

(2008-02-19) 主题:Lua 5.2 中即将发生的更改的初始列表 [80] 由 Roberto Ierusalimschy 发布。

(2008-02-18) 主题:Nanoki 和 Sputnik wiki 演示 [81][8] 由 Petite Abeille 和 Yuri Takhteyev 发布。 他们对将 lua-users.org wiki 迁移到这些 Lua 实现之一进行了长时间的讨论。

(2008-02-11) 错误:LUAI_MAXCSTACK 必须小于 -LUA_REGISTRYINDEX 由 Patrick Donnelly 报告 [82][9]

(2008-02-11) 错误:coroutine.resume 在确保堆栈大小之前推送元素 由 Roberto Ierusalimschy 指出 [83][9]

(2008-02-09) 公告:LuaRocks 0.4.2 [10]Lua 模块的部署和管理系统,由 Hisham Muhammad 发布 [84]。LuaRocks 的目标类似于 Perl CPAN [11] 或 RubyGems [12]

(2008-02-06) 公告:Metalua 0.4 [13],一种通过编译时元编程扩展 Lua 的语言和编译器,由 FabienFleutot 发布。 [14] Metalua 允许在一致的框架中进行语法扩展。该项目还新增了一个维基页面:MetaLua

(2008-02-05) 公告:LuaJIT 1.1.4 [15]Lua 的即时编译器,以及LuaJIT 2.0 的路线图 [85]MikePall 发布。 [86] LuaJIT 1.1.4 更新了对 Lua 5.1.3 的支持。LuaJIT 在 x86/IA-32 CPU 上提供了更高的性能。Coco 1.1.4,一个用于 True C 协程的 Lua 扩展,也进行了更新。

[缺少条目]

(2008-02-02) 修补:由 DavidManura 发布的 lvm.c 中新增了表作用域支持 (TableScope)。 [87]

[缺少条目]

(2008-01-31) 修补:由 Hu Qiwei 发布的try/catch/finally 支持 [88][89][90]returnbreaktry 块中是被禁止的。

(2008-01-07) 修补:由 Nodir Temirhodzhaev 发布的对象终结[91] 这是对上述“try/catch/finally”异常处理机制的另一种替代方案,与 [16]资源获取即初始化 相关。

(2008-02-12) 修补:由 Alex Mania 发布的实验性 finalize/guard [92] 支持 finalizeguard 块以实现 RAII。

(2008-01-30) 修补:由 EricTetz 发布的 llex.c 中的C 风格字符串词法分析[93] 这使得词法分析器能够像 C 一样自动连接相邻字符串(例如 x = "a" "b" --> x = "ab"),目的是避免不必要地分配许多小字符串。这会破坏一些结构,例如 f "a" "b",它必须被解释为 (f "a") "b"。可以通过仅在紧接在括号之前的字符串中连接字符串来解决这个问题,或者需要一个新的词法连接运算符。常量折叠连接(例如 x = "a" .. "b" --> x = "ab")也被建议,但需要在解析器中完成,因此会降低性能。一个非常简单的解决方案是一个新的转义序列,它可以用来忽略空白(包括嵌入的换行符)

x = "a\
    \b" --> x = "ab"

[缺少条目]

(2008-01-25) 公告-Lua:Lua 5.1.3 可用 [94]。这是一个仅修复 bug 的版本 [17],继本月早些时候发布的候选版本之后 [95][96][97][98][18]

[缺少条目]

(2008-01-20) 主题:Lua 研讨会 08 日期建议 [99][100][101] 由 Matthew Burke 提出。

[缺少条目]

(2007-12-19) 主题:Lua 函数的默认最大参数限制通常限制命令行参数的数量约为 2048 [102],由 NormanRamsey 指出。[102] Linux 2.6 的限制约为 32K [103]。Roberto 指出 arg 表支持任意长度,并建议更改 Lua 以移除将命令行参数作为独立参数传递给函数的机制。 [104]

(2007-12-18) 公告:Shake 1.0.1/1.0 [19]使用 Leg 的透明 Lua 测试引擎 [20],由 Andre Carregal 公告 [105][106]。这允许将单元测试编写为简单的 assert 调用。通常,断言调用(如 assert(a == b, 'test equals'))的失败信息量不如 jUnit 风格的 [21] 测试(如 assert_equal(a, b, 'test equals'))那样丰富,因为 ab 的值对测试函数不可用。Shake 通过使用 Leg [20] 进行源代码分析来克服这个问题。另请参阅 单元测试

(2007-12-18) 手册公告:Lua 参考手册 现已提供西班牙语版本 [107],由 Julio Manuel Fern�ndez-D�az 贡献。

(2007-12-18) 公告:LuaRocks 0.3.2/0.3.1/0.3 [10]Lua 模块的部署和管理系统,由 Hisham Muhammad 公告 [108][109][110]。LuaRocks 的目标与 Perl CPAN [11] 或 RubyGems [12] 相似。

(2007-12-17) 公告:LuaPascal [22]Lua 和 Pascal(Delphi)之间的集成,由 Macro Antonio Abreu 公告 [111]

(2007-12-17) 公告:Lua服务 [23] alpha 版本 2/1,一个用于编写Windows 服务应用程序的 Lua 框架,由 Ross Berteig 发布 [112][113]。其中一个目标是将 Xavante [24] web 服务器作为服务运行。“作为服务运行的优势包括在 Windows 启动时自动启动应用程序,并在没有用户登录控制台的情况下运行。”

(2007-12-17) 修补程序:快速字符串哈希修补程序,由 MikePall 发布,用于 Lua 字符串。“新的哈希算法是 Bob Jenkins 的快速旋转和混合哈希 [25] 的一个变种。它从字符串中哈希最多 12 个字符,这些字符从开头、中间和结尾选择。基本思想是:减少获取次数,增加位混合,没有循环,并且哈希时间恒定。”当前版本使用未对齐的 32 位字访问以提高速度(在 x86 中可以)。据报道,它比 Lua 的哈希函数快 2-10 倍,并且在一些以字符串为主的基准测试中可以提高 5-10% 的速度。该修补程序包含在 LuaJIT 2.x 中,但也适用于 Lua 5.1.2。

(2007-12-17) 公告:另一个纯 Lua XML 解析器,由 Peter Hickman 作为实验发布。 [114]。它将 XML 字符串转换为嵌套的 Lua 表,并且是非损耗的。有关另一个纯 Lua XML 解析器,请参见 [115]。有关其他 Lua XML 接口,请参见 LuaXml

(2007-12-16) 主题:Win32 GUI 绑定,由 Habib 开启的简短讨论 [116][117],主要集中在wxLua JPEG 显示上。

(2007-12-15) 主题:Lua 接口 [26] 到 Gnuplot [27],由 Ken Smith 发布 [118]。Gnuplot 是一个可移植的命令行驱动的交互式数据和函数绘图实用程序,适用于许多平台。另一个 Lua Gnuplot 接口 [28] 也被注意到 [119]

(2007-12-15) 公告:一个文件系统操作库,由 Andreas Weis 发布 [120]。它主要是一个编程练习,可能与 LuaFileSystem [29]扩展提案 重复。

(2007-12-15) 主题:在 Lua 中添加 **小字符串优化 (SSO)** [30] 的影响,由 Alex Mania [121] 开启的讨论,作为对 RiciLake 最近的 SpeedingUpStrings 的回应。SSO 的问题由 RiciLake [122] 在关于 FastStringPatch 的讨论中指出。其他人评论了在 C 代码中避免使用 lua_pushstring 来对字符串进行驻留 [123]

(2007-12-13) 公告:**Scite-debug** 0.8 [31],一个用于调试器的 Scite 文本编辑器扩展,由 SteveDonovan 发布。 [124]。它现在支持 clidebugger [32] 以及实验性的 jdb 和 mdb 支持。

(2007-12-12) 主题:由 Brett Kugler [125] 开启的“字符串访问和元方法”讨论。[[待办事项 - 应该进行总结]]

(2007-12-11) 主题:由 NormanRamsey [126] 开启的“为什么 **os.exit 跳过 __gc 终结器”讨论。建议使用 atexit[33] C 函数和 gcc __attribute__((destructor)) [34]。指出了多个 Lua 状态的问题。

(2007-12-11) 维基主题:**SpeedingUpStrings** - RiciLake 研究了将 Lua 的 **字符串改为延迟驻留** 所带来的性能提升。在这里,字符串可以存在于两种状态之一:普通状态或 _预字符串_ 状态。预字符串具有固定大小的缓冲区,就像普通字符串一样,但它是可变的,并且没有 _驻留_(即没有哈希值,也没有在全局字符串表中存储单个实例 [35])。预字符串可以转换为普通字符串,但反之则不行。转换可以是自动的和透明的,以保持 C API 的向后兼容性。预字符串的假定主要优势是,在某些情况下,它们的使用可以避免 malloc 和/或复制:与其 malloc 一个缓冲区,写入缓冲区,然后从缓冲区创建字符串(第二次 malloc + 复制),不如 malloc 一个预字符串作为缓冲区,写入预字符串,然后将预字符串转换为字符串(无需额外的 malloc 或复制,只需驻留即可)。此外,预字符串是可变的,可以重复使用(避免更多 malloc 和驻留)。一些基准测试表明,驻留仅需 200-250 纳秒(64 位 AMD Turion),而 malloc 时间在不涉及 I/O 的硬循环的特殊情况下,可能占运行时间的很大一部分。结论是,与增加的复杂性相比,预字符串的性能提升并不充分。在列表中进行了后续讨论 [127]

(2007-12-11) 主题补丁:**用户数据终结器中的原子操作停滞** (luaC_separateudate),由 Niklas Frykholm [128] 开启的讨论,并发布了 lgc.c 补丁 [129]

(2007-12-11) 手册请求:**Programming in Lua 书籍** [36] 已 **翻译成日语** 70%。由 Yutaka Ueno [130] **征求校对者**。

(2007-12-10) 公告:Lua 信号库 1.0 [37],由 Patrick Donnelly 发布 [131][132]。示例:<< signal.signal("SIGTERM", function() print "dying..."; os.exit(1) end); signal.raise("SIGTERM") >>。

(2007-12-10) 公告:CairoPad [38],用于实验 LuaCairo 的实时草稿板应用程序 [39],一个 Cairo 的绑定 [40][41] 2D 设备无关的矢量图形库,由 Hakki Dogusan 发布 [133]

(2007-12-10) 公告:"[为什么] 基于寄存器的虚拟机如今通常被认为比基于堆栈的虚拟机性能更好?" Duck 问。 [134]。David Olofson 指出,寄存器虚拟机使用更少的指令来对抗虚拟机中高水平的指令分支预测错误 [135]。论文被引用 [136]

(2007-12-09) 公告:2008 年 Lua 研讨会 [42] 将由乔治华盛顿大学在华盛顿特区举办,由 Matthew Burke 发布 [137]。“研讨会的主要目标是让 Lua 社区(或至少一部分)聚在一起,面对面地讨论 Lua 语言、它的用途和它的实现。另一个目标是帮助将 Lua 推广到行业和学术界……” [42]。注册免费,对所有对 Lua 感兴趣的人开放。

(2007-12-09) 主题:此LuaNews 页面,由 DavidManura 发布 [138] 并讨论。一些人建议更长的评论和 RSS 支持 [131][134]

(2007-12-08) 公告:简单 XML -> Lua 表格转换器 [43],基于 "BadgerFish" [44] XML -> JSON [45](即 JavaScript 表格)转换器,由 Petite Abeille [139] 公告。以下是一个使用 DataDumper 的示例:<< require "XML"; dofile 'DataDumper.lua'; print(DataDumper(XML [[<alice charlie="david"><bob>charlie</bob><bob>david</bob></alice>]])) >>。这将输出 << return { alice={ ["@charlie"]="david", bob={ { ["$"]="charlie" }, { ["$"]="david" } } } } >>。代码只有 100 多行非注释代码。转换提供便利,但不一定可逆 [46][140]。有关其他 Lua XML 接口,请参阅 LuaXml

(2007-12-06) 公告:LuaCairo [39] 更新,Cairo [40][41] 2D 设备无关矢量图形库的绑定,由 Hakki Dogusan [141] 公告。

(2007-12-05) 主题:"是否可以使我的应用程序静态链接到 Lua,同时允许[动态链接] DLL 基于的包正常工作?" John Dunn 问道。 [142][143][144]

(2007-12-03) 公告:Lua 语法着色,适用于 Mac OS X Xcode 3 [47],由 Graham Henstridge [145] 发布。

(2007-12-03) 主题:Niklas Frykholm 提问关于使用 130 000 个用户数据对象时的垃圾回收性能[146]

(2007-12-03) 公告:LuaMacro [48] 更新,由 Steve Donovan [147] 公告。"当天的宏是列表推导。"

(2007-11-29) 公告:IUP 2.6 [49]可移植 GUI 工具包,由 Antonio Scuri [148] 公告。

(2007-11-29) 公告:CD 5.0 [50],Canvas Draw 图形工具包,平台无关图形库,由 Antonio Scuri [149] 公告。

(2007-11-29) 公告:IM 3.3 [51] 用于数字图像处理,由 Antonio Scuri 发布 [150]

(2007-11-29) 主题:扩展xpcall [52] 以接受参数,由 Patrick Donnelly 提出 [151],Roberto 评论。

(2007-11-28) 错误: "lua_setfenv 可能在无效对象上调用时崩溃" [53] 由 Mike Pall 报告,Roberto 确认,并提供补丁。 [152]

(2007-11-27) 主题:在工作场所引入 Lua 的理由,由 Tim Hunter 询问。 [153] 各种链接发布在帖子 [154][155][156][157][158] 中。

(2007-11-25) 主题:[Lua 错误 #5.1.2-4]递归协程可能导致 C 栈溢出)的补丁,由 Jim Whitehead II 转发 [159]。Roberto 仍然更喜欢 "将nCcallslua_State 移动到global_State 的想法。" [160]

(2007-11-24) 公告:LuaTask 1.6.4 [54] 由 Daniel Quintela 发布 [161]

(2007-11-22) 公告:ilua,Lua 的增强型交互式提示符InteractiveLua)由 Steve Donovan 发布 [162]。避免使用 '=' 并支持漂亮打印。

(2007-11-20) 主题:在LuaForge 上添加对Subversion [55] 的支持,而不是仅仅使用 CVS,进行了讨论。 [163]。其他人推荐使用分布式 SCM。Stefan Sandberg 和 Andre Carregal 表示,这可能在明年发生,可能对其他 SCM 的支持有限,在 GForge 升级期间 [164][165]。需要帮助。

(2007-11-19) 公告:bitlib 22、23 和 24 位运算库 [56] [166][167][168] 由 Reuben Thomas 发布

(2007-11-19) 公告:Leg 0.1Lua 5.1 语法,带有用于用户操作的 API,在LPeg[169],由 Humberto S. N. dos Anjos 发布。David Manura 指出,这与 LuaFish 类似。Humberto 宣布了进一步的计划,即使用 Lua 和 LPeg 编写一个 Lua 5.1 优化编译器 [170]。随后进行了静态优化讨论。

(2007-11-19) 通知:Lua Gems 书籍[1] 的排版工作已开始,由 Luiz Henrique de Figueiredo 负责。 [171]

(2007-11-17) 主题:"除了使用 next 或 pairs 并面临 O(n) 复杂度,还有其他 Lua 方法可以实现优先队列吗?" 由 W. C. Bubel 提出。 [172]

(2007-11-17) 主题:Dalvik 虚拟机[57] 被讨论,它是一种类似 Java 的寄存器虚拟机,由 Google 使用。 [173]

(2007-11-16) 公告:简化的poll 绑定 [58],已在 lposix [59] 中修补,由 Steve Donovan 发布。 [174]

(2007-11-15) 公告-修补:添加了Lua -t 开关忽略环境变量设置,在目标上与 Perl 的 taint 模式类似,通过修补后的 Lua 发布,由 Reuben Thomas 发布。 [175]

(2007-11-15) 公告-修补:添加了 Lua 命令行历史记录支持,通过使用 readline 修补后的 Lua 发布,由 Reuben Thomas 发布。 [176]

(2007-11-15) 主题:Lua 项目列表[60] 页面已被缩减。 [177] Roberto 指出它变得太长了。 [178] 有些人建议将旧链接移至维基。

(2007-11-14) 手册-注释:未记录的 lua_pushliteral API 函数由 Peter Cawley 提出并讨论。 [179] Lhf 写道:"当您有一个字面字符串而不是一个字符串指针时,请使用 lua_pushliterallua_pushliterallua_pushstring 快一点,因为它避免了对 strlen 的调用;它还允许包含嵌入零的字符串。" #define lua_pushliteral(L, s) lua_pushlstring(L, "" s, (sizeof(s)/sizeof(char))-1)

(2007-11-14) 主题:缺少 __hash 元方法,以允许两个对象在表中查找相同的值,再次讨论。 [180]

(2007-11-12) 错误:table.remove(t, #t+1) 删除最后一个元素,由 Patrick Donnelly 报告, [181] Roberto 确认,并提供修补程序。 [61]

(2007-11-10) 公告:一个新的与 Lua 相关的博客[182],名为 [lua nova],由 Nathan Youngman 发布。

(2007-11-10) 手册更正:luaL_getmetafield 错误处理 手册中错误,由 David Manura 报告,Roberto 修正。lua_nextlua_gc 错误处理也进行了讨论。

(2007-11-10) 公告:Scite-debug [183],一个用于 gdb 和 Lua remDebug [62] 等调试器的 Scite 文本编辑器扩展,由 Steve Donovan 发布。Mike Pall [184] 也指出了将两个 Lua VM 链接到一个进程时出现的静态变量冲突问题。

(2007-11-10) 主题:PDF 创建 模块讨论 [185],包括 [lpdf][LuaHPDF][CD][LuaTeX][LuaCairo]

(2007-11-10) 主题:Lua 线程 套件简要讨论 [186] 并进行比较 [63]

(2007-11-09) 主题:在沙箱中保护 getfenv [187],David Manura 发布的解决方案 [188]

(2007-11-07/09) 公告:clue 1,2 和 3 最小的 Lua-C 接口 [64][189][190][191] 由 Reuben Thomas 发布。

(2007-11-07) 主题:Lua 在手机上的应用 [192],例如 QUALCOMM 的 Kevin Hunter 在 BREW 2007 上发布的用 Lua 进行三角开发 [65],由 Roberto 和其他人指出。Mike Pall [193] 给出了 Lua 适合手机的理由列表。

(2007-11-07) 主题:switch/case 语句 由 Steve Donovan [194] 重新开启了长时间的讨论。Fabien 和其他人建议使用结构化模式匹配 [195],如 Haskell/OCaml/Metalua 等,并提供了一些语法变体。

match k
  with 10, 11 then return 1
  with 12 then return 2
  with i if 13<=i and i<=16 then return 4
  with c/"^([a-z]+)([0-9]*)$" then
    printf("1st part: %s; 2nd part: %s", c[1], c[2])
end -- note: return breaks out of function containing the switch.

一些亮点

(2007-11-07) 主题:讨论了如何在 Lua 中实现 **“编辑并继续”** [205],与模拟人生游戏相关 [66]

(2007-11-06) 主题:为什么 **Lua 模块系统是用 C 语言编写** 而不是 Lua?[206] 是 Matt Campbell 提出的问题。C 实现相当简单,否则可能会因引导而变得复杂。另请参见 Lua Compat [67]

{2007-11-06} 主题:一些 C 库函数(例如 lvm.c 中的 strcoll)可能会在内部 **调用 malloc**,绕过 Lua 分配器,正如 Enrico Colombini 所指出的 [207]。Mike Pall [208] 再次争论 [209] Lua 核心应该避免自然语言支持 (NLS)/*locale* 函数的泥潭。


关于此页面

此页面的目的是类似于其他语言的新闻和邮件列表摘要 ([Perl][Python][OCaml][Haskell])。它类似于 [lua.org 新闻页面],不同之处在于它位于维基上,因此 Lua 社区的每个人都可以为其做出贡献,并且它可以有更深的深度。邮件列表中讨论的最值得关注的要点以及其他网站上重要的兴趣点都会被提及。此页面可能会被移动或重新结构化——我们将看看它的进展,并在稍后决定。也许不再需要编辑的旧新闻项目将被存档到另一个网站。——DavidManura

RSS 提要对于类似的东西来说是最低要求——这里的维基引擎不提供每页提要(即使它确实提供,提要也将是每编辑一次,而不是每新闻项目一次)。——JohnBelmonte

我认为在维基上的使用更像是发布前的暂存区。一般来说,我认为这不会按新闻项目或实时交付,而是每隔几周捆绑一次,然后进行编辑(就像 Perl 和 Python 的(双)周摘要或 Linux Journal 中的“内核开发中的新内容”专栏一样),不过如果有人想将其转换为 RSS 提要,他们可以。——DavidManura

只是一个说明:它可能是一个暂存区,但有些人可能仍然发现预发布项目的 RSS 提要很有用(或者至少是可取的)。我想要!——McFin

如果您有兴趣切换到其他wiki引擎,[Sputnik]是用Lua编写的,支持每个编辑和每个新闻项目的RSS。(每个编辑的RSS feed是内置的,每个新闻项目的RSS feed很容易添加。)--YuriTakhteyev?

邮件列表中提到的LuaForge项目更新公告的包含可能是多余的,应该删除。 LuaForge项目主页已经宣布了所有这些公告,包括那些没有在邮件列表中宣布的公告。 尽管如此,许多项目并没有在LuaForge上维护。 或者,也许此页面应该保留用于主要版本更新。 也请参考顶部其他新闻页面。

有些人建议使用Lua博客或期刊,类似于[use.perl.org]以及现已停刊的[Perl Journal][C/C++ Users' Journal]。 wiki已经部分实现了这个目的,虽然没有经过严格的编辑,也许[Lua Programming Gems]会实现这一点。 有时Lua会出现在更通用的网站上,例如[ONLamp]。 --DavidManura

此页面在[138][134][210][211] 中进行了讨论。

如何帮助/新闻投稿

如果您想提交单个新闻项目的摘要,只需将其发布到此页面的顶部或底部以供审核。(也许您刚阅读了邮件列表中值得注意的讨论主题,并且对所提出的观点有很好的理解。)项目可能会被审核/编辑。

格式大致如下,您可以使用上面的帖子作为模板。

(<YYYY-MM-DD>) <发布类型>: <主题>[<主题链接>] <采取的行动>,由<作者>注意到。[<讨论链接>] <几句话的摘要> [<其他链接>]


最近更改 · 偏好设置
编辑 · 历史记录
最后编辑于2021年8月27日下午4:28 GMT (差异)