Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.prolog > #14859 > unrolled thread
| Started by | Mild Shock <janburse@fastmail.fm> |
|---|---|
| First post | 2025-09-28 08:57 +0200 |
| Last post | 2026-01-30 02:10 +0100 |
| Articles | 17 — 1 participant |
Back to article view | Back to comp.lang.prolog
Who will win the new Prolog race? SWI or Scryer? Mild Shock <janburse@fastmail.fm> - 2025-09-28 08:57 +0200
The only problem is, Rust is shiiiit (Was: Who will win the new Prolog race? SWI or Scryer?) Mild Shock <janburse@fastmail.fm> - 2025-09-28 09:01 +0200
Recent hybrid: Python beats Rust (Was: The only problem is, Rust is shiiiit) Mild Shock <janburse@fastmail.fm> - 2025-09-28 09:13 +0200
Trealla drastically beats Scryer [Jaffar's Algorithm] (Re: Who will win the new Prolog race? SWI or Scryer? Mild Shock <janburse@fastmail.fm> - 2025-09-29 12:19 +0200
Boris the Loris and the American Fuzzy Lop (Was: Trealla drastically beats Scryer [Jaffar's Algorithm]) Mild Shock <janburse@fastmail.fm> - 2025-09-29 12:54 +0200
Was Boris living under a rock, how many Fuzzy Testing tools? (Was: Boris the Loris and the American Fuzzy Lop) Mild Shock <janburse@fastmail.fm> - 2025-09-29 12:59 +0200
Not a Nazi-Retard, maybe a payed Troll on Putins payroll (Was: Was Boris living under a rock, how many Fuzzy Testing tools?) Mild Shock <janburse@fastmail.fm> - 2025-09-29 13:07 +0200
Boris / EricGT: Why dont you tap into TAP? (Was: Boris the Loris and the American Fuzzy Lop) Mild Shock <janburse@fastmail.fm> - 2025-11-18 23:00 +0100
Closing the abstract interpretation GAP (Re: Boris / EricGT: Why dont you tap into TAP?) Mild Shock <janburse@fastmail.fm> - 2025-11-18 23:12 +0100
Fast, but not correct implementation (Was: Trealla drastically beats Scryer [Jaffar's Algorithm]) Mild Shock <janburse@fastmail.fm> - 2025-09-30 21:39 +0200
Boris the Loris saw it all comming [Weak Prolog Community] (Was: Fast, but not correct implementation) Mild Shock <janburse@fastmail.fm> - 2025-09-30 21:53 +0200
War between Scryer Prolog and Ciao Prolog [9:0 Triska vs Hermenegildo] (Was: Who will win the new Prolog race? SWI or Scryer?) Mild Shock <janburse@fastmail.fm> - 2025-11-19 12:49 +0100
Useless as the Thirty Years War / Generalized Facts (Was: War between Scryer Prolog and Ciao Prolog) Mild Shock <janburse@fastmail.fm> - 2025-11-19 13:11 +0100
The Guerilla tactics of SWI are amazing: Shell India? (Was: Who will win the new Prolog race? SWI or Scryer?) Mild Shock <janburse@fastmail.fm> - 2025-11-24 15:22 +0100
The SWI7 exotism (dicts, etc..) has no value? (Was: The Guerilla tactics of SWI are amazing: Shell India?) Mild Shock <janburse@fastmail.fm> - 2025-11-24 15:41 +0100
My new TinyCLP is much faster [100% Prolog] (Was: The SWI7 exotism (dicts, etc..) has no value?) Mild Shock <janburse@fastmail.fm> - 2025-11-24 21:27 +0100
Railgun CLP versus Scryer Prolog [Euler #30 Variant] (Was: Who will win the new Prolog race?) Mild Shock <janburse@fastmail.fm> - 2026-01-30 02:10 +0100
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2025-09-28 08:57 +0200 |
| Subject | Who will win the new Prolog race? SWI or Scryer? |
| Message-ID | <10bam8b$6mq5$1@solani.org> |
Hi, Who will win the new Prolog race? SWI or Scryer? Is it enough that SWI-Prolog has teamed up with Ciao Prolog? What about resources that really can code a Prolog systems. SWI-Prolog is now doomed to have professional moron Julio Di Egidio on board. Not sure whether he will ever become a heavy committer to SWI-Prolog source. But who knows, we should also give Julio Di Egidio a chance. My gut feeling at the moment: - SWI-Prolog: Pull Requests 10 Open / 560 Closed - Scryer Prolog: Pull Requests 40 Open / 751 Closed In the past I would measure active committers. But the new "liveness" indicator of a Prolog system could be indeed Pull Requests. So who will win? P.S.: Data sources: https://github.com/mthom/scryer-prolog/pulls https://github.com/SWI-Prolog/swipl-devel/pulls
[toc] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2025-09-28 09:01 +0200 |
| Subject | The only problem is, Rust is shiiiit (Was: Who will win the new Prolog race? SWI or Scryer?) |
| Message-ID | <10bamfs$6n1a$1@solani.org> |
| In reply to | #14859 |
Hi, The only problem is Rust is shiiiit. At least some argument about precise garbage collection induced by immediate malloc / free doesn't strike me as convincing. Many modern programming languages don't use the malloc / free paradigma for memory management. You don't get automatically pause free systems when relying on malloc / free. It can be even worse. I have seen browsers that take a while to close a window because they did synchrously release all the resources of a window. So there is a fallacy involved in all believes that immediate malloc / free leads to pause free systems, it can be even worse. Bye Mild Shock schrieb: > Hi, > > Who will win the new Prolog race? > SWI or Scryer? Is it enough that SWI-Prolog > has teamed up with Ciao Prolog? > > What about resources that really can > code a Prolog systems. SWI-Prolog is > now doomed to have professional moron > > Julio Di Egidio on board. Not sure whether > he will ever become a heavy committer to > SWI-Prolog source. But who knows, we should > > also give Julio Di Egidio a chance. My > gut feeling at the moment: > > - SWI-Prolog: > Pull Requests 10 Open / 560 Closed > > - Scryer Prolog: > Pull Requests 40 Open / 751 Closed > > In the past I would measure active committers. > But the new "liveness" indicator of a Prolog > system could be indeed Pull Requests. > > So who will win? > > P.S.: Data sources: > > https://github.com/mthom/scryer-prolog/pulls > > https://github.com/SWI-Prolog/swipl-devel/pulls >
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2025-09-28 09:13 +0200 |
| Subject | Recent hybrid: Python beats Rust (Was: The only problem is, Rust is shiiiit) |
| Message-ID | <10ban7q$6ncu$1@solani.org> |
| In reply to | #14860 |
Hi, Yesterday I did again some testing of the unification algorithm. Somehow Scryer is also a moving target, so my measurement for Scryer Prolog has somehow changed. Possibly because I changed the test cases a little bit, used the (\+ \+) to have different scenarios. But with the new hybrid prototype from yesterday it shows for bisimulation (=)/2 resp (==)/2 and the N = 1’048’576 test case: Hybrid Solution Test Java JavaScript Python Scryer (=)/2 99 115 469 132 (==)/2 68 71 140 127 Ok, the Python almost beats Rust, was exaggerating for the effect, and only for (==)/2, we have still 140 > 127. And otherwise for (=)/2 its drastic 469 > 132. Not sure what is going on in the (=)/2, why Python is so slow. On the other hand Java and JavaScript run away from Rust, are better in my implementation if bisimulation and Jaffar's Unification, not significantly, but noticeable I suspect. Bye Mild Shock schrieb: > Hi, > > The only problem is Rust is shiiiit. > At least some argument about precise > garbage collection induced by immediate > > malloc / free doesn't strike me as > convincing. Many modern programming > languages don't use the malloc / free > > paradigma for memory management. You > don't get automatically pause free > systems when relying on malloc / free. > > It can be even worse. I have seen browsers > that take a while to close a window > because they did synchrously release all > > the resources of a window. So there > is a fallacy involved in all believes that > immediate malloc / free leads to pause > > free systems, it can be even worse. > > Bye > > Mild Shock schrieb: >> Hi, >> >> Who will win the new Prolog race? >> SWI or Scryer? Is it enough that SWI-Prolog >> has teamed up with Ciao Prolog? >> >> What about resources that really can >> code a Prolog systems. SWI-Prolog is >> now doomed to have professional moron >> >> Julio Di Egidio on board. Not sure whether >> he will ever become a heavy committer to >> SWI-Prolog source. But who knows, we should >> >> also give Julio Di Egidio a chance. My >> gut feeling at the moment: >> >> - SWI-Prolog: >> Pull Requests 10 Open / 560 Closed >> >> - Scryer Prolog: >> Pull Requests 40 Open / 751 Closed >> >> In the past I would measure active committers. >> But the new "liveness" indicator of a Prolog >> system could be indeed Pull Requests. >> >> So who will win? >> >> P.S.: Data sources: >> >> https://github.com/mthom/scryer-prolog/pulls >> >> https://github.com/SWI-Prolog/swipl-devel/pulls >> >
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2025-09-29 12:19 +0200 |
| Subject | Trealla drastically beats Scryer [Jaffar's Algorithm] (Re: Who will win the new Prolog race? SWI or Scryer? |
| Message-ID | <10bdmf8$8gn7$1@solani.org> |
| In reply to | #14859 |
Hi,
Now I have the feeling that Trealla implements
the extreme of Jaffar's Unification, to the extend
that it keeps and trails functor linking? Was
studying the source of Trealla . Have also the
impression that it uses a very large native stack.
Is this trailing what gave it the name Trealla,
despite the geographic beach location with such a name ?
BTW: I have new benchmark results (*) = Dogelog:
Test | Java (*) | JavaScript (*) | Python (*) | Scryer | Trealla
-- | -- | -- | -- | -- | --
(=)/2 | 184 | 514 | 1750 | 210 | 53
unify_with_occurs_check/2 | 213 | 601 | 2344 | N/A | 53
(==)/2 | 95 | 227 | 1265 | 250 | 65
compare/3 | 86 | 221 | 1328 | 250 | 65
copy_term/2 | 409 | 589 | 2579 | 108 | N/A
term_variables/2 | 168 | 318 | 1469 | 166 | 90
ground/1 | 40 | 120 | 516 | 70 | 121
acyclic_term/1 | 129 | 290 | 1281 | 386 | N/A
numbervars/3 | 170 | 327 | 1516 | 164 | 100
Pitty `copy_term/2` and `acyclic_term/1` do not
yet work with a hydra example.
I am using a hydra variant, which puts less
pressure on the memory, but does benchmark
the built-ins in a loop, so that I see some
numbers. My problem was that Trealla was
below the 1 ms mesurememt:
```
hydra(0, _) :- !.
hydra(N, h(X, X)) :- N > 0, N0 is N-1, hydra(N0, X).
hydra(0, A, A) :- !.
hydra(N, h(X, X), A) :- N > 0, N0 is N-1, hydra(N0, X, A).
/* Binary Built-ins */
bench :-
hydra(65536, X), hydra(65536, Y, Y),
time((between(1,64,_), X = Y, fail; true)),
time((between(1,64,_), unify_with_occurs_check(X, Y), fail; true)),
time((between(1,64,_), X == Y, fail; true)),
time((between(1,64,_), compare(_, X, Y), fail; true)), fail; true.
/* Unary Built-ins */
bench2 :-
hydra(65536, X), hydra(65536, Y, Y),
time((between(1,64,_), copy_term(X-Y,_), fail; true)),
time((between(1,64,_), term_variables(X-Y,_), fail; true)),
time((between(1,64,_), ground(X-Y), fail; true)),
time((between(1,64,_), acyclic_term(X-Y), fail; true)),
fail; true.
/* Misc Built-ins */
bench3 :-
hydra(65536, X), hydra(65536, Y, Y),
time((between(1,64,_), numbervars(X-Y,0,_), fail; true)),
fail; true.
```
Bye
Mild Shock schrieb:
> Hi,
>
> Who will win the new Prolog race?
> SWI or Scryer? Is it enough that SWI-Prolog
> has teamed up with Ciao Prolog?
>
> What about resources that really can
> code a Prolog systems. SWI-Prolog is
> now doomed to have professional moron
>
> Julio Di Egidio on board. Not sure whether
> he will ever become a heavy committer to
> SWI-Prolog source. But who knows, we should
>
> also give Julio Di Egidio a chance. My
> gut feeling at the moment:
>
> - SWI-Prolog:
> Pull Requests 10 Open / 560 Closed
>
> - Scryer Prolog:
> Pull Requests 40 Open / 751 Closed
>
> In the past I would measure active committers.
> But the new "liveness" indicator of a Prolog
> system could be indeed Pull Requests.
>
> So who will win?
>
> P.S.: Data sources:
>
> https://github.com/mthom/scryer-prolog/pulls
>
> https://github.com/SWI-Prolog/swipl-devel/pulls
>
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2025-09-29 12:54 +0200 |
| Subject | Boris the Loris and the American Fuzzy Lop (Was: Trealla drastically beats Scryer [Jaffar's Algorithm]) |
| Message-ID | <10bdoha$8i14$1@solani.org> |
| In reply to | #14864 |
Hi, Information for Boris the Loris, chief grammar Nazi of SWI-Prolog discourse. Here is a summary of my No Fuzz(y) declaration for the Trealla & Co. benchmarking from my previous post: - No fuzzy logic involved. Its all binary. - No fuzzy testing involved. Its all manual testing. - No fuzz testing involved. See above fuzzy testig. - No fuzzing test involved. See above fuzzy testig. What about the American Fuzzy Lop (AFL), a free software fuzzer: https://en.wikipedia.org/wiki/American_Fuzzy_Lop_%28software%29 Or was a breed of rabbit, by the the name American Fuzzy Lop involved? https://en.wikipedia.org/wiki/American_Fuzzy_Lop No neither of the 2 AFLs were involved. Bye Mild Shock schrieb: > Hi, > > Now I have the feeling that Trealla implements > the extreme of Jaffar's Unification, to the extend > that it keeps and trails functor linking? Was > > studying the source of Trealla . Have also the > impression that it uses a very large native stack. > Is this trailing what gave it the name Trealla, > > despite the geographic beach location with such a name ? > BTW: I have new benchmark results (*) = Dogelog: > > Test | Java (*) | JavaScript (*) | Python (*) | Scryer | Trealla > -- | -- | -- | -- | -- | -- > (=)/2 | 184 | 514 | 1750 | 210 | 53 > unify_with_occurs_check/2 | 213 | 601 | 2344 | N/A | 53 > (==)/2 | 95 | 227 | 1265 | 250 | 65 > compare/3 | 86 | 221 | 1328 | 250 | 65 > copy_term/2 | 409 | 589 | 2579 | 108 | N/A > term_variables/2 | 168 | 318 | 1469 | 166 | 90 > ground/1 | 40 | 120 | 516 | 70 | 121 > acyclic_term/1 | 129 | 290 | 1281 | 386 | N/A > numbervars/3 | 170 | 327 | 1516 | 164 | 100 > > Pitty `copy_term/2` and `acyclic_term/1` do not > yet work with a hydra example. > > I am using a hydra variant, which puts less > pressure on the memory, but does benchmark > the built-ins in a loop, so that I see some > > numbers. My problem was that Trealla was > below the 1 ms mesurememt: > ``` > hydra(0, _) :- !. > hydra(N, h(X, X)) :- N > 0, N0 is N-1, hydra(N0, X). > > hydra(0, A, A) :- !. > hydra(N, h(X, X), A) :- N > 0, N0 is N-1, hydra(N0, X, A). > > /* Binary Built-ins */ > bench :- > hydra(65536, X), hydra(65536, Y, Y), > time((between(1,64,_), X = Y, fail; true)), > time((between(1,64,_), unify_with_occurs_check(X, Y), fail; true)), > time((between(1,64,_), X == Y, fail; true)), > time((between(1,64,_), compare(_, X, Y), fail; true)), fail; true. > > /* Unary Built-ins */ > bench2 :- > hydra(65536, X), hydra(65536, Y, Y), > time((between(1,64,_), copy_term(X-Y,_), fail; true)), > time((between(1,64,_), term_variables(X-Y,_), fail; true)), > time((between(1,64,_), ground(X-Y), fail; true)), > time((between(1,64,_), acyclic_term(X-Y), fail; true)), > fail; true. > > /* Misc Built-ins */ > bench3 :- > hydra(65536, X), hydra(65536, Y, Y), > time((between(1,64,_), numbervars(X-Y,0,_), fail; true)), > fail; true. > ``` > Bye > > Mild Shock schrieb: >> Hi, >> >> Who will win the new Prolog race? >> SWI or Scryer? Is it enough that SWI-Prolog >> has teamed up with Ciao Prolog? >> >> What about resources that really can >> code a Prolog systems. SWI-Prolog is >> now doomed to have professional moron >> >> Julio Di Egidio on board. Not sure whether >> he will ever become a heavy committer to >> SWI-Prolog source. But who knows, we should >> >> also give Julio Di Egidio a chance. My >> gut feeling at the moment: >> >> - SWI-Prolog: >> Pull Requests 10 Open / 560 Closed >> >> - Scryer Prolog: >> Pull Requests 40 Open / 751 Closed >> >> In the past I would measure active committers. >> But the new "liveness" indicator of a Prolog >> system could be indeed Pull Requests. >> >> So who will win? >> >> P.S.: Data sources: >> >> https://github.com/mthom/scryer-prolog/pulls >> >> https://github.com/SWI-Prolog/swipl-devel/pulls >> >
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2025-09-29 12:59 +0200 |
| Subject | Was Boris living under a rock, how many Fuzzy Testing tools? (Was: Boris the Loris and the American Fuzzy Lop) |
| Message-ID | <10bdoq2$8i3s$1@solani.org> |
| In reply to | #14865 |
Hi, Was Boris living under a rock, maybe on the moon in a secret Nazi Facility? Who knows, maybe he was in another facility, some kind of mental asylum, until he was hired by SWI-Prolog. How many Fuzzy Testing tools are there? Actually plenty: http://fuzzing-survey.org/ Some excerpt: Creal FishFuzz ParmeSan WindRanger loFuzz UAFL HAFL MobFuzz WINNIE CAFL DynSQL MirageFuzz IRFU PhyFu NestFuzz AMPFuzz MC2 AIFORE IPEA-Fuzz FuzzlnMem CarpetFuzz JIGSAW YARPGen PDGF BEACON Mallory Fuzz LLM-Fuzzer FAST DAFL OddFuzz KRAKEN CDFUZ7 MALinten+ ChatAFL TWINFUZ7 DeepGo xFUZZ FreeWavm Halo Select Titan Etc... Bye Mild Shock schrieb: > Hi, > > Information for Boris the Loris, chief grammar > Nazi of SWI-Prolog discourse. Here is a summary > of my No Fuzz(y) declaration for the > > Trealla & Co. benchmarking from my previous post: > > - No fuzzy logic involved. > Its all binary. > > - No fuzzy testing involved. > Its all manual testing. > > - No fuzz testing involved. > See above fuzzy testig. > > - No fuzzing test involved. > See above fuzzy testig. > > What about the American Fuzzy Lop (AFL), > a free software fuzzer: > > https://en.wikipedia.org/wiki/American_Fuzzy_Lop_%28software%29 > > Or was a breed of rabbit, by the > the name American Fuzzy Lop involved? > > https://en.wikipedia.org/wiki/American_Fuzzy_Lop > > No neither of the 2 AFLs were involved. > > Bye > > Mild Shock schrieb: >> Hi, >> >> Now I have the feeling that Trealla implements >> the extreme of Jaffar's Unification, to the extend >> that it keeps and trails functor linking? Was >> >> studying the source of Trealla . Have also the >> impression that it uses a very large native stack. >> Is this trailing what gave it the name Trealla, >> >> despite the geographic beach location with such a name ? >> BTW: I have new benchmark results (*) = Dogelog: >> >> Test | Java (*) | JavaScript (*) | Python (*) | Scryer | Trealla >> -- | -- | -- | -- | -- | -- >> (=)/2 | 184 | 514 | 1750 | 210 | 53 >> unify_with_occurs_check/2 | 213 | 601 | 2344 | N/A | 53 >> (==)/2 | 95 | 227 | 1265 | 250 | 65 >> compare/3 | 86 | 221 | 1328 | 250 | 65 >> copy_term/2 | 409 | 589 | 2579 | 108 | N/A >> term_variables/2 | 168 | 318 | 1469 | 166 | 90 >> ground/1 | 40 | 120 | 516 | 70 | 121 >> acyclic_term/1 | 129 | 290 | 1281 | 386 | N/A >> numbervars/3 | 170 | 327 | 1516 | 164 | 100 >> >> Pitty `copy_term/2` and `acyclic_term/1` do not >> yet work with a hydra example. >> >> I am using a hydra variant, which puts less >> pressure on the memory, but does benchmark >> the built-ins in a loop, so that I see some >> >> numbers. My problem was that Trealla was >> below the 1 ms mesurememt: >> ``` >> hydra(0, _) :- !. >> hydra(N, h(X, X)) :- N > 0, N0 is N-1, hydra(N0, X). >> >> hydra(0, A, A) :- !. >> hydra(N, h(X, X), A) :- N > 0, N0 is N-1, hydra(N0, X, A). >> >> /* Binary Built-ins */ >> bench :- >> hydra(65536, X), hydra(65536, Y, Y), >> time((between(1,64,_), X = Y, fail; true)), >> time((between(1,64,_), unify_with_occurs_check(X, Y), fail; true)), >> time((between(1,64,_), X == Y, fail; true)), >> time((between(1,64,_), compare(_, X, Y), fail; true)), fail; true. >> >> /* Unary Built-ins */ >> bench2 :- >> hydra(65536, X), hydra(65536, Y, Y), >> time((between(1,64,_), copy_term(X-Y,_), fail; true)), >> time((between(1,64,_), term_variables(X-Y,_), fail; true)), >> time((between(1,64,_), ground(X-Y), fail; true)), >> time((between(1,64,_), acyclic_term(X-Y), fail; true)), >> fail; true. >> >> /* Misc Built-ins */ >> bench3 :- >> hydra(65536, X), hydra(65536, Y, Y), >> time((between(1,64,_), numbervars(X-Y,0,_), fail; true)), >> fail; true. >> ``` >> Bye >> >> Mild Shock schrieb: >>> Hi, >>> >>> Who will win the new Prolog race? >>> SWI or Scryer? Is it enough that SWI-Prolog >>> has teamed up with Ciao Prolog? >>> >>> What about resources that really can >>> code a Prolog systems. SWI-Prolog is >>> now doomed to have professional moron >>> >>> Julio Di Egidio on board. Not sure whether >>> he will ever become a heavy committer to >>> SWI-Prolog source. But who knows, we should >>> >>> also give Julio Di Egidio a chance. My >>> gut feeling at the moment: >>> >>> - SWI-Prolog: >>> Pull Requests 10 Open / 560 Closed >>> >>> - Scryer Prolog: >>> Pull Requests 40 Open / 751 Closed >>> >>> In the past I would measure active committers. >>> But the new "liveness" indicator of a Prolog >>> system could be indeed Pull Requests. >>> >>> So who will win? >>> >>> P.S.: Data sources: >>> >>> https://github.com/mthom/scryer-prolog/pulls >>> >>> https://github.com/SWI-Prolog/swipl-devel/pulls >>> >> >
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2025-09-29 13:07 +0200 |
| Subject | Not a Nazi-Retard, maybe a payed Troll on Putins payroll (Was: Was Boris living under a rock, how many Fuzzy Testing tools?) |
| Message-ID | <10bdpa5$8iek$1@solani.org> |
| In reply to | #14866 |
Hi, Maybe Boris the Loris is even not a Nazi-Retard. Maybe he is a payed Troll on Putins payroll? Similarly Julio Di Egidio, all his posts indicate some radical anti-capitalist stance, mostlikely just a romantic communist that exist in the thousands in Italy, and other south European countries. Bye Mild Shock schrieb: > Hi, > > Was Boris living under a rock, maybe on > the moon in a secret Nazi Facility? > > Who knows, maybe he was in another facility, > some kind of mental asylum, until he was > > hired by SWI-Prolog. How many Fuzzy Testing > tools are there? Actually plenty: > > http://fuzzing-survey.org/ > > Some excerpt: > > Creal > FishFuzz > ParmeSan > WindRanger > loFuzz > UAFL > HAFL > MobFuzz > WINNIE > CAFL > DynSQL > MirageFuzz > IRFU > PhyFu > NestFuzz > AMPFuzz > MC2 > AIFORE > IPEA-Fuzz > FuzzlnMem > CarpetFuzz > JIGSAW > YARPGen > PDGF > BEACON > Mallory > Fuzz > LLM-Fuzzer > FAST > DAFL > OddFuzz > KRAKEN > CDFUZ7 > MALinten+ > ChatAFL > TWINFUZ7 > DeepGo > xFUZZ > FreeWavm > Halo > Select > Titan > Etc... > > Bye > > Mild Shock schrieb: >> Hi, >> >> Information for Boris the Loris, chief grammar >> Nazi of SWI-Prolog discourse. Here is a summary >> of my No Fuzz(y) declaration for the >> >> Trealla & Co. benchmarking from my previous post: >> >> - No fuzzy logic involved. >> Its all binary. >> >> - No fuzzy testing involved. >> Its all manual testing. >> >> - No fuzz testing involved. >> See above fuzzy testig. >> >> - No fuzzing test involved. >> See above fuzzy testig. >> >> What about the American Fuzzy Lop (AFL), >> a free software fuzzer: >> >> https://en.wikipedia.org/wiki/American_Fuzzy_Lop_%28software%29 >> >> Or was a breed of rabbit, by the >> the name American Fuzzy Lop involved? >> >> https://en.wikipedia.org/wiki/American_Fuzzy_Lop >> >> No neither of the 2 AFLs were involved. >> >> Bye >> >> Mild Shock schrieb: >>> Hi, >>> >>> Now I have the feeling that Trealla implements >>> the extreme of Jaffar's Unification, to the extend >>> that it keeps and trails functor linking? Was >>> >>> studying the source of Trealla . Have also the >>> impression that it uses a very large native stack. >>> Is this trailing what gave it the name Trealla, >>> >>> despite the geographic beach location with such a name ? >>> BTW: I have new benchmark results (*) = Dogelog: >>> >>> Test | Java (*) | JavaScript (*) | Python (*) | Scryer | Trealla >>> -- | -- | -- | -- | -- | -- >>> (=)/2 | 184 | 514 | 1750 | 210 | 53 >>> unify_with_occurs_check/2 | 213 | 601 | 2344 | N/A | 53 >>> (==)/2 | 95 | 227 | 1265 | 250 | 65 >>> compare/3 | 86 | 221 | 1328 | 250 | 65 >>> copy_term/2 | 409 | 589 | 2579 | 108 | N/A >>> term_variables/2 | 168 | 318 | 1469 | 166 | 90 >>> ground/1 | 40 | 120 | 516 | 70 | 121 >>> acyclic_term/1 | 129 | 290 | 1281 | 386 | N/A >>> numbervars/3 | 170 | 327 | 1516 | 164 | 100 >>> >>> Pitty `copy_term/2` and `acyclic_term/1` do not >>> yet work with a hydra example. >>> >>> I am using a hydra variant, which puts less >>> pressure on the memory, but does benchmark >>> the built-ins in a loop, so that I see some >>> >>> numbers. My problem was that Trealla was >>> below the 1 ms mesurememt: >>> ``` >>> hydra(0, _) :- !. >>> hydra(N, h(X, X)) :- N > 0, N0 is N-1, hydra(N0, X). >>> >>> hydra(0, A, A) :- !. >>> hydra(N, h(X, X), A) :- N > 0, N0 is N-1, hydra(N0, X, A). >>> >>> /* Binary Built-ins */ >>> bench :- >>> hydra(65536, X), hydra(65536, Y, Y), >>> time((between(1,64,_), X = Y, fail; true)), >>> time((between(1,64,_), unify_with_occurs_check(X, Y), fail; true)), >>> time((between(1,64,_), X == Y, fail; true)), >>> time((between(1,64,_), compare(_, X, Y), fail; true)), fail; true. >>> >>> /* Unary Built-ins */ >>> bench2 :- >>> hydra(65536, X), hydra(65536, Y, Y), >>> time((between(1,64,_), copy_term(X-Y,_), fail; true)), >>> time((between(1,64,_), term_variables(X-Y,_), fail; true)), >>> time((between(1,64,_), ground(X-Y), fail; true)), >>> time((between(1,64,_), acyclic_term(X-Y), fail; true)), >>> fail; true. >>> >>> /* Misc Built-ins */ >>> bench3 :- >>> hydra(65536, X), hydra(65536, Y, Y), >>> time((between(1,64,_), numbervars(X-Y,0,_), fail; true)), >>> fail; true. >>> ``` >>> Bye >>> >>> Mild Shock schrieb: >>>> Hi, >>>> >>>> Who will win the new Prolog race? >>>> SWI or Scryer? Is it enough that SWI-Prolog >>>> has teamed up with Ciao Prolog? >>>> >>>> What about resources that really can >>>> code a Prolog systems. SWI-Prolog is >>>> now doomed to have professional moron >>>> >>>> Julio Di Egidio on board. Not sure whether >>>> he will ever become a heavy committer to >>>> SWI-Prolog source. But who knows, we should >>>> >>>> also give Julio Di Egidio a chance. My >>>> gut feeling at the moment: >>>> >>>> - SWI-Prolog: >>>> Pull Requests 10 Open / 560 Closed >>>> >>>> - Scryer Prolog: >>>> Pull Requests 40 Open / 751 Closed >>>> >>>> In the past I would measure active committers. >>>> But the new "liveness" indicator of a Prolog >>>> system could be indeed Pull Requests. >>>> >>>> So who will win? >>>> >>>> P.S.: Data sources: >>>> >>>> https://github.com/mthom/scryer-prolog/pulls >>>> >>>> https://github.com/SWI-Prolog/swipl-devel/pulls >>>> >>> >> >
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2025-11-18 23:00 +0100 |
| Subject | Boris / EricGT: Why dont you tap into TAP? (Was: Boris the Loris and the American Fuzzy Lop) |
| Message-ID | <10fiqaa$8391$1@solani.org> |
| In reply to | #14865 |
Hi, Now my post is gone, still nobody knows how fuzzy testing works in logic programming: Using SWI-Prolog PLUnit for Fuzzy Testing - Nice to know https://swi-prolog.discourse.group/t/using-swi-prolog-plunit-for-fuzzy-testing/9220 Instead some bogus claim by EricGT, that coverage would make it better. I even don't understand what he wants to say, was this written by an early Chat GPT-2 ? Is this even English? The issue emerged when using code coverage (via library(prolog_coverage)) alongside a comprehensive set of unit tests (in a *.plt file, also generated by the LLM), while aiming for 100% code coverage of a knowledge base built with library(persistency). Without striving for full coverage, the problem likely wouldn’t have been detected so quickly. https://swi-prolog.discourse.group/t/llm-generated-code-with-hallucinated-predicate-options/9391 Code coverage only measures reached code locations, the typical tools doesn't measure the call value patterns, of the invoke procedures, the SWI-Prolog tooling for logic programming isn't any different. You only see some call counts of the Byrd Box model ports. Which says practialy not about an example such as option value [access(readonly)]. Bye P.S.: Hey EricGT and Boris, why dont you tap into TAP? Since 2007, the Test and Proof (TAP) conference has long been a leading venue for research on the intersection of dynamic analyses, in particular software testing, and formal verification. https://conf.researchr.org/track/fm-2026/fm-2026-tap Mild Shock schrieb: > Hi, > > Information for Boris the Loris, chief grammar > Nazi of SWI-Prolog discourse. Here is a summary > of my No Fuzz(y) declaration for the > > Trealla & Co. benchmarking from my previous post: > > - No fuzzy logic involved. > Its all binary. > > - No fuzzy testing involved. > Its all manual testing. > > - No fuzz testing involved. > See above fuzzy testig. > > - No fuzzing test involved. > See above fuzzy testig. > > What about the American Fuzzy Lop (AFL), > a free software fuzzer: > > https://en.wikipedia.org/wiki/American_Fuzzy_Lop_%28software%29 > > Or was a breed of rabbit, by the > the name American Fuzzy Lop involved? > > https://en.wikipedia.org/wiki/American_Fuzzy_Lop > > No neither of the 2 AFLs were involved. > > Bye > > Mild Shock schrieb: >> Hi, >> >> Now I have the feeling that Trealla implements >> the extreme of Jaffar's Unification, to the extend >> that it keeps and trails functor linking? Was >> >> studying the source of Trealla . Have also the >> impression that it uses a very large native stack. >> Is this trailing what gave it the name Trealla, >> >> despite the geographic beach location with such a name ? >> BTW: I have new benchmark results (*) = Dogelog: >> >> Test | Java (*) | JavaScript (*) | Python (*) | Scryer | Trealla >> -- | -- | -- | -- | -- | -- >> (=)/2 | 184 | 514 | 1750 | 210 | 53 >> unify_with_occurs_check/2 | 213 | 601 | 2344 | N/A | 53 >> (==)/2 | 95 | 227 | 1265 | 250 | 65 >> compare/3 | 86 | 221 | 1328 | 250 | 65 >> copy_term/2 | 409 | 589 | 2579 | 108 | N/A >> term_variables/2 | 168 | 318 | 1469 | 166 | 90 >> ground/1 | 40 | 120 | 516 | 70 | 121 >> acyclic_term/1 | 129 | 290 | 1281 | 386 | N/A >> numbervars/3 | 170 | 327 | 1516 | 164 | 100 >> >> Pitty `copy_term/2` and `acyclic_term/1` do not >> yet work with a hydra example. >> >> I am using a hydra variant, which puts less >> pressure on the memory, but does benchmark >> the built-ins in a loop, so that I see some >> >> numbers. My problem was that Trealla was >> below the 1 ms mesurememt: >> ``` >> hydra(0, _) :- !. >> hydra(N, h(X, X)) :- N > 0, N0 is N-1, hydra(N0, X). >> >> hydra(0, A, A) :- !. >> hydra(N, h(X, X), A) :- N > 0, N0 is N-1, hydra(N0, X, A). >> >> /* Binary Built-ins */ >> bench :- >> hydra(65536, X), hydra(65536, Y, Y), >> time((between(1,64,_), X = Y, fail; true)), >> time((between(1,64,_), unify_with_occurs_check(X, Y), fail; true)), >> time((between(1,64,_), X == Y, fail; true)), >> time((between(1,64,_), compare(_, X, Y), fail; true)), fail; true. >> >> /* Unary Built-ins */ >> bench2 :- >> hydra(65536, X), hydra(65536, Y, Y), >> time((between(1,64,_), copy_term(X-Y,_), fail; true)), >> time((between(1,64,_), term_variables(X-Y,_), fail; true)), >> time((between(1,64,_), ground(X-Y), fail; true)), >> time((between(1,64,_), acyclic_term(X-Y), fail; true)), >> fail; true. >> >> /* Misc Built-ins */ >> bench3 :- >> hydra(65536, X), hydra(65536, Y, Y), >> time((between(1,64,_), numbervars(X-Y,0,_), fail; true)), >> fail; true. >> ``` >> Bye >> >> Mild Shock schrieb: >>> Hi, >>> >>> Who will win the new Prolog race? >>> SWI or Scryer? Is it enough that SWI-Prolog >>> has teamed up with Ciao Prolog? >>> >>> What about resources that really can >>> code a Prolog systems. SWI-Prolog is >>> now doomed to have professional moron >>> >>> Julio Di Egidio on board. Not sure whether >>> he will ever become a heavy committer to >>> SWI-Prolog source. But who knows, we should >>> >>> also give Julio Di Egidio a chance. My >>> gut feeling at the moment: >>> >>> - SWI-Prolog: >>> Pull Requests 10 Open / 560 Closed >>> >>> - Scryer Prolog: >>> Pull Requests 40 Open / 751 Closed >>> >>> In the past I would measure active committers. >>> But the new "liveness" indicator of a Prolog >>> system could be indeed Pull Requests. >>> >>> So who will win? >>> >>> P.S.: Data sources: >>> >>> https://github.com/mthom/scryer-prolog/pulls >>> >>> https://github.com/SWI-Prolog/swipl-devel/pulls >>> >> >
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2025-11-18 23:12 +0100 |
| Subject | Closing the abstract interpretation GAP (Re: Boris / EricGT: Why dont you tap into TAP?) |
| Message-ID | <10fir07$83mj$1@solani.org> |
| In reply to | #15026 |
Hi,
The lore if there were no abstract interpretation:
"To prove the correctness of a program is to demonstrate,
through impeccable mathematical techniques, that it has
no bugs. To test a program is to run it with the expectation
of discovering bugs. These two paths to software reliability
seem to diverge from the very start: if you have proved your
program correct, it is fruitless to comb it for bugs; and
if you are testing it, that surely must be a sign that you
have given up on any hope to prove its correctness.
Accordingly, proofs and tests have, since the onset of
software engineering research, been pursued by distinct
communities using different kinds of techniques and tools."
But there are verification techniques that work with
abstract interpretation, sometimes confusingly also
called predicate abstraction. Or the requirements and
environment assumptions might be based on simplifications,
the reflecting formally the reality in the wild. In the
end formal methods might not yield the same demonstration
power than one would expect from the above lore. So what
does the TAP conference offer:
Synergistic Techniques and Tools
Combination of model checking, theorem proving,
and runtime verification
Synergies between symbolic execution, fuzzing, and formal analysis
Test-case generation from formal specifications
Using test execution results to guide or automate proof discovery
Static analysis for test-suite reduction,
prioritization, and optimization
Verification-based and property-based testing
Formal methods for testing AI/ML-based systems
AI/ML techniques for enhancing formal verification and testing
Derivation of specifications and contracts from tests
Combination of static and dynamic analysis for
security vulnerability detection
Have Fun!
Bye
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2025-09-30 21:39 +0200 |
| Subject | Fast, but not correct implementation (Was: Trealla drastically beats Scryer [Jaffar's Algorithm]) |
| Message-ID | <10bhbkt$aqj2$1@solani.org> |
| In reply to | #14864 |
Hi,
Tricky problem, how validate unify_with_occurs_check/2 ?
If the two arguments S and T are acyclic terms, the
unify_with_occurs_check/2 can be simulated as follows:
/* simulation */
unify_with_occurs_check2(X, Y) :-
X = Y, acyclic_term(X).
It also shows that theoretically the problem can be
solved in quasi linear time, since (=)/2 is quasi linear
and acyclic_term/1 is linear.
Now I find that unify_with_occurs_check2/2 and
unify_with_occurs_check/2 do not agree in Trealla
Prolog. For this test case for example:
/* Trealla Prolog 2.83.11 */
/* built-in */
?- S = s(s(A,s(B,A)),1), T = s(s(C,C),1),
unify_with_occurs_check(S,T).
S = s(s(s(B,A),s(B,A)),1), A = s(B,A),
T = s(s(s(B,A),s(B,A)),1), C = s(B,A).
/* simulation */
?- S = s(s(A,s(B,A)),1), T = s(s(C,C),1),
unify_with_occurs_check2(S,T).
false.
One can also check with Scryer Prolog it has
also a different result for the pair S and T:
/* Scryer Prolog 0.10.0 */
/* built-in */
?- S = s(s(A,s(B,A)),1), T = s(s(C,C),1),
unify_with_occurs_check(S,T).
false.
Bye
Mild Shock schrieb:
> Hi,
>
> Now I have the feeling that Trealla implements
> the extreme of Jaffar's Unification, to the extend
> that it keeps and trails functor linking? Was
>
> studying the source of Trealla . Have also the
> impression that it uses a very large native stack.
> Is this trailing what gave it the name Trealla,
>
> despite the geographic beach location with such a name ?
> BTW: I have new benchmark results (*) = Dogelog:
>
> Test | Java (*) | JavaScript (*) | Python (*) | Scryer | Trealla
> -- | -- | -- | -- | -- | --
> (=)/2 | 184 | 514 | 1750 | 210 | 53
> unify_with_occurs_check/2 | 213 | 601 | 2344 | N/A | 53
> (==)/2 | 95 | 227 | 1265 | 250 | 65
> compare/3 | 86 | 221 | 1328 | 250 | 65
> copy_term/2 | 409 | 589 | 2579 | 108 | N/A
> term_variables/2 | 168 | 318 | 1469 | 166 | 90
> ground/1 | 40 | 120 | 516 | 70 | 121
> acyclic_term/1 | 129 | 290 | 1281 | 386 | N/A
> numbervars/3 | 170 | 327 | 1516 | 164 | 100
>
> Pitty `copy_term/2` and `acyclic_term/1` do not
> yet work with a hydra example.
>
> I am using a hydra variant, which puts less
> pressure on the memory, but does benchmark
> the built-ins in a loop, so that I see some
>
> numbers. My problem was that Trealla was
> below the 1 ms mesurememt:
> ```
> hydra(0, _) :- !.
> hydra(N, h(X, X)) :- N > 0, N0 is N-1, hydra(N0, X).
>
> hydra(0, A, A) :- !.
> hydra(N, h(X, X), A) :- N > 0, N0 is N-1, hydra(N0, X, A).
>
> /* Binary Built-ins */
> bench :-
> hydra(65536, X), hydra(65536, Y, Y),
> time((between(1,64,_), X = Y, fail; true)),
> time((between(1,64,_), unify_with_occurs_check(X, Y), fail; true)),
> time((between(1,64,_), X == Y, fail; true)),
> time((between(1,64,_), compare(_, X, Y), fail; true)), fail; true.
>
> /* Unary Built-ins */
> bench2 :-
> hydra(65536, X), hydra(65536, Y, Y),
> time((between(1,64,_), copy_term(X-Y,_), fail; true)),
> time((between(1,64,_), term_variables(X-Y,_), fail; true)),
> time((between(1,64,_), ground(X-Y), fail; true)),
> time((between(1,64,_), acyclic_term(X-Y), fail; true)),
> fail; true.
>
> /* Misc Built-ins */
> bench3 :-
> hydra(65536, X), hydra(65536, Y, Y),
> time((between(1,64,_), numbervars(X-Y,0,_), fail; true)),
> fail; true.
> ```
> Bye
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2025-09-30 21:53 +0200 |
| Subject | Boris the Loris saw it all comming [Weak Prolog Community] (Was: Fast, but not correct implementation) |
| Message-ID | <10bhcfk$ar3k$1@solani.org> |
| In reply to | #14871 |
Hi,
Yeah, Boris the Loris saw it all comming,
when he mentioned that the Prolog Community
is probably overwhelmed by Fuzzy Testing.
And I must confess, I succumbed to the guilty
pleasure of Fuzzy Testing. To find a pair S, T
I used this fuzzy testing device:
needle(S, T) :-
between(1,1000,_),
sample((pick(T), acyclic_term(T))),
sample((pick(S), acyclic_term(S))),
\+ ((unify_with_occurs_check(T, S) -> A = 1; A = 0),
(unify_with_occurs_check2(T, S) -> B = 1; B = 0),
A == B).
With this sample generator. It has slight
modification in pick/1, it starts with [T,_,_]
instead of [T], so that non-linear acyclic terms
are created, which is required that unification
leads to cricles. Only unify acyclic linear terms
with each other that have disjoint variables,
doesn't give cyclic terms. So this modification
is needed so that we find something at all:
sample(G) :-
term_variables(G, L),
repeat, maplist(pick, L),
G, !.
pick(T) :-
pick([T,_,_], T).
pick(L, T) :-
random(V), N is truncate(V*3),
(N = 0 -> T = 1;
N = 1 -> T = s(P,Q), pick([P|L], P), pick([Q|L], Q);
length(L, M),
random(W), I is truncate(W*M),
nth0(I, L, S), S = T).
Bye
Mild Shock schrieb:
> Hi,
>
> Tricky problem, how validate unify_with_occurs_check/2 ?
> If the two arguments S and T are acyclic terms, the
> unify_with_occurs_check/2 can be simulated as follows:
>
> /* simulation */
> unify_with_occurs_check2(X, Y) :-
> X = Y, acyclic_term(X).
>
> It also shows that theoretically the problem can be
> solved in quasi linear time, since (=)/2 is quasi linear
> and acyclic_term/1 is linear.
>
> Now I find that unify_with_occurs_check2/2 and
> unify_with_occurs_check/2 do not agree in Trealla
> Prolog. For this test case for example:
>
> /* Trealla Prolog 2.83.11 */
> /* built-in */
> ?- S = s(s(A,s(B,A)),1), T = s(s(C,C),1),
> unify_with_occurs_check(S,T).
> S = s(s(s(B,A),s(B,A)),1), A = s(B,A),
> T = s(s(s(B,A),s(B,A)),1), C = s(B,A).
>
> /* simulation */
> ?- S = s(s(A,s(B,A)),1), T = s(s(C,C),1),
> unify_with_occurs_check2(S,T).
> false.
>
> One can also check with Scryer Prolog it has
> also a different result for the pair S and T:
>
> /* Scryer Prolog 0.10.0 */
> /* built-in */
> ?- S = s(s(A,s(B,A)),1), T = s(s(C,C),1),
> unify_with_occurs_check(S,T).
> false.
>
> Bye
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2025-11-19 12:49 +0100 |
| Subject | War between Scryer Prolog and Ciao Prolog [9:0 Triska vs Hermenegildo] (Was: Who will win the new Prolog race? SWI or Scryer?) |
| Message-ID | <10fkas9$asq5$1@solani.org> |
| In reply to | #14859 |
Hi, This wasn't clear to me. That there is a veritable war going on between Scryer Prolog and Ciao Prolog. One protagonist being Markus Triska, famous by the "Power of Prolog", and the other protagonist Manuel V. Hermenegildo somehow backed by the Prolog education group (PEG) and SWI ? So who will win the war, and exercise world domaninance in constraint logic programming, based on bogus notions such as "pure Prolog", which are inherently inconsistent? The war is mainly fought over teaching materials distributed, less over tangible systems and applications. Currently I would say the clear winner is Markus Triska with 9 adoptions: - As of 2018, Norbert Zeh - As of 2018, Andrej Bauer - As of 2018, José A. Alonso Jiménez - As of 2019, Adam Dingle - As of 2019, Dylan Schwesinger - As of 2020, Andrea Schwertner Charão - As of 2020, Alejandro Guerra Hernández - As of 2021, Ilkka Kokkarinen - As of 2025, Wang-Zhou Dai https://github.com/triska/the-power-of-prolog So it currently stands at 9:0 for Triska vs Hermenegildo. Bye Mild Shock schrieb: > Hi, > > Who will win the new Prolog race? > SWI or Scryer? Is it enough that SWI-Prolog > has teamed up with Ciao Prolog? > > What about resources that really can > code a Prolog systems. SWI-Prolog is > now doomed to have professional moron > > Julio Di Egidio on board. Not sure whether > he will ever become a heavy committer to > SWI-Prolog source. But who knows, we should > > also give Julio Di Egidio a chance. My > gut feeling at the moment: > > - SWI-Prolog: > Pull Requests 10 Open / 560 Closed > > - Scryer Prolog: > Pull Requests 40 Open / 751 Closed > > In the past I would measure active committers. > But the new "liveness" indicator of a Prolog > system could be indeed Pull Requests. > > So who will win? > > P.S.: Data sources: > > https://github.com/mthom/scryer-prolog/pulls > > https://github.com/SWI-Prolog/swipl-devel/pulls >
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2025-11-19 13:11 +0100 |
| Subject | Useless as the Thirty Years War / Generalized Facts (Was: War between Scryer Prolog and Ciao Prolog) |
| Message-ID | <10fkc51$90qs$1@solani.org> |
| In reply to | #15036 |
Hi, I suspect that this war will be as bloody and useless as the Thirty Years war, that ravaged Europe. The victimes will be students that learn useless stuff, because a narrow view of logic is offered. Not to speak of the dangerous nonsense of "pure Prolog", adding an adjective from "logic", i.e. pure to a thing from "computation", i.e. Prolog. Extensions such as Liquid Haskell or Tabled Constraints, are as useless as well. Except if you think your knowledge and reasoning fits into generalized facts, as we have already studied 40 years ago based on my own ProQuel: "Following [KKR90], we call an implication of the form A <- c_1, & .. & C_n, (n > 0) where A is a user-defined atom and the ci are atomic constraints a generalized fact (generalized tuple). In order to emphasize the special nature of generalized facts, we will in the following often use the notation < A | C1, ..., Cn>" https://www.research-collection.ethz.ch/entities/publication/43d19c38-122f-43d7-a8df-82e001e55075 Have Fun everybody! Bye P.S.: Just make a reality check from modern AI. How large is a context. Is a context a generalized fact, or a collection of generalizd facts? Or maybe something else? What is it? How long will the generalized facts idea be at the party? Databases and Higher Types It maybe of interest that I did not get into this line of work from the database side. I began with attempts to treat various classic philosophical problems as simply as possible in a modal context, work culminating in [4]. This, in turn, led to an interest in higher type modal logics, connected with a desire to understand Godel's ontological argument. My work on this can be found in. Databases came in, unnoticed, by a side door. But they are at the party, and it may be they will have a good time https://www.researchgate.net/publication/225181835 But the above is possibly too benevolent, should be challenged by AI, and especially by generative AI. Mild Shock schrieb: > Hi, > > This wasn't clear to me. That there is a > veritable war going on between Scryer Prolog > and Ciao Prolog. One protagonist > > being Markus Triska, famous by the "Power > of Prolog", and the other protagonist Manuel > V. Hermenegildo somehow backed by the > > Prolog education group (PEG) and SWI ? So who > will win the war, and exercise world domaninance > in constraint logic programming, based > > on bogus notions such as "pure Prolog", which > are inherently inconsistent? The war is > mainly fought over teaching materials distributed, > > less over tangible systems and applications. > Currently I would say the clear winner is > Markus Triska with 9 adoptions: > > - As of 2018, Norbert Zeh > - As of 2018, Andrej Bauer > - As of 2018, José A. Alonso Jiménez > - As of 2019, Adam Dingle > - As of 2019, Dylan Schwesinger > - As of 2020, Andrea Schwertner Charão > - As of 2020, Alejandro Guerra Hernández > - As of 2021, Ilkka Kokkarinen > - As of 2025, Wang-Zhou Dai > https://github.com/triska/the-power-of-prolog > > So it currently stands at 9:0 for Triska > vs Hermenegildo. > > Bye > > Mild Shock schrieb: >> Hi, >> >> Who will win the new Prolog race? >> SWI or Scryer? Is it enough that SWI-Prolog >> has teamed up with Ciao Prolog? >> >> What about resources that really can >> code a Prolog systems. SWI-Prolog is >> now doomed to have professional moron >> >> Julio Di Egidio on board. Not sure whether >> he will ever become a heavy committer to >> SWI-Prolog source. But who knows, we should >> >> also give Julio Di Egidio a chance. My >> gut feeling at the moment: >> >> - SWI-Prolog: >> Pull Requests 10 Open / 560 Closed >> >> - Scryer Prolog: >> Pull Requests 40 Open / 751 Closed >> >> In the past I would measure active committers. >> But the new "liveness" indicator of a Prolog >> system could be indeed Pull Requests. >> >> So who will win? >> >> P.S.: Data sources: >> >> https://github.com/mthom/scryer-prolog/pulls >> >> https://github.com/SWI-Prolog/swipl-devel/pulls >> >
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2025-11-24 15:22 +0100 |
| Subject | The Guerilla tactics of SWI are amazing: Shell India? (Was: Who will win the new Prolog race? SWI or Scryer?) |
| Message-ID | <10g1pne$hnml$1@solani.org> |
| In reply to | #14859 |
Hi, Pitty SWI cannot throw Markus Triska out of their discourse forum or out of the awful PIP forum also on discourse. He is not present there. I am pretty sure they would do it if they could, they are so desparate. The newest gimmick in their fight is this pearl of warfare: Our prototype has been implemented in SWI Prolog, and we have already tested this early-stage system with potential clients such as Siemens China and Shell India. Comparison between Prolog systems as input for the upcoming conference https://github.com/mthom/scryer-prolog/discussions/3150 LoL, nice try Dutchies. But who believes this inbreed nonsense. Why not compare with some industrial strength C++ constraint solver? And what does Shell India even mean? Historically it has its roots indeed with the Dutchies: formerly known as "the Royal Dutch Company for the Exploitation of Petroleum Wells in the Dutch East Indies" https://en.wikipedia.org/wiki/Shell_plc But I suspect its an international company with head quarters in London. According to MarketScreener, about 52.95% of Shell is held by “Institutional” investors. Geographical Distribution (by Country) of Major Shareholders. Based on MarketScreener’s breakdown of the top ~1,000 shareholders: United States ~23.6% United Kingdom ~17.5% Norway ~3.28% Switzerland ~1.56% Canada ~1.46% Germany ~1.06% According to MarketScreener’s breakdown of Shell’s top ~1,000 shareholders, India is not listed explicitly in their “geographical origin of shareholders” chart. MarketScreener reports that ~44–45% of Shell’s shares (within their top-1,000-holder data set) are “Unknown” — meaning they can’t clearly map them to a specific institution or geography. Because of that, even if some Indian investors hold Shell shares, they may be lumped into the “unknown” category if they aren’t among the largest disclosed institutional holders, or if their holdings are registered through nominee accounts / omnibus custodians. Bye P.S.: Just be happy to get called Dutchies: "Be happy they call you Dutchies, usually we Easter Europeans get called Alocoholics or thieves around these regions lol" https://www.reddit.com/r/Netherlands/comments/1ehqy3a/calling_us_dutch_people_dutchies/ Mild Shock schrieb: > Hi, > > Who will win the new Prolog race? > SWI or Scryer? Is it enough that SWI-Prolog > has teamed up with Ciao Prolog? > > What about resources that really can > code a Prolog systems. SWI-Prolog is > now doomed to have professional moron > > Julio Di Egidio on board. Not sure whether > he will ever become a heavy committer to > SWI-Prolog source. But who knows, we should > > also give Julio Di Egidio a chance. My > gut feeling at the moment: > > - SWI-Prolog: > Pull Requests 10 Open / 560 Closed > > - Scryer Prolog: > Pull Requests 40 Open / 751 Closed > > In the past I would measure active committers. > But the new "liveness" indicator of a Prolog > system could be indeed Pull Requests. > > So who will win? > > P.S.: Data sources: > > https://github.com/mthom/scryer-prolog/pulls > > https://github.com/SWI-Prolog/swipl-devel/pulls >
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2025-11-24 15:41 +0100 |
| Subject | The SWI7 exotism (dicts, etc..) has no value? (Was: The Guerilla tactics of SWI are amazing: Shell India?) |
| Message-ID | <10g1qrk$hogk$1@solani.org> |
| In reply to | #15043 |
Hi, There was this caboom when SWI7 introduced dicts. But at the same time Markus Triska (Side B) stopped contributing to SWI (Side A) ? Side A now stands at a precarious crossroads, its future hinging on innovations whose success is far from guaranteed. The irony is striking: the very battle consuming its attention is fought over familiar, time-tested techniques, while the exotic approaches that once promised differentiation remain unproven. Compounding the dilemma, one of Side A’s original core developers—who helped shape its early trajectory— is now contributing to Side B’s efforts, carrying insight and experience that subtly tilt the balance. The technical debt that arose from earlier choices to diverge from standard practices or established collaborations is still manageable, yet it lingers like a quiet undercurrent, shaping both strategy and execution. This is a story of ambition and ingenuity, but also of hubris: of how the pursuit of the novel and exotic can, paradoxically, leave an organization vulnerable, even as it bets on a future that may or may not arrive. - ChatGPT, 24.11.2025 Bye Mild Shock schrieb: > Hi, > > Pitty SWI cannot throw Markus Triska out of > their discourse forum or out of the awful > PIP forum also on discourse. He is not present there. > > I am pretty sure they would do it if they > could, they are so desparate. The newest > gimmick in their fight is this pearl of warfare: > > Our prototype has been implemented in SWI Prolog, > and we have already tested this early-stage system > with potential clients such as Siemens China and > Shell India. Comparison between Prolog systems as > input for the upcoming conference > https://github.com/mthom/scryer-prolog/discussions/3150 > > LoL, nice try Dutchies. But who believes this > inbreed nonsense. Why not compare with some > industrial strength C++ constraint solver? > > And what does Shell India even mean? Historically > it has its roots indeed with the Dutchies: > > formerly known as "the Royal Dutch Company for > the Exploitation of Petroleum Wells in > the Dutch East Indies" > https://en.wikipedia.org/wiki/Shell_plc > > But I suspect its an international company > with head quarters in London. According to > MarketScreener, about 52.95% of Shell is > held by “Institutional” investors. > > Geographical Distribution (by Country) of > Major Shareholders. Based on MarketScreener’s > breakdown of the top ~1,000 shareholders: > > United States ~23.6% > United Kingdom ~17.5% > Norway ~3.28% > Switzerland ~1.56% > Canada ~1.46% > Germany ~1.06% > > According to MarketScreener’s breakdown of > Shell’s top ~1,000 shareholders, India is > not listed explicitly in their “geographical > origin of shareholders” chart. > > MarketScreener reports that ~44–45% of > Shell’s shares (within their top-1,000-holder > data set) are “Unknown” — meaning they can’t > clearly map them to a specific > institution or geography. > > Because of that, even if some Indian investors > hold Shell shares, they may be lumped into > the “unknown” category if they aren’t among > the largest disclosed institutional holders, > or if their holdings are registered through > nominee accounts / omnibus custodians. > > Bye > > P.S.: Just be happy to get called Dutchies: > > "Be happy they call you Dutchies, usually > we Easter Europeans get called Alocoholics > or thieves around these regions lol" > https://www.reddit.com/r/Netherlands/comments/1ehqy3a/calling_us_dutch_people_dutchies/ > > > > Mild Shock schrieb: >> Hi, >> >> Who will win the new Prolog race? >> SWI or Scryer? Is it enough that SWI-Prolog >> has teamed up with Ciao Prolog? >> >> What about resources that really can >> code a Prolog systems. SWI-Prolog is >> now doomed to have professional moron >> >> Julio Di Egidio on board. Not sure whether >> he will ever become a heavy committer to >> SWI-Prolog source. But who knows, we should >> >> also give Julio Di Egidio a chance. My >> gut feeling at the moment: >> >> - SWI-Prolog: >> Pull Requests 10 Open / 560 Closed >> >> - Scryer Prolog: >> Pull Requests 40 Open / 751 Closed >> >> In the past I would measure active committers. >> But the new "liveness" indicator of a Prolog >> system could be indeed Pull Requests. >> >> So who will win? >> >> P.S.: Data sources: >> >> https://github.com/mthom/scryer-prolog/pulls >> >> https://github.com/SWI-Prolog/swipl-devel/pulls >> >
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2025-11-24 21:27 +0100 |
| Subject | My new TinyCLP is much faster [100% Prolog] (Was: The SWI7 exotism (dicts, etc..) has no value?) |
| Message-ID | <10g2f37$jv7u$1@solani.org> |
| In reply to | #15044 |
Hi,
Simple test case, indirect permutation:
/* SWI-Tinker 32 bits, version 9.3.35 */
% 127,767,777 inferences, 4.456 CPU in 4.456 seconds
(100% CPU, 28673199 Lips)
true.
Ok a bit slower, but no WASM, only JavaScript!
/* Dogelog Player 2.1.4 for JavaScript */
% Zeit 4705 ms, GC 0 ms, Lips 10386607
TinyCLP is written in 100% Prolog, LoL.
Bye
P.S.: I can also beat it on 64-bit:
/* SWI-Prolog threaded, 64 bits, version 9.3.35 */
?- time(test).
% 127,670,227 inferences, 2.031 CPU in 2.042 seconds
(99% CPU, 62853035 Lips)
true.
/* Dogelog Player 2.1.4 for Java */
?- time(test).
% Zeit 1567 ms, GC 0 ms, Lips 31186335
true.
P.S.: This was the test case:
:- use_module(library(clpfd)).
test :-
length(L, 9),
L ins 1..9,
all_different(L),
label(L),
fail.
test.
Mild Shock schrieb:
> Hi,
>
> There was this caboom when SWI7 introduced
> dicts. But at the same time Markus Triska (Side B)
> stopped contributing to SWI (Side A) ?
>
> Side A now stands at a precarious crossroads,
> its future hinging on innovations whose success
> is far from guaranteed. The irony is striking:
> the very battle consuming its attention is fought
>
> over familiar, time-tested techniques,
> while the exotic approaches that once promised
> differentiation remain unproven. Compounding
> the dilemma, one of Side A’s original core
>
> developers—who helped shape its early trajectory—
> is now contributing to Side B’s efforts,
> carrying insight and experience that subtly
> tilt the balance. The technical debt that
>
> arose from earlier choices to diverge from
> standard practices or established collaborations
> is still manageable, yet it lingers like a
> quiet undercurrent, shaping both strategy
>
> and execution. This is a story of ambition and
> ingenuity, but also of hubris: of how the
> pursuit of the novel and exotic can, paradoxically,
> leave an organization vulnerable, even as it bets
>
> on a future that may or may not arrive.
> - ChatGPT, 24.11.2025
>
> Bye
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2026-01-30 02:10 +0100 |
| Subject | Railgun CLP versus Scryer Prolog [Euler #30 Variant] (Was: Who will win the new Prolog race?) |
| Message-ID | <10lh0eq$uk7p$1@solani.org> |
| In reply to | #14859 |
Hi,
Sometimes my new Railgun CLP for Dogelog
Player is blazing fast. Like here:
?- time((euler(_), fail; true)).
% Zeit 1ms, GC 0ms, Lips 6675k
true.
?- euler(_L), maplist(deref, _L, R).
R = [3, 7, 1];
R = [1, 5, 3];
fail.
Compare to Scryer Prolog:
/* Scryer Prolog 0.10 */
?- time((euler(_), fail; true)).
% CPU time: 0.203s, 326_594 inferences
true.
?- euler(L).
L = [1,5,3]
; L = [3,7,1]
; false.
The test case:
/**
* find 3 non-zero digits such
* that the number equals the cube sum:
*
* 371 = 3^3 + 7^3 + 1^3
* 153 = 1^3 + 5^3 + 3^3
*/
% euler(-List)
euler(L) :-
L = [X,Y,Z],
L ins 1..9,
100*X+10*Y+Z #= X*X*X+Y*Y*Y+Z*Z*Z,
labeling([ff], L).
Similar problem to:
https://math.berkeley.edu/~elafandi/euler/p30/
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.prolog
csiph-web