<< Prev | - Up - |

A various number of small bug fixes have been incorporated to the new release. Notable ones are:

`IsOdd`

was incorrectly returning`false`

when given an odd negative number. It now returns`true`

as expected.Weak dictionaries can now be finalized via other weak dictionaries. A fixpoint has to be computed in the garbage collector in order to determine which ones had to be finalized. This fixpoint computation has been added.

Unification is now fully

*incremental*. Unifying streams no longer causes memory leaks, for instance. The unification algorithm has been fixed to handle all cases where a part of the unification cannot proceed immediately. So unifying`X|Xs=Y|Ys`

where`Xs`

and`Ys`

are read-only binds`X=Y`

, and resumes the unification statement to`Xs=Ys`

, which removes the reference to`X`

and`Y`

. The new implementation also handles gracefully record containing distributed variables: unifying`X#Y=foo#bar`

with`X`

and`Y`

distributed performs the distributed bindings`X=foo`

and`Y=bar`

*in parallel*, and no longer sequentially.There were also some important bug fixes in the marshaler, which are orthogonal to the new distribution layer.

The executable

`ozengine`

can now belong to a directory whose path contains spaces. Similarly, functors compiled as executables can be run from a path different than`'.'`

using paths containing spaces.

<< Prev | - Up - |

Version 1.4.0 (20080702)