Elektrine
Log in Register
Paige Chat Timeline Gallery Friends Email Drive DNS Private DNS Domains VPN Kairo Nerve
Remote

Patrick Dubroy

@dubroy@hachyderm.io
mastodon 4.7.3
  • Open on hachyderm.io

Independent software engineer and researcher based in Munich, Germany. Co-creator and maintainer of Ohm (https://ohmjs.org).

Co-author of @wasmgroundup@hachyderm.io — an online book to learn Wasm by building a simple compiler in JavaScript.

0 Followers
0 Following
17 Posts
Joined December 16, 2022
Location:
Munich 🇩🇪
Blog:
https://dubroy.com/blog
Learn Wasm by building a simple compiler in JavaScript:
https://wasmgroundup.com
Bluesky:
https://bsky.app/profile/dubroy.com
Open post
Patrick Dubroy @dubroy@hachyderm.io
· 6mo ago
Replying to
Had a great time hanging out at MoreVMs today, thanks to @smarr@mastodon.acm.org and @sbrunthaler@mastodon.social for the invitation and for organizing! I believe my talk was recorded, so hopefully I can share soon.
5
1
1
0
Open post
Patrick Dubroy @dubroy@hachyderm.io
· 6mo ago

RE: @dubroy@hachyderm.io

One more time — I'm looking for new consulting clients.

Some ways I can help:

∙ Fractional tech leadership (tackling "leadership debt" in small eng orgs)
∙ Full-stack, 0 to 1 projects
∙ Language design & impl (eg with @ohmjs.org)
∙ All things #Wasm
∙ JavaScript/TypeScript perf

(🔁 appreciated)

hachyderm.io
5
0
10
0
Open post
Patrick Dubroy @dubroy@hachyderm.io
· 6mo ago

New post on the @ohmjs@hachyderm.io blog —

Inside Ohm's PEG-to-Wasm compiler
→ https://ohmjs.org/blog/2026/03/12/peg-to-wasm

v18 is now more than 50x faster for real-world grammars while using about 10% of the memory 🔥

…this post goes into the details of how it's built.

ohmjs.org
4
2
6
0
Open post
Patrick Dubroy @dubroy@hachyderm.io
· 6mo ago

TIL: Python signal handling
→ https://github.com/pdubroy/til/blob/main/python/2026-04-01-Python-signal-handling.md

github.com
3
0
0
0
Open post
Patrick Dubroy @dubroy@hachyderm.io
· 6mo ago

Love this —

microui: A tiny, portable, immediate-mode UI library written in ANSI C
→ https://github.com/rxi/microui

Only around 1100 SLoC (!)

github.com
3
0
0
0
Open post
Patrick Dubroy @dubroy@hachyderm.io
· 7mo ago

TIL: Multithreaded WebAssembly
→ https://github.com/pdubroy/til/blob/main/wasm/2026-03-05-Multithreaded-WebAssembly.md

github.com
3
2
2
0
Open post
Patrick Dubroy @dubroy@hachyderm.io
· 6mo ago

Tomorrow at 17:20 CET / 12:20 EDT / 9:20 PDT, I'll be livestreaming at https://twitch.tv/jlengstorf, teaching @jlengstorf@hachyderm.io about WebAssembly!!

I'll do my best to condense the best parts of our #Wasm book (@wasmgroundup@hachyderm.io) into ~60 minutes. 😄

twitch.tv
2
0
3
1
Open post
Patrick Dubroy @dubroy@hachyderm.io
· 6mo ago
Replying to
Interesting theme that came up in a few talks (incl. mine) & conversations was flat/packed tree representations. @vollmerm@types.pl (Univ. of Kent) has done tons of interesting work in this area: https://recurial.com
recurial.com
2
1
1
0
Open post
Patrick Dubroy @dubroy@hachyderm.io
· 7mo ago
Replying to
Also I finally put together a consulting/ page, for anyone who's interested in working with me. https://dubroy.com/consulting/ Did I mention I still have availability this year? 😇
dubroy.com
2
0
1
0
Open post
Patrick Dubroy @dubroy@hachyderm.io
· 6mo ago
Replying to

@chris@m.objc.io Yes, it varies but the general idea is —

For ASTs, CSTs, and intermediate representations (e.g. CFGs)…

They are many small objects, that all have the same lifetime, and that lifetime corresponds to a clearly-defined phase, so:

  • avoid per-node memory management space overhead
  • do bump allocation into some kind of arena/region, free them en masse at the end of the phase.
  • use integer offsets rather than first-class pointers. (Memory savings, better cache locality, and — in GC'd environments — avoids GC overhead scanning a large object graph.

In many languages, you can do this effectively with a large array, but there are other approaches too.

See also what @adrian@discuss.systems wrote about it: https://www.cs.cornell.edu/~asampson/blog/flattening.html

Happy to chat about this sometime!

Flattening ASTs (and Other Compiler Data Structures)
cs.cornell.edu

Flattening ASTs (and Other Compiler Data Structures)

This is an introduction to data structure flattening, a special case of arena allocation that is a good fit for programming language implementations. We build a simple interpreter twice, the normal way and the flat way, and show that some fairly mechanical code changes can give you a 2.4× speedup.

1
1
0
0
Open post
Patrick Dubroy @dubroy@hachyderm.io
· 7mo ago
Replying to
And @krismicinski@types.pl's "Natural Deduction for IfArith" lecture is also great: https://www.youtube.com/watch?v=neCrsTf8h7Y&list=PLXaqTeMx01E-l20YhTNwN4xncM-1jweqG
1
0
0
0
Open post
Patrick Dubroy @dubroy@hachyderm.io
· 6mo ago
Replying to
@chris@m.objc.io I've also found that, in V8 at least, if you can avoid allocation when walking large trees, you can see a ~10x speedup for operations that visit all/most of the nodes in the tree. (I have one type of walker that lazily materializes CST nodes from the packed representation into first-class objects, and another one that does little/no allocation at all during the walk.)
0
1
0
0
Open post
Patrick Dubroy @dubroy@hachyderm.io
· 6mo ago

RE: @dubroy@hachyderm.io

In just under 30 minutes now!

hachyderm.io
0
0
0
0
Open post
Patrick Dubroy @dubroy@hachyderm.io
· 7mo ago
Replying to
@steltenpower@social.edu.nl What part will be used by a Go implementation? Would be interested to hear about that. Occam! Haven't heard about that in a long time.
0
0
0
0
Back
313k7r1n3
Elektrine

Tor hidden service

elekhj7afj4qnrr4yd3bkzslsyo5jgfxw3orgjkhlcxifueodybyiiad.onion

I2P eepsite

j6b6cyk6gjmepjih7jjadxgxvvf3lzzujljuu2v4biemzpg3naya.b32.i2p

Platform

  • Email
  • Chat
  • Timeline
  • VPN
  • DNS

Company

  • About
  • Contact
  • FAQ
  • Lite (no JS)

Legal

  • Terms of Service
  • Privacy Policy
  • Transparency Report
  • Report Abuse
  • Warrant Canary
  • VPN Policy

Support

  • support@elektrine.com
  • Report Security Issue
Mail client setup IMAP mail.elektrine.com:993 POP3 mail.elektrine.com:995 SMTP mail.elektrine.com:465
© 2026 Elektrine. All rights reserved. Server: 08:22:04 UTC