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


Groups > comp.lang.prolog > #14801

SWI-Prolog needs linear time (Was: Frozen Prolog Terms make copy_term/2 constant)

Path csiph.com!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 SWI-Prolog needs linear time (Was: Frozen Prolog Terms make copy_term/2 constant)
Date Thu, 21 Aug 2025 03:30:24 +0200
Message-ID <1085src$brmu$2@solani.org> (permalink)
References <107vi9k$7t1e$1@solani.org> <1085sot$brmu$1@solani.org>
MIME-Version 1.0
Content-Type text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding 8bit
Injection-Date Thu, 21 Aug 2025 01:30:20 -0000 (UTC)
Injection-Info solani.org; logging-data="388830"; 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.21
Cancel-Lock sha1:OCbq39I7sdekgPOcn3+mTw6+FQs=
X-User-ID eJwFwQkBwDAIA0BLZYRA5fAU/xJ2Z0phO2iEra1o9MR5fQPwJzlToIqTy6dZToSO8OtaP6gY5Lnqk/5dez9MfhVB
In-Reply-To <1085sot$brmu$1@solani.org>
Xref csiph.com comp.lang.prolog:14801

Show key headers only | View raw


Hi,

I get for SWI-Prolog WASM, that copy is faster
than knowledge base fact access:

/* SWI-Prolog WASM, copy_term/2 testing */
?- test2(10).
(645.4ms)

?- test2(30).
(1056.5ms)

?- test2(90).
(2245.2ms)

For example copying the 90 element list takes
only 2245.2ms while acccessing the 90 element
list from facts takes 5372.3ms, see previous post.

But the copy_term/2 is nevertheless linear.

Bye

Mild Shock schrieb:
> Hi,
> 
> Frozen Prolog terms don’t need to be traversed to know
> whether they are ground. They have a GC mask information
> that shows that they are program shared (PS) ground Prolog
> 
> terms, so that copy can immediately return. One can modify
> the testing slightly, going from this here in frozen.pl:
> 
> test(N) :- between(1,1000,_), data(N,_), fail.
> test(_).
> 
> test2(N) :- between(1,1000,_), test(N), fail.
> test2(_).
> 
> To this here, unfortunately copy_term/2 not available in WebPL:
> 
> test(X) :- between(1,1000,_), copy_term(X,_), fail.
> test(_).
> 
> test2(N) :- data(N,X), between(1,1000,_), test(X), fail.
> test2(_).
> 
> So basically departing from testing whether a first access
> to a program sharing structure is fast, into testing
> whether copy_term/2 has some smarts to detect
> 
> program sharing structures.
> 
> Bye
> 
> Mild Shock schrieb:
>> Hi,
>>
>> J Strother Moore II is the Original Gangster (OG)
>> of program sharng. Interestingly structure sharing
>> meant always program sharing in the theorem
>>
>> proving community back then:
>>
>> COMPUTATIONAL LOGIC: STRUCTURE SHARING AND
>> PROOF OF PROGRAM PROPERTIES
>> J Strother Moore II - 1973
>> https://era.ed.ac.uk/bitstream/handle/1842/2245/Moore-Thesis-1973-OCR.pdf
>>
>> Only the WAM community managed to intsitutionalize
>> the term structure sharng, as a reduced form of
>> program sharing, namely goal argument sharing
>>
>> not using pairs of two pointers with skeleton and binding
>> environment anymore, to indentify a Prolog term,
>> but simple single pointers for a Prolog term.
>>
>> Bye
>>
> 

Back to comp.lang.prolog | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

The roots Program Sharing (PS): J Strother Moore II (1973) Mild Shock <janburse@fastmail.fm> - 2025-08-18 17:53 +0200
  Avoiding OCCUR Checks / The BAROQUE Language (Was: The roots Program Sharing (PS): J Strother Moore II (1973)) Mild Shock <janburse@fastmail.fm> - 2025-08-18 18:00 +0200
  Frozen Prolog Terms make copy_term/2 constant (Was: The roots Program Sharing (PS): J Strother Moore II (1973) Mild Shock <janburse@fastmail.fm> - 2025-08-21 03:29 +0200
    SWI-Prolog needs linear time (Was: Frozen Prolog Terms make copy_term/2 constant) Mild Shock <janburse@fastmail.fm> - 2025-08-21 03:30 +0200
      Old Lady with Double Pointers and Frozen Info (Was: SWI-Prolog needs linear time) Mild Shock <janburse@fastmail.fm> - 2025-08-21 03:31 +0200

csiph-web