Oliver Medhurst

Oliver Medhurst

@honk.foo

compiling javascript: https://porffor.dev + browser security

2.6K followers589 following302 posts

the latest version of Porffor features ESM support! it not only removes needing a bundler beforehand but also makes compilation much faster as we can split C across modules

this also introduces incremental compilation which can speedup builds by up to 30x versus last release!

to be transparent: this *is* real TSC fully ahead-of-time! it isn't good (buggy, not as fast, requires minor changes) but I hope gets you excited for the future :)

now state of the art btw because why not :)

also a fun side project I've been hacking on and off for about half a year: autolrc.honk.foo totally didn't just make a landing site to test porffor rewrite in "prod". nope, nuh uh, no way

Porffor is now self-hosted, meaning it compiles itself with itself! This is made possible by Porffor's new rewrite, reducing its lines of code by >50% and making C output up to 5x more efficient! Here you can see the stats before and after the rewrite for Porffor itself:

I will be in SF ~mid August, DM if you want to hangout and/or talk about how Porffor could help your company in the future :)

took an interesting route for data structures for rewrite and looks like it is good. hybrid C struct and nanboxing because just nanboxing is far too slow :(

took an interesting route for data structures for rewrite and looks like it is good. hybrid C struct and nanboxing because just nanboxing is far too slow :(

want to change my versioning scheme but screwed myself as npm can't rewind versions. my options are: 1. bypassing this restriction somehow 2. going to 0.1xx.0 3. going to 1.0.0-alpha.x any opinions/ideas?

(very!) early preview for a new experimental threading Porffor api. it enables intentionally low level concurrency to (try to) enable the most efficient communication feasible. here are 1 million threads alive simultaneously using only ~16gb. 16kb/thread, <1us start avg.

optimized selfhosted porffor binary is now <20mb and only takes ~1 minute to compile (>90% clang). (% change is vs debug binary) still buggy though. also still too big ;)

cleaning up code directly correlates to smaller (unoptimized!) selfhosted binary size 😇 (the ~release binary size is much much smaller)

elysia uses >2x less memory with ~15% lower latency and higher throughput vs ~a week ago :)

hono uses ~10% less memory with ~5% lower latency vs a few days ago, thanks to new gc and other allocation optimizations

in the last week I have written: a (new) gc, a wasm engine, a wasm compressor (via huffman coding) 😅 (maybe gonna drop the wasm engine though)