# 4 Mozart 1.2.3

Mozart 1.2.3 is primarily a bug-fix release addressing recently discovered memory leaks. It also contains enhancements and is fully backward compatible with 1.2.2

- Fixed a memory leak in the regex contrib: memory occupied by a compiled regex was not properly released during finalization.

- Fixed a memory leak in the unpickler. The leak affected particularly applications that performed:

  - numerous loading of compiled functors

  - numerous retrieval of values from a GDBM database

- Windows: setting environment variable `OZ_TRACE_LOAD` caused the system to misbehave. This was actually due to forgetting to copy the value returned by the environment variable lookup out of a static buffer.

- Many holes have been filled in the compiler documentation. In particular, the main chapters are all complete; only the appendices lack explanation.

- Constraint Programming: `FD.atLeast` and `FD.atMost` performed incorrect propagation when their first argument was a FD variable. The implementation was completely overhauled. All of `FD.exactly`, `FD.atLeast` and `FD.atMost` are now implemented as instantiations of the same template class.

- The `Application` module now exports `Application.processArgv` which permits to invoke argument processing on a list of strings explicitly provided as a parameter.

- The compiler's Gump support was modified so that generated native functor and parser state description are placed in by default in the directory of the source file. This can be explicitly overridden by option `gumpDirectory`, or by command-line option `--gumpdirectory`.

- Standard Library: Mozart 1.2.3 is the first release to include the Mozart Standard Library. At present the latter contains only `QTk` available at URI `x-oz://system/wp/QTk.ozf`.