Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > bd5c3d824c3db63ffd9226c15941e6ad > files > 270

mozart-1.4.0-1mdv2010.0.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>11.1 Changes</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.m110.fixes">Next &gt;&gt;</A></TD></TR></TABLE><DIV id="section.m110.changes"><H2><A name="section.m110.changes">11.1 Changes</A></H2><H3><A name="label40">11.1.1 Pickling</A></H3><P>Due to some redesign of the instruction set and the pickling algorithm, the pickle format changed between Mozart 1.0.1 and Mozart 1.1.0. A conversion tool has been made available however, see <A href="../tools/node15.html#chapter.convert">Chapter&nbsp;7 of ``Oz Shell Utilities''</A> for documentation. </P><H3><A name="label41">11.1.2 Constraint Programming</A></H3><P> </P><DL><DT>General improvements </DT><DD><P>One of the main achievements in the 1.1.0 release is a fairly complete overhaul of the constraint programming functionality in Mozart. This makes the system leaner with respect to both code size and memory requirements and several even severe bugs have been fixed. In average, the refurbishment buys you a 20% speedup on constraint applications (up to 40% in rare cases). </P></DD><DT>Constructive disjunction removed </DT><DD><P>That's basically just for the records: nobody used it. Since it was complicated and a constant source of problems it has been removed. In the rare case that you used constructive disjunction, contact us for help. </P></DD><DT><CODE>FD</CODE> and <CODE>FS</CODE> synchronization behavior corrected </DT><DD><P>All <CODE>FD</CODE> and <CODE>FS</CODE> propagators now conform to their documentation as it comes to synchronization on their arguments. Mozart 1.0.0 and 1.0.1 were buggy in that execution did not block even though the propagators required their arguments to be finite domain or finite set variables. Watch out! In case your scripts that use finite domain or finite set propagators just block (they show a light (ugly) green color in the Oz Explorer) this is a likely cause! Fixing is easy: just make sure that all variables supplied to propagators are in fact constrained to be finite domains or finite sets. </P></DD><DT><CODE>Space</CODE> and <CODE>RecordC</CODE> are system modules </DT><DD><P>To achieve better factorization of constraint programming support in Mozart all constraint programming modules are system modules rather than modules in the base environment. This results in a much smaller memory footprint of the Mozart engine in case the constraint programming facilities are not needed. </P></DD></DL><P> </P><H3><A name="label42">11.1.3 Distribution</A></H3><P>The distribution layer of Mozart has problems with fire-walls. From our point of view fire-walls defines all sub nets that restrict their traffic in some way. It has been impossible to connect to oz sites through any kind of fire-walls up till now. A naive solution is included in this release. It will only enable connections through the simplest of fire walls, but that is better than nothing. We are working on a more general solution that will enable our sites to work over more complex fire-walls.</P><P>There were problems related to the shortcoming of fire-walls. When a Mozart sites needs to communicate it will try to open a connection. If it fails to reach the desired site it will time-out and retry unless it can deduce that the destination site is dead. The site will continue trying to open the connection until it succeeds or finds the site dead. This behavior can disturb fire-walls a lot. The time-out is now growing with a growth factor. There is now a way to alter the start time-out value, the growth factor and the timeout ceiling.</P><H3><A name="label43">11.1.4 Documentation</A></H3><P> </P><DL><DT>Global Index </DT><DD><P>The online documentation has been provided with a new index that encompasses all index entries from the individual documents. It can be reached from the main documentation page, either using the link in the margin or the link under the Getting Started/Documentation header. Caveat: Not all documents have a useful index yet! </P></DD><DT>Postscript and PDF </DT><DD><P>Is available now. </P></DD></DL><P> </P><H3><A name="label44">11.1.5 Support for loops</A></H3><P>In order to provide convenient syntax for loops, 2 new keywords have been introduced: <CODE><SPAN class="keyword">for</SPAN></CODE> and <CODE><SPAN class="keyword">do</SPAN></CODE>. This is an incompatible change. Check your code: you must now quote every occurrence of ``for'' and ``do''. Support for loops is still preliminary. The general syntax is: </P><BLOCKQUOTE class="code"><CODE><SPAN class="keyword">for</SPAN>&nbsp;</CODE><I>Iterators</I><CODE>&nbsp;<SPAN class="keyword">do</SPAN>&nbsp;<SPAN class="keyword">...</SPAN>&nbsp;<SPAN class="keyword">end</SPAN></CODE></BLOCKQUOTE><P> where <I>Iterators</I> is a sequence of 1 or more iterators. Supported iterators are e.&nbsp;g. </P><BLOCKQUOTE class="code"><CODE>X&nbsp;<SPAN class="keyword">in</SPAN>&nbsp;L</CODE></BLOCKQUOTE><P> for iterating over the elements of a list </P><BLOCKQUOTE class="code"><CODE>X&nbsp;<SPAN class="keyword">in</SPAN>&nbsp;I<SPAN class="keyword">..</SPAN>J</CODE></BLOCKQUOTE><P> for iterating from integer <CODE>I</CODE> to <CODE>J</CODE>. The loop terminates as soon as one iterator runs out. The complete documentation is available in <A href="../loop/index.html">``Loop Support''</A></P><H3><A name="label45">11.1.6 Compiler Macro Names</A></H3><P> The Mozart compiler defines macro names to identify the version of the system that is running (see <A href="../compiler/index.html">``The Mozart Compiler''</A>). These used to be </P><BLOCKQUOTE class="code"><CODE>Oz_1&nbsp;&nbsp;&nbsp;Oz_1_0&nbsp;&nbsp;&nbsp;Oz_1_0_1</CODE></BLOCKQUOTE><P> for Mozart&nbsp;1.0.1, but to avoid clashes with the macro names provided by DFKI Oz, they are now </P><BLOCKQUOTE class="code"><CODE>Mozart_1&nbsp;&nbsp;&nbsp;Mozart_1_1&nbsp;&nbsp;&nbsp;Mozart_1_1_0</CODE></BLOCKQUOTE><P> </P><H3><A name="label46">11.1.7 URL Support</A></H3><P>The format of URL records has changed incompatibly. It is now simpler: feature <CODE>absolute</CODE> is a boolean indicating whether the url is absolute and feature <CODE>path</CODE> is now just a list of strings representing the components of the path. An empty component is now simply omitted when converting to a string using cache syntax: thus the bug involving a <CODE><SPAN class="keyword">//</SPAN></CODE> in the middle of a path has now disappeared. Parsing urls is also faster. </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.m110.fixes">Next &gt;&gt;</A></TD></TR></TABLE><HR><ADDRESS><SPAN class="version">Version 1.4.0 (20090610)</SPAN></ADDRESS></BODY></HTML>