Vis Lua Implementation

lua-users home
wiki

This is some notes on various issues to do with the implementation of VisLua.

GUI library

There are hundreds of GUI libraries [1], but few good portable, well maintained ones. Here are some options :-

I propose wxWindows is used as it has a large widget set and is very portable. A binding is in progress [10] using a custom binder. An alternative is that bindings to SWIG are supplied with wxPython [11]. These could be modified for use with LuaSWIG [12], and just updated as wxWindows and wxPython are updated.

Notes on coding style

All code should be as portable and well documented as possible. This needs some further discussion. Most of the code will probably be written in ANSI C, following Lua, to aid portability.

wxWindows has some guidelines on using C++ [13] eg. no templates etc. It may be worth taking note of these guidelines if wxLua is to be used for the GUI and portability is a priority.

Syntax Highlighting

Syntax highlighting for (unmodified) Lua would work in wxLua through the Scintilla editor [14]. Any platforms that don't support Scintilla would can just use a text editor.

Notes on Lua issues

There are some problems with Lua being a language which people like to modify and embed.

These problems could be dealt with by recompiling the wxLua bindings and VisLua debugger bindings to suit the client application. Wrappers to these bindings could allow configuration of any syntax changes.

Debugger

Structure

See VisLuaGlossary for any confusing terms.

+--------------------------------+
|  application (C/C++/Lua/etc)   |
|                                |
+ +-------------------+ +--------+
| | debug server core | | Lua VM |
+-+-------------------+-+--------+
         |
         | <-- debug link
         |
+--------------------------------+
| | debug client core | | Lua VM |
| +-------------------+ +--------|
|                                |
| debug client w/ UI             |
+--------------------------------+

       *>8^)-|=<  user

Proof of concept

I have knocked up an application so that you can telnet into a Lua session just as though you were running a console. Please give feedback on the dev list, not here.

Files:wiki_insecure/users/ntrout/vislua/vlds_test.zip

Comments on implementation

Occasionally comments will be cleared as they are discussed on the VisLua-dev mailing list.


RecentChanges · preferences
edit · history
Last edited February 12, 2003 8:13 pm GMT (diff)