Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

Natural laws have no pity.


devel / comp.lang.prolog / Re: 50 Years of Prolog Nonsense

SubjectAuthor
o 50 Years of Prolog NonsenseMostowski Collapse

1
Re: 50 Years of Prolog Nonsense

<a8f57e18-c3cf-4e3f-b589-29401db904d6n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=9920&group=comp.lang.prolog#9920

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:620a:2886:b0:699:bab7:ae78 with SMTP id j6-20020a05620a288600b00699bab7ae78mr8063310qkp.618.1650826024943;
Sun, 24 Apr 2022 11:47:04 -0700 (PDT)
X-Received: by 2002:a0d:fc45:0:b0:2eb:65c0:26f with SMTP id
m66-20020a0dfc45000000b002eb65c0026fmr14163038ywf.22.1650826024697; Sun, 24
Apr 2022 11:47:04 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!3.eu.feeder.erje.net!feeder.erje.net!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Sun, 24 Apr 2022 11:47:04 -0700 (PDT)
In-Reply-To: <4cf6cb3d-4215-4ac9-a4f7-c1be67849b55n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <db903ba2-8ccd-418e-bd18-a9eb381cd222n@googlegroups.com>
<f556f96e-c529-4fa7-a2aa-9e64914fa587n@googlegroups.com> <01cd804e-ed22-4bd5-becc-7e40d02355b3n@googlegroups.com>
<c657fedb-baea-4e8f-a0ec-31ef0dd40aadn@googlegroups.com> <e977c06f-7bc4-48b4-be84-819c9deee22bn@googlegroups.com>
<d6891d67-ac96-4ac2-b0a4-05eabd2c9196n@googlegroups.com> <22deb94e-8ea7-4186-b54c-f62acf6bfc21n@googlegroups.com>
<8480178f-c543-4991-8852-7fab3ae36513n@googlegroups.com> <7b455313-f626-4b28-91d3-815c97845f25n@googlegroups.com>
<7358eb33-9ac9-4594-97a4-68b9447459cfn@googlegroups.com> <stttcm$scdj$1@solani.org>
<94f2c74b-f639-43f7-b0a7-3fb19474b8b6n@googlegroups.com> <cffd0ca3-ae91-45c3-941d-357fbb16ea5cn@googlegroups.com>
<93d9c233-ebc8-41f0-bce9-134b89c1c6d1n@googlegroups.com> <cb4d0cda-50b3-4ad7-9af3-240a3582a064n@googlegroups.com>
<1d869c34-e4eb-4e93-898e-0b01f3ffb09dn@googlegroups.com> <cd6b0691-c25c-4867-917b-7d48340b2798n@googlegroups.com>
<fd44ed01-3f23-48ad-9035-ca3a02720ea0n@googlegroups.com> <6751a872-9893-4bb4-9fdf-f7491d1ba826n@googlegroups.com>
<627b1680-c118-4df7-bf0e-f7b1fb885e51n@googlegroups.com> <35a3e608-d22c-4606-9617-25681e7aec08n@googlegroups.com>
<26c9dce5-cd9d-4ee9-a6d1-f02c5ebeb84bn@googlegroups.com> <24fc2a11-ba45-4e95-8e00-9f9d030a9f2cn@googlegroups.com>
<1634fa1b-bb79-41a2-b3ea-78704adb3bc9n@googlegroups.com> <1e65b2ec-c913-47cc-8f48-c2d75ca8ebffn@googlegroups.com>
<46f1a6ed-b7cf-46ef-b743-385f73ee8bc8n@googlegroups.com> <4cf6cb3d-4215-4ac9-a4f7-c1be67849b55n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a8f57e18-c3cf-4e3f-b589-29401db904d6n@googlegroups.com>
Subject: Re: 50 Years of Prolog Nonsense
From: burse...@gmail.com (Mostowski Collapse)
Injection-Date: Sun, 24 Apr 2022 18:47:04 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 61
 by: Mostowski Collapse - Sun, 24 Apr 2022 18:47 UTC

Practically the example can be made run on most Prolog
systems by replacing call/1 by Vanilla Interpreter solve/1.
When I use this here:

solve(X=X).
solve(solve(A)) :- solve(A).
solve((A,B)) :- solve(A), solve(B).

I can run this query:

?- A=(1=1, solve(A)), solve(A).

Indefinitely. The test results are now:

SWI Prolog: Pass ✓
SICStus Prolog: Pass ✓
Formerly Jekejeke Prolog: Pass ✓
Dogelog Player: Pass ✓
Scryer Prolog: Pass ✓

Mostowski Collapse schrieb am Sonntag, 24. April 2022 um 14:32:07 UTC+2:
> There are many libraries that use meta calls. For example
> Bart Demoen et al. “Tor” and Ulrich Neumerkels “indexing dif”:
>
> Tor: Extensible Search with Hookable Disjunction
> https://www.swi-prolog.org/pack/list?p=tor
>
> Many Prolog programs are unnecessarily impure
> https://arxiv.org/abs/1607.01590
>
> But the issue needs of course be also examined for call/n
> and not only call/1. Currently Dogelog Player doesn’t have call/n,
> only call/1, so I don’t know. I also don’t know why it doesn’t
>
> work in formerly Jekejeke Prolog or in SWI-Prolog. In SWI-Prolog
> if you create a temporary clause, last call optimization could skip
> it, but you need also a mechanism to garbage collect it.
>
> In formerly Jekejeke Prolog I create a temporary half clause,
> only the body of a clause. I thought I made it so that it gets skip
> and garbage collected, maybe there is a bug somewhere.
> Mostowski Collapse schrieb am Samstag, 23. April 2022 um 22:57:29 UTC+2:
> > This could run for ever:
> >
> > ?- A=(1=1, call(A)), A.
> > But so far I find:
> >
> > SWI Prolog: Fail ✗
> > SICStus Prolog: Pass ✓
> > Formerly Jekejeke Prolog: Fail ✗
> > Dogelog Player: Pass ✓
> > Scryer Prolog: Fail ✗
> >
> > Maybe I can bring the same from Dogelog Player to formerly Jekejeke
> > Prolog as well? To see the Scryer Prolog Fail, you need to watch the
> > memory growing and growing.
> >
> > The other Prolog systems that do Pass have constant memory.


devel / comp.lang.prolog / Re: 50 Years of Prolog Nonsense

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor