| Deutsch English Français Italiano |
|
<vn0gqt$dlcd$2@solani.org> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!news.nobody.at!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.prolog
Subject: Re: Is old school mode directed compilation dead? (Was: thank you for
the FLOPs)
Date: Fri, 24 Jan 2025 17:58:06 +0100
Message-ID: <vn0gqt$dlcd$2@solani.org>
References: <b406aa35-c39b-46f3-862f-1cc4b75143ae@googlegroups.com>
<1b7ce2bd-722b-4c2e-b853-12fc2232752bn@googlegroups.com>
<vb2jba$202pl$1@solani.org> <vc7mjb$9ptr$1@solani.org>
<vcelid$b5f1$3@solani.org> <vihokt$lrea$1@solani.org>
<vn0gpc$dlcd$1@solani.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 24 Jan 2025 16:58:05 -0000 (UTC)
Injection-Info: solani.org;
logging-data="447885"; mail-complaints-to="abuse@news.solani.org"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101
Firefox/128.0 SeaMonkey/2.53.20
Cancel-Lock: sha1:URD2FDI1Ni3EpYvtaOF2V0FBWgY=
X-User-ID: eJwFwQERADEIAzBL5VbKkMPD8C/hEz8ydVAu+voaMHXWqOtXSBY4r6kV7PbkBAh7W53dH06ksS0jBqeKPzfdFPE=
In-Reply-To: <vn0gpc$dlcd$1@solani.org>
Bytes: 4015
Lines: 90
Hi,
Would need more testing but the
present example is immune:
/* SWI-Prolog 9.3.19 */
?- X = f(g(1),h(2)), time((between(1,1000000,_), test1(X, Y), fail; true)).
% 1,999,998 inferences, 0.094 CPU in 0.100 seconds (93% CPU, 21333312 Lips)
?- X = f(g(1),h(2)), time((between(1,1000000,_), test2(X, Y), fail; true)).
% 1,999,998 inferences, 0.094 CPU in 0.100 seconds (93% CPU, 21333312 Lips)
?- Y = j(1,2), time((between(1,1000000,_), test1(X, Y), fail; true)).
% 1,999,998 inferences, 0.109 CPU in 0.100 seconds (109% CPU, 18285696 Lips)
?- Y = j(1,2), time((between(1,1000000,_), test2(X, Y), fail; true)).
% 1,999,998 inferences, 0.094 CPU in 0.102 seconds (92% CPU, 21333312 Lips)
Not all Prolog systems are that lucky:
/* Scryer Prolog 0.9.4-286 */
?- X = f(g(1),h(2)), time((between(1,1000000,_), test1(X, Y), fail; true)).
% CPU time: 1.163s, 11_000_108 inferences
?- X = f(g(1),h(2)), time((between(1,1000000,_), test2(X, Y), fail; true)).
% CPU time: 1.248s, 11_000_131 inferences
?- Y = j(1,2), time((between(1,1000000,_), test1(X, Y), fail; true)).
% CPU time: 0.979s, 11_000_131 inferences
?- Y = j(1,2), time((between(1,1000000,_), test2(X, Y), fail; true)).
% CPU time: 1.338s, 11_000_131 inferences
Bye
Mild Shock schrieb:
> Hi,
>
> Just noticed that SICStus Prolog says that
> their mode declaration is a dummy declaration,
> does nothing. Now I tried whether I can force
>
> SWI Prolog to accept different manually compiled clauses:
>
> test1(X,Y) :- Y = j(C,D), g(C) = A, h(D) = B, f(A,B) = X.
>
> test2(X,Y) :- X = f(A,B), A = g(C), B = h(D), j(C,D) = Y.
>
> Difficult to archive in SWI-Prolog, since it
> orders unification on its own, test1/2 and test2/2
> will behave the same, since they are essentially the same:
>
> /* SWI-Prolog 9.3.19 */
> ?- listing(test1/2), listing(test2/2).
> test1(f(A, B), j(C, D)) :-
> A=g(C),
> B=h(D).
>
> test2(f(A, B), j(C, D)) :-
> A=g(C),
> B=h(D).
>
> But maybe not necessary since SWI-Prolog has an
> advanced instruction set and advanced Prolog
> logical variable representation?
>
> Bye
>
> Mild Shock schrieb:
>> Hi,
>>
>> Given that Scryer Prolog is dead.
>> This made me smile, traces of Scryer Prolog
>>
>> are found in FLOPs 2024 proceedings:
>>
>> 7th International Symposium, FLOPS 2024,
>> Kumamoto, Japan, May 15–17, 2024, Proceedings
>> https://www.cs.ox.ac.uk/jeremy.gibbons/flops2024.pdf
>>
>> So why did it flop? Missing garbage collection
>> in the Prolog System? Or did or is it to estimate
>> that ChatGPT will also kill Scryer Prolog?
>>
>> Or simply a problem of using Rust as the
>> underlying host language?
>>
>> Bye
>
>