4.1 Changes in Oz, Mozart libraries and UI

4.1.1 Redesign of by-need synchronization

The by-need synchronization mechanism has been completely redesigned and reimplemented. It now applies to all kinds of variables, and does not make use of futures. The term ``future'' now only refers to read-only views of logic variables. Here is a summary of the changes in the language.

4.1.2 Uniform state operators

Mutable operators (Cells, Object Attributes, Dictionary/Array Entries) can now be updated with the := operator and the current value retrieved with the @ operator. More details in Chapter 11 of ``The Oz Base Environment''.

4.1.3 The Oz Base environment

Added Array.exchange, Dictionary.exchange, WeakDictionary.exchange, Dictionary.condExchange, and WeakDictionary.condExchange.

4.1.4 Ozcar

The Ozcar manual has been largely reworked for improved precision and readability. Ozcar itself has been extended by the ability to debug threads remotely. This feature also supports the debugging of distributed applications.

4.1.5 Ozmake

'ozmake' became a part of the Mozart's standard library, and so it it included in the release.

4.1.6 Oztool on Windows

Mozart is now buildable with gcc version 3 and upwards. oztool now reverts to gcc and g++ as default when invoked with the -gnu option. This can be configured as described in Section 6.1 of ``Oz Shell Utilities''.

4.1.7 QTk

QTk now transparently supports accentuated characters on all platforms. The hidden parameter has been added to the set method of the placeholder widget. The onCreation parameter has been added to all widgets. The QTk.flush function has been introduced. Several bugs were fixed, in particular display problems on Mac OS X.

Version 1.4.0 (20080702)