Newsgroups: comp.lang.smalltalk
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!fas-news.harvard.edu!newspump.wustl.edu!bcm!cs.utexas.edu!howland.reston.ans.net!news.sprintlink.net!hookup!news.mathworks.com!uhog.mit.edu!news.mtholyoke.edu!world!edwards
From: edwards@world.std.com (Jonathan Edwards)
Subject: Re: Multi-threaded Smalltalk programming
Message-ID: <D2nwrI.FHH@world.std.com>
Organization: IntraNet, Inc.
References: <3fhce0$3hc@brtph500.bnr.ca> <3fhjel$mso@taco.cc.ncsu.edu> <patrick_d_logan.75.001181D2@ccm.jf.intel.com>
Date: Thu, 19 Jan 1995 17:04:29 GMT
Lines: 45

In article <patrick_d_logan.75.001181D2@ccm.jf.intel.com>,
Patrick D. Logan <patrick_d_logan@ccm.jf.intel.com> wrote:
>In article <3fhjel$mso@taco.cc.ncsu.edu> sggoodri@eos.ncsu.edu (Steven Georg Goodridge) writes:
>
>>Is there a Smalltalk implementation (or will there be) that will allow me to 
>>write concurrent systems applications with real threads? I want to have
>>smalltalk code running on multiple threads, exchanging messages according to 
>>the actor model.
>
>Visual Smalltalk from Digitalk for OS/2 has limited support...
>QKS's SmalltalkAgents is supposed to ....
>Enfin has a new implementation ... support threads more fully.

IBM is actually the best right now: they can spawn off C API calls in
separate threads and then rendezvous with the completion. That is all I
expect to eventually see from the others.
I have been researching this for a while, and as far as I can tell all the
Smalltalk vendors are blowing smoke.

There are some serious difficulties to implementing truly multithreaded
Smalltalk. How do you handle garbage collection, for example? This is a topic
of current theoretical research, and if there is a solution to the problem it
is certainly not well-known or very old. At the very least it will be
quite difficult to retrofit support for threads into existing implementations.
In fact as far as I can tell, the existing support for serially executed
non-preemptive processes isn't even fully utilized in existng implementations,
so a file IO freezes the entire system for example.

I have queried all of the vendors, and none of them have replied with anything
concrete about how they will support threads.
QKS is the only vendor that seems to be addressing such engine-level issues -
and they have an interesting vision - but they have real long way to go to
deliver on it.

The Dylan language, at least in its incarnation from CMU, should have
support for multithreading. I expect to see that long before
the Smalltalk vendors can manage it.




-- 
Jonathan Edwards				edwards@intranet.com
IntraNet, Inc					617-527-7020
One Gateway Center				FAX: 617-527-6779
