Pinned Tweet
Perry Update: I developed our own Regex engine. All alternatives did not work well with our GC and memory model.
Happy to announce Perex, now Perry's only regex engine:
• pauses at any step so our moving GC can run, then resumes
• never copies the string being searched
• no unsafe code, zero dependencies
• same results as V8 on all 47,658 Test262 pattern cases
cargo add perex
github.com/PerryTS/perex
Happy to announce Perex, now Perry's only regex engine:
• pauses at any step so our moving GC can run, then resumes
• never copies the string being searched
• no unsafe code, zero dependencies
• same results as V8 on all 47,658 Test262 pattern cases
cargo add perex
github.com/PerryTS/perex
4
2
62
4,579
I am all in on getting JS better by removing such annoying pieces.
Bun AOT is doing it differently than Perry but we ultimately need the same semantics.
perryts.com
Bun AOT is doing it differently than Perry but we ultimately need the same semantics.
perryts.com
libraries that use `new Function’ for speed are slow under AOT. they need to codegen at build time or be statically analyzable. we’ll probably add `Bun.isAOT` to detect AOT.
1
0
42
5,403
amlug.eth retweeted
Everyone: "Vibe coding is causing all these security bugs"
Reality: PHP, Node, Linux kernel, GitLab. All hand-written code by humans, some of it 20 years old.
AI isn't creating the slop. It's finding it 🫠
Reality: PHP, Node, Linux kernel, GitLab. All hand-written code by humans, some of it 20 years old.
AI isn't creating the slop. It's finding it 🫠
146
245
3,850
72,042
amlug.eth retweeted
Just playing around with Perry. You know what? This can be an alternative if you want build compiled app both of TUI or GUI using TypeScript. Under the hood Perry use LLVM. An amazing works from @realamlug 👏
0
1
1
105
amlug.eth retweeted
TypeScript compilers have their renaissance! Here is mine for WASM/I P3: ahirner.github.io/perry-wit
cc @realamlug for perry, @richiemcilroy for Tov.sh, @jarredsumner for Bun, cf. velt, BAML as well!
cc @realamlug for perry, @richiemcilroy for Tov.sh, @jarredsumner for Bun, cf. velt, BAML as well!
0
2
2
325
New rule: every place an object is created is a “family” with a layout fixed at compile time. Objects are born with all their slots and never change shape.
Families that meet at the same access site agree on slot offsets.
So `o.x` is one load.
Families that meet at the same access site agree on slot offsets.
So `o.x` is one load.
2
0
5
337
Last night’s round, instruction counts vs main:
effect −17.8%
zod −8.8%
fastify −8.4%
tsc compile time: 239s → 202s
effect −17.8%
zod −8.8%
fastify −8.4%
tsc compile time: 239s → 202s
1
1
5
184
Honest scoreboard: 23 real programs (tsc, zod, effect, fastify, Next.js…), every one producing output identical to node.
tsc runs at 1.72× node instructions. fastify, qs, zod, and effect are still over 2×. Target: ≤2× everywhere.
2x target: Does this mean Perry is 2x slower than Nodejs? Nope! This is just the ceiling for EVERYTHING. So nothing Perry does will be slower than 2x, but in many many cases Perry is 10-100x as fast. So the 2x target is the target for the worst cases. Dynamic properties etc.
perryts.com
tsc runs at 1.72× node instructions. fastify, qs, zod, and effect are still over 2×. Target: ≤2× everywhere.
2x target: Does this mean Perry is 2x slower than Nodejs? Nope! This is just the ceiling for EVERYTHING. So nothing Perry does will be slower than 2x, but in many many cases Perry is 10-100x as fast. So the 2x target is the target for the worst cases. Dynamic properties etc.
perryts.com
1
0
11
181
Perry Update: JavaScript engines spend a lot of effort guessing what your objects look like.
Perry doesn’t have to guess. It compiles the whole program ahead of time, so the compiler simply decides.
This week we deleted the guessing machinery entirely. Here’s how 🧵
Perry doesn’t have to guess. It compiles the whole program ahead of time, so the compiler simply decides.
This week we deleted the guessing machinery entirely. Here’s how 🧵
4
2
49
2,436
The old Perry design copied what JS engines do: discover object shapes at runtime, then cache what you learned.
Inline caches, per-site memos, validity epochs, “pristine prototype” flags…
It worked. But it was the right data model in the wrong tense.
Inline caches, per-site memos, validity epochs, “pristine prototype” flags…
It worked. But it was the right data model in the wrong tense.
1
0
5
389
Is @TimSweeneyEpic vibe-coding now as well? 🤣
First Linus, now Tim ... the Anti-AI crowd should go crazy right now haha.
First Linus, now Tim ... the Anti-AI crowd should go crazy right now haha.
1
1
5
655
I started Perry after I was thinking exactly this.
Why bother with a neutral language and framework when agents do it all?
The reason is and stays: you still have to carry 2 codes. And agents don’t automatically make them any sync up.
Now you have to test both.
With a framework you outsource some of that trust.
Why bother with a neutral language and framework when agents do it all?
The reason is and stays: you still have to carry 2 codes. And agents don’t automatically make them any sync up.
Now you have to test both.
With a framework you outsource some of that trust.
After building a completely working iOS app with Codex last night it’s pretty clear that there’s absolutely no reason to use React Native anymore in 2026
0
0
4
706
Everyone is building a new TS compiler. But a TS compiler from TS to JS.
Without this recent hype it would have not even crossed my mind to make TSC a compile target / test target.
I want TS/JS to compile to binary and be freaking fast. Not a faster transpiler from TS to JS ....
Without this recent hype it would have not even crossed my mind to make TSC a compile target / test target.
I want TS/JS to compile to binary and be freaking fast. Not a faster transpiler from TS to JS ....
14
3
64
7,336
For context, since a few people are suggesting projects: this is what I've been building with Perry. TS/JS→ native binary, no JS engine. perryts.com
2
0
8
606
Not to brag but Perry can actually do this quite well :)
New Perry version coming soon with details!
New Perry version coming soon with details!
We’re likely going to do this because schema validation libraries are basically the worst case scenario for AOT performance without compiler integration
github.com/oven-sh/bun/is…
2
3
10
1,102
Claude has a constant desire to "bisect" any problems or regressions.
I'm like: We have 100 moving parts here, please just find the problem "as is" and we'll just fix it.
10 minutes later we have a fix (as opposed to 2h later with "this and that commit did this")
I'm like: We have 100 moving parts here, please just find the problem "as is" and we'll just fix it.
10 minutes later we have a fix (as opposed to 2h later with "this and that commit did this")
1
0
1
192
amlug.eth retweeted
the coding agent haters are getting dunning-kruger'd so hard right now
do you really think that your engineering ability is better than the models at this point?
it is very very likely that fable is better than you in every branch of software
it has been trained on all the code of the internet, it knows almost every trick in the book, all the design patterns of every domain, every single low-level detail, every bit-twiddling hack, it's read every single blog post from every cracked engineer that ever existed
do you really think you can beat it? do you really think you can be more creative than it?
unless you are 99th percentile expert in some niche domain of software, it simply is not possible. sorry.
do you really think that your engineering ability is better than the models at this point?
it is very very likely that fable is better than you in every branch of software
it has been trained on all the code of the internet, it knows almost every trick in the book, all the design patterns of every domain, every single low-level detail, every bit-twiddling hack, it's read every single blog post from every cracked engineer that ever existed
do you really think you can beat it? do you really think you can be more creative than it?
unless you are 99th percentile expert in some niche domain of software, it simply is not possible. sorry.
306
138
2,627
477,476
Low-latency somehow is my life's calling in tech lol.
A short backstory:
I first got into it in 2015 when I was hired to develop an "ultra-low-latency Wi-Fi sender/receiver". Written in pure C, at a driver level. This is way pre-AI, so this was freaking hard. But it was very good to learn about low latency and how computers actually work.
Then over the years, I got into finance and trading (blockchain). Again, low latency for first responses is key here.
The common theme from both above is: Every screw matters. You tighten one little screw, and it can change everything.
So then I started Perry, thinking, "oh nice, this does not require the same fine-tuning..." Haha, well, let me tell you: same thing again, every little screw matters.
Because the mission for Perry is not to simply compile JS/TS and have it work. It must compile and run it faster than everyone else across the board. Not just for each case, not just in benchmarks, but in actual programs.
Claude Code, OpenCode, Next.js, Zod etc., they all should work the best with Perry.
A short backstory:
I first got into it in 2015 when I was hired to develop an "ultra-low-latency Wi-Fi sender/receiver". Written in pure C, at a driver level. This is way pre-AI, so this was freaking hard. But it was very good to learn about low latency and how computers actually work.
Then over the years, I got into finance and trading (blockchain). Again, low latency for first responses is key here.
The common theme from both above is: Every screw matters. You tighten one little screw, and it can change everything.
So then I started Perry, thinking, "oh nice, this does not require the same fine-tuning..." Haha, well, let me tell you: same thing again, every little screw matters.
Because the mission for Perry is not to simply compile JS/TS and have it work. It must compile and run it faster than everyone else across the board. Not just for each case, not just in benchmarks, but in actual programs.
Claude Code, OpenCode, Next.js, Zod etc., they all should work the best with Perry.
3
0
11
528






