The Concurrent ML Reference Manual

Porting old CML programs

There have been substantial changes from version 0.9.8 of CML. Most of these changes are cosmetic name changes meant to track changes in the SML interfaces, and to rationalize naming conventions. In this section, we detail the changes to the CML interfaces, and describe correspondence between the old and new interfaces.

Backwards compatibility modules

To ease the transition from version 0.9.8 of CML to the new interfaces, we provide two backwards compatibility modules in the CML Library.

Name changes

Name changes
Old name New name
accept recv
receive recvEvt
transmit sendEvt
timout timeOutEvt
waitUntil atTimeEvt
threadWait joinEvt
sameThread sameTid


The most significant changes to the CML interfaces have to do with input/output operations. In version 0.9.8, the structure CIO provided an implementation of the SML/NJ IO signature extended with event-valued operations. The old SML I/O interface has been replaced with a new interface, which is described in the SML Basis Library Manual, and CML has followed suite.

Condition variables


The only loss in function from version 0.9.8 is the elimination of the poll operation, which provided a non-blocking form of sync. Instead of this operation, CML now provides non-blocking input operations on many of the basic communication types.

[ INDEX | TOP | Parent | Root ]

Last Modified November 16, 1995
Copyright © 1996 AT&T

Click to toggle
does not end with </html> tag
does not end with </body> tag
The output has ended thus: <I>Last Modified November 16, 1995</I><BR> Copyright &copy; 1996 AT&amp;T <BR> <HR> </BODY> </HTML>