Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.prolog > #14638

Doing a Prolog system without any iterator API (Was: Easier certification with 100% Prolog Prolog?)

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar | Unroll thread


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