Path: csiph.com!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail From: Mild Shock Newsgroups: comp.lang.javascript Subject: The implementation of dif/2 with Open Trees (Was: ANN: Dogelog Player 2.3.2 (Schwartzian Transform)) Date: Tue, 6 Oct 2026 10:08:54 +0200 Message-ID: <11a2aam$tjgk$2@solani.org> References: <119dhjt$eoj6$3@solani.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Tue, 6 Oct 2026 08:08:54 -0000 (UTC) Injection-Info: solani.org; logging-data="970260"; 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:YQX9NGnr3+kmK88mabVnilgRbq0= X-User-ID: eJwFwQkBwDAIA0BLhZJQ5IzPv4Td4VJYbgQNi/3qVpeXkmEZaVL9Dho6wnOiVlLerOOjeaPdZDpD3wQ18QNhNRWd In-Reply-To: <119dhjt$eoj6$3@solani.org> Xref: csiph.com comp.lang.javascript:124487 Hi, In the following we show that P(purity) has currently almost zero probability, i.e that a Prolog system will provide the first pillar of purity, i.e. the dif/2 constraint. Even if a Prolog system can deal with a large number of dif/2 constraints, it might still fail the reclamation test. Testing Ulrich Neumerkels maplist(dif) problem with a time limit of 1000 ms, we found Trealla Prolog, EyeProlog and Scryer Prolog only approached N=1000. While SWI-Prolog and Dogelog Player climbed above N=1000000. Further a garbage collection test was only survived by Dogelog Player. Bye See also: The implementation of dif/2 with Open Trees https://medium.com/2989/6e2914596a0f Mild Shock schrieb: > Dear All, > > We are happy to announce a new > edition of the Dogelog Player: > > - Ehanced common: > Triggered by SWI-Prologs new built-ins, > we did a revision of library(cyclic) now > exposing term_minimal/2 and term_decompose/2. > Turns out we could also speed-up distinct/1 > and aggregate/3, by using term_minimal/2 > alone in the deduplication phase. And > then for aggregate/3 deploying a Schwartzian > Transform with term_decompose/2 in > the sorting phase. > > - Enhanced top-level: > We also did a revision of the top-level. > For example answer substitutions are now > shown more compact, so that a query X = f(A,Y), > Y = f(B,X) can keep its shape. Further > the debugger now uses the visibility rules > of listing/[0,1]. Even overriding the > provenance of goals arguments and only > prompting in case they branch back > into user clauses. > > - New undo/1: > Realizing the analogue to our recent rogue > '$CUT'/1 for cleanup goals, this time not > scanning the choice points but the variable > trail to find undo goals, we could arrive > at a undo/1. Because of atomicity concerns, > its not directly exposed, and subsequently > the user facing API has now new set_arg/3 > and setup_undo/2 only. > > Have Fun! > > Jan Burse, September 28, 2026, https://www.herbrand.ai/