/usr/share/mozart/doc/changes/node33.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>11.1 Changes in Oz, Mozart libraries and UI</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="node32.html">- Up -</A></TD><TD><A href="node34.html#section.m120.fixes">Next >></A></TD></TR></TABLE><DIV id="section.m120.changes"><H2><A name="section.m120.changes">11.1 Changes in Oz, Mozart libraries and UI</A></H2><H3><A name="label27">11.1.1 Loops</A></H3><P> </P><DL><DT>* patterns are now supported: </DT><DD><P></P><BLOCKQUOTE class="code"><CODE><SPAN class="keyword">for</SPAN> X<SPAN class="keyword">#</SPAN>Y <SPAN class="keyword">in</SPAN> L <SPAN class="keyword">do</SPAN> <SPAN class="keyword">...</SPAN> <SPAN class="keyword">end</SPAN></CODE></BLOCKQUOTE><P> </P></DD><DT>* iterator expressions with a bit of a C-flavor are supported: </DT><DD><P></P><BLOCKQUOTE class="code"><CODE><SPAN class="keyword">for</SPAN> X <SPAN class="keyword">in</SPAN> Init;Cond;Next <SPAN class="keyword">do</SPAN> <SPAN class="keyword">...</SPAN> <SPAN class="keyword">end</SPAN></CODE></BLOCKQUOTE><P> for example: </P><BLOCKQUOTE class="code"><CODE><SPAN class="keyword">for</SPAN> I <SPAN class="keyword">in</SPAN> 1;I<SPAN class="keyword"><</SPAN>5;I<SPAN class="keyword">+</SPAN>1 <SPAN class="keyword">do</SPAN> <SPAN class="keyword">...</SPAN> <SPAN class="keyword">end</SPAN></CODE></BLOCKQUOTE><P> also iterators of the form <CODE>E1<SPAN class="keyword">..</SPAN>E2</CODE>, <CODE>E1<SPAN class="keyword">..</SPAN>E2;E3</CODE>, <CODE>E1;E3</CODE> as before. </P></DD><DT>* nullary <CODE>break</CODE> and <CODE>continue</CODE> procedures can be obtained using loop features, e.g: </DT><DD><P></P><BLOCKQUOTE class="code"><CODE><SPAN class="keyword">for</SPAN> break:B X <SPAN class="keyword">in</SPAN> L <SPAN class="keyword">do</SPAN> <SPAN class="keyword">...</SPAN>{B}<SPAN class="keyword">...</SPAN> <SPAN class="keyword">end</SPAN></CODE></BLOCKQUOTE><P> </P></DD><DT>* EXPERIMENTAL: loops can be used as expressions using a hidden accumulator, e.g.: </DT><DD><P></P><BLOCKQUOTE class="code"><CODE> {Show<BR> <SPAN class="keyword">for</SPAN> collect:C<BR> L <SPAN class="keyword">in</SPAN> Ls<BR> <SPAN class="keyword">do</SPAN> <BR> <SPAN class="keyword">for</SPAN> X <SPAN class="keyword">in</SPAN> L <SPAN class="keyword">do</SPAN> <BR> <SPAN class="keyword">if</SPAN> {IsOdd X} <SPAN class="keyword">then</SPAN> {C X} <SPAN class="keyword">end</SPAN> <BR> <SPAN class="keyword">end</SPAN> <BR> <SPAN class="keyword">end</SPAN>}</CODE></BLOCKQUOTE><P> This experimental facility uses loop features <CODE>collect</CODE>, <CODE>append</CODE>, <CODE>prepend</CODE>, <CODE>minimize</CODE>, <CODE>maximize</CODE>, <CODE>count</CODE>, <CODE>sum</CODE>, <CODE>multiply</CODE>, <CODE>return</CODE>, <CODE>default</CODE>. For more information check the documentation (<A href="../loop/index.html">``Loop Support''</A>). </P></DD></DL><P> </P><H3><A name="label28">11.1.2 ``Failed'' Futures and Module Manager</A></H3><P> </P><UL><LI><P><CODE>{Value<SPAN class="keyword">.</SPAN>byNeedFail E ?V}</CODE> binds <CODE>V</CODE> to the new notion of a ``failed future''. Any attempt to synchronize on <CODE>V</CODE> raises <CODE>E</CODE> as an exception. </P></LI><LI><P>The module manager was updated to use ``failed futures'': when a module cannot be successfully linked its value becomes a failed future (instead of a record) which raises the exception which caused linking to fail each time the module is subsequently accessed. Thus, programmers have a chance of catching and recovering from linking errors. </P></LI></UL><P> </P><H3><A name="label29">11.1.3 Spaces</A></H3><P> </P><UL><LI><P><CODE>Space<SPAN class="keyword">.</SPAN>askVerbose</CODE> returns <CODE>suspended</CODE> rather than <CODE>blocked</CODE> </P></LI><LI><P>An exception is raised, if the argument to <CODE>Space<SPAN class="keyword">.</SPAN>commit</CODE> refers to a non-existing alternative </P></LI><LI><P>The control condition for application of space operations have been unified and extended, see the documentation </P></LI><LI><P><CODE>Space<SPAN class="keyword">.</SPAN>kill</CODE> kills a space by injecting fail into it </P></LI></UL><P> A full treatment of spaces is available in the Christian Schulte's doctoral dissertation "Programming Constraint Services", from the Mozart publications page. </P><H3><A name="label30">11.1.4 Distribution Subsystem</A></H3><P> </P><UL><LI><P>The Oz programmer interface to the distributed subsystem has been extended. Parameters like buffer size and timeouts can now be specified at runtime. </P></LI><LI><P>The family of tools for monitoring the behavior of the Mozart system has been extended with a new member, the Distribution Panel. The tool displays information about known remote Mozart sites, amount of communication, measured round-trip and exported/imported entities. Possibilities to remotely monitor other Mozart processes does also exist. </P></LI></UL><P> </P><H3><A name="label31">11.1.5 Constraint Systems</A></H3><P>Constraint systems (finite domains, finite sets) have undergone, as usual, various improvements and bug fixes. Check the documentation. </P><H3><A name="label32">11.1.6 Port Improvements</A></H3><P> </P><UL><LI><P>Ability to send from a subordinated space to a superordinated space (provided that no local variables and names are referred to). </P></LI><LI><P>SendRecv does a send and returns an answer. For details, see doc. This again works across spaces. </P></LI></UL><P> </P><H3><A name="label33">11.1.7 Pickling Format</A></H3><P>Unfortunately, old pickles cannot be read by this new system. We do plan to have a generic conversion tool, but face a lack of human resources. </P><H3><A name="label34">11.1.8 `ozl --rewrite'</A></H3><P>The Oz linker (ozl) now supports a new command-line option, `--rewrite', which allows to transform the import URLs used by the output functor. Check the documentation for details. </P></DIV><TABLE align="center" border="0" cellpadding="6" cellspacing="6" class="nav"><TR bgcolor="#DDDDDD"><TD><A href="node32.html">- Up -</A></TD><TD><A href="node34.html#section.m120.fixes">Next >></A></TD></TR></TABLE><HR><ADDRESS><SPAN class="version">Version 1.4.0 (20110908185330)</SPAN></ADDRESS></BODY></HTML>
|