IDL provides a way of writing SML procedures with C bodies. An SML
``client'' communicates with a C ``server'' by means of a very simple
RPC protocol. The scheme is not particularly efficient, but seems to be
fairly robust. We've used it in the construction of a number of systems
whose interfaces are X-based.

This distribution contains all you need to reconstruct the IDL
(interface description language) compiler, together with  various IDL
libraries and a couple of (trivial) example programs. There's also
a little documentation.


Infelicities:

1.   I used the Xaw kit because I was in a hurry: someone in less of a
     hurry (and who doesn't want to use eXene) should try to build an
     package which relies only on Xlib (rather than relying on the Xaw
     layer whose semi-object-oriented construction has left it somewhat
     braindamaged).

2.   The callback system in idlxt requires a centralised dispatcher
     to be running on the SML side; this more-or-less forces the SML
     side to be event driven (rather than process/coroutine based).

3.   There's a bug in SML - 0.75 which makes it hard to reap dead
     server processes which were started via ``execute''; their zombies
     just float around until the SML process itself dies.


Bernard Sufrin
Oxford, March 1993.

