Main
Language
Runtime
Tools
FAQs
Changes
Download
Licence
cheesy

Changes between Idle versions

This page attempts to give a concise list of externally visible changes and important bugfixes between different Idle versions. New features are marked with a + and changes or bugfixes with a - sign. Generally, full details about added or changed features can be found in the relevant parts of the documentation.

The current Idle 0.3.1 beta version, released 2008-05-19, and all future versions (whether beta or release) will have NO expiration date (this 'security' measure only applied to alpha versions). In other words, this and all further versions can be used indefinitely.

Changes to Idle 0.3.1 beta, released 2008-05-19
top of page

+ added flag 'c' to os.walkDir( ) such that the function now continues ro recurse a directory tree even if an error occurs while entering a subdirectury (flag 's' behaves as before and will return on error).

- moved the socket module into the runtime DLL. (For an already installed system this change means that file socket.idol can be deleted.)

- a few other small internal changes

Changes to Idle 0.3.0 beta, released 2008-05-01
top of page

+ added support for textual macros and source code preprocessing. Module macro adds facilities to Idle similar to macro handling in the C preprocessor. It allows the definition and replacement of macros with or without parameters and supports textually including source files (also along a path, see package.ipath) as opposed to require( ) and dofile( ) which introduce separate compilation units with, among other things, a separate scope.

+ function string.reMatch( ) does regular expression pattern matches. This function works similar to string.reFind( ) but it simply returns the matched strings (or captures, if captures are defined) and not the positions in the string.

+ function table.invert( ) inverts a table such that the keys are swapped with the values.

- moved functions macro.preprocess( ) and macro.run( ) to new module template and renamed them to template.fill( ) and template.execute( ), respectively. The shortcuts to these functions (in module macro) will disappear in a future version.

- string.reGSub( ) doesn't support caching of the last used pattern anymore if it is called with a function as replacement parameter. Such a function could itself call string.reGSub( ) with another function as replacement parameter and this in turn could lead to a corrupted pattern in the outer call.

- returning a value to the operating system in the main part of a script (via a simple 'return value') is not supported anymore. Instead variable os.exitCode should be set to the value to be returned to the OS.

- renamed the Idle runtime DLL to idle030.dll because the preceding two changes are not backward-compatible.

- moved the Idle runtime module into the runtime DLL. (For an already installed system this change means that file idle.idol can be deleted.)

- fixed a few bugs.

Changes to Idle 0.2.0 beta, released 2008-02-13
top of page

+ a set of console I/O functions, including scrolling the screen buffer and full raw keyboard input

+ functions to send keypresses to other applications and to manipulate windows

+ functions to support the Win32 file change notification API

+ a global variable printf which is by default initialised with util.printf( ). This shorthand allows the easy redirection of all formatted output (e.g. by setting printf to win32.printf( )).

+ the Idle runtime DLL is now called 'idle02.dll' with the two digits being the runtime version (currently 0.2). This version number (and hence the name) will change whenever I have to introduce changes which are not backward-compatible.

- a small, but not backward-compatible change to util.unpack( ) concerns the unpacking of zero-terminated ASCII strings

- for reasons of consistency the functions os.spawn( ), os.wait( ) and os.kill( ) have been renamed to os.spawnProcess( ), os.waitProcess( ) and os.killProcess( )

- removed the expiration date check

- updated several core modules and libraries to current releases

Changes to Idle 0.1.0 alpha ('Trafalgar'), released 2007-10-21
top of page

+ integration of a modified version of LuaJIT (a just-in-time compiler for Lua; see the LuaJIT website for details)

+ a set of simple profiling functions (see module debug; this is loosely based on the LuaProfiler from the Kepler project)

+ apairs( ) can be used to iterate over a list of arguments

- a couple bug fixes

Changes to Idle 0.1.0 alpha ('Woodstock'), released 2007-08-15
top of page

+ module sqlite3 provides full bindings and functions for creating and accessing SQLite3 databases

+ module Class implements a simple, but powerful class/object system

+ NULL can be used as a helper constant for declared but undefined variables

+ metamethod __len can override the # operator for userdata, tables and strings

+ rawlen( ) gets the size of userdata, tables and strings without calling metamethod __len

+ rawtostring( ) to convert values into strings without calling metamethod __tostring (i.e. function tostring( ) remains unmodified)

+ table.inject( ) inserts all fields of one array into another array

+ table.copy( ) now can produce a shallow copy as well

+ util.sha1( ) calculates the SHA1 hash value of an arbitrary string

+ the module loader looks for .idle and .idol files along PATH if loading via IDLE_PATH fails (previously, the loader only looked for .idle files along PATH)

- a few small bug fixes

Changes to Idle 0.1.0 pre-alpha ('Bastille'), released 2007-07-14
top of page

This was the first public release of Idle; a change log is not available.



$$ built from IdleChanges.txt ba7dd5701f6d Wed May 07 15:24:02 2008 +0100 thomasl $$