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


Groups > comp.lang.java.programmer > #40055 > unrolled thread

ANN: Dogelog Player 1.1.3 (Tuning Trilogy)

Started byMild Shock <janburse@fastmail.fm>
First post2023-11-08 23:38 +0100
Last post2023-11-26 13:15 -0800
Articles 5 — 2 participants

Back to article view | Back to comp.lang.java.programmer


Contents

  ANN: Dogelog Player 1.1.3 (Tuning Trilogy) Mild Shock <janburse@fastmail.fm> - 2023-11-08 23:38 +0100
    Re: ANN: Dogelog Player 1.1.3 (Tuning Trilogy) Mild Shock <janburse@fastmail.fm> - 2023-11-09 14:59 +0100
      Re: ANN: Dogelog Player 1.1.3 (Tuning Trilogy) Mild Shock <janburse@fastmail.fm> - 2023-11-22 13:23 +0100
        Re: ANN: Dogelog Player 1.1.3 (Tuning Trilogy) Mild Shock <bursejan@gmail.com> - 2023-11-22 05:12 -0800
          Re: ANN: Dogelog Player 1.1.3 (Tuning Trilogy) Mild Shock <bursejan@gmail.com> - 2023-11-26 13:15 -0800

#40055 — ANN: Dogelog Player 1.1.3 (Tuning Trilogy)

FromMild Shock <janburse@fastmail.fm>
Date2023-11-08 23:38 +0100
SubjectANN: Dogelog Player 1.1.3 (Tuning Trilogy)
Message-ID<uih2k9$194oa$2@solani.org>
Dear All,

We are happy to announce a new edition of
the Dogelog player:

- Monomorphic Cache:
New episode in creating a Prolog system with no
atom table and no datatype string, only atoms. Like
formerly Jekejeke Prolog our Dogelog player has only
a provables table and inline caches, whereas we
didn't need polymorphic, only monomorphic.

- Neck Forms:
We allow the Prolog system to treat neck deterministic
built-ins in a special way so as to avoid the costly
creation of sub-goals. Intriguingly even more speed-up
can be gained in that the built-ins decide on their
own how to interpret the Albufeira code arguments.

- AST-Machine:
We abandoned the idea that Albufeira code is an
array of op-codes. The result is a a data structure
which is a chimera of PLM molecules and WAM structures.
Judging from our bechmark suite, this is the final
killing blow to formerly Jekejeke Prolog.

For more details: Dogelog

Have Fun!
Jan Burse, 08.11.2023, http://www.xlog.ch/

[toc] | [next] | [standalone]


#40059

FromMild Shock <janburse@fastmail.fm>
Date2023-11-09 14:59 +0100
Message-ID<uiiokg$1a0k5$3@solani.org>
In reply to#40055
Raymond Smullyan posed the Lion and the Unicorn riddle
inspired by a story about Alice from Lewis Carroll.
A Prolog solution was given in a Paper from 1986 about
VM/Prolog. The paper discussed theorem proving versus
logic programming with Prolog. We give a variant of
this solution and discuss the involved meta predicates.

We presented a solution based on a user defined meta
predicate contrary/2. Differences in negation of
failure made us curious how other Prolog systems
perform. Dogelog Player with a simple strategy for
meta predicates without sacrificing ISO core standard
compatibility, lands in the middle. Hence we could
demonstrate that one can have the cake and eat it too.

See also:

The Lion and the Unicorn met Dogelog
https://twitter.com/dogelogch/status/1722612860306821386

The Lion and the Unicorn met Dogelog
https://www.facebook.com/groups/dogelog


Mild Shock schrieb:
> Dear All,
> 
> We are happy to announce a new edition of
> the Dogelog player:
> 
> - Monomorphic Cache:
> New episode in creating a Prolog system with no
> atom table and no datatype string, only atoms. Like
> formerly Jekejeke Prolog our Dogelog player has only
> a provables table and inline caches, whereas we
> didn't need polymorphic, only monomorphic.
> 
> - Neck Forms:
> We allow the Prolog system to treat neck deterministic
> built-ins in a special way so as to avoid the costly
> creation of sub-goals. Intriguingly even more speed-up
> can be gained in that the built-ins decide on their
> own how to interpret the Albufeira code arguments.
> 
> - AST-Machine:
> We abandoned the idea that Albufeira code is an
> array of op-codes. The result is a a data structure
> which is a chimera of PLM molecules and WAM structures.
> Judging from our bechmark suite, this is the final
> killing blow to formerly Jekejeke Prolog.
> 
> For more details: Dogelog
> 
> Have Fun!
> Jan Burse, 08.11.2023, http://www.xlog.ch/

