ANN: Dogelog Player 2.3.2 (Schwartzian Transform)

Date: September 28, 2026

Dear All,

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

- Enhanced common:
Triggered by SWI-Prologs new built-ins, we did a revision of library(cyclic) now exposing term_minimal/2 and term_decompose/2. Turns out we could also speed-up distinct/1 and aggregate/3, by using term_minimal/2 alone in the deduplication phase. And then for aggregate/3 deploying a Schwartzian Transform with term_decompose/2 in the sorting phase.

- Enhanced top-level:
We also did a revision of the top-level. For example answer substitutions are now shown more compact, so that a query X = f(A,Y), Y = f(B,X) can keep its shape. Further the debugger now uses the visibility rules of listing/[0,1]. Even overriding the provenance of goals arguments and only prompting in case they branch back into user clauses.

- New undo/1:
Realizing the analogue to our recent rogue '$CUT'/1 for cleanup goals, this time not scanning the choice points but the variable trail to find undo goals, we could arrive at a undo/1. Because of atomicity concerns, its not directly exposed, and subsequently the user facing API has now new set_arg/3 and setup_undo/2 only.

Have Fun!