CanadaHonk Profile Banner
Oliver Medhurst Profile
Oliver Medhurst

@CanadaHonk

Followers
3K
Following
32K
Media
275
Statuses
2K

compiling javascript ahead-of-time: https://t.co/wZZMjx9tEE | TC39 & WinterTC invited expert

Joined February 2020
Don't wanna be here? Send us removal request.
@CanadaHonk
Oliver Medhurst
10 months
Thrilled to announce that from next week I'll be working on my AOT JS engine Porffor full-time, thanks to the support of @defunkt!.
29
49
384
@CanadaHonk
Oliver Medhurst
1 year
Samsung have their own JS engine which has been in development since 2016 and is still active??.
24
59
643
@CanadaHonk
Oliver Medhurst
2 years
:has() is in Firefox beta from today, have fun:
16
64
406
@CanadaHonk
Oliver Medhurst
4 months
@aidenybai hot take: your vscode sidebar should be hidden.
18
3
398
@CanadaHonk
Oliver Medhurst
7 months
My AOT JS engine Porffor now passes over 50% of Test262, the official ECMAScript conformance test suite! I dive into what that means in a new post below:
Tweet media one
10
22
279
@CanadaHonk
Oliver Medhurst
9 months
I've joined @TC39 (the standards group behind JS) as an Invited Expert 🎉👀
Tweet media one
12
1
271
@CanadaHonk
Oliver Medhurst
6 months
Excited to have Guillermo Rauch @rauchg, founder of Vercel, as Porffor's latest financial supporter! This will help accelerate my mission to make ahead-of-time compilation of JS a reality 🚀.
7
1
175
@CanadaHonk
Oliver Medhurst
6 months
new Porffor website!
Tweet media one
6
4
172
@CanadaHonk
Oliver Medhurst
2 years
I join @mozilla as a Software Engineer full-time starting October 1st working on @firefox! More details:
21
8
156
@CanadaHonk
Oliver Medhurst
2 months
typescript will become a popular systems programming language within 5 years
Tweet media one
14
3
162
@CanadaHonk
Oliver Medhurst
2 months
hello world compiled with Porffor now makes 10x smaller Wasm and 2x smaller native binaries compared to before
Tweet media one
5
10
147
@CanadaHonk
Oliver Medhurst
10 months
After a big internal rewrite today, Porffor compiles ~5x faster than before now! 🥳. For example, running Test262 used to take ~35m on my machine and now only takes ~8m! 🚀.
3
5
126
@CanadaHonk
Oliver Medhurst
4 months
I rewrote Porffor's object implementation completely; it is now much faster and makes Wasm binaries 2-5x smaller than before when using objects!. Porffor's current worst benchmark gets 30% faster with >4x smaller Wasm; almost on par with QuickJS now with only ~1 month of work.
@CanadaHonk
Oliver Medhurst
4 months
finishing a huge optimization today, should I do a blog post about it?.
6
8
127
@CanadaHonk
Oliver Medhurst
29 days
Porffor's Wasm is now faster than *native* Node JITless at richards.js, an old V8 benchmark!. new improvement is thanks to a new compiler feature and a minor object rewrite I'll post about this weekend. I still have ideas which can make this hopefully almost 2x faster this month!
Tweet media one
3
6
126
@CanadaHonk
Oliver Medhurst
8 months
Wasm memory usage is now >10x smaller than before thanks to a complete rewrite of allocation: now featuring string interning and static bin-packing instead of 1 object per page.
@CanadaHonk
Oliver Medhurst
8 months
After a series of upcoming Porffor optimizations, Test262 runs ~2x fast (with minor regressions to be fixed before push)
Tweet media one
2
9
116
@CanadaHonk
Oliver Medhurst
7 months
@jdalton Unfair but :)
Tweet media one
5
8
104
@CanadaHonk
Oliver Medhurst
3 months
new js engine (quickjs fork) just dropped
3
9
97
@CanadaHonk
Oliver Medhurst
10 months
Porffor now has FFI support for native compilation with a similar API to Deno, and it looks like it is the fastest!.
Tweet media one
2
8
87
@CanadaHonk
Oliver Medhurst
6 months
My AOT JS engine Porffor now passes over 55% of Test262, the official ECMAScript conformance test suite! It jumped by over 4% thanks to class expressions.
Tweet media one
1
2
93
@CanadaHonk
Oliver Medhurst
2 years
Progress after *one night* of making a web engine from scratch (HTML and CSS parsers, layout, renderer frontend). Screenshot of
Tweet media one
6
3
88
@CanadaHonk
Oliver Medhurst
3 months
inline c
Tweet media one
8
1
91
@CanadaHonk
Oliver Medhurst
7 months
Porffor now supports array spreading
Tweet media one
0
0
88
@CanadaHonk
Oliver Medhurst
9 months
Porffor now passes over 40% of Test262, the official ECMAScript conformance test suite! 🥳📈
Tweet media one
2
0
86
@CanadaHonk
Oliver Medhurst
1 month
Porffor's new rewritten assembler is ~2x faster than before! (still WIP). It was bottle necking compiler performance but now entirely uses typed arrays and writes linearly instead of writing in chunks of standard arrays and creating a typed array at the end.
Tweet media one
1
2
85
@CanadaHonk
Oliver Medhurst
1 year
@jarredsumner coffeescript.
1
0
80
@CanadaHonk
Oliver Medhurst
9 months
Porffor now passes 42% of Test262, the official ECMAScript conformance test suite
Tweet media one
2
0
72
@CanadaHonk
Oliver Medhurst
9 months
Porffor now passes over 39% of Test262, the official ECMAScript conformance test suite
Tweet media one
1
2
74
@CanadaHonk
Oliver Medhurst
6 months
Porffor's latest optimization makes its slowest benchmark >15% faster with >3x smaller Wasm output!
Tweet media one
4
2
81
@CanadaHonk
Oliver Medhurst
9 months
Porffor now passes 38% of Test262, the official ECMAScript conformance test suite
Tweet media one
1
0
77
@CanadaHonk
Oliver Medhurst
8 months
Porffor now passes well over 43% of Test262, the official ECMAScript conformance test suite. This large bump is thanks to initial WIP generator support! 🤓📈
Tweet media one
0
0
74
@CanadaHonk
Oliver Medhurst
4 months
for better or worse, Porffor now supports this
Tweet media one
@colinhacks
colinhacks/zod
4 months
Tweet media one
7
0
75
@CanadaHonk
Oliver Medhurst
4 months
finishing a huge optimization today, should I do a blog post about it?.
10
0
75
@CanadaHonk
Oliver Medhurst
2 months
Firefox will soon be the first browser to ship Temporal in stable release (139)! (I promise this is not an april fool).
@intenttoship
Intent To Ship
2 months
Gecko: Intent to ship: Temporal.
2
6
75
@CanadaHonk
Oliver Medhurst
8 months
Porffor now passes over 49.5% of Test262, the official ECMAScript conformance test suite, after making promises more conformant! 📈
Tweet media one
2
0
72
@CanadaHonk
Oliver Medhurst
3 months
Porffor works with your favorite JS runtime
Tweet media one
5
0
75
@CanadaHonk
Oliver Medhurst
8 months
Porffor now passes over 46% of Test262, the official ECMAScript conformance test suite, after initial async generator support! 📈🔥
Tweet media one
2
1
69
@CanadaHonk
Oliver Medhurst
9 months
Porffor now passes over 41% (now over 20k passes) of Test262, the official ECMAScript conformance test suite
Tweet media one
2
4
68
@CanadaHonk
Oliver Medhurst
8 months
Porffor now passes over 44% of Test262, the official ECMAScript conformance test suite, after more generator improvements.
Tweet media one
@CanadaHonk
Oliver Medhurst
8 months
Porffor now passes well over 43% of Test262, the official ECMAScript conformance test suite. This large bump is thanks to initial WIP generator support! 🤓📈
Tweet media one
3
2
69
@CanadaHonk
Oliver Medhurst
8 months
Porffor now passes over 47% of Test262, the official ECMAScript conformance test suite, after making array prototype methods more conformant! 🔥📈
Tweet media one
3
2
69
@CanadaHonk
Oliver Medhurst
7 months
Porffor now supports member expressions in destructure patterns
Tweet media one
5
0
68
@CanadaHonk
Oliver Medhurst
7 months
Porffor now implements Promise.try, allowing nicer sync-async barrier interaction. It was officially added to the ES spec in the last TC39 meeting! 🙇 @ljharb
Tweet media one
2
5
67
@CanadaHonk
Oliver Medhurst
1 month
Porffor now implements the proposed getOrInsert Map methods; thanks to how easy it is to prototype built-ins in Porffor, this only took ~10 minutes in total!
Tweet media one
3
0
68
@CanadaHonk
Oliver Medhurst
8 months
After a series of upcoming Porffor optimizations, Test262 runs ~2x fast (with minor regressions to be fixed before push)
Tweet media one
0
0
63
@CanadaHonk
Oliver Medhurst
8 months
Porffor now passes over 48.5% of Test262, the official ECMAScript conformance test suite, after making destructuring more conformant! 📈
Tweet media one
2
1
64
@CanadaHonk
Oliver Medhurst
3 months
Porffor now passes over 57% of Test262! This latest bump was thanks to a refactor makes functions and methods distinct to be more conformant for this, construction, etc
Tweet media one
3
1
66
@CanadaHonk
Oliver Medhurst
10 months
Tweet media one
@CanadaHonk
Oliver Medhurst
10 months
trying to implement something which will either be very exciting, meh, or not work. bet now and stay tuned 👀.
2
1
61
@CanadaHonk
Oliver Medhurst
2 months
Porffor now supports BigInt typed arrays. just this (plus some related changes) boosts Test262 passing by over 0.7%. all of this was done today locked in on a wifi-less flight :)
Tweet media one
1
2
65
@CanadaHonk
Oliver Medhurst
11 months
My JS engine/AOT compiler Porffor now passes over 30% of Test262 (the standard JS test suite)!
Tweet media one
@CanadaHonk
Oliver Medhurst
11 months
Porffor is now passing ~28.5% of Test262! 🤠
Tweet media one
0
2
61
@CanadaHonk
Oliver Medhurst
2 years
Small post formally introducing my browser engine, <shadow>: A new novel browser engine made almost entirely from scratch, in JS, runnable in your browser (for fun). Still very early (<1 week old from first line written) and WIP!.
4
8
56
@CanadaHonk
Oliver Medhurst
9 months
Porffor now implements Promise.any
Tweet media one
1
0
60
@CanadaHonk
Oliver Medhurst
10 days
how large are js engines? let's find out:
@CanadaHonk
Oliver Medhurst
10 days
making this a tiny blog post because I could not find any answers to this question.
4
4
74
@CanadaHonk
Oliver Medhurst
8 months
I'll be talking about Porffor in Tokyo next Monday (7th) at a TC39 community event!
4
6
59
@CanadaHonk
Oliver Medhurst
10 months
Porffor now passes 37% of Test262, the official ECMAScript test suite 📈
Tweet media one
3
0
58
@CanadaHonk
Oliver Medhurst
10 months
Porffor now passes over 36% of Test262, the official ECMAScript test suite!
Tweet media one
0
1
55
@CanadaHonk
Oliver Medhurst
11 months
My JS engine Porffor has now hit 25% Test262, meaning it passes 1/4 of the standard JS test suite!! 🥳📈
Tweet media one
3
2
53
@CanadaHonk
Oliver Medhurst
7 months
Porffor now supports Reflect.apply and Reflect.construct
Tweet media one
4
2
55
@CanadaHonk
Oliver Medhurst
2 years
Just wrote my first Node PR: 🚀. Thanks to @yagiznizipli for inspiration and review :).
1
2
58
@CanadaHonk
Oliver Medhurst
7 months
👋 hello SF
Tweet media one
3
0
57
@CanadaHonk
Oliver Medhurst
10 months
Porffor now compares strings ~80% faster ⚡️
Tweet media one
3
1
54
@CanadaHonk
Oliver Medhurst
1 month
introducing porffor profile, an easy to use but detailed profiler, with shareable links!
Tweet media one
1
2
58
@CanadaHonk
Oliver Medhurst
10 months
Porffor now supports template literals!
Tweet media one
1
0
56
@CanadaHonk
Oliver Medhurst
2 years
Merged! Faster Node fs.writeFileSync() with UTF8 and strings as data. >2x faster when using file descriptors and larger data! 🎉🚀.
@CanadaHonk
Oliver Medhurst
2 years
@nodejs You'll probably find this the most interesting 👀 (featuring fresh new benchmarks!).
4
3
55
@CanadaHonk
Oliver Medhurst
7 months
today is the day, time to write celebratory blog post 👀.
5
0
52
@CanadaHonk
Oliver Medhurst
1 year
Porffor, my AOT JS engine, now passes over 20% of Test262, the official ECMAScript test suite! 🤓📈
Tweet media one
4
5
51
@CanadaHonk
Oliver Medhurst
2 years
@hikari_no_yume so good
Tweet media one
1
0
50
@CanadaHonk
Oliver Medhurst
3 months
Porffor now has TypedArray.prototype.set
Tweet media one
1
1
54
@CanadaHonk
Oliver Medhurst
5 months
Porffor mentioned 😳.
@robpalmer2
Rob Palmer
5 months
📜 An end-of-year review of the JS highlights of 2024 in the JS Weekly newsletter. Thanks to editor-in-chief @cooperx86 for the weekly goodness 👍.
Tweet media one
2
1
54
@CanadaHonk
Oliver Medhurst
10 months
Porffor now supports `super`!
Tweet media one
4
0
52
@CanadaHonk
Oliver Medhurst
9 months
Porffor now supports tagged template literals!
Tweet media one
1
1
50
@CanadaHonk
Oliver Medhurst
11 months
Porffor now has promises! 🤯
Tweet media one
3
0
44
@CanadaHonk
Oliver Medhurst
10 months
Performance of Porffor (native AOT, left) and QuickJS (interpreted, right) on a random fun benchmark :^)
2
2
48
@CanadaHonk
Oliver Medhurst
8 months
Porffor now supports the JSON.stringify space argument
Tweet media one
1
0
46
@CanadaHonk
Oliver Medhurst
10 months
Porffor: A few more details of the announcement:
0
7
44
@CanadaHonk
Oliver Medhurst
7 months
This is unfortunately true and why WinterCG exists: to help solve these issues for all runtimes 🎉.
@jarredsumner
Jarred Sumner
7 months
Sharing code between browser and server sounds nice, but doesn’t always work out well. fetch() in browsers worries about CORS & CSP, but server-side needs proxies & TLS configuration. URLPattern & web streams are too slow for server-side JS. FormData doesn’t stream.
1
2
47
@CanadaHonk
Oliver Medhurst
11 months
Porffor is now passing ~28.5% of Test262! 🤠
Tweet media one
@CanadaHonk
Oliver Medhurst
11 months
Porffor is now passing 27.5% of Test262! 📈
Tweet media one
1
1
41
@CanadaHonk
Oliver Medhurst
9 months
Porffor now handles uncaught exceptions in async functions as expected (rejecting the promise)
Tweet media one
0
1
44
@CanadaHonk
Oliver Medhurst
2 months
just rewrote Porffor's Wasm import system to be much more cleaner, user-defined and robust. thanks to the increased robustness, it made a bonus +0.22% test262 bump too!. done on a train and the tube btw ;).
2
0
47
@CanadaHonk
Oliver Medhurst
25 days
if you ahead-of-time compile js to wasm or native you don't have to worry about cold/warm starts ;).
@mjackson
MJ
25 days
@matteocollina Yep, this is the same model as CF workers. Connection pooling could be solved in a number of ways. Either:.- use an external process like PgBouncer with a short-lived connection from the worker.- use a process pool model where you keep a few of the worker processes warm, they.
3
2
46
@CanadaHonk
Oliver Medhurst
1 year
My WinterCG CLI API proposal has been adopted! 🎉.
3
8
42
@CanadaHonk
Oliver Medhurst
3 months
Since that post, Porffor has gotten another ~10% faster at this benchmark! This is thanks to internal rewrites which succeeded for both improved performance and maintainability (graph soonTM).
@CanadaHonk
Oliver Medhurst
4 months
another ~8% faster
Tweet media one
0
0
45
@CanadaHonk
Oliver Medhurst
10 months
Porffor has a new progress log while natively compiling so you know it is doing things! Disappears once finished like @ziglang's new one ;)
Tweet media one
1
1
39
@CanadaHonk
Oliver Medhurst
10 months
Porffor now compiles ~15% smaller native binaries
Tweet media one
2
0
39
@CanadaHonk
Oliver Medhurst
7 months
Small peek of new profiler 👀.
@cmgriffing
Chris Griffing
7 months
The coolest part about SF is that their meetup scene is so strong. I just went to a WASM meetup co-organized by @dylibso. @CanadaHonk is doing some really cool stuff with porffor
Tweet media one
1
4
40
@CanadaHonk
Oliver Medhurst
1 year
Porffor, my JS engine, can now parse TS and use its type annotations for bonus performance!
4
4
41
@CanadaHonk
Oliver Medhurst
5 months
Porffor's goals for January thread! A more compliant and stable compiler, while starting foundations for large long-term optimizations:.
1
1
42
@CanadaHonk
Oliver Medhurst
7 months
v1 is done. blog post soon :)
Tweet media one
@CanadaHonk
Oliver Medhurst
7 months
simple type inferring is not so simple to implement, I feel your pain type checker developers.
0
0
38
@CanadaHonk
Oliver Medhurst
2 years
Adding <hr> in <select> to Gecko, hopefully in Firefox 120! (UI WIP)
Tweet media one
2
1
39
@CanadaHonk
Oliver Medhurst
9 months
Porffor also no longer runs any hacks replacing some test code using regex for some previously unsupported JS features, mostly checking error details 🎉.
@CanadaHonk
Oliver Medhurst
9 months
Porffor now passes over 39% of Test262, the official ECMAScript conformance test suite
Tweet media one
0
0
38
@CanadaHonk
Oliver Medhurst
8 months
Test262 progress over time since ~inception
Tweet media one
2
0
40
@CanadaHonk
Oliver Medhurst
11 months
Porffor is now passing 27.5% of Test262! 📈
Tweet media one
@CanadaHonk
Oliver Medhurst
11 months
My JS engine Porffor has now hit 25% Test262, meaning it passes 1/4 of the standard JS test suite!! 🥳📈
Tweet media one
1
0
36
@CanadaHonk
Oliver Medhurst
10 months
Porffor now passes over 32% of Test262 📈
Tweet media one
@CanadaHonk
Oliver Medhurst
11 months
My JS engine/AOT compiler Porffor now passes over 30% of Test262 (the standard JS test suite)!
Tweet media one
1
0
36
@CanadaHonk
Oliver Medhurst
5 months
Tweet media one
@satanacchio
Marco Ippolito
5 months
Node.js v23.6.0 is out! 🥳🎉.This release enables the flag --experimental-strip-types by default. Node.js will execute TypeScript files without additional configuration!. ⚠️ This feature is experimental, has limitations and is subject to change.
1
4
39
@CanadaHonk
Oliver Medhurst
7 months
simple type inferring is not so simple to implement, I feel your pain type checker developers.
2
0
38
@CanadaHonk
Oliver Medhurst
10 months
Porffor now supports classes!
Tweet media one
5
0
33
@CanadaHonk
Oliver Medhurst
8 months
After some optimizations, assembling is now ~30% faster and Test262 takes ~8 minutes to run the entire suite 🚀.
@CanadaHonk
Oliver Medhurst
8 months
Contemplating totally rewriting Porffor's assembler due to this data (from a test262 run). It has no reason to be a bottleneck for compiler performance.
Tweet media one
1
0
33
@CanadaHonk
Oliver Medhurst
7 months
the next-gen js runtime will be multi-engine 🍿.
5
1
36
@CanadaHonk
Oliver Medhurst
8 months
Extremely basic generator support in Porffor (no yield yet)
Tweet media one
@CanadaHonk
Oliver Medhurst
8 months
Porffor now passes well over 43% of Test262, the official ECMAScript conformance test suite. This large bump is thanks to initial WIP generator support! 🤓📈
Tweet media one
1
0
35
@CanadaHonk
Oliver Medhurst
9 months
Porffor now correctly implements the default sorting function 🗃️. It converts values to strings and then compares using string code units, leading to some. interesting behavior
Tweet media one
1
0
35
@CanadaHonk
Oliver Medhurst
9 months
tempted to go to Tokyo in October (for TC39 + the experience) 🧐.
5
0
33