Lua icon

RiscLua Version History

 

Lua (version 3.2) was first ported to RISC OS by Reuben Thomas, who has since, alas, left the RISC OS scene. Soon afterwards Lua version 4.0 came out, at which point I started experimenting with the Lua sources to see if I could add to them facilities for calling RISC OS SWIs. In that way RiscLua started life. Its initial development was rather haphazard.

I was faced with two problems. First, the standard Lua sources use 64-bit floating point numbers (doubles) by default. Unfortunately ARM chips do not have on-chip floating point operations. The Lua sources have been improved to make it easier to use alternative number types. My earliest efforts used the default doubles; later I used 32-bit integers as the default for RiscLua, reckoning that the sacrifice of not having floating point numbers was worth the efficiency gained on ARM chips. Later versions of RiscLua gave back the use of floating point numbers; first of all, version 3.10 used the MAPM bignumber package. This was abandoned as clumsy in version 3.20. In version 4.00 the doubles library was introduced, which implements 64-bit floating point numbers, not in the Lua virtual machine (which keeps to 32-bit integers) but as objects in the heap. Second, RISC OS SWIs use registers as pointers to arrays of data, whereas Lua, for reasons of portability and security avoids such things. However, its notion of userdata provides enough to implement what is required. It was not until version 3.00 of RiscLua, with the introduction of the block and swi libraries, that the RISC OS calling interface was properly rationalized. In version 3.30 bitwise operations on integers were implemented more efficiently using extra opcodes for the Lua virtual machine. Programs not using them should still compile to virtual machine code that is runnable on other platforms. Since then RiscLua has remained backward compatible.

 

4.13 April 2008
Update Lpeg library to version 8.
 
4.12 March 2008
Update to Lua 5.1.3. Incorporate Lpeg library, version 7.
 
4.01 July 2007
Update to Lua 5.1.2.
 
4.00 December 2006
Update to Lua 5.1.1. Add doubles library.
 
3.41 April 2006
Update to Lua 5.1.
 
3.30 January 2006
Update to Lua 5.1(beta). Implement bitwise operations in the virtual machine.
 
3.20 October 2005
Update to Lua 5.1(alpha+). Use separate bit library for bitwise operations.
 
3.10 May 2005
Use mapm library for arbitrary size numbers.
 
3.00 August 2004
Major rewrite using block and swi libraries replacing riscos library. Improved error handling. Revert to implementing RiscLua as an application.
 
2.32 May 2003
Implement RiscLua as a relocatable module.
 
2.30 May 2003
Update to Lua 5.02.
 
2.20 December 2002
Update to Lua 5.0(beta).
 
2.10 November 2002
First 32-bit version.
 
2.00 October 2002
Update to Lua 5.0(alpha).
 
1.50 June 2002
Update to Lua 4.0.

Back to RISC OS stuff