Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.prolog > #15927
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Newsgroups | comp.lang.prolog |
| Subject | MADV_HAWAII: Decomposing the Ouroboros Road (Was: MADV_HAWAII: Aloha from the 300ms Abyss) |
| Date | 2026-09-20 18:30 +0200 |
| Message-ID | <118p1ml$shf$1@solani.org> (permalink) |
| References | <107cdg8$3ok7g$1@solani.org> <10p44s1$16ps$1@solani.org> <114cv6j$kb0c$1@solani.org> <117v88c$1n4v$1@solani.org> <1188q5d$8isq$1@solani.org> |
Hi, Can your Prolog system solves this riddle: % Clue 1: 3 creatures in 3 houses live on Ouroboros Ring Road % Clue 2: The Baskerville Hound guards from the first house % Clue 3: Sherlock Holmes has the Stack Cache % Clue 4: Watson is immediately to the left of the Phosphorus Toad % Clue 5: Cyclic Terms is immediately to the left of the Baskerville Hound % Clue 6: The P(doom) doomer loops back into the Deep Stack house % Clue 7: Cthulhu Pup is immediately to the left of the Deep Stack And how does your Prolog system show a solution? This is a preview, we could just close a longstanding ticket about clutter in the answer substitution: /* Dogelog Player 2.3.2 */ ?- solve(H1, H2, H3). H1 = house(watson, baskerville_hound, deep_stack, H2), H2 = house(sherlock, phosphorus_toad, stack_cache, H3), H3 = house(p_doom_doomer, cthulhu_pup, cyclic_terms, H1); fail. Hava Fun! Bye Mild Shock schrieb: > Hi, > > Kuniakis Automatons, or who ever wrote it and > braught it to SWI-Prolog are pretty cool, > My Dogelog Player currently cannot scale > > that high. Here is a SWI-Prolog example: > > /* SWI-Prolog 10.1.14-55-g8d24500be */ > ?- between(1,5,J), N is J*1000000, hydra(N,_X), > time(term_minimal(_X,_)), fail; true. > % -1 inferences, 0.141 CPU in 0.243 seconds (58% CPU, -7 Lips) > % -1 inferences, 0.203 CPU in 0.193 seconds (105% CPU, -5 Lips) > % -1 inferences, 0.547 CPU in 0.622 seconds (88% CPU, -2 Lips) > % -1 inferences, 0.719 CPU in 0.816 seconds (88% CPU, -1 Lips) > % -1 inferences, 0.375 CPU in 0.485 seconds (77% CPU, -3 Lips) > true. > > But why is time not monotonic? Some chaotic > GC effect, especially the array buffers? And what > are the -7 LIPS, a new take on safe AI? > > Well I don't go backward with my LIPS, and its a > smooth and tranquille life in Dogelog Player land. > Look how beautiful my boy is: > > /* Dogelog Player 2.3.1 for Java */ > ?- between(300,305,N), hydra(N,_X), time(sys_term_canonical(_X,_)), > fail; true. > % Zeit 109.402 ms, Benutzer 100 %, Lips 1690 k > % Zeit 105.561 ms, Benutzer 100 %, Lips 1763 k > % Zeit 103.305 ms, Benutzer 100 %, Lips 1813 k > % Zeit 106.643 ms, Benutzer 100 %, Lips 1768 k > % Zeit 106.890 ms, Benutzer 100 %, Lips 1776 k > % Zeit 106.227 ms, Benutzer 100 %, Lips 1798 k > true. > > Bye > > P.S.: What about using canonical/minimal for the > top-level. I got these two different outcomes: > > /* SWI-Prolog 10.1.14-55-g8d24500be */ > ?- X = f(f(X)). > X = f(f(X)). > > /* Dogelog Player 2.3.1 for Java */ > ?- X = f(f(X)). > X = f(X). > > Its not an extremly new feature in Dogelog Player. > Maybe 1-2 years old already? > > Mild Shock schrieb: >> Hi, >> >> Finally unlimited catch/throw arrived in Dogelog >> Player. We do not anymore depend on the Java native >> stack. The handling got a little bit slower, working >> >> on to get back the same speed. But its pretty robust >> already and takes a 1'000'000 catch/3 without problems. >> Here some testing results: >> >> /* Dogelog Player 2.3.1 for Java */ >> % ?- between(1,3,_), time(test), fail; true. >> % % Zeit 315.037 ms, Benutzer 100 %, Lips 22224 k >> % % Zeit 379.011 ms, Benutzer 100 %, Lips 18473 k >> % % Zeit 207.902 ms, Benutzer 100 %, Lips 33682 k >> % true. >> >> /* Trealla Prolog 3.9.40 */ >> % ?- between(1,3,_), time(test), fail; true. >> % % Execution aborted >> % % CPU elapsed 2.141s, 4_000_323 inferences, 1.869 MLips >> >> /* Scryer Prolog 0.10.0 */ >> % ?- between(1,3,_), time(test), fail; true. >> % % CPU time: 0.281s, 3_000_059 inferences >> % % CPU time: 0.281s, 3_000_059 inferences >> % % CPU time: 0.281s, 3_000_059 inferences >> % true. >> >> /* SWI-Prolog 10.1.14 */ >> % ?- between(1,3,_), time(test), fail; true. >> % % 3,000,007 inferences, 0.281 CPU in 0.389 seconds >> % % 3,000,007 inferences, 0.062 CPU in 0.064 seconds >> % % 3,000,007 inferences, 0.062 CPU in 0.063 seconds >> % true. >> >> What is SWI doing in the first run? Does it >> send the throw ball to Hawaii and back? >> >> Bye >> >> BTW: This was the test case: >> >> deep(0,G) :- !, G. >> deep(N,G) :- M is N-1, catch(deep(M,G),foo,true). >> >> test :- catch(deep(1000000,throw(bar)),_,true). >> >> Mild Shock schrieb: >>> Hi, >>> >>> Usual question: >>> >>> > Why implement both pre-emptive threading >>> AND cooperative tasks/engines? >>> >>> I had implemented the ISO proposal in formerly Jekejeke >>> Prolog, you find the ISO proposal here: >>> >>> ISO/IEC DTR 13211–5:2007 >>> Prolog multi-threading support >>> https://logtalk.org/plstd/threads.pdf >>> >>> But the ISO proposal doesn't match modern WebGPU APIs, >>> where your logical threads can live remotely in a dedicated GPU >>> >>> in the VRAM there, and where you would have launch >>> parameters that say: Hey please run 4096 compute >>> >>> shaders for me, that have independet thread state. Using >>> cooperative multi-tasking as the orchestrator works well. >>> >>> Bye >> >
Back to comp.lang.prolog | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
VIP0909: VibeCore Improvement Proposal Mild Shock <janburse@fastmail.fm> - 2025-08-11 11:35 +0200
VIP0111: Does a Map have a Constructor? (Was: VIP0909: VibeCore Improvement Proposal) Mild Shock <janburse@fastmail.fm> - 2026-03-14 18:11 +0100
100% Prolog Hash map beats SWI C Trie (Was: VIP0111: Does a Map have a Constructor?) Mild Shock <janburse@fastmail.fm> - 2026-03-17 04:07 +0100
AI Accelerators and ISO Prolog multi-threading (Was: VIP0111: Does a Map have a Constructor?) Mild Shock <janburse@fastmail.fm> - 2026-07-29 15:28 +0200
Actor/Erlang is dead, no Thread and Mailbox conflation [golang channels] (Was: AI Accelerators and ISO Prolog multi-threading) Mild Shock <janburse@fastmail.fm> - 2026-07-29 15:41 +0200
Summer Challenge: libSQL = Prolog+Modes [VDBE versus π-WAM] (Was: Actor/Erlang is dead, no Thread and Mailbox conflation [golang channels]) Mild Shock <janburse@fastmail.fm> - 2026-07-30 11:22 +0200
Work slicing can simulate AbortController (Was: Summer Challenge: libSQL = Prolog+Modes [VDBE versus π-WAM]) Mild Shock <janburse@fastmail.fm> - 2026-08-01 13:23 +0200
Introducing an asm/1 statement in a Prolog system (Was: AI Accelerators and ISO Prolog multi-threading) Mild Shock <janburse@fastmail.fm> - 2026-08-09 20:21 +0200
Introducing an asm/1 statement in a Prolog system (Re: AI Accelerators and ISO Prolog multi-threading) Mild Shock <janburse@fastmail.fm> - 2026-08-09 20:25 +0200
MADV_HAWAII: Aloha from the 300ms Abyss [Exception Handling in Prolog] (Re: AI Accelerators and ISO Prolog multi-threading) Mild Shock <janburse@fastmail.fm> - 2026-09-10 23:42 +0200
MADV_HAWAII: Aloha from Minimal Terms (Was: MADV_HAWAII: Aloha from the 300ms Abyss) Mild Shock <janburse@fastmail.fm> - 2026-09-14 14:43 +0200
MADV_HAWAII: Decomposing the Ouroboros Road (Was: MADV_HAWAII: Aloha from the 300ms Abyss) Mild Shock <janburse@fastmail.fm> - 2026-09-20 18:30 +0200
Food for thought: Schwartzian Transform (Was: VIP0111: Does a Map have a Constructor?) Mild Shock <janburse@fastmail.fm> - 2026-09-23 22:01 +0200
Food for thought: Bayesian Experimental Designer (Was: Food for thought: Schwartzian Transform) Mild Shock <janburse@fastmail.fm> - 2026-09-24 14:32 +0200
What will microsoft say, will they buy it? (Was: Food for thought: Bayesian Experimental Designer) Mild Shock <janburse@fastmail.fm> - 2026-09-24 15:34 +0200
The recursive AI bottom line (Was: What will microsoft say, will they buy it?) Mild Shock <janburse@fastmail.fm> - 2026-09-24 15:38 +0200
csiph-web