ANN: Dogelog Player 2.3.3 (OpenTrees Coroutining)

Date: October 27, 2026

Dear All,

We are happy to announce a new edition of the Dogelog Player:

- Heap Pressure GC:
The Prolog system got a rework of the garbage collection scheduling. We now use the metronome minor and major phases, together with new emergency major phases. The emergency is driven by statistics(user) which now extends to all target platforms JavaScript, Python and Java, as well as a new statistics(maxmem) which can be configured from the outside.

- Term Portraying:
To be able to show attributed variables more comfortably, which are still realized as plain '$ATTR'/2 compounds with cyclic terms, we introduced a portray mechanism. While many Prolog systems define a portray/1 hook for write_term/2, with the disadvantage of an output stream side effect, we introduced a term_portraying/2 protocol, similar to term_expansion/2.

- Enhanced Coroutining:
Predicates dif/2 and when/2 were introduced. Calling deref/2 or unify/2 is currently still required. unify/2 replaces the old bind/2 for var-term only unfication, and provides both var-term and var-var unification. The OpenTrees attributed variable state, inspired by Nievergelt & Reingolds BB-Trees (1972) is speedy and GC friendly, leaves many other Prolog systems behind.

Have Fun!


Use Privacy (c) 2005-2026 XLOG Technologies AG