• ANN: Dogelog Player 1.3.6 (Canonical Compare)

    From Mild Shock@janburse@fastmail.fm to comp.lang.python on Thu Aug 21 15:44:58 2025
    From Newsgroup: comp.lang.python

    Dear All,

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

    - Frozen Terms:
    We extended our garbage collector marking bits
    to Prolog compounds. Unlike Prolog variables, where
    setting all bits is used to indicate change set
    membership, we use it to indicate frozen objects.
    This makes the garbage collector and certain
    built-ins such as copy_term/2 etc.. aware of
    program sharing (PS).

    - Marking Algorithms:
    We now provide native implementations of (==)/2,
    copy_term/2, etc.. with sharing and cycle detection.
    We didn't deploy additional marking bits and/or
    pointers inside the Prolog terms, instead used
    additional datastructures, leaving the Prolog terms
    untouched. The compare/3 implementation is
    not a total order.

    - Canonical Compare:
    The library(lists) has experimental predicates
    term_decompose/3 and term_canonical/2, still written
    in 100% Prolog. We showcase their usage in
    library(sequence) and library(aggregate). The end-
    user gets by default a structure compare, but can
    also have a canonical compare, both being
    total and natural orders.

    Have Fun!

    Jan Burse, http://www.herbrand.ai/ , 21.08.2025
    --- Synchronet 3.21a-Linux NewsLink 1.2