Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ANN: Dogelog Player 1.0.2 - Native Libraries

63 views
Skip to first unread message

Mostowski Collapse

unread,
Oct 2, 2022, 6:14:54 AM10/2/22
to
Dear All,

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

- Multifile Directive:
Until now, the multifile directive was just a
mockup with no function. This has now changed,
the directive now works both in the runtime and
in the transpiler.

- Native Libraries:
Libraries can be addressed using the new library(_)
and foreign(_) file specifications. The latter works
for both the JavaScript platform (loading _sync.js
or .mjs) and the Python platform (loading .py).

- Asynchronous Literate Programming:
Native libraries are loaded in the browser
using its asynchronous import(). Accordingly,
we have expanded the literate programming and
asynchronous Dogelog notebooks can also
be generated.

Have Fun!

Jan Burse, 02.10.2022, http://www.xlog.ch/

Mostowski Collapse

unread,
Oct 3, 2022, 4:08:08 AM10/3/22
to
The Prolog library(charsio) helps in executing test cases
that probe input or output expectations. The predicates
offered by this library allow for temporary redirection of
the current input or output.

The new stream API exposes Writer and Reader objects.
As a business case we provide memory files as a
native library, and on top of that a realization of our prolog
predicates from the Prolog library(charsio).

Preview: Stream API and library(charsio)
https://twitter.com/dogelogch/status/1576254169639317504

Preview: Stream API and library(charsio)
https://www.facebook.com/groups/dogelog

Mostowski Collapse

unread,
Oct 15, 2022, 7:12:25 PM10/15/22
to
Dogelog Player is a 100% pure Prolog system for the
JavaScript and the Python platform. It relies on the
arithmetic of the host programming language and
we were currious how subsequently certain Prolog
evaluable functions compare to other Prolog systems.

Instead of breaking our head over designing test data,
we opted for fuzzy testing, where the test data is
produced by some random number generator. We
have now a better grip what the different target platforms
JavaScript and Python can do for the Dogelog Player.

Prolog float/1, (/)/2 and (**)/2 Fuzzing Results
https://twitter.com/dogelogch/status/1581413401510957056

Prolog float/1, (/)/2 and (**)/2 Fuzzing Results
https://www.facebook.com/groups/dogelog

Mostowski Collapse

unread,
Oct 18, 2022, 9:23:58 AM10/18/22
to
We explored the possibility to run a Git independent
of GitHub on a remote server of our own choice. We
report here on our findings and how we have now a
new distribution channel for Dogelog Player.

There was first some turmoil, but the remote Git
repository can be enabled to generate extra
information, which is all what the local HTTP
Git client needs. There is now dumb HTTP access
to the source code, the user manuals and

the examples of the Dogelog player.

Do It Yourself Git for the Dogelog Player
https://twitter.com/dogelogch/status/1582354401221492736

Do It Yourself Git for the Dogelog Player
https://www.facebook.com/groups/dogelog

Mostowski Collapse

unread,
Oct 21, 2022, 4:58:24 AM10/21/22
to
We recently completed a testing campaign for the
Prolog float/1, (/)/2 and (**)/2 evaluable functions.
Our results are already outdated, so we provide a little
refresher on what has changed meanwhile.

By a simple change of the testing harness, we could also
use the test cases to measure performance. There is still a
lot of issues with ECLiPSe Prolog and Scryer Prolog. But taking
testing on the Unix platform into account, recent SWI-Prolog
is now among the most accurate and fastest.

Son of Fuzzer: More float/1, etc.. Results
https://twitter.com/dogelogch/status/1583380078938845184

Son of Fuzzer: More float/1, etc.. Results
https://www.facebook.com/groups/dogelog

Mostowski Collapse

unread,
Oct 30, 2022, 4:48:29 PM10/30/22
to
Hotel Grindelwald installed a binary cipher lock
system. It was praised as very user friendly, as
the hotel room safe will open as soon as the correct
binary sequence is entered.

The hotel also claimed that a burglar would need
in maximum of 2048 trials to find the 8 bits. This
was challenged by a guest by the name Colmerauer,
a former professor from Marseille.

The Prolog Halloween Burglar
https://twitter.com/dogelogch/status/1586816121449193478

The Prolog Halloween Burglar
https://www.facebook.com/groups/dogelog

Mostowski Collapse

