This file is indexed.

/usr/share/doc/mlton/guide/ConcurrentML is in mlton-doc 20100608-5.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta name="robots" content="index,nofollow">



<title>ConcurrentML - MLton Standard ML Compiler (SML Compiler)</title>
<link rel="stylesheet" type="text/css" charset="iso-8859-1" media="all" href="common.css">
<link rel="stylesheet" type="text/css" charset="iso-8859-1" media="screen" href="screen.css">
<link rel="stylesheet" type="text/css" charset="iso-8859-1" media="print" href="print.css">


<link rel="Start" href="Home">


</head>

<body lang="en" dir="ltr">

<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-833377-1";
urchinTracker();
</script>
<table bgcolor = lightblue cellspacing = 0 style = "border: 0px;" width = 100%>
  <tr>
    <td style = "
		border: 0px;
		color: darkblue; 
		font-size: 150%;
		text-align: left;">
      <a class = mltona href="Home">MLton MLTONWIKIVERSION</a>
    <td style = "
		border: 0px;
		font-size: 150%;
		text-align: center;
		width: 50%;">
      ConcurrentML
    <td style = "
		border: 0px;
		text-align: right;">
      <table cellspacing = 0 style = "border: 0px">
        <tr style = "vertical-align: middle;">
      </table>
  <tr style = "background-color: white;">
    <td colspan = 3
	style = "
		border: 0px;
		font-size:70%;
		text-align: right;">
      <a href = "Home">Home</a>
      &nbsp;<a href = "TitleIndex">Index</a>
      &nbsp;
</table>
<div id="content" lang="en" dir="ltr">
<a class="external" href="http://cml.cs.uchicago.edu/"><img src="moin-www.png" alt="[WWW]" height="11" width="11">Concurrent ML</a> is an SML concurrency library based on synchronous message passing.  MLton has an initial port of CML from SML/NJ, but is missing a thread-safe wrapper around the Basis Library and event-based equivalents to <tt>IO</tt> and <tt>OS</tt> functions. <p>
All of the core CML functionality is present. 
</p>

<pre class=code>
<B><FONT COLOR="#0000FF">structure</FONT></B> CML: CML
<B><FONT COLOR="#0000FF">structure</FONT></B> SyncVar: SYNC_VAR
<B><FONT COLOR="#0000FF">structure</FONT></B> Mailbox: MAILBOX
<B><FONT COLOR="#0000FF">structure</FONT></B> Multicast: MULTICAST
<B><FONT COLOR="#0000FF">structure</FONT></B> SimpleRPC: SIMPLE_RPC
<B><FONT COLOR="#0000FF">structure</FONT></B> RunCML: RUN_CML
</PRE>
<p>
 
</p>
<p>
The <tt>RUN_CML</tt> signature is minimal. 
<pre class=code>
<B><FONT COLOR="#0000FF">signature</FONT></B> RUN_CML =
   <B><FONT COLOR="#0000FF">sig</FONT></B>
      <B><FONT COLOR="#A020F0">val</FONT></B> isRunning: unit -&gt; bool
      <B><FONT COLOR="#A020F0">val</FONT></B> doit: (unit -&gt; unit) * Time.time option -&gt; OS.Process.status
      <B><FONT COLOR="#A020F0">val</FONT></B> shutdown: OS.Process.status -&gt; 'a
   <B><FONT COLOR="#0000FF">end</FONT></B>
</PRE>
 MLton's <tt>RunCML</tt> structure does not include all of the cleanup and logging operations of SML/NJ's <tt>RunCML</tt> structure.  However, the implementation does include the <tt>CML.timeOutEvt</tt> and <tt>CML.atTimeEvt</tt> functions, and a preemptive scheduler that knows to sleep when there are no ready threads and some threads blocked on time events. 
</p>
<p>
Because MLton does not wrap the Basis Library for CML, the "right" way to call a Basis Library function that is stateful is to wrap the call with <tt>MLton.Thread.atomically</tt>. 
</p>
<h2 id="head-0bb18642b70b9f8a9c12ccf39487328f306b8e19">Usage</h2>

    <ul>

    <li>
<p>
 You can import the CML Library into an MLB file with: 
<div>
<table>
 <tr>
<td align="center">
MLB file</td>
<td align="center">
Description</td>
</tr>
 <tr>
<td>
<tt>$(SML_LIB)/cml/cml.mlb</tt></td>
<td>
 </td>
</tr>

</p>
</table>
</div>
</li>
    <li class="gap">
<p>
 If you are porting a project from SML/NJ's <a href="CompilationManager">CompilationManager</a> to MLton's <a href="MLBasis"> ML Basis system</a> using <tt>cm2mlb</tt>, note that the following map is included by default: 
<pre>$cml/cml.cm  $(SML_LIB)/cml/cml.mlb
</pre> This will automatically convert a <tt>$cml/cml.cm</tt> import in an input <tt>.cm</tt> file into a <tt>$(SML_LIB)/cml/cml.mlb</tt> import in the output <tt>.mlb</tt> file.
</p>
</li>

    </ul>


<h2 id="head-a4bc8bf5caf54b18cea9f58e83dd4acb488deb17">Also see</h2>

    <ul>

    <li>
<p>
 <a href="ConcurrentMLImplementation">ConcurrentMLImplementation</a> 
</p>
</li>
    <li>
<p>
 <a href="eXene">eXene</a> 
</p>
</li>
</ul>

</div>



<p>
<hr>
Last edited on 2007-08-23 17:24:44 by <span title="fenrir.uchicago.edu"><a href="MatthewFluet">MatthewFluet</a></span>.
</body></html>