Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.prolog > #14638
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Newsgroups | comp.lang.prolog |
| Subject | Doing a Prolog system without any iterator API (Was: Easier certification with 100% Prolog Prolog?) |
| Date | 2025-07-10 14:14 +0200 |
| Message-ID | <104oarl$20j1d$1@solani.org> (permalink) |
| References | <104o5kc$20fno$1@solani.org> <104o5mr$20fno$2@solani.org> <104o81r$20hbm$1@solani.org> <104oaao$20inf$1@solani.org> |
Hi, Most of the libraries and the system are design so that native is a last resort. So most functionality is Prolog and in a few instances there is a native call: - Main Design: Prolog (a lot of it) --> Native (very little) This design, concerning the call control flow, is only broken in the top level, and in very few places, like the browser and a web server. The top-level is a native entry point and it needs to reach into Prolog, and the libraries library(react) and library(spin) provide call back facilities for the browser and a web server event handlers: - 2nd Design: Native (top-level, react and spin) --> Prolog There is no idea at all that the Prolog system supports any iterators. I did this in the past. But the Prolog system gets simpler without the viewpoint that the interface should support iterators. SWI-Prolog always invests heavily to support iterators. Based on the rather negative experience with formerly Jekejeke Prolog we tried to completely avoid any iterator interface. Bye Mild Shock schrieb: > Hi, > > Is there an easier certification with a Prolog > system that is written 100% in Prolog itself. Maybe > or maybe not, I don't know, it feels a little bit > > like having implemented a Prolog system by taking > the declarative specification of in the appendix > of the ISO core standard, except I didn't use the > > always declarative style of the ISO appendix. It > doesn't make any sense practically for a declarative > style and have later some Prolog system which is either > > inefficient because the choice points explode or > something impractical without I/O effects like the > html//1 thingy in SWI-Prolog. > > Bye > > Mild Shock schrieb: >> Hi, >> >> Shocking revelation, I found two significant >> bugs in my age old indexer code base yesterday. >> How can an eGovernment ever trust any Prolog >> system? These were bugs that typically go >> >> unnoticed by lets say a Rust type system. >> Would possibly require deep axiomatization >> or heavy fuzzy testing of the code, or a >> combination of both. >> >> LoL >> >> Bye >> >> Mild Shock schrieb: >>> I made the observation while looking at >>> debugger traces, choice point elimination, >>> driven by indexes, also determines what >>> FAIL/REDO ports a debugger shows. >>> >>> What is amazing Scryer Prolog, which has >>> a tamer version of multi-argument indexing, a >>> kind of skip indexing, they describe >>> it on their GitHub homepage, can do it: >>> >>> /* Scryer Prolog 0.9.4-415 */ >>> ?- app(X,Y,[1]). >>> X = [], Y = [1] >>> ; X = [1], Y = []. >>> >>> And the ghost from my cabinet, formerly >>> Jekejeke Prolog, which does a little bit more >>> than skip indexing, but still not the same deep >>> indexing as in SWI-Prolog can also do it: >>> >>> /* Jekejeke Runtime 1.7.3 */ >>> ?- app(X,Y,[1]). >>> X = [], Y = [1]; >>> X = [1], Y = []. >>> >>> Mild Shock schrieb: >>>> I am currently doing a re-evaluation of an old >>>> Prolog system, checking what features I could adopt. >>>> This is unlike the current trend where people have >>>> turned their focus on GUIs, like XPCE, >>>> >>>> or a are stuck in an endless loop of parser >>>> problems, like in Trealla. But I would nevertheless >>>> share my finding. Take this simple example of >>>> a list append: >>>> >>>> app([], X, X). >>>> app([X|Y], Z, [X|T]) :- app(Y, Z, T). >>>> >>>> ECLiPSe Prolog gives me, only one redo question >>>> in the top-level: >>>> >>>> /* ECLiPSe Prolog 7.1beta #13 */ >>>> [eclipse 2]: app(X,Y,[1]). >>>> >>>> X = [] >>>> Y = [1] >>>> Yes (0.00s cpu, solution 1, maybe more) ? ; >>>> >>>> X = [1] >>>> Y = [] >>>> Yes (0.00s cpu, solution 2) >>>> >>>> In SWI-Prolog I find, two redo questions >>>> in the top.level: >>>> >>>> /* SWI-Prolog 9.3.25 */ >>>> ?- app(X,Y,[1]). >>>> X = [], >>>> Y = [1] ; >>>> X = [1], >>>> Y = [] ; >>>> false. >>>> >>>> I know SWI-Prolog handles lists differently >>>> than other Prolog terms during indexing. Could >>>> this be the reason? Or maybe that the call is >>>> not “hot” enough, so it doesn’t get JIT-ed. >>>> >>>> ECLiPSe Prolog does it on the very first call, >>>> and I assume its due to a kind of index on >>>> the 3rd argument. >>>> >>> >> >
Back to comp.lang.prolog | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
The Ghosts in my Cabinet: Indexing Mild Shock <janburse@fastmail.fm> - 2025-07-10 12:45 +0200
Observed while watching FAIL/REDO ports (Was: The Ghosts in my Cabinet: Indexing) Mild Shock <janburse@fastmail.fm> - 2025-07-10 12:46 +0200
Shocking Revelation: No eGovernment can trust Prolog! (Was: Observed while watching FAIL/REDO ports) Mild Shock <janburse@fastmail.fm> - 2025-07-10 13:26 +0200
Easier certification with 100% Prolog Prolog? (Was: Shocking Revelation: No eGovernment can trust Prolog!) Mild Shock <janburse@fastmail.fm> - 2025-07-10 14:05 +0200
Doing a Prolog system without any iterator API (Was: Easier certification with 100% Prolog Prolog?) Mild Shock <janburse@fastmail.fm> - 2025-07-10 14:14 +0200
The headache with JIT indexing: Native -> Prolog (Was: Doing a Prolog system without any iterator API) Mild Shock <janburse@fastmail.fm> - 2025-07-10 14:40 +0200
Just lets burn another candle for Barty Boy (Was: The headache with JIT indexing: Native -> Prolog) Mild Shock <janburse@fastmail.fm> - 2025-07-10 18:13 +0200
Physics PhDs might never have heard of Quantifier Eliminations (Re: Just lets burn another candle for Barty Boy) Mild Shock <janburse@fastmail.fm> - 2025-07-10 18:33 +0200
How long willl I piss on Bart Demoen (Was: Physics PhDs might never have heard of Quantifier Eliminations) Mild Shock <janburse@fastmail.fm> - 2025-07-10 18:39 +0200
But I shouldn't waste too much time (Was: How long willl I piss on Bart Demoen) Mild Shock <janburse@fastmail.fm> - 2025-07-10 19:13 +0200
DCG is easily affected (Was: The Ghosts in my Cabinet: Indexing) Mild Shock <janburse@fastmail.fm> - 2025-07-11 09:38 +0200
The headache an eGovernment might get from Prolog (Was: DCG is easily affected) Mild Shock <janburse@fastmail.fm> - 2025-07-15 15:20 +0200
Wait till they find out about compare/3 (Was: The headache an eGovernment might get from Prolog) Mild Shock <janburse@fastmail.fm> - 2025-07-15 15:24 +0200
Corr. (Was: Wait till they find out about compare/3) Mild Shock <janburse@fastmail.fm> - 2025-07-15 15:28 +0200
eGovernements will need AGI to survive (Was: Corr. (Was: Wait till they find out about compare/3)) Mild Shock <janburse@fastmail.fm> - 2025-07-15 18:41 +0200
Having 2544 issues is probably a bad sign (Re: eGovernements will need AGI to survive) Mild Shock <janburse@fastmail.fm> - 2025-07-15 18:41 +0200
The Signal Collapse gives us System Uncertainty (Re: Having 2544 issues is probably a bad sign) Mild Shock <janburse@fastmail.fm> - 2025-07-15 19:02 +0200
Rename GitHub, to TurdPit, and make Amber Heard their CEO (Was: The Signal Collapse gives us System Uncertainty) Mild Shock <janburse@fastmail.fm> - 2025-07-15 19:52 +0200
Humans are just overwhelmed by computers (Was: eGovernements will need AGI to survive) Mild Shock <janburse@fastmail.fm> - 2025-07-16 18:59 +0200
Fishy 🐟 in Scryer Prolog and SWI-Prolog (Was: Humans are just overwhelmed by computers) Mild Shock <janburse@fastmail.fm> - 2025-07-16 20:08 +0200
So we are essentially all using Trojan Horses 🐎 daily? (Re: Fishy 🐟 in Scryer Prolog and SWI-Prolog) Mild Shock <janburse@fastmail.fm> - 2025-07-17 10:57 +0200
Strudel Rust gives Scryer Frust 💩: Try C+20 Pipes (Was: Fishy 🐟 in Scryer Prolog and SWI-Prolog( Mild Shock <janburse@fastmail.fm> - 2025-11-25 22:55 +0100
SWI-Prolog as a Test Bed for Copilots (Was: Humans are just overwhelmed by computers) Mild Shock <janburse@fastmail.fm> - 2025-07-20 14:36 +0200
Mathematics currently hates Computer Science because of AI (Re: SWI-Prolog as a Test Bed for Copilots) Mild Shock <janburse@fastmail.fm> - 2025-07-20 15:13 +0200
csiph-web