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


Groups > comp.lang.javascript > #124429

Goal Outlining for Dogelog Player (Was: Just-in-Time Indexing in Dogelog Player)

From Mild Shock <janburse@fastmail.fm>
Newsgroups comp.lang.javascript
Subject Goal Outlining for Dogelog Player (Was: Just-in-Time Indexing in Dogelog Player)
Date 2026-04-09 12:51 +0200
Message-ID <10r80br$f1q$2@solani.org> (permalink)
References <10pk07c$8ek8$2@solani.org> <10qhhpt$1057b$4@solani.org>

Show all headers | View raw


Hi,

The handling of cyclic terms inside Dogelog
Player is relatively young, it only arrived
end of 2025, almost 4 years after the inception
of the Prolog system. We found a leftover
subsumes_term/2. Making it fit for cyclic terms
triggered an interesting venture
into negation as failure.

We found a charming implementation, not extremly
fast failure capable, but easy to bootstrap
from built-ins such as term_variables/2,
(=)/2 and (==)/2. To overcome some (\+)/1
performance limitation we introduced goal
inlining and outline to the clause
translation and untranslation.

Bye

See also:

Goal Outlining for Dogelog Player
https://medium.com/2989/f589172c7f8e

Mild Shock schrieb:
> Hi,
> 
> Dogelog Player is a Prolog system for the
> JavaScript, Python and Java target that borrows
> much of its design from formerly Jekejeke Prolog.
> While Dogelog Player shipped only with first
> argument indexing for almost 4 years, we now added
> multi-argument just-in-time indexing.
> 
> For programs one sees fewer spurious choice
> points. For the dynamic database, in queries
> one sees a speed-up of almost a factor M, where
> M is the size of the index map. For updates the
> speed-up materializes less, due to the overhead
> of our 100% Prolog written insert operations.
> 
> Bye
> 
> See also:
> 
> Just-in-Time Indexing in Dogelog Player
> https://medium.com/2989/69200b90ccec
> 
> Mild Shock schrieb:
>> Dear All,
>>
>> We are happy to announce a new edition
>> of the Dogelog Player:
>>
>> - Enhanced core (0rNaN):
>> Special values are numbers, but neither
>> integer nor float. We introduced a further
>> special value, namely 0rNaN which stands
>> for not a number. Unlike the IEEE proposal,
>> we didn't extend arithmetic comparisons such
>> as max/3, (<)/2, etc... Only parsing/unparsing
>> and foreign function interface (FFI)
>> support was introduced.
>>
>> - Precomputed Hashes:
>> Java programmers are familiar with the
>> hashCode() contract and with the programming
>> pattern of a cached hash. We went a step further
>> and gave the already existing frozen compounds
>> of Dogelog player an additional precomputed
>> .hash field. With amazing speed-up for built-ins
>> such as term_hash/2, (==)/2, etc..
>>
>> - Assertion Sharing:
>> Precomputed hashes shine when combined with
>> NO-COPY mechanisms in the dynamic database,
>> notoriously difficult for WAM machines but
>> easy for Heap based Prolog systems such as
>> Dogelog Player. So far we provided only
>> program sharing (PS), this release also
>> features assertion sharing (AS).
>>
>> Have Fun!
>>
>> Jan Burse, https://www.herbrand.ai/ , 20.03.2026
> 

Back to comp.lang.javascript | Previous | NextPrevious in thread | Find similar


Thread

ANN: Dogelog Player 2.1.6 (Assertion Sharing) Mild Shock <janburse@fastmail.fm> - 2026-03-20 18:30 +0100
  Goal Outlining for Dogelog Player (Was: Just-in-Time Indexing in Dogelog Player) Mild Shock <janburse@fastmail.fm> - 2026-04-09 12:51 +0200

csiph-web