Lua Workshop 2005

registration · program · venue · accommodation · organization · participants · abstracts · photos

The workshop is over. See some photos taken by Marius Gheorghe.

A Lua workshop will be held at Adobe's headquarters in San Jose, California, on July 27-28, 2005.

The main goal of the workshop is to allow the Lua community (or at least part of it) to get together and meet in person and talk about the Lua language, its uses, and its implementation.

Another goal is to help spread the word about Lua to the industry and academia, taking advantage of the location of the workshop.

The workshop is open to everyone interested in Lua. There is no registration fee but participants are required to register because only a limited number of seats are available, which will be filled first-come, first-served.


We shall have two plenary talks by Roberto Ierusalimschy (Lua's chief architect), one roundtable on the future of Lua, several contributed talks, and two sessions for demos and short presentations. There will also be plenty of time for getting together and chatting about Lua. The final program is below (but it is subject to last-minute changes).

Wed July 27
9:00 breakfast
9:30 Io and Lua
Steve Dekorte
10:00 Lua and BREWcancelled
Marc Nijdam
10:30 coffee break
11:00 The Implementation of Lua
Roberto Ierusalimschy
12:00 lunch
1:30 LuaSocket Behind the Scenes
Diego Nehab
2:00 It's all glue: Experiences building a desktop application with Lua
Mark Hamburg
2:30 Lua and Instant Messaging
Matthew Burke
Embedding Lua into LabView
Albert-Jan Brouwer
Using Lua to Build Domain-Specific Languages
Thomas Wrensch
Lua in ATE
Marius Gheorghe
3:30 coffee break
4:00 open discussion
5:00 closing
Thu July 28
9:00 breakfast
9:30 Embedding Lua in Grim Fandango
Bret Mogilefsky
10:00 Psychonauts and Lua: a case study
Paul Du Bois
10:30 coffee break
11:00 The Novelties of Lua 5.1
Roberto Ierusalimschy
12:00 lunch
1:30 The Kepler Project
André Carregal
2:00 A Macro Facility for Lua
Luiz Henrique de Figueiredo
2:30 Lua for Molecular Biology
Yutaka Ueno
Alex Mohr
Lua Integrated into Embedded Linux
Glenn Edgar
A Lua Decompiler
Hisham Muhammad
3:30 coffee break
4:00 The Future of Lua
5:00 closing


The workshop will be held at Adobe's headquarters in San Jose, California. Follow these directions to get there (pdf). Head for the Albertus conference room on the second floor of the west tower.


The hotels below have special rates for Adobe. When making reservations, just mention that you're attending an event at Adobe to get reduced rates (which should be around $130 a night).


» Registrations are now closed «

There is no registration fee but registration is required. To register, please fill the form below and send it to As confirmation, your name will appear in the list of participants.

Lua Workshop 2005 -- Registration form

* Data to appear on badge

* If you plan to give a talk


Organized by Mark Hamburg and the Lua team. The organizers can be contacted at

Sponsored by  Adobe


The people below have registered for the workshop. (If you have sent a registration and your name does not appear here in a couple of days, please let us know.)


Here are the abstracts and slides of the talks, in alphabetical order of title.

A Lua Decompiler slides
Hisham Muhammad (PUC-Rio)

A Macro Facility for Lua slides
Luiz Henrique de Figueiredo (IMPA)

I shall describe an add-on core module for providing a macro facility for Lua via token filters. I shall also show how coroutines are a handy tool for implementing such filters.

Embedding Lua in Grim Fandango slides
Bret Mogilefsky (Sony Computer Entertainment America)

Embedding Lua into LabVIEW slides
Albert-Jan Brouwer (CIT Engineering)

LabVIEW is a graphical dataflow language used for laboratory and industrial automation. Its dataflow nature posed particular obstacles to embedding that necessitated a yielding calling mechanism as well as cooperative scheduling provisions. The combination of both languages was used to develop a test environment for the European Space Agency. Lua turned out to be capable of performing many different roles.

Io and Lua slides
Steve Dekorte

In many ways, Io can be considered a descendent of Lua. This talk gives an overview of Io and compares various aspects of the two languages, including their design philosophies, VM implementations, concurrency models, primivites, and libraries.

It's all glue: Experiences building a desktop application with Lua slides
Mark Hamburg (Adobe)

Lua and BREW cancelled
Marc Nijdam (Qualcomm)

This talk presents the use of Lua on the BREW platform. It covers the modifications required to Lua as part of the port to BREW and how Lua is planned to be used across various layers in BREW to offer an extensible easy to use scripting system.

Lua and Instant Messaging slides
Matthew Burke (St. Mary's College of Maryland)

This talk will present an overview of work to build a unified API in Lua to allow scripting of Instant Messaging applications. Details of the back-end libraries will be presented, but the emphasis will be on abstracting the differences between services and providing useful tools for developing applications.

Lua for molecular biology slides
Yutaka Ueno (Neuroscience Research Institute, AIST Tsukuba, Japan)

In these years, the programming language Lua has been applied in various studies in molecular biology at my laboratory. The genome database management was greatly facilitated by Lua with its data description facilities, in particular, data schema conversion for hierarchical information from various biological databases. I would like to introduce our successful application program, a sequence map viewer program "GUPPY". It features quick rendering and smooth operation for the tasks required to handle the genetic sequence map with Lua for data-warehouse and script program. In order to support larger amount of data in foreign databases, a virtual memory table for Lua would be our next development topic.

Lua in ATE slides
Marius Gheorghe (CableTest Systems Inc., Canada)

The presentation will cover the usage of Lua in the Automated Test Equipment designed and manufactured by CableTest. The highlights will be on Lua-based data conversion wizards, a Lua implementation of a wirelist database and the integration of Lua into our own scripting language. I would also like to briefly touch on a few features that are planned for the future such as JIT conversion of our scripting language to Lua and/or support in Lua for electrical engineering values (i.e. magnitude / dimension / unit / precision).

Lua Integrated into Embedded Linux slides
Glenn Edgar (Onyx Engineering, Inc.)

As an embedded developer, this is an area where Lua will provide a wonderful and necessary solution and if other developers can get behind it, Lua can be the default script engine for Embedded Linux. If this happens then Lua will be in large numbers of devices, particularly in the consumer electronics area.

LuaSocket Behind the Scenes slides
Diego Nehab (Princeton University)

In the first part of the talk, we will describe LuaSocket's heavy use of LTNs 12 and 13. Sources, sinks and filters greatly increased the flexibility of FTP, HTTP and SMTP support. Finalized exceptions all but eliminated the need for repetitive error checking throughout the implementation. The study case will be the SMTP module. Moving to the server side, the second part will address non-blocking I/O with LuaSocket and coroutines. The overall approach will be illustrated by a forward server implementation.

LuaSynth slides
Alex Mohr (Adobe Systems)

An attempt to open Audition (Adobe's audio app, ex-CoolEdit) to scripting with Lua. Lua is used to synthesize/process sounds in real-time via a couple of VST plugins (digital audio industry plugin standard) implementing sound processing primitives like oscillators, delay lines, filters, reverberators, etc. These primitives are all exposed via Lua and can be used for scripting sound algorithms in Audition (or any other app supporting the VST standard).

Psychonauts and Lua: a case study
Paul Du Bois (double fine productions)

Psychonauts is a recently-shipped game for the Xbox, PS2, and PC. We used Lua 4.0 to implement a large amount of gameplay logic: a rough calculation shows the project contains 260 KLOC of C++ and 400 KLOC of Lua. In this talk I'll cover how we modified Lua to address memory and CPU issues, and the scalability problems we encountered with such a large codebase.

The Implementation of Lua slides
Roberto Ierusalimschy (PUC-Rio)

In this talk we will discuss the implementation of Lua 5.0/5.1. We will concentrate on the new features, namely the register-based virtual machine, the algorithm for numeric indices in tables, and the implementation of lexical scoping (closures).

The Kepler Project slides
André Carregal (Fábrica Digital)

An overview of Kepler Project history, architecture, strategies and a road map for the incoming months.

The Novelties of Lua 5.1 slides
Roberto Ierusalimschy (PUC-Rio)

In this talk we will discuss the main differences between Lua 5.1 and Lua 5.0, with special emphasis on the new module system. Other differences that we will address include environments for other types (userdata and C functions), debugging threads, the new operators (# and %), new syntax for long strings, memory allocation, and more.

Using Lua to Build Domain Specific-Languages slides
Thomas Wrensch (University of the Pacific)

While I often use Lua for small one-off programs, I have recently found that it serves as an excellent foundation for building domain-specific languages (DSLs). The DSLs I have built using Lua range from simple languages for tracking student grades to a research prototypes of a high-level model-based programming systems.

Last update: Tue Jan 28 09:42:48 BRST 2014