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