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

Mild Shock <[email protected]>
Newsgroups comp.lang.python
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.