• Re: ANN: Dogelog Player 1.1.3 (Tuning Trilogy)

    From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Wed Nov 22 13:22:29 2023
    From Newsgroup: comp.lang.prolog

    Dogelog Player is a Prolog system 100% written
    in Prolog itself. We recently extended the Dogelog
    Player to not only support JavaScript and Python,
    but also Java as its target platform. For JavaScript
    and Java, Dogelog Player approaches Prolog
    atoms via wobbly Unicode.

    We treat wobbly code points as first class citizen
    and see to it that a conversion from wobbly pairs
    to a steady points automatically happens, but the
    reverse road is blocked. The results are encouraging
    but support in other Prolog systems such as
    SWI-Prolog is lacking.

    See also:

    Wobbly Unicode in Dogelog Player https://twitter.com/dogelogch/status/1727300173968162983

    Wobbly Unicode in Dogelog Player
    https://www.facebook.com/groups/dogelog
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@bursejan@gmail.com to comp.lang.prolog on Wed Nov 22 05:11:43 2023
    From Newsgroup: comp.lang.prolog


    My thoughts and prayers to Prolog systems that
    have under the hood UTF-8. This is a nasty test case
    to a certain approach of surrogate pairs:
    ?- X = 'The \uD83D', Y = '\uDE02 dog', atom_concat(X, Y, Z).
    X = 'The \ud83d', Y = '\ude02 dog', Z = 'The 😂 dog'.
    Could mean 3 bytes UTF-8 at the end of the first Prolog
    atom and 3 bytes UTF-8 at the start of the second Prolog
    atom are converted into 4 bytes UTF-8.
    See also:
    The WTF-8 encoding
    WTF-8 (Wobbly Transformation Format − 8-bit)
    Simon Sapin, Mozilla - 23 February 2022
    https://simonsapin.github.io/wtf-8/
    Mild Shock schrieb am Mittwoch, 22. November 2023 um 13:22:31 UTC+1:
    Dogelog Player is a Prolog system 100% written
    in Prolog itself. We recently extended the Dogelog
    Player to not only support JavaScript and Python,
    but also Java as its target platform. For JavaScript
    and Java, Dogelog Player approaches Prolog
    atoms via wobbly Unicode.

    We treat wobbly code points as first class citizen
    and see to it that a conversion from wobbly pairs
    to a steady points automatically happens, but the
    reverse road is blocked. The results are encouraging
    but support in other Prolog systems such as
    SWI-Prolog is lacking.

    See also:

    Wobbly Unicode in Dogelog Player https://twitter.com/dogelogch/status/1727300173968162983

    Wobbly Unicode in Dogelog Player
    https://www.facebook.com/groups/dogelog
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Wed Nov 22 14:36:15 2023
    From Newsgroup: comp.lang.prolog


    My thoughts and prayers to Prolog systems that
    have under the hood UTF-8. This is a nasty test case
    to a certain approach of surrogate pairs:

    ?- X = 'The \uD83D', Y = '\uDE02 dog', atom_concat(X, Y, Z).
    X = 'The \ud83d', Y = '\ude02 dog', Z = 'The 😂 dog'.

    Could mean 3 bytes UTF-8 at the end of the first Prolog
    atom and 3 bytes UTF-8 at the start of the second Prolog
    atom are converted into 4 bytes UTF-8.

    See also:

    The WTF-8 encoding
    WTF-8 (Wobbly Transformation Format − 8-bit)
    Simon Sapin, Mozilla - 23 February 2022
    https://simonsapin.github.io/wtf-8/


    Mild Shock schrieb:
    Dogelog Player is a Prolog system 100% written
    in Prolog itself. We recently extended the Dogelog
    Player to not only support JavaScript and Python,
    but also Java as its target platform. For JavaScript
    and Java, Dogelog Player approaches Prolog
    atoms via wobbly Unicode.

    We treat wobbly code points as first class citizen
    and see to it that a conversion from wobbly pairs
    to a steady points automatically happens, but the
    reverse road is blocked. The results are encouraging
    but support in other Prolog systems such as
    SWI-Prolog is lacking.

    See also:

    Wobbly Unicode in Dogelog Player https://twitter.com/dogelogch/status/1727300173968162983

    Wobbly Unicode in Dogelog Player
    https://www.facebook.com/groups/dogelog

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sun Nov 26 13:24:32 2023
    From Newsgroup: comp.lang.prolog

    Dogelog Player is a Prolog system for the
    JavaScript, Python and Java platform. We
    were facing some test cases that created
    huge amounts of Prolog terms and in the
    same time had a failure driven loop removing
    them at once again. Can our garbage collector
    deal with that?

    Tri-color can be used to identify old and
    new variables. We went on and implemented a
    variant of David Ungars generation scavenging.
    We could gain various benefits with a new
    gc_minor() routine, and the winner was a
    backtracking friendly heuristic when to
    call it or not.

    See also:

    Generational GC for Dogelog Player https://twitter.com/dogelogch/status/1728641232413307092

    Generational GC for Dogelog Player
    https://www.facebook.com/groups/dogelog

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Thu Nov 30 00:46:03 2023
    From Newsgroup: comp.lang.prolog


    Dogelog Player is a Prolog system 100% written
    in Prolog itself. To enable SAT solvers we
    gave it a generational garbage collector and
    saw performance gain Java 42%, JavaScript 51%
    and Python 61%. We compare here with a few
    ther Prolog systems.

    There are some pratical examples, such as a
    half-adder, that take less space in Read-Muller
    expansion than in Boolean expansion. The test
    suite contains 4 satisfiablity and 4 counting
    test cases. Interestingly Dogelog Player for Java
    is not last thanks to the performance gain.

    See also:

    SAT Solvers for Dogelog Player https://twitter.com/dogelogch/status/1730006702936772841

    SAT Solvers for Dogelog Player
    https://www.facebook.com/groups/dogelog

    Mild Shock schrieb:
    Dogelog Player is a Prolog system for the
    JavaScript, Python and Java platform. We
    were facing some test cases that created
    huge amounts of Prolog terms and in the
    same time had a failure driven loop removing
    them at once again. Can our garbage collector
    deal with that?

    Tri-color can be used to identify old and
    new variables. We went on and implemented a
    variant of David Ungars generation scavenging.
    We could gain various benefits with a new
    gc_minor() routine, and the winner was a
    backtracking friendly heuristic when to
    call it or not.

    See also:

    Generational GC for Dogelog Player https://twitter.com/dogelogch/status/1728641232413307092

    Generational GC for Dogelog Player
    https://www.facebook.com/groups/dogelog


    --- Synchronet 3.20a-Linux NewsLink 1.114