unread,
Nov 19, 2022, 5:40:45 PM11/19/22
to
The Go programming language offers a type
math.big.Float out of the box. There is no such data
type for the JavaScript platform that is visibly bundled
with the runtime. We therefore went on an adventure
to implement binary arbitrary floats in 100% pure Prolog.

The porting to Dogelog Player wasn’t easy, since
JavaScript lacks good support for lsb/1, msb/1,
testbit/2 and divmod/2. The results are quite
encouraging. Not only got formerly Jekejeke Prolog
the silver medal. Also Dogelog Player doesn’t fare so bad,
it even beats Scryer Prolog.

Compute π to 8192 Bits in Prolog
https://twitter.com/dogelogch/status/1594097327920201728

Compute π to 8192 Bits in Prolog
https://www.facebook.com/groups/dogelog

Mostowski Collapse

unread,
Nov 30, 2022, 12:32:42 PM11/30/22
to
Recently it became apparent that it might be useful if
we could abort the execution of the Dogelog Player.
There is no chance to do this when the Dogelog Player
runs in synchronous mode, but we deviced a method for
the asynchronous mode of the Dogelog Player.

As a first proof of concept, the audio sequencer now changes
its start button to a stop button. There is also room for
improvements, we are currently working on an alternative
setup_call_cleanup/3 and an abortable sleep/1 and note/1
(sic!). We will report on it in due time.

Thread Signaling for the Dogelog Player
https://twitter.com/dogelogch/status/1598002862977875968

Thread Signaling for the Dogelog Player
https://www.facebook.com/groups/dogelog

Mostowski Collapse

unread,
Dec 6, 2022, 11:57:25 AM12/6/22
to
Dogelog Player is a Prolog interpreter 100% written in pure
Prolog, that targets the JavaScript and Python platform. We
made a bare bone experiment in accessing some open
government data from a cantonal administration.

The Dogelog Player doesn't require any component of its
own in the backend. We were lucky to find a 3rd party that
offers data with CORS headers. We coded a single download
routine for two datasets and did some frontend processing.

Accessing Open Data Portals with the Dogelog Player
https://twitter.com/dogelogch/status/1600149832236412929

Accessing Open Data Portals with the Dogelog Player
https://www.facebook.com/groups/dogelog

Mostowski Collapse

unread,
Dec 23, 2022, 3:51:24 AM12/23/22
to
Dogelog Player is a Prolog interpreter that is written
itself in 100% Prolog. It targets the JavaScript platform
and the Python platform. For the JavaScript platform it
is able to run in the browser. So far the Dogelog Player
mainly showcased writing text cells in the browser.

This has changed by a new type of graphic cells that can
be populated by a novel DOM Prolog API. It should be
noted that Dogelog Player does everything client side and
in 100% pure Prolog. The turtle graphics are loaded as a
Prolog text 'draw.p' and the state of the turtle is

Prolog dynamic facts inside the browser. This is very
different from SWI-Prolog SWISH and Logtalk Jupyter,
which require server roundtrip. Dogelog player is the
avantgard that pushes again and again the limits of
browser Prolog. Whereas the snapshot rollback

mechanism already differentiated the Dogelog player
from SWI-Prolog WASM, Ciao Playground and Tau-Prolog.
We successfully faced a new challenge in the form of graphic
cells, generated by 100% pure Prolog completely client side.

Coastline Paradox as a Dogelog Notebook
https://twitter.com/dogelogch/status/1606204258591789056

Coastline Paradox as a Dogelog Notebook
https://www.facebook.com/groups/dogelog

Mostowski Collapse

unread,
Jan 15, 2023, 2:33:53 PM1/15/23
to
Dogelog Player is a Prolog system that targets the
JavaScript and the Python platform. It is 100% written
in Prolog itself. We report about new built-ins format/[2,3]
that were developed Novacore style for both Dogelog

Player and formerly Jekejeke Prolog. For single source
Prolog bootstrapping we first implemented a platform
dependent built-in atom_number/4 for number shaping.
Testing shows that there is already perfect agreement

among all 3 platforms. We might now go on with further
investigations into format/[2,3] and the DOM API.

See also:

Novacore Style format/[2,3] for Dogelog
https://twitter.com/dogelogch/status/1614704262780444678

Novacore Style format/[2,3] for Dogelog
https://www.facebook.com/groups/dogelog
0 new messages