Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.prolog > #15896 > unrolled thread

ANN: Dogelog Player 2.2.6 (π-WAM if-then-else)

Started byMild Shock <janburse@fastmail.fm>
First post2026-08-30 14:59 +0200
Last post2026-09-14 19:24 +0200
Articles 3 — 1 participant

Back to article view | Back to comp.lang.prolog


Contents

  ANN: Dogelog Player 2.2.6 (π-WAM if-then-else) Mild Shock <janburse@fastmail.fm> - 2026-08-30 14:59 +0200
    Dogelog in the Park: A Barriered Statechart Simulator (Was: ANN: Dogelog Player 2.2.6 (π-WAM if-then-else)) Mild Shock <janburse@fastmail.fm> - 2026-09-04 16:39 +0200
      5 Minutes Implementation of Prolog catch/3 and throw/1 (Was: Dogelog in the Park: A Barriered Statechart Simulator) Mild Shock <janburse@fastmail.fm> - 2026-09-14 19:24 +0200

#15896 — ANN: Dogelog Player 2.2.6 (π-WAM if-then-else)

FromMild Shock <janburse@fastmail.fm>
Date2026-08-30 14:59 +0200
SubjectANN: Dogelog Player 2.2.6 (π-WAM if-then-else)
Message-ID<11719f9$1cctk$1@solani.org>
Dear All,

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

- User Time:
Our π-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 π-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/

[toc] | [next] | [standalone]


#15905 — Dogelog in the Park: A Barriered Statechart Simulator (Was: ANN: Dogelog Player 2.2.6 (π-WAM if-then-else))

FromMild Shock <janburse@fastmail.fm>
Date2026-09-04 16:39 +0200
SubjectDogelog in the Park: A Barriered Statechart Simulator (Was: ANN: Dogelog Player 2.2.6 (π-WAM if-then-else))
Message-ID<117el6a$1lppc$1@solani.org>
In reply to#15896
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 π-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 π-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/

[toc] | [prev] | [next] | [standalone]


#15919 — 5 Minutes Implementation of Prolog catch/3 and throw/1 (Was: Dogelog in the Park: A Barriered Statechart Simulator)

FromMild Shock <janburse@fastmail.fm>
Date2026-09-14 19:24 +0200
Subject5 Minutes Implementation of Prolog catch/3 and throw/1 (Was: Dogelog in the Park: A Barriered Statechart Simulator)
Message-ID<1189ajq$6r7i$1@solani.org>
In reply to#15905
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
‘$YIELD’/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 ‘$YIELD’/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 π-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 π-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/
> 

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.prolog


csiph-web