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


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

ANN: Dogelog Player 2.2.3 (Introducing π-WAM)

Started byMild Shock <janburse@fastmail.fm>
First post2026-07-07 19:28 +0200
Last post2026-07-25 03:54 +0200
Articles 3 — 1 participant

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


Contents

  ANN: Dogelog Player 2.2.3 (Introducing π-WAM) Mild Shock <janburse@fastmail.fm> - 2026-07-07 19:28 +0200
    Parallel π-WAM: JavaScript Workers as CPU Backend (Re: Parallel π-WAM: 1.7 Giga Lips on a CPU) Mild Shock <janburse@fastmail.fm> - 2026-07-20 19:29 +0200
      Parallel π-WAM: An Interleaved Synchronous Emulator (Re: Parallel π-WAM: JavaScript Workers as CPU Backend) Mild Shock <janburse@fastmail.fm> - 2026-07-25 03:54 +0200

#53764 — ANN: Dogelog Player 2.2.3 (Introducing π-WAM)

FromMild Shock <janburse@fastmail.fm>
Date2026-07-07 19:28 +0200
SubjectANN: Dogelog Player 2.2.3 (Introducing π-WAM)
Message-ID<112jcvo$5860$3@solani.org>
Dear All,

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

- Unicode 17.0:
We lifted the Dogelog Player for Java build
to JDK 26 and regenerated our Unicode database
for category and number value for the JavaScript
and Python build. The supported version is now
17.0 and we managed somehow to reduce the footprint
from 16848 words to 15000 words.

- Emulating π-WAM:
The new library(edge/brainfog) permits the
execution of certain Prolog goals in a π-WAM
backend. The concept of a π-WAM embraces a
fusion of a processs (π) calculus and a Warren
Abstract Machine (WAM). Optimized for speed the
WAM is very primitive and currently only supports
the ‘$SEQ’/2 control construct, plus rudimentary
32-bit integer arithmetic and between/3.

- Executing π-WAM:
Both emulate/1 and execute/1 compile into an
identical instruction stream. In the virtual
machine the instructions are 32-bit inspired by
combinations of the 16-bit A and C instructions
from the original Hack. The resulting π-WAM
currently doesn’t support a stack, a trail
or choice points but can nevertheless
do backtracking.

Have Fun!

Jan Burse, July 07, 2026, https://www.herbrand.ai/

[toc] | [next] | [standalone]


#53765 — Parallel π-WAM: JavaScript Workers as CPU Backend (Re: Parallel π-WAM: 1.7 Giga Lips on a CPU)

FromMild Shock <janburse@fastmail.fm>
Date2026-07-20 19:29 +0200
SubjectParallel π-WAM: JavaScript Workers as CPU Backend (Re: Parallel π-WAM: 1.7 Giga Lips on a CPU)
Message-ID<113lltp$4r9r$3@solani.org>
In reply to#53764
Hi,

We recently implemented a parallel π-WAM on
a CPU backend and could demonstrate an
estimated 1.7 Giga Lips. This CPU backend
was written in Java, uses Java platform
threads and is meanwhile part of library(edge/
brainfog). In the following we report first
porting steps to JavaScript.

With the adoption of JavaScript workers we
embrace preemptive multithreading, even
for a Web Prolog, and depart from Dogelog
Players cooperative multitasking. The design
also adopts SharedArrayBuffer to replicate
the Java heap, that is shared among
Java platform threads.

Bye

See also:

Parallel π-WAM: JavaScript Workers as CPU Backend
https://medium.com/2989/5ef903e5e785

