AapoAlas
aapoalas.trynova.dev
AapoAlas
@aapoalas.trynova.dev
Nova JavaScript engine developer and OSS contributor by day and night. Avid choir singer. He/him.

Give me data-oriented design or else (I will cry).

https://trynova.dev/
I'll try if I couldn't get some answers out of tsgo tomorrow :)
January 13, 2026 at 5:14 PM
Roger that.

I'll try interrogate tsgo a little tomorrow using Linux perf and/or gdb and other tools at my disposal. The leak reproduces regularly so I should have plenty of opportunities.
January 13, 2026 at 5:08 PM
I just think it's mostly a small exploration and a proof of concept.
January 13, 2026 at 4:27 PM
Hmm... I wonder if my Zed tsgo extension issues could be related; today I was seeing to the tune of gigabytes of memory leaking in one go while the LSP stopped responding/working at the same time. If not promptly killed tsgo would freeze WSL itself.
January 13, 2026 at 4:26 PM
Ladybird has a case study of sorts: it is currently blocked by some shortcomings though.
January 13, 2026 at 4:21 PM
trynova.dev/blog/garbage...

Last Sunday I discovered that lifetimes on #Rustlang garbage collected handles should be contravariant on their lifetime parameter. This is an open research question, but I think this opens a path to meaningful lifetimes on self-referential structs.

Check it out!
January 9, 2026 at 9:09 PM
What if write JavaScript engine in Rust?
January 7, 2026 at 2:41 PM
I'm being a total nutcase, but I found what I think is an important discovery about modeling garbage collected handles to the #Rustlang borrow checker: the lifetime of GC handles is contravariant!

Instead of validity "rising up the call stack" it "droops down from the heap". Blog incoming!
January 6, 2026 at 11:48 AM
Masters of Manual Memory Management proudly presents: Fearful heap allocation! Now with 50% more thrill!
January 4, 2026 at 11:04 AM
"Knowing what I know, this bug should be impossible. I am confused, therefore something I know must be a mistaken assumption." Confusion at how a bug can happen comes from viewing it in a fictitious setting, not from seeing a confusing reality.

But then again I never got into the cult so...
January 3, 2026 at 7:59 AM
There's one thing that I've taken out of Yud's writings that I still hold up high: with regards to debugging I like to think of his "your power as a ~~rationalist~~debugger is to be more confused by fiction than fact", which I take as needing to listen to the little doubt in the back of your mind:
January 3, 2026 at 7:59 AM
My work place installed a plastic owl on the roof.

A seagull made its nest snuggled up against it.
January 3, 2026 at 7:44 AM
The Rust inline assembly macro is actually one of its widely praised features: of course, it's not a massively commonly used feature but when it is used, developers seem to pretty uniformly find it to be extremely nice to work with.

That has been my experience as well.
January 2, 2026 at 1:26 PM
(The joke here is that "たいくつ" means "boring", but "たい" is phonetically equivalent to "Thai" in Japanese, and "くつ" means "shoes". "Thai shoes" is phonetically equivalent to "boring".)
December 31, 2025 at 11:06 AM
(The joke is that "More! モット!" is phonetically pretty close to "モルモット" which is the Japanese word for the subject of an experiment. So our researcher here is performing gruesome experiments on living subjects all the while muttering "more" in two different languages, or muttering "guinea pigs".)
December 31, 2025 at 11:04 AM
A British-Japanese cyborg researcher had a motto that they fully lived by. As their research to the limits of the human body grew ever more gruesome, requiring experiments on living subjects, they kept repeating their motto like a prayer: "More! – モット"
December 31, 2025 at 10:55 AM
A Thai export show was organised in Tokyo, and was all around well-received except for one part: the shoe fashion show was たいくつ .
December 31, 2025 at 10:44 AM
Absolutely beautiful/necessary in Rust, at least when writing an JavaScript engine from the ECMAScript specification which includes a lot of type verification checks that don't rename the variable.
December 28, 2025 at 9:08 PM
Hmm, as an ex-contributor and contractor for Deno... package.json at the very least is pretty strongly supported. What sort of lacks do you find?
December 28, 2025 at 6:55 PM
We have a lot to thank @steveklabnik.com and many others for that <3

I guess it just requires a concerted effort from individuals who believe in the work. Sincerely: best of luck, I hope Zig gets that work put into the resources as well!
December 28, 2025 at 6:51 PM
I have a horse in the race so: why a runtime of your own? Which engine do you plan to use? Main choices I could imagine are rusty_v8, mozjs, Boa, and Nova (mine/ours!).

On Nova there's tryandromeda.dev if you're adventurous and want to build on a runtime base. I can also help with the lifetimes :)
Andromeda
Andromeda - Rust-powered JavaScript and TypeScript runtime
tryandromeda.dev
December 28, 2025 at 6:47 PM
Haha, communication is fun/hard/a delicate sport :D
December 28, 2025 at 6:32 PM
This is caused by a lack of variadic generics. There is some ongoing push to get them into the language, but it is not entirely trivial (I believe).

I hope we'll see some movement perhaps within a year...?
December 28, 2025 at 6:30 PM
Just give me value and index generics on TypedArrays (and index generics on Arrays) and I promise I'll go away! :)

`Array<Foo, Bar>` to only allow indexing with Bar types, and `Uint8Array<ArrayBufferLike, Foo, Bar>` to do the same on TypedArrays :)
December 27, 2025 at 7:16 PM
We only fire hollow point bullets here in Rustland! Watch your head!
December 26, 2025 at 5:04 PM