[toc] | [prev] | [next] | [standalone]


#41325

FromMild Shock <janburse@fastmail.fm>
Date2023-11-22 13:23 +0100
Message-ID<ujkrrs$1r0vq$3@solani.org>
In reply to#40059
Dogelog Player is a Prolog system 100% written
in Prolog itself. We recently extended the Dogelog
Player to not only support JavaScript and Python,
but also Java as its target platform. For JavaScript
and Java, Dogelog Player approaches Prolog
atoms via wobbly Unicode.

We treat wobbly code points as first class citizen
and see to it that a conversion from wobbly pairs
to a steady points automatically happens, but the
reverse road is blocked. The results are encouraging
but support in other Prolog systems such as
SWI-Prolog is lacking.

See also:

Wobbly Unicode in Dogelog Player
https://twitter.com/dogelogch/status/1727300173968162983

Wobbly Unicode in Dogelog Player
https://www.facebook.com/groups/dogelog

[toc] | [prev] | [next] | [standalone]


#41334

FromMild Shock <bursejan@gmail.com>
Date2023-11-22 05:12 -0800
Message-ID<332ba8ab-3e6c-44f4-89bb-0422c79ad50an@googlegroups.com>
In reply to#41325
My thoughts and prayers to Prolog systems that
have under the hood UTF-8. This is a nasty test case
to a certain approach of surrogate pairs:

?- X = 'The \uD83D', Y =  '\uDE02 dog', atom_concat(X, Y, Z).
X = 'The \ud83d', Y =  '\ude02 dog', Z = 'The 😂 dog'.

Could mean 3 bytes UTF-8 at the end of the first Prolog
atom and 3 bytes UTF-8 at the start of the second Prolog
atom are converted into 4 bytes UTF-8.

See also:

The WTF-8 encoding
WTF-8 (Wobbly Transformation Format − 8-bit) 
Simon Sapin, Mozilla - 23 February 2022
https://simonsapin.github.io/wtf-8/

Mild Shock schrieb am Mittwoch, 22. November 2023 um 13:23:33 UTC+1:
> Dogelog Player is a Prolog system 100% written 
> in Prolog itself. We recently extended the Dogelog 
> Player to not only support JavaScript and Python, 
> but also Java as its target platform. For JavaScript 
> and Java, Dogelog Player approaches Prolog 
> atoms via wobbly Unicode. 
> 
> We treat wobbly code points as first class citizen 
> and see to it that a conversion from wobbly pairs 
> to a steady points automatically happens, but the 
> reverse road is blocked. The results are encouraging 
> but support in other Prolog systems such as 
> SWI-Prolog is lacking. 
> 
> See also: 
> 
> Wobbly Unicode in Dogelog Player 
> https://twitter.com/dogelogch/status/1727300173968162983 
> 
> Wobbly Unicode in Dogelog Player 
> https://www.facebook.com/groups/dogelog

[toc] | [prev] | [next] | [standalone]


#41816

FromMild Shock <bursejan@gmail.com>
Date2023-11-26 13:15 -0800
Message-ID<0477d947-e6ff-4384-a465-e633acd1815fn@googlegroups.com>
In reply to#41334
Dogelog Player is a Prolog system for the
JavaScript, Python and Java platform. We
were facing some test cases that created
huge amounts of Prolog terms and in the
same time had a failure driven loop removing
them at once again. Can our garbage collector
deal with that?

Tri-color can be used to identify old and
new variables. We went on and implemented a
variant of David Ungars generation scavenging.
We could gain various benefits with a new
gc_minor() routine, and the winner was a
backtracking friendly heuristic when to
call it or not.

See also:

Generational GC for Dogelog Player
https://twitter.com/dogelogch/status/1728641232413307092

Generational GC for Dogelog Player
https://www.facebook.com/groups/dogelog

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.java.programmer


csiph-web