|- Up -||Next >>|
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 Chapter 7 of ``Oz Shell Utilities'' for documentation.
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).
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.
FSsynchronization behavior corrected
FS 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.
RecordCare system modules
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.
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.
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.
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!
Is available now.
In order to provide convenient syntax for loops, 2 new keywords have been introduced:
do. 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:
do ... end
where Iterators is a sequence of 1 or more iterators. Supported iterators are e. g.
X in L
for iterating over the elements of a list
X in I..J
for iterating from integer
J. The loop terminates as soon as one iterator runs out. The complete documentation is available in ``Loop Support''
The Mozart compiler defines macro names to identify the version of the system that is running (see ``The Mozart Compiler''). These used to be
Oz_1 Oz_1_0 Oz_1_0_1
for Mozart 1.0.1, but to avoid clashes with the macro names provided by DFKI Oz, they are now
Mozart_1 Mozart_1_1 Mozart_1_1_0
The format of URL records has changed incompatibly. It is now simpler: feature
absolute is a boolean indicating whether the url is absolute and feature
path 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
// in the middle of a path has now disappeared. Parsing urls is also faster.
|- Up -||Next >>|