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 win32.read/writeConsoleOutput( )
- 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 string.compare( ) 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 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.