<< 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 - |