Old Projects (1995-2005)
A high-performance extensible single-threaded server architecture
(currently supporting HTTP, FTP, and other Internet protocols) for
Unix and Windows.
A dynamic GUI class library for Win32 and Python. Designed in the
spirit of Java's Swing library and ParcPlace Smalltalk.
A simple virtual-machine/compiler for the core of the programming
language Scheme. The long-term goal is to host on top of it a
dialect of Python with support for closures and first-class
continuations; this language will be used to experiment with the
asynchronous i/o techniques of Medusa, and to explore the idea of
event-loop-less graphical user interface libraries.
A coroutine is a control-flow feature that lets you arbitrarily
suspend and resume a 'thread' of control. They make it possible to
build simple easily-understood systems around asynchronous I/O that
would otherwise require complex state machines.
What happened to these projects?
- Medusa is now maintained by Andrew Kuchling.
- DynWin never went anywhere because I don't do windows development
any more.
- Although I never used Lunacy in any commercial work, the ideas
are definitely still kicking around.
- Coroutines in Python. A coroutine-based threading system was
used for some of the infrastructure at eGroups. At IronPort we built
a much more extensive system around this idea, which is now at the heart
of IronPort's email appliances. [Update 2012: Cisco has open-sourced
this coroutine-threading system, called Shrapnel].
Software
A catalog of software available from this site.
Sam Rushing