Ideas for Porting PBP to Go
2026-05-24
I’ve written the PBP kernel in a pseudo-language and generate Python, JS and CL. I think that if you were to point your LLM at
https://github.com/guitarvydas/pbp-dev/blob/main/kernel/0d.rt,
https://github.com/guitarvydas/pbp-dev/blob/main/kernel/stock.rt and
https://github.com/guitarvydas/pbp-dev/blob/main/kernel/jit.rt
and gave it the Python versions
https://github.com/guitarvydas/pbp-dev/blob/main/kernel/0d.py,
https://github.com/guitarvydas/pbp-dev/blob/main/kernel/stock.py and
https://github.com/guitarvydas/pbp-dev/blob/main/kernel/jit.py,
it might be able to infer the Go version.
Maybe you also need to give it the Ohm grammar file
and the Python rewrite rules
I suspect that using words like “concurrent” and “process” and “thread” might get an LLM to generate convoluted / wrong code. 0D.rt implements its own form of multi-processing from scratch - don’t let an LLM use preconceived ideas about what threads are. Threading needs only 10’s of lines of code - all existing thread libraries that I know of (including Go) have turned this into a behemoth, steaming pile of complexity.
If you do need to use words like these, tell the LLM to use a mutual multi-tasking model (aka “green threads”) with NO shared memory. A lot of the cancerous complexity growth has befallen us because of the use of implicit memory sharing (starting with the concept of “thread safety”). When you strip the underlying memory sharing assumption out, the code becomes orders of magnitude simpler. The first kernel I studied was 1/2 page of assembler code.
See Also
Email: ptcomputingsimplicity@gmail.com
Substack: paultarvydas.substack.com
Videos: https://www.youtube.com/@programmingsimplicity2980
Discord: https://discord.gg/65YZUh6Jpq
Leanpub: https://leanpub.com/u/paul-tarvydas
Twitter: @paul_tarvydas
Bluesky: @paultarvydas.bsky.social
Mastodon: @paultarvydas
(earlier) Blog: guitarvydas.github.io
References: https://guitarvydas.github.io/2024/01/06/References.html
Paid subscriptions are a voluntary way to support this work.

