/usr/share/mozart/doc/changes/node6.html is in mozart-doc 1.4.0-8ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>2.1 Changes to the language</TITLE><LINK href="ozdoc.css" rel="stylesheet" type="text/css"></HEAD><BODY><TABLE align="center" border="0" cellpadding="6" cellspacing="6" class="nav"><TR bgcolor="#DDDDDD"><TD><A href="node5.html">- Up -</A></TD><TD><A href="node7.html#section.m140.impl">Next >></A></TD></TR></TABLE><DIV id="section.m140.lang"><H2><A name="section.m140.lang">2.1 Changes to the language</A></H2><P>This new release provides a certain number of changes in the support for distribution. The philosophy has not changed, though: distribution is achieved by transparently sharing language entities between sites. And most of the usual features are kept intact, like the modules <CODE>Connection</CODE> and <CODE>Remote</CODE>. However, the distribution strategy is now changeable for any single entity. The most dramatic change is in the failure handling primitives: the former fault model has been simplified to the extreme (only one primitive). Most of the new features are available in the new module <A href="../system/node46.html#chapter.dp"><CODE>DP</CODE></A>. </P><H3><A name="label3">2.1.1 New distribution features</A></H3><P>Mozart now provides more than one protocol for some entities. An entity is no longer stuck to one default protocol. A cell, for instance, may be distributed in five different ways for its state, and four different ways for its distributed garbage collection. The protocol choice is specified as an <EM>annotation</EM> before the entity is distributed. The list of available protocols is given in the documentation of module <A href="../system/node46.html#chapter.dp"><CODE>DP</CODE></A>. </P><P>More entities benefit from distribution support, like arrays and dictionaries. Distributed variables also have built-in support for <EM>by-need evaluation</EM>: making a variable needed is now propagated from site to site. <EM>Failed values</EM> are also distributed. </P><P>Distributed locks have a better support than before thanks to stationary objects and procedures. The built-in support for stationary callable entities guarantees a globally unique thread identifier for the caller and the callee. So reentrant locks are supported correctly, even in the case of mutually recursive stationary procedures and objects. </P><H3><A name="label4">2.1.2 New fault model</A></H3><P>The set of possible fault states has been reduced to four: <CODE>ok</CODE>, <CODE>tempFail</CODE>, <CODE>localFail</CODE>, and <CODE>permFail</CODE>. Contrary to the former model, the transition from <CODE>tempFail</CODE> to <CODE>ok</CODE> is directly observable. </P><P>Upon failure, synchronous operations simply block. Exceptions and handlers have been discarded. So by default, nothing <EM>wrong</EM> happens in an application that does not handle distribution failures. Watchers have been kept, but no longer as a primitive. </P><P>Every site maintains a <EM>fault stream</EM> for each entity it refers to. The fault stream reflects the history of the local fault state of the entity on the given site. Fault state transitions are thus notified by dataflow only. Watchers are trivial to build on top of fault streams. </P><P>It is also possible to make an entity fail on purpose. The failure may be visible on the current site (procedure <CODE>DP<SPAN class="keyword">.</SPAN>break</CODE>) or on all sites (procedure <CODE>DP<SPAN class="keyword">.</SPAN>kill</CODE>). </P><P>The former module <CODE>Fault</CODE> has become obsolete. The new module <CODE>DP</CODE> has taken over all its functionalities. </P><H3><A name="label5">2.1.3 Post-mortem finalization</A></H3><P>A new finalization mechanism is available. It is triggered after an entity has left memory, which makes it more reliable than the weak finalization, in particular in the presence of distribution. </P></DIV><TABLE align="center" border="0" cellpadding="6" cellspacing="6" class="nav"><TR bgcolor="#DDDDDD"><TD><A href="node5.html">- Up -</A></TD><TD><A href="node7.html#section.m140.impl">Next >></A></TD></TR></TABLE><HR><ADDRESS><SPAN class="version">Version 1.4.0 (20110908185330)</SPAN></ADDRESS></BODY></HTML>
|