Hi all--
Russell writes:
My plan is to have nearly everything written in Squeak with very basic primitives, that way it allows more control...
David writes:
If you're going to do a complete rewrite, it would also be good to generalize the notion of an I/O channel for files, sockets, pipes, or whatever other external resources can be modeled in this way.
I've done this with Flow ( http://netjam.org/flow ). I originally wrote it in 1997, first released it in 1998, and have been trying to get it into Squeak ever since, without much success. :) I've also spoken with both of you about it before, so I'm a little surprised it hasn't been mentioned in this conversation before now (not upset, just a little surprised :). I'm especially surprised that Tim didn't mention it, since he sat next to me while I implemented most of the MIDI support. :)
While Flow hasn't been widely adopted yet, it has had some influence, e.g., on the "network rewrite" that Michael Rueger did, distinguishing streams from their resources.
The current release features support for writing socket-based clients and servers, and for using files, speech synthesis and recognition, serial ports, and parallel ports. I've also written (but not yet released) support for bidirectional streams on MIDI ports, which I have found to be a lot of more convenient interface than the standard one. I'm also working on support for digital audio, firewire, USB and IR.
Flow is used by Squat ( http://netjam.org/squat ), a minimal Squeak system (minimal snapshot, minimal virtual machine, and module system using live peer-to-peer negotiation). The current release of Squat has a complete URI implementation with tests, written by asparagi.
For the record, I've mentioned all of this on this mailing list (squeak-dev) multiple times. :) I was holding off a little this week because I'm in the middle of renaming Squat to "Spoon", and I didn't want to cause any unnecessary confusion. 'Sorry if I've been too quiet, I've been working hard on this stuff instead of writing email... I guess one needs to say *something* to the list at least every few weeks, just so people still think you're alive. :)
thanks!
-C
p.s.
Russell, I've made encouraging noises about your Ogg implementation before, albeit on the the Squeak IRC channel and not on the squeak-dev list. :) Good work! While I'm at it... thanks, David, for CommandShell; I use it frequently. :)
-- Craig Latta improvisational musical informaticist craig@netjam.org www.netjam.org [|] Proceed for Truth!