Dear All,
We
are happy to announce a new edition of the Dogelog Player:
- Enhanced GC:
To lift the native stack limitations, we opted for a marking
algorithm based on Peter Deutschs algorithm E as found in Donald
Knuths "The Art of Computing Programming" book. Our variant uses an
int field that was anyway recently introduced for Prolog compound
coloring, so that no extra space was introduced in this release.
- Enhanced Binary-Ops:
By adopting the pointer approach from Jaffar's Unification we
could get rid of the map based realization from previous releases
for union find. It turns out this gives quite a speed advantage.
We also lifted the native stack limitation by using an extra space
in the form of a stack and a log, which surprisingly performs
well especially for Java, less for JavaScript and Python.
- Enhanced Unary-Ops:
For unary operations such as term_variables/2, ground/1, etc..
we experimented with both Peter Deutsch and a stack / log
approaches. Interestingly for performance reasons we had to dismiss
the two phase approach induced by a marking algorithm such as
Peter Deutsch, and went also with the one phase approach as
offered by a stack / log realization.
Have Fun!