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


Groups > comp.lang.javascript > #124481

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

From Mild Shock <janburse@fastmail.fm>
Newsgroups comp.lang.javascript
Subject Re: 5 Minutes Implementation of Prolog catch/3 and throw/1 (Re: Dogelog in the Park: A Barriered Statechart Simulator)
Date 2026-09-17 15:09 +0200
Message-ID <118goqp$bt0o$2@solani.org> (permalink)
References <11719lu$1cctk$3@solani.org> <117elc4$1lppc$3@solani.org> <1189al8$6r7i$2@solani.org>

Show all headers | 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.javascript | 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
  Re: ANN: Dogelog Player 2.2.6 (π-WAM if-then-else) Mild Shock <janburse@fastmail.fm> - 2026-09-04 16:41 +0200
  Dogelog in the Park: A Barriered Statechart Simulator (Re: ANN: Dogelog Player 2.2.6 (π-WAM if-then-else)) Mild Shock <janburse@fastmail.fm> - 2026-09-04 16:42 +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:24 +0200
      Re: 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-17 15:09 +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:10 +0200

csiph-web