Timeline

← Home
Io

Milestones in Io's history, from 2002 to today.

2002
2026
Mar 2002
Io created
Steve Dekorte begins work on Io as a minimal prototype-based language.
Apr
Yahoo! Groups mailing list
The iolanguage mailing list is created on Yahoo! Groups, becoming the gathering place for early users, patch exchanges, and language discussion.
First public release
The earliest public Io releases and programming guide appear, distributed through the mailing list.
Aug
Actors and coroutines
Beta 2002-08-11 adds concurrency: Actors (object-oriented threads) implemented with coroutines and cooperative yield.
Addon system
First addon libraries land: Directory, XML (expat), MD5, Blowfish, regex, and OpenGL/GLUT — establishing the addon model that grows rapidly over the next year.
Sep
Networking
Sockets addon adds TCP servers and clients; UDP follows a week later. Async DNS arrives in November, and IoServer becomes a dedicated build target.
Oct
Incremental GC
Mark-and-sweep is replaced with an incremental tri-color collector with write barrier — trading a small throughput hit for far better real-time pause behavior.
Dec
Weak links
A WeakLink primitive is added, letting objects reference each other without preventing collection — useful for caches and back-pointers.
Feb 2003
Addon explosion
Rapid expansion: curses, JPEG/TIFF, zlib, Perl5 regex, Objective-C bridge, SGML, SQLite, and more — Io becomes usable for real-world scripting and embedding.
Apr
Futures
@ returns a transparent future that becomes its result when touched; @@ fires and forgets. Deadlocks are detected by walking the future graph.
Jul 2004
Vector primitive (SIMD)
A numeric Vector type with AltiVec acceleration lands. Strings, buffers, and numeric vectors unify under Sequence.
Jul 2005
Lua Workshop talk
Steve presents Io at the Lua Workshop, contrasting message-tree semantics with Lua’s table-based model.
Oct
OOPSLA / DLS
Io is presented at the ACM Dynamic Languages Symposium, co-located with OOPSLA’05 in San Diego, bringing the language to a wider research audience.
Dec
Public DARCS repository
A public source repository hosted at iolanguage.com/darcs/Io replaces the email-patch workflow.
Mar 2007
Migration to git
Source history moves from DARCS to git, hosted on iolanguage.com.
Feb 2008
Published on GitHub
The Io repository appears at github.com/IoLanguage/io, making issues and pull requests the primary contribution channel.
Oct 2009
Portable ucontext
Russ Cox’s portable ucontext replaces platform-specific coroutine code, enabling cross-platform support including 64-bit macOS.
May 2010
CMake build system
The build moves from hand-written Makefiles to CMake, simplifying ports and addon builds.
Jan 2012
Io Book on Apple iBooks
Steve Dekorte publishes Io on the Apple iBooks Store on 2012-01-23 — a compact introduction to the language, prototypes, messages, and concurrency.
Nov 2017
Eerie package manager
Josip Lisec’s Eerie package manager is rewritten by Ales Tsurko under the IoLanguage org, with heavy activity through 2021.
Jul 2025
ARM64 coroutines
Native ARM64 coroutine support lands for Apple Silicon and modern Linux.
Feb 2026
The recursive C-stack evaluator is replaced with a heap-allocated frame state machine — enabling TCO, robust exception unwinding, and first-class continuations.
Mar
Io cross-compiles to WebAssembly. A bidirectional Io↔JavaScript bridge replaces the native addon model.
Apr
WASM merged to master
The WASM branch becomes the default target. Book and site restructured for the new era.