[comp.sys.encore] Mul-T

pierson@mist.encore.com (Dan L. Pierson) (04/27/89)

Are any of you using the Mul-T language?  We know who we shipped it
to, but have no idea who may have gotten it off the net from MIT.

If you're a user, please mail me the email address of a contact person
and any comments you might have.  The implementors would like some
feedback. 

For those of you who have no idea what I'm talking about, the
following is extracted from the start of the Mul-T release notes:

Mul-T is a version of the T programming language allowing
multiprocessing in the style of Multilisp.  Mul-T is based on the
Orbit optimizing compiler, and overcomes many of the performance
problems of previous Multilisp implementations.

Lightweight tasks are created in Mul-T using the future construct of
Multilisp.  The expression (future form) returns a psuedo-first-class
object called a future, a promise to yield the value of form at some
future time.  Futures may be passed as arguments and returned as
values; if the value of a future is required before it has been
determined, the task requiring the value will be suspended until the
value is available.

The terms ``task'' and ``future'' should be distinguished.  A ``task''
is a thread of control performing a computation, while a ``future'' is
an object returned by the future construct, ultimately containing the
value computed by a task.

In addition, Mul-T introduces the concept of a group, a collection of
related tasks which can be started, stopped, resumed, and killed
independently of other groups of tasks.

Users familiar with T may find that the style of access to futures and
groups in Mul-T is different than access to T's other primitive data
types, which tend to be first-class objects completely manipulable by
the programmer.  The only operation provided for futures is the
dereferencing touch, and groups are only manipulable from a top-level
command interpreter.  There are two reasons for this.  First, futures
are intended to support a declarative style of parallelism that is
higher-level than program-based task manipulation.  Second, the
foremost goal of Mul-T is performance; providing more programmer
control of futures and groups requires unacceptable overhead.  Future
versions of Mul-T may allow more explicit programmer control.

Users familiar with Multilisp should find that their programs run 
overwhelmingly faster in Mul-T.  

                                            dan

In real life: Dan Pierson, Encore Computer Corporation, Research
UUCP: {talcott,linus,necis,decvax}!encore!pierson
Internet: pierson@encore.com