Correspondence/Flow port to Disney primitives

John M McIntosh johnmci at smalltalkconsulting.com
Fri Jul 7 19:57:29 UTC 2000


During June 2000 I carved off a promise to port Craig's Correspondence/Flow
work http://netjam.org/self/projects/smalltalk/ to a 2.8 image without
having to use his specialized primitives. This work is now done and supports
the Disney Socket Primitives and the current 2.7 exception handlers. I've
posted the comments from my web page for this below, I'm hesitant to post
the entire source to the list since it comes to 250K uncompressed, so a link
to the page and the change sets is at:

http://www.smalltalkconsulting.com/papers/tipsAndThoughts/codeFragments.html

Note having a SUNit test case or two made solving the puzzle easier, it
actually pointed out some problems with the core code. More work is required
to test this stuff since give 200K of code I certainly didn't try every
case! If someone has some spare time...

Beware I've not tested on windows and Linux yet, but at this point I thought
I'd share the fun.

-------------

This brings a marvelous streaming package to Squeak that allows you to
create streams on Sockets, MIDI(*), and serial devices. If you don't care
for the existing Socket support in Squeak, then check this out! Being able
to stream over a socket is MUCH nicer!

First if you are using 2.7 you need the JMMFlowWorkbackTo27.1.cs patch. If
you are using 2.8 or 2.9 then you do NOT need this change set. This adds
some changes made to the system from the 2.8 patch set which we are relying
upon.

Next you need the JMMExternalTableByIndex.1.cs patch, which adds
functionality to a 2.8 kernel to allow you to access the externalSemaphore
Table by number, versus value.

Next you need the JMMChgFlowPreSetup.1.cs patch. This adds enhancements to
the existing base classes, I've broken it out from the Correspondents/Flow/
work so you know what's happening to the rest of Squeak. {Actually streaming
does stuff too, but I didn't break it out :-{}

Next you need the streaming1g1JMM.1.cs patch. This patch provides streaming
over external resources, like the midi, serial ports, and of course Sockets.

Next you need a version of the Correspondents/Flow work which provides the
actual code for the serial, midi and socket support. This rather large
filein is at correspondents1b4JMM.1.cs.

Finally a test SUnit (JMMSUnitsForFlow.1.cs). Were would you be without one?
Up the creek without a paddle comes to mind.

This software has been tested on a macintosh at the current 2.8 level. The
test suite runs fine. It also has been tested on a macintosh with a 2.7
image/VM and runs fine, excluding the UDP support and issues with attempting
to get a TCP/IP Server model to work with the somewhat broken listen to
logic in the Mac 2.7 VM. If you want to host a server with a macintosh 2.7
VM/image, one word DON'T.

Things left to do...

Testing on windows and Linux.
*MIDI isn't tested yet, need someone with actual mac+serial ports+MIDI
device to test.
--
===========================================================================
John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================
Custom Macintosh programming & various Smalltalk dialects
PGP Key: DSS/Diff/46FC3BE6
Fingerprint=B22F 7D67 92B7 5D52 72D7  E94A EE69 2D21 46FC 3BE6
===========================================================================





More information about the Squeak-dev mailing list