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


Groups > comp.lang.python > #198008

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

Path csiph.com!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From Mild Shock <janburse@fastmail.fm>
Newsgroups comp.lang.python
Subject 5 Minutes Implementation of Prolog catch/3 and throw/1 (Re: Dogelog in the Park: A Barriered Statechart Simulator)
Date Mon, 14 Sep 2026 19:26:46 +0200
Message-ID <1189aom$6r7i$3@solani.org> (permalink)
References <11719ko$1cctk$2@solani.org> <117elhd$1lppc$5@solani.org>
MIME-Version 1.0
Content-Type text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding 8bit
Injection-Date Mon, 14 Sep 2026 17:26:46 -0000 (UTC)
Injection-Info solani.org; logging-data="224498"; mail-complaints-to="abuse@news.solani.org"
User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:140.0) Gecko/20100101 Firefox/140.0 SeaMonkey/2.53.24
Cancel-Lock sha1:efGiKQhVfcel8ID0et/76s42DRE=
In-Reply-To <117elhd$1lppc$5@solani.org>
X-User-ID eJwFwYkBwCAIA8CVeAzoOMaG/UfoHbK8Xq9CLQzGL0wl35O8oa3OFog+1m76lPyuy09Sj4XYMSA5sU6YnR9frxW4
Xref csiph.com comp.lang.python:198008

Show key headers only | View raw


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/
> 

Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

ANN: Dogelog Player 2.2.6 (π-WAM if-then-else) Mild Shock <janburse@fastmail.fm> - 2026-08-30 15:02 +0200
  5 Minutes Implementation of Prolog catch/3 and throw/1 (Re: Dogelog in the Park: A Barriered Statechart Simulator) Mild Shock <janburse@fastmail.fm> - 2026-09-14 19:26 +0200
    A rogue '$CUT'/1 for Dogelog Player (Was: 5 Minutes Implementation of Prolog catch/3 and throw/1) Mild Shock <janburse@fastmail.fm> - 2026-09-17 15:08 +0200

csiph-web