Return to Floodgap Retrotech
Plua was (in version 2.0, its final release)
an implementation of Lua
5.0.3 for the classic Palm OS (3.5
and up, including PalmOS 5 Garnet) written by Marcio Migueletto de Andrade.
Besides implementing a small onboard
IDE and the language itself, it could generate
executable PRCs that would run using a standalone runtime, or be
"cross-compiled" using a modified version of luac called
plua2c. It
has disappeared from most of its former locations, including
Marcio's old site
and the Yahoo! Groups site that used to host it.
Plua was freeware, but was never open source during its supported
existence. However,
by historical happenstance as the maintainer of the plua2c port
to Mac OS X, I retained the source code to that specific
component and made
64-bit fixes to it to allow development on my Raptor Talos II workstation.
With Marcio's permission, this revised version of plua2c is now
open-source under the same MIT license terms as Lua.
Additionally, Marcio himself released Plua under the GNU Public License v3, making it available for further improvements. Now that Garnet is becoming more popular for retrocomputing, I'm hopeful that Plua can experience its own renaissance; we are reviewing options for how to update it for more devices and a modern audience.
A detailed language reference is included with the Plua distribution, or you can read the Plua documentation here. You can also read the FAQ.
Here is an example of what Plua source code looks like. This example draws an animated fishtank using bitmap resources.
You can download that script (with resources) and other example scripts (547K) to play with. These demonstrate Plua's graphics, UI, sound and networking capabilities. For some of the examples you will need PilRC to compile the resources; here is source code for 64-bit fixed PilRC (263K) suitable for most modern platforms.
Marcio has generously uploaded the sourcecode for Plua 2, which I maintain a fork of. Building it is somewhat difficult on 64-bit hosts, so you should have a 32-bit system or one capable of running 32-bit binaries. I currently build and develop Plua 2.x on a Power Mac G5; build tools for Mac OS X on PowerPC are available from the Floodgap gopher server.
Generated applications may be distributed under any license you want, along with the unmodified runtime and any of your own libraries you may have created.
By Marcio's generous permission, the cross-compiler source code is available on Github, which I maintain separately due to the differing license. I provide some pre-built binaries below. These binaries (except for the original Mac OS X Jaguar port) are for modern 64-bit systems. The choice of platforms purely represents what I use or have access to, and I may add others in the future. I do not have the original plua2c binaries as I never used them personally.
Here are the usage instructions, which are the same for all the ports. These zip archives contain bare binaries.