Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.prolog > #14801
| 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 | 2025-08-21 03:30 +0200 |
| Message-ID | <1085src$brmu$2@solani.org> (permalink) |
| References | <107vi9k$7t1e$1@solani.org> <1085sot$brmu$1@solani.org> |
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 | Next — Previous in thread | Next in thread | Find similar | Unroll 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