以下是一些关于 VisLua 实现的各种问题的笔记。
GUI 库
有数百个 GUI 库 [1],但很少有好的可移植且维护良好的库。以下是一些选择:-
- wxWindows [2]。这是一个相当大的库,但有很多有用的部件,并且非常便携。支持的平台为 [3]:-
- Windows 3.1、Windows 95/98、Windows NT、Windows 2000、Windows ME。
- 带有 GTK+ 的 Linux 和其他 Unix 平台。
- 带有 Motif 或免费 Motif 克隆 Lesstif 的 Unix。
- Mac OS。
- 正在研究嵌入式平台。请参阅 wxUniversal 项目。
- OS/2 端口正在开发中,您也可以在 OS/2 上为 GTK+ 或 Motif 编译 wxWindows。
- FLTK [4]。正如其名称所示,它非常紧凑且快速。不太便携。平台:-
- X - Unix。
- Win32。
- MAC OS 端口可用。
- Tcl/Tk [5]。非常便携,但部件集有限。平台 [6]:-
- Windows 95、98、NT 4.0(Intel)、2000
- Solaris 2.5、2.6、7(SPARC)
- HP-UX 10.20
- Linux(Intel、Red Hat 5.0+、SuSE 6.0+)
- SGI IRIX 6.3+
- IUP [7] TeCGraf 内部。 “IUP 使用基于 TEX 文本编辑器中的盒子和胶水范式的抽象布局模型。该模型与对话框规范语言 (LED) 或 Lua 绑定 (IupLua) 相结合,使对话框创建任务更加灵活,并且独立于图形系统的分辨率。”
- Motif。
- Microsoft Windows 95、Microsoft Windows 98、Microsoft Windows NT 和 Microsoft Windows 2000。
- FOX [8]。以下列出了版本 0.99.193 的平台。似乎非常便携。我认为部件集不像 wxWindows 那样大,是一个有力的竞争对手!没有 MacOS 端口,尽管据报道在 X11 支持下可以工作(需要很多工作)。
- Linux。任何版本的 Linux 都应该可以工作,在任何硬件上。FOX 正在 LINUX 上开发。
- FreeBSD。据报道 FreeBSD 可以工作。
- SGI IRIX。带有 IRIX 5.3 及更高版本的 SGI 系统。它可以使用 GCC 或 SGI 的 MIPS Pro C++ 编译器进行编译。
- SunOS/Solaris。Solaris 或 SunOS 均可。使用 GCC 或 Sun Workshop C++ 编译。
- HP-UX。在 HP-UX 9.x 和 10.x 下使用 GCC 测试。
- IBM AIX。已在 AIX 4.2 下使用 GCC 测试。
- DEC Alpha/COMPAQ Tru64。已在 Digital Unix 4.0 下使用 GCC 测试。
- 其他 UNIX 系统。如果您拥有合理的 C++ 编译器、UNIX 和 X11,那么您很有可能能够使 FOX 正常工作。
- Microsoft Windows 2000、Windows NT 4.0、Windows 95、Windows 98。可以使用 Visual C++ 6.0、Borland C++ Builder、CYGWIN32、MINGWIN32 和 IBM VisualAge? C++ for Windows 进行编译。旧版本的 Visual C++ 也能工作,但您必须在那种情况下创建自己的项目。
- WideStudio [9]。“WideStudio 是一个集成开发环境 (IDE),用于为 [见下文] 构建 GUI 应用程序。该软件是免费的 (MIT/X Consortiun 许可证)。”IDE 环境,不是原生绘制的,包含用于构建项目的 gcc。
- Linux
- FreeBSD
- SOLARIS
- Windows 95/98/ME、Windows NT、Win2K。
我建议使用 wxWindows,因为它具有庞大的小部件集并且非常便携。正在进行绑定 [10],使用自定义绑定器。另一种选择是,wxPython [11] 附带了对 SWIG 的绑定。这些可以修改为与 LuaSWIG [12] 一起使用,并且只需在 wxWindows 和 wxPython 更新时更新即可。
关于编码风格的说明
所有代码应尽可能地便携且有据可查。这需要进一步讨论。大多数代码可能将使用 ANSI C 编写,遵循 Lua,以帮助移植。
wxWindows 在使用 C++ [13] 方面有一些指南,例如,不使用模板等。如果 wxLua 要用于 GUI 并且可移植性是优先事项,那么可能值得注意这些指南。
语法高亮
通过 Scintilla 编辑器 [14],对 (未修改的) Lua 的语法高亮将在 wxLua 中起作用。任何不支持 Scintilla 的平台都可以只使用文本编辑器。
关于 Lua 问题的说明
Lua 作为一种人们喜欢修改和嵌入的语言,存在一些问题。
- 更改数字类型,例如,从双精度浮点数到单精度浮点数。
- 语法更改,例如,语言可能已被修改。
这些问题可以通过重新编译 wxLua 绑定和 VisLua 调试器绑定来解决,以适合客户端应用程序。这些绑定的包装器可以允许配置任何语法更改。
调试器
- 调试服务器应该能够使用标准 Lua 调试库
ldblib.c
来执行任何调试操作。
- GUI 使用 Lua 和 wxLua GUI 库编写。
结构
如有任何不清楚的术语,请参考 VisLuaGlossary。
+--------------------------------+
| application (C/C++/Lua/etc) |
| |
+ +-------------------+ +--------+
| | debug server core | | Lua VM |
+-+-------------------+-+--------+
|
| <-- debug link
|
+--------------------------------+
| | debug client core | | Lua VM |
| +-------------------+ +--------|
| |
| debug client w/ UI |
+--------------------------------+
*>8^)-|=< user
概念验证
我已经开发了一个应用程序,您可以通过它像运行控制台一样 telnet 到 Lua 会话。请在开发列表中提供反馈,不要在这里。
- 文件:wiki_insecure/users/ntrout/vislua/vlds_test.zip
关于实现的评论
- 评论偶尔会被清除,因为它们在 VisLua-dev 邮件列表中进行了讨论。
最近更改 · 偏好设置
编辑 · 历史记录
最后编辑于 2003 年 2 月 12 日下午 8:13 GMT (差异)