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.

Changes to Idle 1.02, released 2010-09-27
top of page

+ new functions )

- updated core libraries to current releases

- added some documentation enhancements

Changes to Idle 1.01, released 2010-06-15
top of page

- updated core libraries to current releases

- fixed a few minor bugs and added some documentation enhancements

Changes to Idle 1.0, released 2009-10-23
top of page

- updated core libraries to current releases

Changes to Idle 1.0RC1, released 2009-09-17
top of page

+ new functions win32.peekChar( ), win32.showWindow( ) and win32.writeConsoleRaw(s,x,y)

+ added show window flags to os.spawnProcess( )

- updated core libraries to current releases

Changes to Idle 0.7 beta, released 2009-07-16
top of page

+ the file I/O routines now support files larger than 2 and 4 GB

+ new function gui.RegisterHotkey(hk[,cb]) connects system-wide hotkeys with Idle callback functions

+ task.cancel(id) ends or kills a running task/thread

+ task.forcereturn(id) ends a runaway task/thread

+ strings can escape hexadecimal values as '\xXX'

- updated several core modules and libraries to current releases

- sqlite3.dll has been renamed idlesql.dll (should be a transparent change)

- the Tiny C support has been upgraded to v0.9.25

- the Perl support has been upgraded to the Perl 5.10 stream

Changes to Idle 0.6 beta, released 2009-04-15
top of page

+ new function os.getStreamInfo( ) to query information about Alternate Data Streams and other streams

+ new function ) to compare arbitrary substrings

- completely integrated the GUI module into the runtime library (idle03.dll)

- updated several core modules and libraries to current releases

- other minor changes to a few runtime functions

Changes to Idle 0.5 beta, released 2008-09-08
top of page

+ a complete GUI module (still as an alpha release)

+ a version of the Idle interpreter (idlew.exe) that runs scripts as GUI applications

+ the Idle compiler now supports creating stand-alone GUI-enabled executables

Changes to Idle 0.4.1 beta, released 2008-08-15
top of page

+ new functions win32.allocConsole( ), win32.attachConsole( ) (this requires Windows XP or better), win32.attachStdio( )

- a few internal changes, mostly in preparation for the upcoming GUI alpha release (idlew.exe)

Changes to Idle 0.4 beta, released 2008-07-22
top of page

+ a revamped process management with added function os.setProcessPrio( )

+ changes to util.parseArg( ) to allow callback switches

- a host of internal changes

- fixed a bug within the start-up code

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 subdirectiry (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 ) 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 d106963c4f77 Mon Sep 27 13:27:10 2010 +0000 thomasl $$