
To Do
=====
- performance
  - incremental frees
  - tail call optimization
  - have gc color group value added to front for better cache performance?
- memory
  - lazy allocation (eg: Font texture cache)
- vm
  - List remove with vargs (suggested by Juansa)
  - persistance
  - add hasProto or isKindOf
  - launchPath stack - import
  - Sam Sandqvist's WIN32 suggested changes \ vs. /
  - resolve question of activation support
  - add isToday, isYesterday, etc methods to Date
  - print = method(v, write(v, "\n"))
  - fix bug with cloning methods
  - asString method for print calls
  - BigNumber
- server
  - DNS MX record support
  - reverse DNS
- desktop
  - timers?
  - move non UI Image code, zlib and lzo to IoServer
  - OpenGL open checks
  - make sure image texture scales images properly

In progress
===========
- Directory remove
- Sound support for reading and writing mp3s
- sub-Arrays
- Object doURL
- Sound bpm (not working yet)
- more effiencent implementation of Sequence replaceSeq()

- fix for squareBrackets() and curlyBrackets() parsing (by Quag)

Release 2005 10 
================================
- fix for OpenGL inheritance (by Jon Kleiser)
- fix for OpenGL Box/Vector extensions init (reported by Jon Kleiser)

Release 2005 10 12 - build fixes
================================
- fixes for -lm and -ldl
- Directory fix for linux (by Quag)
- #include <stdlib.h> in io2c.c
- fix for ObjcBridge attempting to build on non-Objc systems (reported by M Gregory)
- fixes for int compiler warnings (by tm)
- _ last value for CLI (by June Kim)
- Object print fix (by June Kim)
- Token parser fix (by June Kim)
- Directory fix for Mingw (by June Kim)
- added top level Makefile
- fix for base RandomGen.d error
- cleanup of const char pointers

Release 2005 10 07 - reorg
==========================
- major reorg of source tree 
- several important stability fixes
- fromTo changed to slice fixes for HttpServer (by Donovon Preston)
- fix for calling forward from perform() (reported by robbo)
- fix for File readLins (by Quag)
- SHA1 binding (by Quag)

Release 2005 09 10 - updates
============================
- moved implementation of ? to Io
- VM autodocs now auto include _ioCode docs
- improved List shuffle method (suggested by John D. Mitchell)
- fix for Box containsPoint() (by Jon Kleiser)
- DynLib changes to support gtk binding (by QuantumG)

Release 2005 08 30 - important fixes
====================================
- fix for super and resend bug (reported by QuantumG)
- fixes for Windows compile (by QuantumG)
- crash fix related to SkipDB (reported by QuantumG)  

Release 2005 08 29 - super fix
==============================
- added Object ancestorWithSlot() method
- added slotContext default local, which is set to the context in which the slot who's value was activated was found
- super and break now takes message as argument
- super and resend now implemented in Io (this should fix the super bug reported by June Kim)

Release 2005 08 26 - Collection updates
=======================================
- added List slice() method
- List first() and last() methods now accept optional argument
- all foreach and map methods now work with or without index argument (by Quag)
- all compiles now routed through Compiler messageForString()

Release 2005 08 20 - fixes
==========================
- important fix for Hash_rehash() (fixes SkipDB caching issue)
- removeSlot fix (reported by Massimiliano Gubinelli)
- Message setName() no longer tries to set cached result (reported by Quag)
- added List prepend (suggested by robbo)

Release 2005 08 17 - SkipDB, fixes
==================================
- important fix for Hash_removeKey()
- improvements to SkipDB
- URL setReferrer() fix by John Mitchell
- IoVM and IoServer sample code updates by John D. Mitchell
- List appendSeq() now accepts multiple arguments

Release 2005 07 24 - Updates, fixes
===================================
- renamed List map() to mapInPlace() (suggested by Mike Austin)
- added Sequence replaceFirstSeq() method
- fix for print format on large Numbers (reported by Jeremy)
- added Object doUrl() method (IoServer only)
- exit callback now takes error code argument
- added -i option for interactive prompt (by Kim June)

Release 2005 07 14 - Cleanup, fixes
===================================
- glTexImage2D now accepts Nil buffer (by Mike Austin)
- System getOptions (by Jeremy)
- removed File useTemporaryPath method 
  (the File temporaryFile method can be used instead)
- Directory "count" method renamed to "size"
- docs fixes and cleanup
- top level make now does auto configuation
- cleanup of some Linux build warnings
- Scheduler now sleeps each yield for the sleep interval 
  divided by the number of active coros
- fix for IoServer DOTest on Windows 

Release 2005 07 12 - Collections overhaul
=========================================
- major overhaul of String and Buffer (unified into Sequence)
  - List and Map interface unified with Sequence
- Vector setXYZ, getXYZ fixes (by Mike Austin)
- removed support for String + operator (these have been deprecated for some time)
- fix for Date bounds checks (by Jeremy Tregunna)
- fix for ByteArray dropLastByte (by Mike Austin)
- DOConnection messages now support any number of arguments (by Christophe Poucet)
- improved stack traces on auto-imported code
- continue can now be used to skip an item in List map() (by Quag)
- added URL openOnDesktop method (supports OSX and Windows)
- major compile performance improvements (with help from Quaq)
- fix for unpacking Io tarball on Windows (by Jefferey Drake and Mike Austin)

Release 2005 06 15 - GC fix
===========================
- yet another important GC fix
- Distributed Objects fixes
  - added a DO unit test
- Random fix for gcc4.0

Release 2005 06 13 - fixes
==========================
- GC fix (reported by Jon Klieser)
- cygwin support fixes (by Jeffrey Drake)

Release 2005 06 10 - important GC fix
=====================================
- IMPORTANT GC fix
- vector clone fix (bug introduced in last release)
- fix for NSRect arguments in ObjcBridge (reported by Jon Klieser)
- Cygwin File_stat fixes (by Jeffrey Drake)
- Date fixes (by Jeremy Tregunna)

Release 2005 06 09 - fixes, tailCall, activate
==============================================
- \ line continuations (by Trent Waddington)
- newSlot() returns value (by Jonathan/Quag)
- fix for Block clone (by Jonathan/Quag)
- File stat date fix (reported by Jon Kleiser)
- fix for System platform on NetBSD (Jeremy Tregunna)
- fix for mktemp warning (using mkstemp) (Jeremy Tregunna)
- added jtdrakes modified Freeglut to IoDesktop 
  - only builds for Cygwin
- experimental tailCall support
- re-added activate support, but it now adds no overhead if unused
  - see Object setIsActivatable() method 
- a small GC fix

Release 2005 05 31 - performance
================================
- a few performance improvements

Release 2005 05 28 - protos
===========================
- moved from proto/parent slot to protos
  - some significant performance improvements
- fix for Vector distanceTo()
- memory bug fix for IoFile (traced by quag)
- Syntax highlighter for XCode (by Massimiliano Gubinelli)
- Vector floor method fix (by Quag)
- precendence change for ^ (by Jeremy Tregunna)
- fix for Vector.c on Linux (by Eric Max Francis)


Release 2005 05 06 - fixes
==========================
- fixes for ObjcBridge (by Massimiliano Gubinelli)
- some small leak fixes and a memory bug fix 
  (thanks to quag and valgrind)
- fixes to Box setSize (reported by quag)
- some doc fixes (reported by Jeffrey Drake)
- Speex fixes
- some cleanup of Ion 
  - added Application and OSWindow protos
  - cleanup of font references

Release 2005 04 27 - Speex beta
===============================
- test release of Speex addon
- Socket changes 
  - no close on write error
  - improved write error messages

Release 2005 04 26 - tests, docs
================================
- Soup3 object for use with SQLite3
- more unit tests for IoServer
- update of IoDesktop docs

Release 2005 04 22 - fixes
==========================
- GC fix in rawClone
- GC fix in List addList method

Release 2005 04 21 - fixes
==========================
- Importer exception now shows object type
- HttpServer added to built-ins
- several new convenience methods for Directory
- small fix for Directory on Windows
- Sockets docs updated

Release 2005 04 20 - fixes
==========================
- fix for missing Importer
- added printCallback to Sandbox (by quag)
- removed Message doInContext (use Object doMessage(aMessage) instead)
- URL fetch() now takes optional url argument
- added Number squared and cubed methods
- added vector() method
- more tests for IoServer
- some cleanup of docs

Release 2005 04 18 - Sandbox, fixes
===================================
- cygwin fix for IoDirectory (by Mike Austin)
- added Socket setHostName() method
- fix for Compiler tokensForString()
- added Sandbox primitive (by quag)

