Lua Cheia 摘要 |
|
目前这仅限于该组做出的重要决定。 我也会发布重要的里程碑。 应该每周更新,可能在星期二。 - ThomasWrensch
线程库
讨论使用哪个线程库。 一些建议是
没有达成一致。
用于不同平台的扩展
为不同平台使用哪些扩展? 似乎有两种可能性:为所有系统使用标准扩展(许多建议,包括 .x、.lux、.lch 等),或使用本机平台扩展。
共识似乎是使用平台标准文件扩展名。
CVS 结构
对 CVS 结构进行了相当多的讨论。 问题
Lua 5.0b 源代码已添加到 CVS(减去“test”目录)许多整体结构更改建议已达成一致。 一些已经完成(?)。 仍在变化中。
发布到 LuaCheia 邮件列表
将发布到 LuaCheia 邮件列表限制为加入该项目的人员?
共识似乎是“是”。 否则将使决策变得困难。
# 评论
修改 LuaCheia 中的 Lua 以接受 #-line 作为注释? (实际上只需要提供一个块读取函数,至少在 Lua 5.0 中是这样)。
有人建议将其解决为一个单独的 readconfig() 或类似的函数,该函数不是语言的一部分。 无法根据邮件列表流量确认。 需要确认。
Lua 脚本在哪里驻留?
关于小型工具脚本(在 Lua 中)在哪里驻留有一些疑问。
未解决。
LuaCheia 模块在 Lua 中的放置
luacheia 模块在 Lua 的全局命名空间中的放置。 它应该是它自己的模块(在全局“luacheia”中)还是“lib”模块结构的一部分:“lib.cheia”。
似乎正在转向使用 lib.cheia 而不是全局空间中的单独模块名称。
listdir 函数问题
listdir 函数的问题:无法确定文件是子目录还是不是。 建议的解决方案
似乎正在朝着使用尾部 '/'(如果能找到可移植的技术)或使用第二个 listdir(如果不能)的方向发展。可能能够在 Lua 中而不是 C 中处理这两种方法之间的转换。
从 C 迁移到 Lua
建议将目前在 luacheia.c (?) 中被屏蔽的许多函数迁移到 Lua 函数而不是 C 函数。
几个人同意了这一点,但还不够形成共识。
注释风格
注释风格:将注释放在函数原型之前还是之后?
似乎达成共识,两种方式都可以,但我们应该选择一种作为标准。(注意:选择可能倾向于放在之后,因为大部分现有代码都是这样做的)。
在 Win32 中使用 DevCPP/MinGW
迁移到 DevCPP/MinGW 用于 Windows 移植(而不是 MSVC)。
似乎已经达成共识(而且这是一个好主意!)。
GUI API
早期进行了大量的讨论,主要竞争者似乎是 FLTK 和一个简化的 wxWindows。似乎决定暂时不局限于特定的工具包,因为正在形成的整体架构可以适应多种不同的 GUI 系统。
模块
以下是一些建议包含在 LuaCheia 中的模块
Scintilla
TableControl
(等等)
SQLite
大数
LuaSocket
/LuaSock
类支持
这不是一个固定不变的列表,它会随着时间的推移而增长和变化。
模块命名/命名空间问题
进行了大量的讨论,但小组似乎已经决定使用分层命名,其中 'lib' 作为库的全局根,'luacheia' 作为基本 LuaCheia 功能的全局名称。还建议 load 函数返回函数表,以便可以将其分配为快捷方式。例如:
SDL = cheiaload("sdl.x")
这将把模块放置在 lib.SDL
中,同时也会放置在全局 SDL 中以进行“快速”引用。
Logo(图标)
标志紧密地围绕着修改后的 Lua 标志的想法。建议了几个标志,并以不同的尺寸放置在网站上。
[http://luacheia.lua-users.org/images/icons.gif]
每个人似乎都对其中一些或所有这些标志感到满意,但尚未做出最终决定。
Lua 版本 4 和/或 5
这似乎尚未解决,但倾向于专注于 Lua 5。主要论点是
模块的启动加载
提出了一种关于模块启动/加载的通用方法。以下是直接来自列表的内容
> 1) When Cheialib is initialised, it adds various module-loading and > directory-scanning functions to the Lua state, in the luacheia table. > It also adds a some variables, like a variable containing the name > of the platform: luacheia.platform > 2) Luacheia then looks for a "boot script" that contains > Lua wrappers of these low level C functions using local variables > and setglobals(). The boot script is at a precomiled location > (on POSIX), or in the program's own directory (on Windows), > when all the hlua wrapper functions are defined, most of the global > low level luacheia functions are disabled (apart from the directory > scanning ones.). > 3) The boot script then looks for modules it has to load, > and loads them using the wrappers, finally retuirning control > to the Lua interpreter.
很多人认为这是一种好方法,但不足以让我说它正在成为一个群体决定。
静态链接与动态链接
动态链接似乎是首选,一些人指出允许静态链接有很好的理由,例如不支持动态库的操作系统以及创建一体化二进制文件。
正在达成一项协议,即进行动态链接,同时努力使构建静态链接版本的流程尽可能简单。
仅在满月时发布
建议,许多人同意。似乎是一个坚定的决定。