Mild Shock schrieb:
> Hi,
> 
> We recently implemented a parallel π-WAM
> on a GPU backend and could demonstrate an
> estimated 11.4 Giga Lips. In this post we
> report a further experiment, this time
> presenting a parallel π-WAM on a CPU backend,
> that can lift specialized Prolog, currently
> to 1.7 Giga Lips performance.
> 
> Having an excess number of threads is a
> bad idea. What if we do context switching
> on our own? With this approach we could
> bring down the execution time of 128 Hack
> VMs by 33%. We estimate for the test which
> had 11.4 GLips on the GPU, that we reach
> 1.7 GLips on the CPU.
> 
> Bye
> 
> See also:
> 
> Parallel π-WAM: 1.7 Giga Lips on a CPU
> https://medium.com/2989/8a984e75af44
> 
> Mild Shock schrieb:
>> Hi,
>>
>> At the end of 2025 we acquired a couple of AI
>> Laptops , that were still cheap, since RAM prices
>> had not yet rocketed. The intend was to tap into
>> the Copilot+ certified hardware, and shave off
>> some of the TOPS to do Prolog inferencing. Amazingly
>> our π-WAM can churn 11.4 GIGA LIPS.
>>
>> GPUs have evolved form lock-step to independent
>> thread scheduling. This made it possible to port
>> the Hack VM variant, that forms the basis for
>> our π-WAM, to WebGPU computer shaders. Using
>> NUM_SHADERS = 4096 we could produce 11.4 Giga Lips
>> on a Ryzen AI 7 350 w/ Radeon 860M.
>>
>> Bye
>>
>> See also:
>>
>> Dogelog Player: 11.4 Giga Lips with a Budget Laptop
>> https://medium.com/2989/899b0d5c027b
>>
>> Mild Shock schrieb:
>>> Dear All,
>>>
>>> We are happy to announce a new edition of
>>> the Dogelog Player:
>>>
>>> - Unicode 17.0:
>>> We lifted the Dogelog Player for Java build
>>> to JDK 26 and regenerated our Unicode database
>>> for category and number value for the JavaScript
>>> and Python build. The supported version is now
>>> 17.0 and we managed somehow to reduce the footprint
>>> from 16848 words to 15000 words.
>>>
>>> - Emulating π-WAM:
>>> The new library(edge/brainfog) permits the
>>> execution of certain Prolog goals in a π-WAM
>>> backend. The concept of a π-WAM embraces a
>>> fusion of a processs (π) calculus and a Warren
>>> Abstract Machine (WAM). Optimized for speed the
>>> WAM is very primitive and currently only supports
>>> the ‘$SEQ’/2 control construct, plus rudimentary
>>> 32-bit integer arithmetic and between/3.
>>>
>>> - Executing π-WAM:
>>> Both emulate/1 and execute/1 compile into an
>>> identical instruction stream. In the virtual
>>> machine the instructions are 32-bit inspired by
>>> combinations of the 16-bit A and C instructions
>>> from the original Hack. The resulting π-WAM
>>> currently doesn’t support a stack, a trail
>>> or choice points but can nevertheless
>>> do backtracking.
>>>
>>> Have Fun!
>>>
>>> Jan Burse, July 07, 2026, https://www.herbrand.ai/
>>
> 

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


#53766 — Parallel π-WAM: An Interleaved Synchronous Emulator (Re: Parallel π-WAM: JavaScript Workers as CPU Backend)

FromMild Shock <janburse@fastmail.fm>
Date2026-07-25 03:54 +0200
SubjectParallel π-WAM: An Interleaved Synchronous Emulator (Re: Parallel π-WAM: JavaScript Workers as CPU Backend)
Message-ID<114150f$ccl1$3@solani.org>
In reply to#53765
Hi,

The π-WAM an alternative Prolog VM, for the
Dogelog Player, got one after the other, a GPU
backend prototype, and then productive CPU backends.
So in retrospect we felt the need to not only
emulate in 100% Prolog the initial single threaded
π-WAM, but also its multi threaded successors.

One central idea is to partition the state into
slices, that belong to each logical thread. Since
we adress slices by an offset, we can also use
these offsets for a parallel simulation. Because
of varying warp and tilt parameters the output
usually differs from the CPU backends.

Bye

See also:

Parallel π-WAM: An Interleaved Synchronous Emulator
https://medium.com/2989/0196089e143a

Mild Shock schrieb:
 > Hi,
 >
 > We recently implemented a parallel π-WAM on
 > a CPU backend and could demonstrate an
 > estimated 1.7 Giga Lips. This CPU backend
 > was written in Java, uses Java platform
 > threads and is meanwhile part of library(edge/
 > brainfog). In the following we report first
 > porting steps to JavaScript.
 >
 > With the adoption of JavaScript workers we
 > embrace preemptive multithreading, even
 > for a Web Prolog, and depart from Dogelog
 > Players cooperative multitasking. The design
 > also adopts SharedArrayBuffer to replicate
 > the Java heap, that is shared among
 > Java platform threads.
 >
 > Bye
 >
 > See also:
 >
 > Parallel π-WAM: JavaScript Workers as CPU Backend
 > https://medium.com/2989/5ef903e5e785

[toc] | [prev] | [standalone]


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


csiph-web