Release 2005 04 15 - fixes
==========================
- added Message removeCachedResult method (requested by Quag)
- Regex patch (by Jason GrossMan)
- Buffer clipAfterStartOf fix (reported by Jason Grossman)
- SQLite tableNames fix (by Jeremy Cowgar)
- Object eval method added (by Quag)
- fix for Date now (reported by Doc O'Leary)
- Date now unit test added (by Doc O'Leary)
- SQLite and SQLite3 viewNames method added (by Jeremy Cowgar)
- fix for File useTemporaryPath (reported by Jason Grossman)
- added File temporaryFile method
- Sockets binding now auto "imports" any io code found in _ioCode folder
- added Buffer sort method

Release 2005 04 01 - SQLite3, Point/Vector, fixes
=================================================
- SQLite3 addon added to IoServer
- fix for File readLine/readLines bug
- update of List random and randomize methods (take optional argument for random number generator)
- more IoServer docs
- DocGen now generates indexes for docs
- fix for squareBrackets and curlyBrackets parsing (by Quag)
- Point is now a Vector, notes:
  - Points are now composed of floats instead of doubles
  - on OSX, Vector/Point is Altivec accelerated

Release 2005 03 24 - cleanup
============================
- upgraded Micro add-on to GNU Lightning-1.2
- eliminated Tag printFunc 
- fixes for Windows (by Jeffrey Drake)
- updated SGML parser binding
- added --disable-ffserver to ffmpeg config

Release 2005 03 09 - Debugger basics
====================================
- new docs for MD5 object 
- new Debugger related methods: 
	Object turnOnMessageDebugging 
 	Object turnOffMessageDebugging
	Object actorCallStack
	Scheduler actors
	Scheduler currentActor
	Debugger vmWillSendMessage

Release 2005 03 04 - fixes, docs
================================
- fix for odd crash bug reported by FrayByte
- fix for File readLines and SQLite exec data 
  stack overflow (reported by Doc O'Leary)
- moved Blowfish into it's own object 
- integrated Docs for Blowfish, Curses, Fnmatch, SQLite, User
- renamed IoServer Geometery add-on to IoServer Math
- moved IoPoint functionallity into IoVector
- SubEthaEdit syntax highlighter fixes (by Jason Grossman)

Release 2005 02 28 - Random, Debugger, Scheduler and Collector
==============================================================
- Random, Debugger, Scheduler and Collector objects added to IoVM
- Socket setConnectTimeout and connectTimeout methods added
- SubEthaEdit mode updated (by Jason Grossman)
- fix for JFile path (by David Morford)
- rewrite of ByteArray_split() in terms of Datums
- removed String splitCount method
- operator precedence patch (by jer)

Release 2005 02 25 - Directory move, fixes
==========================================
- fix for stack order on back traces
- upgraded IoServer to libevent-1.0b
- SocketManager now catches broken pipe signals
- added open checks to Socket read/write
- moved uses of sprintf to 
- moved IoDirectory into IoVM
- moved "make docs" to IoVM
- added post method to URL object (by Manpreet Singh)
- fix for System platform method (by Jeremy Tregunna)
- fixed Server setPort() to return self (this was causing "start" error)
- fix for Socket read docs

Release 2005 02 22 - Coro fixes, Compiler
=========================================
- fix for Debian/Gentoo coro bug (by Jeffrey Drake)
- support for ucontext coros (by Ken Kurahone)
- added initial Compiler object
- Message setLineNumber, setCharacterNumber, setLabel methods added
- some cleanup of sample code in IoVM
- fix for portaudio build on Solaris (by Manpreet Singh)
- List remove supports multiple args (by Jeremy Tregunna)
- added Number contants NaN (suggested by Tom Blalock)
- SkipDB build fix (by Jeffrey Drake)
- new vim highlighter (by Manpreet Singh)
- System platform method (by Mike Austin)

Release 2005 02 16 - System object, fixes 
=========================================
- IoVM System Object added, system methods moved to it
- fix for IoServer DNSResolver
- Syslog add-on for IoServer (by Jeremy Tregunna)
- fixed double evaluation of updateSlot() values in Locals
- Solaris fixes for IoServer (by Manpreet Singh)
- fix for IoException type (reported by Jon Kleiser)
- removed CFunction performOn() method
- Socket default port now 80 as documented (reported by John Nowak)

Release 2005 02 12 - Sockets clean up, fixes
============================================
- added Object currentActor method
- move DNSResolver and Host from C to Io implementations
- fixed bug with UDPSender clone
- fix for BOOL bug on ObjcBridge (reported by Sebastien Pierre)
- fix for String fromBase (by Jonathan)
- fix for Number constant pi and e (by Peter Hull)
- sample code page cleanup (by Tom Lackner)
- fix for IoApp paths (by John/neuroboy)
- improved User directory method (by Jeremy Tregunna)
- fixed number escape bug - "\0" is now the same as in C
- some 64bit fixes (by Christopher Kane)
- some Tiger build fixes (by David Morford)
- added File truncateToSize() method

Release 2005 02 02 - fixes
==========================
- fix for Date now off by one hour bug
- small UTzones compile fix (by Sbastien Pierre)
- added lineNumber, characterNumber and label methods to Message proto
- removed List translate method (was duplicate for List map)

Release 2005 01 26 - important leak fix, Solaris port
=====================================================
- fixed important memory leak in IoVM
- Solaris build fixes and support for coroutines on Solaris (Manpreet Singh)
- fix for loading png files with alpha channels (reported by Agent M)
- fix for saving tiff files
- clean up of AudioDevice code
- AudioMixer setTempo() and setPitch() methods (by Mike Austin)

Release 2005 01 23 - fixes
==========================
- fix related to unique strings

Release 2005 01 21 - fixes
==========================
- coroutine fix and cleanup of Sockets coro code
- changed File readLine to deal with \r (reported by Dru Nelson)
- fixes for Mingw (by Jaen)

Release 2005 01 17 - fixes
==========================
- fix for Object pause (reported by June Kim and Jonathan Wright)
- usleep() fix for IoServer (Jason Grossman and "Fray Byte")
- fixes for Symbian (by Chris Double)
- added IoState activeCoro callback (called when active coro count changes)
- audio playback support added to Movie primitive (alpha)

Release 2005 01 05 - ffmpeg
===========================
- moved Movie from using mpeg2dec lib to use the ffmpeg libs
  this adds support for more fomarts, including mpeg4
- TIFF color fix (by Rick Evans)
- fix for OpenGL lessons (by Jon Kleiser and Doc O'Leary)
- updated Io mode for Emacs (by xihr)

Release 2004 12 16 - fixes
==========================
- new line at end of files fixes (by Sbastien Pierre)
- fix for Objective-C brigde (by Sbastien Pierre)
- fix for locals updateSlot (reported by Sbastien Pierre)

Release 2004 12 15 - important fixes
====================================
- important fix for actor queues
- String strip and rstrip changed to lstrip, strip and rstrip (by Luke Holden)
- more C++ build fixes (help from Luke Holden)
- fix for a < b < c (bug reported by Jon Kleiser)
- new model for dealing with contexts in SkipDB

Release 2004 12 06 - fixes
==========================
- comparison changed to return argument, so a < b < c, etc. works
- fixed some build issues
- added C++ ifdefs to base and SkipDB
- added context and cursor support to SkipDB

Release 2004 11 28 - important fixes
====================================
- fix for OpenHash bug that was causing crashes
- fix for inverted image bug

Release 2004 11 11 - build fix
==============================
- fix for IoVM build bug (reported by Jonathan)

Release 2004 11 10 - SkipDB, CGI improvements
=============================================
- Replaced BDB with SkipDB in Io's persistence system
  and fixed some persistence bugs
- CGI fix for url foriegn character codes (by Jon Kleiser)
- CGI change to put multiple items in lists (by Catherine Flick)
- fix for gluSphere (by Mike Austin)
- change Ion to init GL window with depth buffer

Release 2004 09 25 - performance improvements
=============================================
- performance improvements

Release 2004 09 21 - fixes
==========================
- performance improvements (2x slot lookup speed)
- fix for Date hour (new unit test by Doc O'leary)
- fix for AudioMixer removeAllSounds (related to SongJam tempo bug)
- Tree cursor API changed to match BDB cursor API

Release 2004 09 16 - cleanup
============================
- clean up of looping control flow
- inlined check for slots creation
- added optional reference counting (see #define in IoState.h)
- Image render-to-texture fixes (by Rob Rix)

Release 2004 09 11 - persistence
================================
- alpha version of persistence system
- fix for List clone (reported by Jon Kleiser)

Release 2004 09 08 - fixes, updates
===================================
- fix for getting DNS server list on Windows (by Mike Austin)
- SubEtha syntax highlighter fix (by Jason Grossman)
- more fixes for Date (reported by Doc O'Leary - unit test by Christian Pekeler)
- updated docs
- updated OpenGL demos
- added Tree goto method


Release 2004 09 05 - unit tests, fixes
======================================
- *lots* of unit tests (by Christian Pekeler)
- fixes for Map (by Christian Pekeler)
- added Number isEven and isOdd methods
- SleepyCat add-on replaced by BDB add-on
- fixes for Number docs (reported by Jon Kleiser)
- added Number constants pi and e slots (requested by Jon Kleiser)
- List addIfAbsent() fix for multiple args (by Christian Pekeler)
- fix for String strip docs (by Jon Kleiser)
- List addList() fix and doc fixes (by Christian Pekeler)

Release 2004 08 29 - fixes
==========================
- Message docs fix (by Christain Pekeler)
- fixes String isEqualAnyCase and join (Christain Pekeler)
- fixes for Date (thanks to Doc O'Leary's unit test)

Release 2004 08 26 - [] and {}, docgen
======================================
- [] and {} now parsed to squareBrackets() and curlyBrackets() respectively
- new docgen system (documentation for IoVM is generated from the code)
- fix for Date timezones (reported by Doc O'Leary)
- build fixes (from Eric Merritt)
- fix for String replaceMap (by Christian Pekeler)
- fix for List selectInPlace()
- fix for String split() when split on last character
- fixes for path problems in some of the demos

Release 2004 08 20 - autoImportResources
========================================
- fix for String split bug (reported by Doc O'Leary)
- added IoDesktop autoImportResources method (no more resource loading mess)

Release 2004 08 18 - important fixes
====================================
- important fix for newSlot()
- more Windows build fixes
- fix for Futures that become Strings
- smaller memory footprint for IoDesktop
- doString() now accepts Buffer argument

Release 2004 08 17 - new hash algorithm
=======================================
- new slot loopkup hash algorithm (~15% general speedup)
- fixes for cygwin build (by Mike Austin)

Release 2004 08 14 - fixes
==========================
- new docgen system almost ready and IoVM docs embedded in source
- upgraded libpng to security fix release 1.2.6rc1 
- fix for Vector Altivec subtract (by Rob Rix)
- added Buffer unsignedInt32At() method
- patch for DragonFly BSD (by Einar Karttunen)
- IoRC IRC demo client sample code (by Jason Collins)

Release 2004 08 01 - Vector, libevent 
=====================================
- new Vector methods (by Rob Rix)
- upgraded to libevent 0.9 (thanks to Jason Collins)

Release 2004 08 01 - Performance improvements
=============================================
- performance improvements (object recycling, 
  immediate Block recycling, removed unneeded IOREFs from Block)
- added Curses nodelay method (nonblocking input support)

Release 2004 07 26 - Transparent Futures, Immutable Numbers
===========================================================
- Futures are now transparent (they turn into their result when it is ready)
- Numbers are now immutable - mutable methods removed
  (still need to update many of the examples for this)
- added Number repeatTimes() loop method
- added IoException backTraceString method (by Christian Pekeler)
- Socket close fix (by Vladimir Pogorelenko)

Release 2004 07 18 - IoApp, fixes
=================================
- added IoApp XCode project
- doString now returns Nil for empty string 
  instead of raising an exception.
- DNS resolv.conf reader fix (by Vladimir Pogorelenko)
- fix for SocketManager sleep (reported by Vladimir Pogorelenko)

Release 2004 07 10 - binaries package builder
=============================================
- changed Directory create method and added
  Directory createSubdirectory method
- added "make bin" build type to make binaries package

Release 2004 07 05 - Vector primtive, fixes
===========================================
- added Vector primitive with Altivec support (undocumented, may change)
- fix for Number random and moved to MT random number generator
- fix for List atPut() bounds bug
- fix for List selectInPlace()

Release 2004 06 25 - fixes, improved Date 
=========================================
- ObjCBridge fixes (by Arjen)
- important Hash primitive fix (by John Hanna)
- fixed IoDesktop shutdown process related to Fonts
- fix for Date setYear() 
- rewrite of Date to handle dates before 1970
  new year range is -4712 to +2147483647
  based on Hiram Clawson's UTinstant code
- rewrite of String split()

Release 2004 06 08 - Audio and Ion features
===========================================
- added editable TextField and SavePanel objects
- added Directory exists method
- added AudioMixer setAudioDevice method (so mixed output can be redirected)
- fix for TiffImage.c (by Dolfi)
- added String before and after methods
- IoState_free() leak fix

Release 2004 05 14 - fixes
==========================
- newSlot method added (may change name)
- fix for .. operator (reported by Kevin Smith)
- added enumeration methods to the Tree primitive
- added DisplayList primitive to OpenGL add-on
- renamed List translate to map and changed it to return self

Release 2004 05 07 - fixes
==========================
- fix for Image grabTexture
- Improved AudioDevice performance
- Ion
  - Buttons now use textures
  - added View clippingOn and clippingOff methods

Release 2004 04 25 - fixes
==========================
- fix for Object resend method
- moved Ion UI to use textures instead of images and
  lots of other Ion improvements and fixes
- added support for glutGetModifiers()
- fix for CDECL reference in MP3Encoder.c (by Mike Austin)
- fix for GLU constants with OpenGL 1.2 (reported by Jon Kleiser)
- fix for docs on locals (reported by Eric Francis)

Release 2004 04 10 - fixes
==========================
- When run without arguments, Io will now run main.io if present
  in the current working directory. Otherwise it will open the CLI.
- fix for Date day method (by Peter Hull)
- fix for perform error message (reported by Chuck Esterbrook)
- fix for a small (12 byte) memory leak in IoServer DNSResolver
- fix for a double free on OSX of getcwd() returned string
- decrease default size of low-level Lists
- possibly fix for String path methods on Windows
- fix for AudioRemixer remove method
- various undocumented improvements to Sound primitive

Release 2004 04 06 - fixes
==========================
- IoDesktop fix for IoAudioMixer.c (reported by Jon Kleiser)
- renamed AudioOut to AudioDevice
- beta support for audio input 
- fix for string split (by Fredrik Arnerup)
- added String fileName method
- added Buffer signedInt32At method
- docs corrections (by Christian Pekeler)
- added docs for MD5 and MP3Encoder objects

Release 2004 03 27 - libevent, trace back fix
=============================================
- important fix for stack straces
 (Also, call stack now available from Exception callStack slot)
- MP3Decoder and MP3Encoder objects added (API likely to change soon)
- moved to Sleepycat 4.2.52 (to help with mingw compile)
- moved SocketManager from select to libevent
  (so it can take advantage of kqueue or epoll if available)
- fix for URL childURL bug
- doMessage() now accepts 2nd arg to set locals context
- fix for IoException initialization (by Trent Waddington)

Release 2004 03 17 - Socket concurrency changes
===============================================
- Sockets moved from busy-wait to event based concurrency
  (this is much more efficient for large numbers of sockets)
- Linux/PCC, Linux/Opteron coroutine support added (by Austin K. Kurahone)
- fixed strdup memory bug in libsgml on OSX
  (for some reason strdup wasn't returning malloced memory)

Release 2004 02 28 - optimization, Socket openFifo
==================================================
- optimizations including immediate locals recycling
  (message sends with block activation ~35% faster)
- added Socket openFifo() method (requested by Andrew Holt)

Release 2004 02 24 - try() and Audio build fixes
================================================
- fix for context of try() (reported by Scott Dunlop)
- fix for Audio build issue (reported by Jon Kleiser)

Release 2004 02 23 - try(), IoCLI
=================================
- rewrite of exceptions implementation
  new form in Io is:

  try( 
    Error raise("foo", "bar") 
  ) catch(exceptionProto, exception,
    // do stuff  
  ) catch(exceptionProto, exception, 
    // do stuff
  ) pass

  new form in C is:

  IoException *e;
  IoState_tryFunc_with_(catch, (IoCatchCallback *)aFunc, anArg, &e);

- Updates to embedding API
- Moved CLI out of IoState and into IoCLI
- IoVM now compiled with -pedantic option
- Sockets docs fixes (reported by fishy_buddha)
- SubEthaEdit syntax highlighter (by Scott Dunlop)


Release 2004 02 13 - fixes, cleanup
===================================
- fix for exception during async message bug (reported by Scott Dunlop)
- split off parts of IoState into:
  IoState_collector
  IoState_exceptions
  IoState_literals
  
Release 2004 02 11 - Scheduler cleanup
======================================
- Scheduler cleanup and increased default coro size for 
  non-Symbian platforms
- extra error messages for SocketManager

Release 2004 02 10 - fixes, Windows build improvements
======================================================
- fixed memory leak with recycled objects
- build fixes for Windows (by Mike Austin)
- some IoServer Makefile cleanup 
- (implementation) removed sizeMinusOne from PHash
- String join() changed to use target string as seperator (by Daniel Ehrenberg)
- Buffer atPut() bounds bug (reported by "_tlack")
- String split now uses whitespace as default (by "_tlack")
- removed List translateBlock and doBlock - use translate() and do() instead
- List reject, translateBlock and doBlock methods removed
- List select, detect changed to take foreach() style arguments

Release 2004 02 08 - fixes, Irix coros
======================================
- fix for DynLib on Windows (by Chuck Adams)
- fix for parse bug related to comments
- fix for Nop bug (reported by Chuck Adams)
- fix for CGI parse bug introduced in 2004 01 10 release
- fix for Message clone bug 
- added coroutine support for Irix (by Austin K. Kurahone)
- added Object thisContext method
- added Emacs syntax highlighter (by Scott Dunlop)

Release 2004 01 29 - fixes
==========================
- fix for Importer returning Nil after failed lookup (reported by Daniel Ehrenberg)
- fix for URL object request headers
- fix for Socket read timeout
- fix for handling DNS request timeouts
- changed File readToBufferLength() to return number of bytes read (suggested by Doc O'Leary)
- fix for MD5 md5String method (reported by Doc O'Leary)
- added File md5String method as part of MD5 add-on

Release 2004 01 26 - fixes
==========================
- Important bug fix for String literals 
  (existing literals were not being put on the stack when referenced)
- fix for bug when over-riding thisMessage slot (reported by Daniel Ehrenberg)

Release 2004 01 21 - fixes, super, resend
=========================================
- fix for Object super method
- added Object resend method
- added Object performMessage() method
- added File readBufferOfLength() method
- added File readToBufferLength() method
- fix for coroutines on Sharp Zaurus (by Chris Double)
- fixed several other non-literal string bugs
- fix for IoBuffer_md5String so string is literal (reported by Doc O'Leary)
- added MD5 primitive for incremental MD5s
- updated OpenGL tutorials to use :=

Release 2004 01 19 - fixes
==========================
- fix for = outside of methods (when slot is defined in inheritance path)
- changed Font setPointSize and pointSize methods to
  setPixelSize and pixelSize methods
- added List addList() method

Release 2004 01 16 - fixes, PopupButton, Checkbox
=================================================
- seperated Ion into IoDesktop/Interface folder
- added PopupButton and Checkbox to Ion UI kit
- added List addIfAbsent method
- small reorganization of docs
- fix for PortableGetTimeOfDay (by saggmannen)
- fix for URL (by Doc O'Leary)
- fixed bug with reverseForeach when used with one argument

Release 2004 01 10 - :=, =
============================
- := is now createSlot, = is updateSlot
  if you replace all existing =s with :=s, your code should work
  (still need to update docs)
- added Object message() method


Release 2004 01 07 - grouping
=============================
- added support for unnamed messages so "(a)" calls the "" slot with argument a.
  default implementation of "" slot on Object is eval
  Example:

  Io> ((1*3)+(4-5))*(4+6)
  ==> 20

- added Box set method
- fix for Box Union method (this fixes a cliping bug in Ion)
- added Image encodingQuality and decoding width and height hint methods 
- fix for ByteArray reverse find and IoMessage mapArgAt error message (shinichiro.h)
- fixes for ObjCBridge references in sample code (Jon Kleiser)


Release 2003 12 16 - fixes
==========================
- added AudioMixer setSamplesPerBuffer method
- added ObjcBridge autoLookupClassNamesOn/Off methods
- fix for cloning bug with Box
- fix for Number factorial (by Shinichiro.h)
- fix for Numbers with Object shallowCopy (reported by Mike Austin)
- fix for multiple arguments in Micro (still a problem with forward/patch)
- fix for Image clone
- Ion Io UI running again

Release 2003 12 12 - Mix fix
============================
- fix for Image scaleTo
- added Sound resampleToSampleCount method
- fix for Mix demo

Release 2003 12 11 - Sound, fixes
=================================
- fix for Future sendResultTo (by Takanori Ishikawa)
- added Number clip method
- added several Sound methods
- added AudioMixer sounds method
- added Mix demo in IoDesktop/_tests

Release 2003 12 10 - fixes
==========================
- fix for building GNU Lightning
- fixes for Audio demos
- added GLU quadric functions
- added Block performOn() method
- added AudioMixer removeSoundOnSampleOfSound method
- added more IoVM tests

Release 2003 12 09 - fixes
==========================
- update of Io reference manual (by Takanori Ishikawa)
- added glutSolidCone, glutWireCone
- fix for futures on root coroutine (reported by Takanori Ishikawa)
- added protoName slot Object which answers the name of the tag 
  user objects should override this slot

Release 2003 12 07 - AudioMixer, Locals, fixes
==============================================
- added AudioMixer proto
- makefile fixes (reported by Bruno)
- changed behavior of Locals setSlot 
- improved CLI output (suggested by Dan)
- Number factorial method added
- Number random fix for 2nd argument (by Patrick M. Gremo)
- Duration set fix (reported by Scott Dunlop)
- renamed Map remove to removeAt (suggested by Scott Dunlop)
- renamed List insertAt to atInsert (this changes the arg order)

Release 2003 11 23 - Sound, fixes
=================================
- added Sound proto
- changed Object printing behavior in CLI
- makefile fix for portaudio on Linux

Release 2003 11 22 - fixes
==========================
- fix for super (reported by Sebastien Pierre)
- Linux makefile and OpenGL constant fixes (by Stefan Schmiedl)
- other linux build fixes - portaudio
- fix for shutdown process 
- fix for String escape (reported by Kevin Smith)

Release 2003 11 19 - SleepyCat cursor, Directory create
=======================================================
- SleepyCat cursor support added
- Directory create() method added (windows version by Mike Austin)
- vim syntax highlighter (by Scott Dunlop)
- fix for loop breaks and loop memory leaks
- fix for closing file after doFile (reported by Sebastien Pierre)
- fix for negative string indexes (reported by Takanori Ishikawa)
- fix for substring(0) (reported by Sebastien Pierre)

Release 2003 11 16 - locals and split fixes
===========================================
- unified Buffer and String split (bug reported by Scott Dunlop)
- re-implemented locals to have a Locals proto and a forward 
  method that forwards failed lookups to self. This also appears 
  to fix GC bug that has been in the last several releases.

Release 2003 11 15 - ObjcBridge, auto-detect nameserver
=======================================================
- ObjcBridge: re-enabled Objc exception handling
- ObjcBridge: added support for exchanging more types
- Sockets: auto-detect name server (windows code by Mike Austin)

Release 2003 11 12 - ObjcBridge fixes
=====================================
- ObjcBridge improved guessing of method signatures 
- ObjcBridge fix for serious Io2Objc free bug

Release 2003 11 09 - fixes
==========================
- fix for multi-line Japanese input (by Takanori Ishikawa)
- Regex clone fix (reported by Scott Dunlop)
- fix for state cleanup (by Takanori Ishikawa)
- fix for socket error NULL (by Takanori Ishikawa)
- net radio grabber demo 

Release 2003 11 04 - Japanese support, FFT
==========================================
- multi-line CLI input (by Takanori Ishikawa)
- IoLexer error check (by Takanori Ishikawa)
- ByteArray \0 escape fix (by Takanori Ishikawa)
- Japanese multi-byte character support (by Takanori Ishikawa)
- new FFT addon in IoServer 
- fix for sqrt test
- := now updateSlot

Release 2003 11 02 - fixes
==========================
- fix for Duration compare (reported by Takanori Ishikawa)
- fix for activate (reported by Takanori Ishikawa)
- fix for CFunction proto access (reported by Takanori Ishikawa)
- fix for WeakLink clone/compare (reported by Takanori Ishikawa)
- fix for PortAudio configure

Release 2003 11 01 - fixes, tests
=================================
- fix for roundUp, roundDown (reported by Takanori Ishikawa)
- re-enabled the activate method (reported by Sbastien Pierre)
- fix for Primitive proto slot bug (reported by Takanori Ishikawa)
- added more tests to make test (primitiveTests by Mike Austin)
- removed test methods from Lobby

Release 2003 10 28 - fixes, PortAudio
=====================================
- fix for super bug (reported by Sebastien Pierre)
- fixes for proto sharing (reported by several folks)
- increased coro stack size (fixes bug reported by Scott Dunlop)
- MSVC fixes (by Chris Double)
- Future yield fix (by Chris Double)
- beta of PortAudio binding
- Added test.io to IoDesktop folder

Release 2003 10 23 - fixes
==========================
- fixes for dynamic loading and File (by Kentaro A. Kurahone)
- fix for ByteArray_newWithBytesFrom_to_ (by Kentaro A. Kurahone)
- more build fixes 
- OpenAL a separate download now (to be replaced in IoDesktop by PortAudio)

Release 2003 10 21 - build fixes
================================
- IoDesktop now builds a libIoAll.a which contains all of the Io libs
- IoDesktop and IoServer now produce _include folders
- compile fixes for IoStore (by Daniel Koepke)
- makefile fixes
- build speedup - now avoids unnecessary SleepyCat config

Release 2003 10 18 - cleanup, IoPlayer
======================================
- fix for Date compare bug (reported by Daniel Wunsch)
- clean up of VM makefiles (by Daniel Koepke)
- added IoState_withinCatchPerform to IoState
- early version of IoPlayer for OSX working
- cleanup of CLI.c

Release 2003 09 22 - Sockets cleanup, fixes
===========================================
- first pass cleanup of Socket code
- Socket code memory usage and speed improvements
- moved platform dependent Socket code to PortableSocket.c
- fix for PortableGettimeofday (by Ivan Chelubeev)
- fix for OpenGL methods with vector arguments
- updated OpenGL tutorials for new bindings

Release 2003 09 16 - fixes
==========================
- ObjcBridge fix for float&char return values (reported by Jon Kleiser)
- added IoList_rawRemove_(), IoList_rawAt_put_()
- eliminated ivar dereferences in IoNumber, IoList, IoBuffer and IoMap. ~8% faster 

Release 2003 09 15 - Performance, OpenGL, fixes
===============================================
- Object recycling turned on again. ~10% faster
- lots of new OpenGL APIs and docs (Andreas Schiffler)
- fix for acos and Acos methods (Peter Hull)

Release 2003 09 12 - OpenGL additions
=====================================
- lots of new OpenGL APIs (Andreas Schiffler)
- fix for Regex empty string bug (reported by Daniel Wunsch)

Release 2003 09 08 - fixes
===========================
- fix for List List_sizeTo_ (by Ivan Chelubeev)
- fix for DynLib on Linux
- added some returns to end of files to make gcc happy
- more work on persistence system  (almost ready)

Release 2003 08 31 - DynLib
===========================
- untested DynLib object - (combines Austin K. Kurahone's and Daniel A. Koepke's code)
- libevent added but not yet integrated (due to globals)

Release 2003 08 29 - fixes
==========================
- fix for IoFile_currentWorkingDirectory on Sparc (by Jurrie Lulofs)
- fix for User name method on Linux (by Peter Hull)
- Future value now auto yields
- fix for super (bug reported by Jurrie Lulofs)

Release 2003 08 27 - fixes
==========================
- important fix for String compare
- Server.c accept fix (by Dustin Sallings) 
- Server.c SOMAXCONN set to 128 (by Daniel A. Koepke)
- changed Date secondsToRun to cpuSecondsToRun
- clean up of Date and Duration objects
- new make test script

Release 2003 08 22 - fixes, updates
===================================
- SO_REUSEADDR for Server.c (by Dustin Sallings) 
- set Server listen queue to 1024 (by Dustin Sallings) 
- IoBlock_print bug fix (by Daniel A. Koepke)
- added stack overflow exception
- updated SQLite to version 2.8.6

Release 2003 08 21 - performance, fixes
=======================================
- fix for wait() (by Dustin Sallings)
- fix for substring (by Dustin Sallings)
- SplayTree replaced with OpenHash (by Daniel A. Koepke)
- updated Regex to pcre4.4

Release 2003 08 20 - fixes
==========================
- several memory leak fixes (by Daniel A. Koepke)
- OSXBundle updated, ObjcBridgeTest demo working again

Release 2003 08 19 - fixes
==========================
- several memory leak fixes (by Daniel A. Koepke)
- Fix for ObjcBridge (haven't updated OSXBundle yet)

Release 2003 08 18 - fixes
==========================
- changed Server and UDPReceiver to not use delegates
- fix for super lookup loop
- IoString memory leak fix (by Daniel A. Koepke)

Release 2003 08 15 - important gc fix
=====================================
- fixed GC bug with IoMessage_setCachedArg_toInt_()
- fixes for GL demos
- ObjcBridge addon init call uncommented :-)
- 30% faster IoMessage_locals_performOn_() (by Daniel A. Koepke)
- return value for break() (by Daniel A. Koepke)

Release 2003 08 10 - locals delegate to target, SleepyCat
=========================================================
- locals now delegate-to instead of inherit-from target
- basic SleepyCat binding
- fix for File_asString (by Roberto Amorim)
- fixes for wordfreq demo and some define names (Daniel A. Koepke)

Release 2003 07 11 - fixes
==========================
- fix for Object_notEquals (by Uladzimir Liashkevich)
- fix for windows defines (by Roberto Amorim)

Release 2003 07 10 - Socket fixes
=================================
- fixes for Socket and UDPSocket (by Roberto Amorim and Alexandre Barbosa)

Release 2003 07 07 - fixes
==========================
- fixes for WeakLinks (by Roberto Amorim)

Release 2003 06 07 - fixes
==========================
- fixed memory leak
- reduced number of yields
- fix for proper pause/resume behavior
- added some concurrency performance tests
  (Io handles 10,000 threads easily and is 
   30x faster than Python for threads shootout test)

Release 2003 06 05 - fixes
==========================
- fix for Buffer at (by Andras Pahi)
- fix for ObjcBridge for GNUstep (by Sebastien Pierre)
- fix for textures on OpenGL tutorial #6 (by Jeffrey Palmer)
- fix for perform() (bug reported by Peter William Lount)
- fix for Directory (by Daniel Vollmer) (was in last release)

Release 2003 06 04 - fixes
==========================
- moved Coroutine queue from LinkedList to Queue (less memory, fewer allocs)
- fix for ObjcBridge init (reported by Sebastien Pierre)
- fixes for Buffer asBinaryNumber and Number asBuffer (by Andras Pahi)
- fix for GC bug (reported by Andras Pahi)
- fix for List random ignoring last element (reported by Juansa)
- fix for Directory (by Daniel Vollmer)

Release 2003 06 03 - mutable primitives
=======================================
- all primitives converted to be normal objects
- faster proto lookups, proper parent lookups
- forward changed not to take arguments - use thisMessage instead
- LinkedList updates by Miles Egan
- ByteArray varargs and readFromFile fixes by Chris Peterson

Release 2003 05 22 - forward loop detection
===========================================
- added forward loop detection
(mostly just a check-in before making some big changes)

Release 2003 05 19 - Store, Soup updates, fixes
===============================================
IoDesktop
- fixes for Mingw and GL demos (by Brent Fulgham)
- IoDesktop build fix for fink (by Kon Lovett)
IoServer
- added File methods for stat info (by Miles Egan) - need windows port
- new Store primitive (written in Io)
- removed Soup setDebug method
- added new Soup methods
- added SQLite tableNames, columnNamesOfTable, debugOn, debugOff, isOpen, itemWhere, escapeString methods
IoVM
- added String justify methods (by Daniel A. Koepke)
- fixes for IoNumber asString and String toBase/fromBase (by Daniel A. Koepke)
- fix for performWithArgs() (by Daniel A. Koepke)
- changed String asNumber to return Nil upon parse error (suggestion & help from Scott Dunlop)
- added String replaceMap() method
- changed Map at() takes optional 2nd arg
- added Map atElsePut() method
- added Primitive isNil, ifNil, ifTrue, ifFalse methods
- fixed bug with reading standard input

Release 2003 05 10 - Mingw IoDesktop fixes
==========================================
- fixes for mingw IoDesktop (by Brent Fulgram)
- added support for List foreach(v, ...)  (suggested by Daniel A. Koepke)

Release 2003 05 07 - NetBSD
===========================
- fixes for building on NetBSD

Release 2003 05 06 - EditLine, fixes
====================================
- fix for list comparison [IMPORTANT]
- fixed URL primitive (downloading binaries)
- fixes for winsock (by Daniel Vollmer)
- fix for getSlot symbol missing in Visual C
- fixed off-by-one line number error in stack traces
- changed to "==>" CLI output format (suggested by Daniel A. Koepke)
- changed SGML parser to make all tag and attribute names lowercase
- added getCh to Curses primitive (by Scott Dunlop)
- added Buffer between() method
- added URL childUrl() method
- added User primitive to IoServer
- added EditLine addon (by Edwin Zacharias)
- added OpenGL glCopyTexSubImage2D function
- added JEdit syntax highlighter file (by Sebastien Pierre)

Beta Release 2003 05 03 - inlining cleanup
==========================================
- make install
- inline cleanup
- cygwin fix for IoDesktop Image addon

Beta Release 2003 05 01 - inlining update, fixes
================================================
- List translate and translateBlock methods
- fix for double buffering in GL demos (by Brent Fulgham)
- Daniel Vollmer's VisualC project updates 
- new inlining technique (suggested by Daniel A. Koepke)
- grabTexture drawTexture
- Primitive now implement slotNames

Beta Release 2003 04 27 - Quicksort, small fixes
================================================
- changed List sortBy from bubble sort to quick sort (with in-order check)
- a few small build and ANSI C fixes

Beta Release 2003 04 26 - Mingw, Visual C, winsock
==================================================
removals:
- removed argMessages (thisMessage arguments is the same thing)

additions:
- added target local to Blocks
- Mingw coros (by Pit Capitain)
- Visual C coros (by Daniel Vollmer)
- added Object compileString() method (returns message or error string)
- added Object shallowCopy method
- added Message argAt(), cachedResult and setCachedResult() methods
- added fnmatch addon to IoServer (suggested by Vladimir Ulogov)
- added page http://www.iolanguage.com/SubmittingCode.html
- added Box, GLScissor primitives (not yet documented), Ion update

fixes:
- winsock and Visual C port (by Daniel Vollmer)
- Mingw fixes (by Pit Capitain)
- fix for State_justPrint() (by Daniel A. Koepke)
- fix for Object doFile() (reported by Vladimir Ulogov)
- fix for Hash removeKey (by Kentaro A.Kurahone)


Beta Release 2003 04 22 - Mingw, fixes
======================================
- fix for break method (reported by Fan Hongjian)
- Director at() now accepts relative paths
- improved error messages
- IoVM compiling on Mingw (help from Ashish Ranjan)
- Future sendResponseTo() response is async message to response target

Beta Release 2003 04 19 - GNUstep, Regex fix, fonts added
=========================================================
- Sebastien Pierre's GNUstep changes to ObjcBridge
- fix for Regex strings (bug investigated by Tov Are Jacobsen)
- added BitStream Vera fonts to IoDesktop/Library/Fonts
- added glRect

Beta Release 2003 04 18 - 64bit clean, FreeBSD/Alpha coros
==========================================================
- 64bit clean (by Kentaro A. Kurahone)
- FreeBSD/Alpha coroutine support (by Kentaro A. Kurahone)
- fix for File readLines returning 1 empty line for an empty file. (reported by Tov Are Jacobsen)

Beta Release 2003 04 16 - Futures
=================================
- @ asynchronous messages now immediately return a "Future" object
- @@ asynchronous messages immediately return Nil
- fix string/buffer comparison fixed (reported by Scott Dunlop)
- Image grab() method added, several other Image methods documented

Beta Release 2003 04 14 - font textures, fixes
==============================================
- Mike Austin's font texture caching(much faster) - Thanks Mike!
- added Point Min/Max methods
- added many new GLUT functions
- changed blocks not to set "self" slot (problem reported by Daniel A. Koepke) 
- fix for quote parsing bug (reported by Kevin Greer)
- Object performWithArgList() method added
- fix for variable declaration in IoBlock.c(sent by several people)


Beta Release 2003 04 10 - [IMPORTANT] blocks->methods, variable args, activate  
==============================================================================
- [IMPORTANT] blocks and methods 
  block() renamed method(), block() is now lexically scoped
  changed all sample code and docs to use method()
  sorry, but you'll need to do a string replace of "method(" for "block(" in your Io code.
  this will hopefully be the last change that is so disruptive
- [IMPORTANT] variable arguments
  if last arg of block/method args is named "args" remaining args are evaluated, 
  put in a list and assigned to the "args" slot.
  if last arg of block/method args is named "argMessages" remaining arg messages are 
  put in a list and assigned to the "argMessages" slot.
- if Object contains "activate" slot that holds a method, it is called when 
  a slot holding the object is accessed

Beta Release 2003 04 09 - fixes  
===============================
- precedence fixes
- fix for parent slot lookups
- parent slot lookups now check to see if non-object primitives respond to message
- fix for GL textures

Beta Release 2003 04 06 - namespace organization, fixes  
=======================================================
- slot lookup loop detection
- namespace reorganization (everything works the same, it's just organized now)
- fix for precedence of "?"
- added Block setMessage, added nil check to Block message method
- added Object doMessage() (this will replace message doInContext())
- added Message fromString() method
- renamed "numberId" method to "uniqueId"
- list() method added to Object
- renamed Map, List, LinkedList method "do" to "doBlock" so meaning isn't confused with Object do() 
- removed JIT code from IoVM (will make it an addon when lightning or Mite is working)
- got rid of static structs in Portablestrptime.c

Beta Release 2003 03 31 - new parser, fixes
===========================================
- new lexer&parser (cleaner and fixes several bugs)
-- now supports triple quotes, hex and scientific notation numbers
- [internal] removed use of catch keyword in State.[hc] (fix by Max Battcher)
- FreeBSD fixes including BSD coroutines (by Faried Nawaz)
- removed GL glutSetKeyRepeat (only need glutIgnoreKeyRepeat)
- added glutKeyboardUpFunc (added by Mike Austin)
- cygwin fix in png make (thanks to Mike Austin)
- modest performance improvements (maybe 5%)
-- Nil caching and avoiding function calls on nextMessage
- added nanosleep to Scheduler yield (suggested by Daniel A. Koepke)
-- setSchedulerSleepSeconds() and schedulerSleepSeconds() methods added to Object
- added String "+" operator - ".." is deprecated and will be removed soon
- changed OpenGL yielding to use timer instead of glut idle callback

Beta Release 2003 03 19 - important fixes
=========================================
- [IMPORTANT] removed gethostbyaddress from Socket.c
- fix for return in foreach() (reported by Daniel A. Koepke)
- full screen mode OpenGL support (added by Mike Austin)
- glut char repeat API support
- fix for JPG image loading and image test
- fix for PNG image support on cygwin (fix by Mike Austin)
- GLUCylinder, GLUSphere primitives added
- fix for object comparison crash in IoVM
- now limits stack Message info to 40 characters
- a bunch of cygwin fixes (by Mike Austin)

Beta Release 2003 03 17 - Soup, DBM, fixes
==========================================
- added Soup and DBM primitives
- added IoLanguage bundle for OSX
- [internal] renamed tag "Callback"s to "Func"s.
- fix for next and attached message nil check (fix by Daniel A. Koepke)
- mod renamed back to % (by popular demand)
- fix for passing back objects in ObjcBridge
- renamed RegularExpression to Regex
- Yo's inline fixes and Scintilla syntax coloring file
- fixes for handling select() errors

Beta Release 2003 03 15 - URL, CGI, DOServer, DOConnection
==========================================================
- new URL, CGI, DOServer and DOConnection primitives in IoServer
- added SGMLTag to Lobby and added a setName() method (requested by Max Battcher)
- fix for stack traces
- fix for String replace method
- fix for File readLines (last line was left out)
- new Io2C.io script in Sockets/_tests
- File now errors if openForReading file doesn't exist
- Fix for RegularExpression variable declaration (reported by Damien George)
- Removal of ^Ms in libpng (reported by Damien George)

Beta Release 2003 03 12 - fixes
===============================
- renamed Number % operator to mod()
- List comparison improved (Requested by Nigel Brown)
- continue and split bugs fixed (reported by Jason Sackett)

Beta Release 2003 03 11 - fixes
===============================
- new web site! http://www.iolanguage.com/
- replaced Number round method with roundUp and roundDown methods
- fixed another List random bug
- added several new String methods 
- String find now returns Nil on no match
- setup web site to download releases from mirror at mike-austin.com (Thanks Mike!)
  (also working on an east coast mirror with Zack Bir)
- fixes for RegularExpression and a number of new options added
- fix for bug in ObjcBridge introduced in last release
- fix for bug in String pathExtension
- add List select, detect and reject methods

Beta Release 2003 03 08 - extra args, fixes
===========================================
- increased default select timeout to 0.1 seconds
- possible fix for byte order of IPs when using Host primitive (thanks to Edgar Toernig)
- internal: replaced malloc/memset with calloc
- fix for List randomize method (reported by Jason Sacket)
- new options on Number random/Random methods
- renamed Number randomseed method to setRandomSeed
- added Number round method
- ObjcBridge fix by Nils Svangrd
- added List print method
- added RegularExpresion method matchEmptyOff/matchEmptyOn
- extra block args are now put in a List and assigned to the local slot "args" (feature request from Daniel A. Koepke)

Beta Release 2003 03 06 - fixes
===============================
- changed launchPath to use current working directory if needed (reported by Mike Austin)
- internal: renamed USTRING() macro to IOSTRING()
- fix for mpeg2dec libtool file (reported by Ed Heil)
- fix for formating of stack staces
- added parser check for closing parens
- added an FAQ page: http://www.dekorte.com/Software/C/Io/FAQ.html
- added isEqualAnyCase, and linePrint methods to String
- fix for root Makefile configure (reported by Markus Fritsche)

Beta Release 2003 02 24 - fixes
===============================
- fix for exceptions when using ObjcBridge with InterfaceBuilder
- fix for elseif() - reported by Mike Austin
- added line number info to stack traces
- changed ":" to "@" for async messages
- ":"s can now be used in message names
-- this is useful for Objective-C bridge messages
- made OSX project paths relative(thanks for feedback from Z. Bir)
- reduced release sizes but dropping some dead wieght

Beta Release 2003 02 21 - fixes
===============================
- Cleaned up garbage collection in ObjcBridge
- fix for libsgml make
- fix for Linux IoDesktop make suggested by Chris Double
- added a help suggestions page: http://www.dekorte.com/Software/C/Io/help.html

Beta Release 2003 02 19 - ObjcBridge w/InterfaceBuilder, SGML
=============================================================
- added ability for ObjcBridge to work with InterfaceBuilder
- XML addon rewritten using libsgml, now supports SGML, HTML and XML
- added _libs folder in IoVM/IoServer/IoDesktop for libs
- added _include to IoVM
- Fix for OpenAL configure (missing test folder)
- Movie config disables SDL by default (thanks for testing to Zachery Bhir)
- TiffImage.c ANSI fix reported by Mike Austin
- added "activeCoroCount" method to Object
- fix for copying numbers for cached message arguments
- added OSX project for Io in Io/Projects/OSX


Beta Release 2003 02 14 - IoDesktop on Linux fixes
==================================================
- fixes for building IoDesktop on Linux 

Beta Release 2003 02 13 - Objective-C bridge
============================================
- added an Objective-C/Io bridge (still need to make refs weak links)

Beta Release 2003 02 10 - configure, Perl5 regex
================================================
- fixed some IoDesktop make problems on Linux
-- OpenAL builds on Linux now
- added support for "make configure" to all makefiles
- moved RegularExpression primitive to use PCRE 
-- PCRE is Perl 5 compatible and has a BSD style license
-- makeover of RegularExpression API
-- set to build with IoServer by default

Beta Release 2003 02 09 - if, _ args, Tree
==========================================
- can use if in if() then() elseif() else() form
- if a block arg name begins with "_" the arg message is passed instead of being evaluated
- added Message doInContext() method
- added Tree primitive with support for BST, Red Black, Splay and AVL trees.
- fix for PHash_removeKey_() bug
- updated OpenGL examples to use Image object
- Buffer compression methods lzoCompress and lzoUncompress
- added some OpenGL functions and constants(including Lighting)
-- added Io versions of NeHe OpenGL tutorials
- improved error messages and stack traces
-- for = syntax errors
-- limited to 1 message printout
- added define for DOS path separator but still need to add checks for it 

Beta Release 2003 01 22 - zlib compression
==========================================
- Buffer compression methods zCompress and zUncompress

Beta Release 2003 01 21 - jpeg, tiff support
============================================
- Image now supports jpeg, tiff formats and cropping
- Images can now be saved 
- Note: there are still bugs with reading tiff and writing png

Beta Release 2003 01 15 - curses
================================
- Edwin Zacharias' curses bindings 

Beta Release 2003 01 13 - better stack traces
=============================================
- makefile fixes suggested by Daniel A. Koepke
- better stack traces
- (internal) moved next & previous into mark
- added system() method
- fixed min/max bug
- removed forward from Lobby since default behavior is to raise exception anyway

Beta Release 2002 12 11 - WeakLink, Duration
============================================
- added WeakLink primitive
- added Daniel Koepke's fix for zero argument bug with "?" operator
- replaced String doString method with Object doString.
- added File do() and Object doFile().
- String doString now looks up lobby slot from locals
- added Duration primitive and Date methods related to it and docs 
  as suggested by Sean Perry
- Added Date setFormat and format methods
- (internal) changed color to mark with bitfields


Beta Release 2002 12 05 - Movie, CharacterConversion, Image textures
====================================================================
- fixed bug in Font length method and added length caching
- fixed min/max bug in Number
- added some more GL calls and constants
- added Block setArgumentNames() method
- changed slot activation to use a callback so people can 
  write their own block/function/closure primitives
- fixed leak in PNGImage
- fixed a few compiler warnings on Linux
- overhauled the Image code to make it easier to add new decoder/encoders
- Added texture functions to Image primitive
- Added Movie primitive with mpeg2 support
- Added character encoding conversion support using libiconv
- Added some untested Irix coro code to Scheduler.c
- fixed bug with appending to an empty path
- fixed bug with replacing a suffix in a string or buffer 


Beta Release 2002 11 27 - Soups, improved build scripts
=======================================================
- a number of build fixes
- added auto platform detection to makefiles (thanks to Mike Austin)
- fixed exec bug in SQLite binding
- added NetwonScript-like Soup and Dbm-like demos to SQLite tests
- added Font length method
- changed Image origin to be bottom left(instead of bottom right)
- added Map remove method
- removed some debugging printfs from IoDesktop
- fix for file name as launchPath bug 
- added optionalSeperatorString argument to String join method


Beta Release 2002 11 24 - OpenAL, FreeType, SQLite, PNG
=======================================================
- OpenAL, FreeType, SQLite and PNG image bindings
- added Number at(index, length) method which returns a number with the bit value at the given index
--  if a second argument is given the number is the value of the number with the bits from index to index + length
- added optional 2 arg to Buffer at() 
-- the second arg speficies the number of bytes to read into the returned number
- fixed bug in Buffer atPut()
  added to IoDesktop(only tested on OSX so far)
- added name method to Directory and File primitives
- possible fix for coroutines on the Zaraus
- Fixed async message ordering (first-in-first-out)
- added cygwin Directory support code eby Mike Austin
- fixes for makefiles suggested by Sean Perry
- updated version (suggested by Jurrie Lulofs) 
-- added distribution variable in lobby
-- both are printed on CLI startup


Beta Release 2002 11 19 - IoVM/IoServer/IoDesktop split
=======================================================
- reorganized code into IoVM/IoServer/IoDesktop
- cleanup of build system 
-- to embed the IoVM, just link libIoVM.a
-- addons each have their own Makefile 
-- addons initialization call standardized and moved to addons(out of main.c)
- added Mike Austin's glutPassiveMotion code
- updated OpenGL demos
- swapped order of arguments in Date formatString so future
  version can use the format optionally
- added "-" method to Object and changed "-" parse rules 
   so expresions like "-2.3" evaluate properly

Beta Release 2002 11 17 - GL improvements
=========================================
- added Mike Austin's GL passiveMotion, GLUT_DOUBLE and GLUT_RGBA code 
- fix for gc error that was causing a crash in GL events
- speedup for prints

Beta Release 2002 11 16 - Date and File improvements
====================================================
- Date 
  - added fromNumber(aNumber) and print methods
  - added Sean Perry's fromString() method and PowerDog's strptime()
- updated Docs (lots of changes)
- File
  - Removed File setMode() method and replaced with 
    openForReading(), openForUpdating() and openForAppending()
  - added at(), atPut() and foreach() methods
- lowered default Map size
- changed Buffer subbuffer to fromTo

Beta Release 2002 11 14 - async DNS, new Docs, wait(), carriage return cleanup
==============================================================================
- lots of documentation corrections by Sean Perry - Thanks Sean!
- added wait(seconds) method to Object
- sockets addon
  - asynchronous DNS support
    - added Host object which support DNS hostname to IP lookups
    - added a DNSResolver object for setting the list of DNS servers to use for lookups
- cleanup
  - got rid of carraige return end of line characters in source files
- small change to directory addon for Linux

Beta Release 2002 11 09 - Symbian patch
=======================================
- added Chris Double's patch for Symbian

Beta Release 2002 11 08 - DO example, async fixes
=================================================
- added distributed objects example code
- fix for multi argument bug in async messages
- fix for perform with complex arguments
- support for perform on primitives
- Number asCharacter method returns a buffer if character is a NULL
- Buffer split fixed to work with buffer arguments(instead of just strings)
- Buffer append method support for variable argument lists

Beta Release 2002 11 01 - String and Buffer foreach, gc improvement
===================================================================
- added String and Buffer foreach methods
- major performance improvement for incremental garbage collector

Beta Release 2002 10 27 - ? operator, cgi 
=========================================
- Object
  - added "?" operator method
    - ? means send if the target responds to the method
    - example: ?foo is equivalent to if( hasSlot("foo"), foo)
  - added isActive method (tests if receive has a coroutine)
- fixed serious bug with string/buffer replace method
- cgi related
  - added Object getenv method
  - fixed printing of strings with % characters
  - added String fromBase and toBase methods (bases 8 and 16 supported)
  - added cgi sample code in tests/cgi
- Date
  - added Date set and asNumber methods 
  - added Number asDate method
- String
  - fix for lastPathComponent method when single component
- Number
  - changed default conversion to string format from %g to %f
- renamed "clear" methods to "empty"
- added List first and last methods

Beta Release 2002 10 14 - incremental collector
===============================================
- moved to incremental garbage collector(tri-color, write barrier)
  - about 15% slower than mark and sweep, but no mark pauses
- fixed bug with coro resume/pause 

Beta Release 2002 09 29 - Symbian patch
=======================================
- merged with Chris Double's Symbian changes (Thanks Chris!)

Beta Release 2002 09 25 - pause/resume
======================================
- added Object pause/resume methods to remove/add an Object's 
  coro from/to the Scheduler
- removed PHashLite
- State now caches current retain stack pointer(small performance improvement)

Beta Release 2002 09 19 - fixes
===============================
- fixes (suggested by Mike Austin)
  - parser "#" comment bug
  - File write method now supports buffer argument
- did some memory size reductions(down to 184k core)
- fixed CYGWIN coro code with suggestion from Chris Double

Beta Release 2002 09 13 - portability and parser fixes
======================================================
- portability (Chris Double suggestions)
  - fixed line returns in Common.h WIN32 defines
  - added symbian defines
  - added USE_PHASH_LITE option so LOW_MEMORY_SYSTEM
    can be turned on without it
- parser
  - fixed bug with operators
  - fixed unterminated parens bug 
    (reported by Benedikt Rosenau and Jim Mathies)
- fixed return/break bug in foreach

Beta Release 2002 09 10 - parent->proto, delegate->parent name changes, fixes
=============================================================================
- portability
  - WIN32 defines in Common.h suggested by Jim Mathies
  - changed remaining void *s to unsigned char *s in PHash.h
  - lots of small portability changes suggested by Mike Austin
- runtime
  - changed "parent" slots to "proto" and
    changed "delegate" slot to "parent" so
    terms match NewtonScript usage
  - fixed "super" operator bug
  - fixed init to always return newObject
- GL addon
  - added a Point primitive
  - added some texture and other gl functions - code by Mike Austin
- core primitives
  - Date: removed "_"s from methods
  - Number: added "between" and "Negate" methods
  - Buffer: added "at" and "atPut" methods suggested by Mike Austin
    - added byteCache
  - String: renamed "characterAt" to "at"

Beta Release 2002 09 08 - coro cleanup
======================================
- GL
  - added IoState_yield to GLUT idle callback so coros
    can be used with GLUT apps
  - glutInit now gets proper args as suggested by Mike Austin
- changed some String method arguments to be optional
- lots of small portability changes suggested by Chris Double
  - merged Scheduler and threads.c and moved to base directory
- fix for coro deactivate bug


Beta Release 2002 09 06 - UDP, docs, fixes
==========================================
- sockets
  - added UDP primitives
  - fixed missing Server delagate methods
- embedding
  - added IoScheduler to encapsulate coro code
  - added void *userData member to IoState(as suggested by Chris Double)
  - converted remaining printf()s to IoState_print_()
  - removed static variables in IoBuffer and ByteArray
- fixes for bugs reported by Mike Austin
  - added Object do method
  - fix for fractional number compares 
  - fix for +=, -=, etc parse bug 
- changed delegate to properly use context of self
- docs
  - added link to addon docs in manual
  - started ImplementationNotes.html document

Beta Release 2002 09 01 - async sockets
=======================================
- sockets addon

Beta Release 2002 08 29 - Actor merged with Object
==================================================
- merged Actor primitive into Object primitive
  - async messages can now be sent to any object using a ":"
- String 
  - added file path manipulation methods
  - removed "byte" method
- added Docs for Number character tests

Beta Release 2002 08 26 - Linux build fix
=========================================
- fix for Makefile on Linux

Beta Release 2002 08 25 - launchPath, fixes
===========================================
- fixed operator parse bug
- added super method for invoking a method on a parent
- launchPath Lobby slot set on startup
- added character test Operations to Number primitive
- added chatacterAt method to String primitive

Beta Release 2002 08 23 - new parser, OpenGL
============================================
- rewrote parser
  - less finicky about whitespace separating tokens
  - syntax errors now contain line and character info
  - fixes character escape and empty string bugs
  - stack traces now include file(if any) and character info
  - now supports /* */ comments
- List 
  - add() now supports multiple arguments
  - sizeTo() method added
- cleaned up CLI code
- OpenGL/GLUT addon (just the basics)

Beta Release 2002 08 17
=======================
- added addon libs:
  - Directory (currently for unix only)
  - XML parser using expat
  - MD5 digest
  - Blowfish encryption
  - Regular Expressions using gnu regex

Beta Release 2002 08 14
=======================
- added bitwise Number operations
- added LinkedList primitive
- fixed List sort bug

Beta Release 2002 08 11 - Actors
================================
- added concurrency via Actors that use coroutines (this adds some globals)

Beta Release 2002 08 05 - commandLineArguments
==============================================
- fixed "-" operator parse bug 
- cleanup of command line interface code
  - if debugParser is defined, the cli with show parse info
- changed 'commandLineArguments' to 'args'

Beta Release 2002 08 04 - perform, stack traces
===============================================
- added Object perform(methodName, arg1, ...) method
- simple message stack traces working

Beta Release 2002 08 03 - multi-state, inlining
===============================================
- multi-state safe (no globals)
- some work on jit support
- added Number toggle method
- moved most defined functions to inlined(now not entirely ANSI C)

Beta Release 2002 05 27 - make test, String improvements
========================================================
- added "make test" test script and got more tests working
- fixed bug with scope of break
- added Nil print, == methods
- added or, and, == to all primitives
- String doFile method now takes optional command line arguments
- added or, and and return as operators so:
  "return 1" can be used instead of "return(1)" and
  "a or b or c" works
- fixed comments on command line interface
- String split and splitCount methods
- String asString method now accepts optional format argument
- removed String prepend method
- renamed String methods:
  fromTo -> substring
  replaceWith -> replace
  insertAt -> insert

Beta Release 2002 05 26 - init, primitive improvements
======================================================
- fixed Map object
- fixed operator terminating on new line
- removed the "_"s from the primitive methods
- added Map hasKey, hasValue methods
- added String join method
- added File readLines method
- added Number % method
- added Message name and name_ methods
- setSlot now returns the value so statements like 
  x = y = 1 are supported
- finished Message primitive setter methods
- Objects now call init method after being cloned
  init's arguments are the same as those sent to clone

Beta Release 2002 05 20 - gc work
=================================
- fixed gc bug with literal strings
- literal strings now stored in Splay tree for speed
- moved to stack retained gc system so internal
  IORETAIN(), IORELEASE() calls no longer needed.
- removed global state and almost all globals are gone
- Note: still a bug in the Map object

Beta Release 2002 05 14 - Date, File, random, exceptions
========================================================
- added Date and File primitives
- Number random now returns value between 0 and 1
  - Random method added
- Updated all errors to proper exceptions
  - updated error callback to include exception name

Beta Release 2002 05 13 - gc and other fixes
============================================
- List clone now makes a shallow copy of the target
- stack retained values now properly released on exceptions
- fixed gc bug - now unmark retained values
- inlined(w/macro) CFunction activation
- numbers now copied by value instead of reference
- new Number methods for "inline" operations
- readded Number ++ and added +=, -=, etc
- exception stack now marked on gc cycle
- fixed gc bug with symbol strings
- fixed bug with parsing operators w/no args
- added List ==, reverseForeach, at_put_, random, randomize methods
- List foreach now takes an extra index argument
- added String asNumber method

Beta Release 2002 05 08 #2 - Message primitive
==============================================
- made Message into a primitive 
- added Block argumentNames and message methods
- added Object hasSlot(), removeSlot() methods
- slots can hold Nil values now
- fixed exception name and compare problems
- fixed gc problem with messages

Beta Release 2002 05 08 - cleanup
=================================
- makefile fix for Io prefixed filenames
- prefixed all Io specific C names with "Io"
- finished implementing forward
- renamed get() and set() to getSlot() and setSlot()

Beta Release 2002 05 07 - exceptions, break, continue, and returns
==================================================================
- added exceptions, break, continue, and returns
- added Object exit and slotNames methods
- changed "Hash" name to "Map"
- fixed forward method - default implementation raises exception
- removed Block code_ method
- removed Number ++ method
- removed extra print form CLI

Beta Release 2002 05 06 - foreach, commandLineArguments
=======================================================
- support for command line arguments
  (they are put in List in "commandLineArguments" slot of Lobby)
- List methods: foreach, sortBy_, do_, swapIndex_withIndex_, reverse 
- Hash methods: do_, foreach, keys, values
- fixed enumerating normal Hash

Beta Release 2002 05 02 - operators
===================================
- new operator syntax: a = b instead of a =(b), 1 + 2 instead of 1 +(2)
- string append accepts strings or numbers
- ".." method for appending strings
- block code is escaped for printing
- block "code" and "code_" methods for 
  inspecting and changing a blocks code
- unrecognized message to nil raises an error
- string methods now return new strings
- fixed enumerating index 0 in PHash.
- fixed wrong context for evaluating arguments in 
  Object_setSlot and Object_getSlot

Beta Release 2002 04 21 - performance
=====================================
- various fixes, added List primitive
- moved perform methods into tags
- performance improvements
  - block locals caching
  - object uses perfect hash in single chunk of memory
  - macros for basic operations
  - inlined some message send related functions
- type check using tag name callback compares
- announced on Self mailing list

Alpha Release 2002 04 11 - control structures and gc
====================================================
- basics working
  - if, while and for
  - mark and sweep garbage collector
- released to friends

[Project started 2002 03 07?]
