• =?UTF-8?Q?ANN:_Dogelog_Player_2.2.6_=28=cf=80-WAM_if-then-else=29?=

    From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sun Aug 30 14:59:19 2026
    From Newsgroup: comp.lang.prolog

    Dear All,

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

    - User Time:
    Our -C-WAM channels are still pounding 1++ ping
    pong roundtrip between JavaScript workers,
    thanks to SharedArrayBuffer and Atomic.wait().
    But while workers are busy with each other
    Dogelog Player main worker will wait. Therefore
    we introduced a new statistics "user" and time/1
    shows user percentage for non-wait main.

    - Hack Instructions:
    What a -C-WAM worker will drive, is the Hack VM
    an alternative to the Dogelog VM. Our first
    version of Hack VM instruction set had 10-bit
    jump operand and 10-bit arithmetic operand.
    This made it difficult to run larger CLP(Z)
    examples. So we redesigned the instuction
    set to have one 24-bit operand.

    - Hack Compilation:
    There is a new library(hack), which houses
    the emulator and a new disassembler by the
    predicate instructions/1, the later taking a
    goal argument. The Hack VM compiler can now
    emit jump and link instructions for disjunction.
    It can also digest '$MARK'/1 and '$CUT'/1 from
    the Dogelog Player surface translation, and
    therefor it is now able to compile if-then-else.

    Have Fun!


    Jan Burse, August 30, 2026, https://www.herbrand.ai/
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Fri Sep 4 16:39:06 2026
    From Newsgroup: comp.lang.prolog

    Hi,

    In 1984 David Harel wrote a charming paper
    about statecharts to visualize complex system
    state and behaviour. After a $80 million
    acquisition and the expiry of patents. The
    2015 W3C XML standard for statecharts has
    an appendix D showing a reference implementation.

    Unlike the W3C appendix D take, the simulator
    is a homomorphism of next/3, with an intercept
    for cancellations. By using maplist/3 and
    not concurrent_maplist/3 we added a barrier.
    We can now let the little dog play fetch in
    some nature park, just like in the
    Stately AI demo page.

    Bye

    See also:

    Dogelog in the Park: A Barriered Statechart Simulator https://medium.com/2989/a50682d1fde8

    Mild Shock schrieb:
    Dear All,

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

    - User Time:
    Our -C-WAM channels are still pounding 1++ ping
    pong roundtrip between JavaScript workers,
    thanks to SharedArrayBuffer and Atomic.wait().
    But while workers are busy with each other
    Dogelog Player main worker will wait. Therefore
    we introduced a new statistics "user" and time/1
    shows user percentage for non-wait main.

    - Hack Instructions:
    What a -C-WAM worker will drive, is the Hack VM
    an alternative to the Dogelog VM. Our first
    version of Hack VM instruction set had 10-bit
    jump operand and 10-bit arithmetic operand.
    This made it difficult to run larger CLP(Z)
    examples. So we redesigned the instuction
    set to have one 24-bit operand.

    - Hack Compilation:
    There is a new library(hack), which houses
    the emulator and a new disassembler by the
    predicate instructions/1, the later taking a
    goal argument. The Hack VM compiler can now
    emit jump and link instructions for disjunction.
    It can also digest '$MARK'/1 and '$CUT'/1 from
    the Dogelog Player surface translation, and
    therefor it is now able to compile if-then-else.

    Have Fun!


    Jan Burse, August 30, 2026, https://www.herbrand.ai/

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Mon Sep 14 19:24:10 2026
    From Newsgroup: comp.lang.prolog

    Hi,

    Dogelog Player is a Prolog system for the
    JavaScript, Python and Java target, mostly
    written in 100% Prolog itself. Since it runs in
    cooperative multitasking enviroments, it features a
    rCy$YIELDrCO/1. We noticed that catch/3 causes some
    friction and we found a simple remedy.

    The friction was caused by a switch from Prolog,
    to Host Language and to Prolog so that rCy$YIELDrCO/1
    had to create choice points. We eleminated both.
    The new catch/3 realization can easily scale to
    millions of nestings, since it has become
    independent of the native stack.

    Bye

    See also:

    5 Minutes Implementation of Prolog catch/3 and throw/1 https://medium.com/2989/dc662b85fcb2

    Mild Shock schrieb:
    Hi,

    In 1984 David Harel wrote a charming paper
    about statecharts to visualize complex system
    state and behaviour. After a $80 million
    acquisition and the expiry of patents. The
    2015 W3C XML standard for statecharts has
    an appendix D showing a reference implementation.

    Unlike the W3C appendix D take, the simulator
    is a homomorphism of next/3, with an intercept
    for cancellations. By using maplist/3 and
    not concurrent_maplist/3 we added a barrier.
    We can now let the little dog play fetch in
    some nature park, just like in the
    Stately AI demo page.

    Bye

    See also:

    Dogelog in the Park: A Barriered Statechart Simulator https://medium.com/2989/a50682d1fde8

    Mild Shock schrieb:
    Dear All,

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

    - User Time:
    Our -C-WAM channels are still pounding 1++ ping
    pong roundtrip between JavaScript workers,
    thanks to SharedArrayBuffer and Atomic.wait().
    But while workers are busy with each other
    Dogelog Player main worker will wait. Therefore
    we introduced a new statistics "user" and time/1
    shows user percentage for non-wait main.

    - Hack Instructions:
    What a -C-WAM worker will drive, is the Hack VM
    an alternative to the Dogelog VM. Our first
    version of Hack VM instruction set had 10-bit
    jump operand and 10-bit arithmetic operand.
    This made it difficult to run larger CLP(Z)
    examples. So we redesigned the instuction
    set to have one 24-bit operand.

    - Hack Compilation:
    There is a new library(hack), which houses
    the emulator and a new disassembler by the
    predicate instructions/1, the later taking a
    goal argument. The Hack VM compiler can now
    emit jump and link instructions for disjunction.
    It can also digest '$MARK'/1 and '$CUT'/1 from
    the Dogelog Player surface translation, and
    therefor it is now able to compile if-then-else.

    Have Fun!


    Jan Burse, August 30, 2026, https://www.herbrand.ai/


    --- Synchronet 3.22a-Linux NewsLink 1.2