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


Groups > comp.lang.python > #198012

A rogue '$CUT'/1 for Dogelog Player (Was: 5 Minutes Implementation of Prolog catch/3 and throw/1)

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 A rogue '$CUT'/1 for Dogelog Player (Was: 5 Minutes Implementation of Prolog catch/3 and throw/1)
Date Thu, 17 Sep 2026 15:08:21 +0200
Message-ID <118goo5$bt0o$1@solani.org> (permalink)
References <11719ko$1cctk$2@solani.org> <117elhd$1lppc$5@solani.org> <1189aom$6r7i$3@solani.org>
MIME-Version 1.0
Content-Type text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding 8bit
Injection-Date Thu, 17 Sep 2026 13:08:21 -0000 (UTC)
Injection-Info solani.org; logging-data="390168"; 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:0NOXE5eYUmX+sUPkGQAhbvpgSEA=
X-User-ID eJwNyMEBwCAIA8CVBBKEcRBl/xHaex7NxXvD6eBwDIWu+/SxFHn0+SCyJWLnmYyeZpqU3Xv/D0gaV2GPhy5+YrAVUg==
In-Reply-To <1189aom$6r7i$3@solani.org>
Xref csiph.com comp.lang.python:198012

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. So far we only
provided once_cleanup/2 to deal with resource
managment. It turns out we could secure a
call_cleanup/2 through a simple mechanism.

Drawing on a phrasing in a BIM Prolog document
from 1984, we could implement the post-N215
semantics of call_cleanup/2. Since we had
eliminated the native stack use from catch/3,
we could again apply patterns of continuation
manipulation for events in the continuation.

Bye

See also:

A rogue ‘$CUT’/1 for Dogelog Player
https://medium.com/2989/f41c71265331

Mild Shock schrieb:
> 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

Back to comp.lang.python | Previous | Next — Previous 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