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/
Give me data-oriented design or else (I will cry).
https://trynova.dev/
I worked "for the Internet" for 6 months and basically never really wrote about it: that is now one month in the past, so I guess now is a good time to talk about it.
trynova.dev/blog/worked-...
trynova.dev/blog/worked-...
I worked for the Internet – now what? · Nova
Looking back on and past 6 months of work.
trynova.dev
November 8, 2025 at 10:36 PM
I worked "for the Internet" for 6 months and basically never really wrote about it: that is now one month in the past, so I guess now is a good time to talk about it.
trynova.dev/blog/worked-...
trynova.dev/blog/worked-...
Korean kimchi making equipment meets Finnish forest mushrooms!
November 2, 2025 at 3:41 PM
Korean kimchi making equipment meets Finnish forest mushrooms!
Reposted by AapoAlas
If your company is interested in funding Rust maintainers, please reach out to me or @erikjee.bsky.social!
You can find our sponsors prospectus here: rustnl.org/resources/Ru...
Let me know if you want to talk! 💛
(Message me through Bluesky, Mastodon, Rust Zulip, or email: [email protected])
You can find our sponsors prospectus here: rustnl.org/resources/Ru...
Let me know if you want to talk! 💛
(Message me through Bluesky, Mastodon, Rust Zulip, or email: [email protected])
October 14, 2025 at 3:15 PM
If your company is interested in funding Rust maintainers, please reach out to me or @erikjee.bsky.social!
You can find our sponsors prospectus here: rustnl.org/resources/Ru...
Let me know if you want to talk! 💛
(Message me through Bluesky, Mastodon, Rust Zulip, or email: [email protected])
You can find our sponsors prospectus here: rustnl.org/resources/Ru...
Let me know if you want to talk! 💛
(Message me through Bluesky, Mastodon, Rust Zulip, or email: [email protected])
In Makoto Shinkai's 5 cm per second there is a phrase that I keep remembering: "Through the act of living itself, sadness piles up here and there." I really love that phrase, somehow.
Today as we were cleaning, I pondered upon the crumbs on the floor as sadness piling up and realised that for me it
Today as we were cleaning, I pondered upon the crumbs on the floor as sadness piling up and realised that for me it
October 18, 2025 at 9:13 AM
In Makoto Shinkai's 5 cm per second there is a phrase that I keep remembering: "Through the act of living itself, sadness piles up here and there." I really love that phrase, somehow.
Today as we were cleaning, I pondered upon the crumbs on the floor as sadness piling up and realised that for me it
Today as we were cleaning, I pondered upon the crumbs on the floor as sadness piling up and realised that for me it
I went back to work two weeks ago, and since then I have not even looked at my ongoing work on Nova #JavaScript engine's SharedArrayBuffer usage as I have simply not had the time.
Feels weird coming back to it. Feels like a total brain reset.
Feels weird coming back to it. Feels like a total brain reset.
October 18, 2025 at 6:11 AM
I went back to work two weeks ago, and since then I have not even looked at my ongoing work on Nova #JavaScript engine's SharedArrayBuffer usage as I have simply not had the time.
Feels weird coming back to it. Feels like a total brain reset.
Feels weird coming back to it. Feels like a total brain reset.
Currently listening to Tim Schmidt giving a talk on Alumina in Sydney #Rustlang remote meetup; in 1 hours time I'll give a talk on Nova #JavaScript engine and data-oriented design.
Jump into the call if that sounds interesting!
rustsyd.daily.co/meetup-2025-...
Jump into the call if that sounds interesting!
rustsyd.daily.co/meetup-2025-...
Join my video call
Just click to join this call.
rustsyd.daily.co
October 15, 2025 at 7:15 AM
Currently listening to Tim Schmidt giving a talk on Alumina in Sydney #Rustlang remote meetup; in 1 hours time I'll give a talk on Nova #JavaScript engine and data-oriented design.
Jump into the call if that sounds interesting!
rustsyd.daily.co/meetup-2025-...
Jump into the call if that sounds interesting!
rustsyd.daily.co/meetup-2025-...
I have activated our base component's trap card: every internal property is depended upon by some external user, at least in tests, and doing anything like removing the writability of purely internal details runs directly into a wall of pain.
I'm not happy.
I'm not happy.
October 13, 2025 at 12:15 PM
I have activated our base component's trap card: every internal property is depended upon by some external user, at least in tests, and doing anything like removing the writability of purely internal details runs directly into a wall of pain.
I'm not happy.
I'm not happy.
Went and did a quick data collection on the relative frequency of GitHub issues mentioning "crash" or "sefault"/"segmentation fault" in #Rustlang, #Ziglang, #C++, and #C. Selected 10 most starred repositories that use GH issues. Not the most scientific data selection, but it was fun!
Relative crash and segmentation fault reporting frequency in OpenSource projects across four systems programming languages
docs.google.com
October 12, 2025 at 2:52 PM
Well that was a very interesting #Rustlang pre-RFC text! Effectively arguing that Rust is painting itself into a substructural type system corner, and should recognise this as a fact and take the theoretical framework into focus when applying the paint.
As a logician by training, I'm all for it!
As a logician by training, I'm all for it!
[Pre-RFC] Substructural Type System
Feature Name: substructural_traits Start Date: 10-11-2025 RFC PR: rust-lang/rfcs#0000 Rust Issue: rust-lang/rust#0000 Summary Rust has parts of a substructural type system, but it is incomplete. A su...
internals.rust-lang.org
October 12, 2025 at 12:40 PM
Well that was a very interesting #Rustlang pre-RFC text! Effectively arguing that Rust is painting itself into a substructural type system corner, and should recognise this as a fact and take the theoretical framework into focus when applying the paint.
As a logician by training, I'm all for it!
As a logician by training, I'm all for it!
Hey #JavaScript / #TypeScript hive-mind: are you aware of any high-performance, memory-efficient directed acyclic graph libraries?
I'm going to embark on a quest to write a TypedArray Struct-of-Arrays based DAG for a specific use case, and I'm pondering if any prior art exists already.
I'm going to embark on a quest to write a TypedArray Struct-of-Arrays based DAG for a specific use case, and I'm pondering if any prior art exists already.
October 8, 2025 at 5:23 PM
Hey #JavaScript / #TypeScript hive-mind: are you aware of any high-performance, memory-efficient directed acyclic graph libraries?
I'm going to embark on a quest to write a TypedArray Struct-of-Arrays based DAG for a specific use case, and I'm pondering if any prior art exists already.
I'm going to embark on a quest to write a TypedArray Struct-of-Arrays based DAG for a specific use case, and I'm pondering if any prior art exists already.
In one of my two choirs, I am the only bass singer in rehearsals this autumn: I feel I am BaaS, or Bass as a Service.
October 7, 2025 at 9:39 AM
In one of my two choirs, I am the only bass singer in rehearsals this autumn: I feel I am BaaS, or Bass as a Service.
"Maintainer compromises used to be rare."
I'm an old-timey maintainer: you can bet your ass I'll never compromise!
/joke
I'm an old-timey maintainer: you can bet your ass I'll never compromise!
/joke
September 30, 2025 at 6:52 PM
"Maintainer compromises used to be rare."
I'm an old-timey maintainer: you can bet your ass I'll never compromise!
/joke
I'm an old-timey maintainer: you can bet your ass I'll never compromise!
/joke
Reposted by AapoAlas
There is also another option: make the JavaScript engine itself aggressively memory optimised and its GC compacting, so that fragmentation is eliminated.
I had similar frustrations and @trynova.dev was the answer I came up with. It's not a fully ready engine, but maybe it's worth a look for you.
I had similar frustrations and @trynova.dev was the answer I came up with. It's not a fully ready engine, but maybe it's worth a look for you.
September 27, 2025 at 6:41 AM
There is also another option: make the JavaScript engine itself aggressively memory optimised and its GC compacting, so that fragmentation is eliminated.
I had similar frustrations and @trynova.dev was the answer I came up with. It's not a fully ready engine, but maybe it's worth a look for you.
I had similar frustrations and @trynova.dev was the answer I came up with. It's not a fully ready engine, but maybe it's worth a look for you.
If you're using @zed.dev and want to follow along with Nova #JavaScript engine development (or you're just interested in looking at some #Rustlang development live on air), then hop in here: zed.dev/channel/nova...
I've not really used the collaboration features much and I'm interested to try.
I've not really used the collaboration features much and I'm interested to try.
zed.dev
September 18, 2025 at 10:25 AM
If you're using @zed.dev and want to follow along with Nova #JavaScript engine development (or you're just interested in looking at some #Rustlang development live on air), then hop in here: zed.dev/channel/nova...
I've not really used the collaboration features much and I'm interested to try.
I've not really used the collaboration features much and I'm interested to try.
It's been a while but I'm #streaming again; #Rustlang doesn't allow mixed-size atomics or data races but #JavaScript does, so I have to write inline assembly to try mitigate the blast radius of breaking the C++/Rust memory model. Nice!
www.twitch.tv/aapoalas
www.twitch.tv/aapoalas
AapoAlas - Twitch
Building Nova JavaScript engine, built on data-oriented design and Entity-Component-Systems architecture.
www.twitch.tv
September 17, 2025 at 9:25 AM
It's been a while but I'm #streaming again; #Rustlang doesn't allow mixed-size atomics or data races but #JavaScript does, so I have to write inline assembly to try mitigate the blast radius of breaking the C++/Rust memory model. Nice!
www.twitch.tv/aapoalas
www.twitch.tv/aapoalas
#streaming Nova #JavaScript #TypeScript engine development again.
I think today I'll be optimising the interpreter loop; taking a data-oriented look at what are the most common instructions that the VM performs and making sure those handlers are at the top of the instruction cache.
#Rustlang
I think today I'll be optimising the interpreter loop; taking a data-oriented look at what are the most common instructions that the VM performs and making sure those handlers are at the top of the instruction cache.
#Rustlang
September 8, 2025 at 6:29 AM
#streaming Nova #JavaScript #TypeScript engine development again.
I think today I'll be optimising the interpreter loop; taking a data-oriented look at what are the most common instructions that the VM performs and making sure those handlers are at the top of the instruction cache.
#Rustlang
I think today I'll be optimising the interpreter loop; taking a data-oriented look at what are the most common instructions that the VM performs and making sure those handlers are at the top of the instruction cache.
#Rustlang
I proposed a talk on Nova JavaScript engine to JSConf.jp but unfortunately didn't make the cut :(
I proposed to give the talk in Japanese, so that would've been fun: last time I've given talks in Japanese was back at Kobe University 10 years ago.
I guess now I at least don't need to travel.
I proposed to give the talk in Japanese, so that would've been fun: last time I've given talks in Japanese was back at Kobe University 10 years ago.
I guess now I at least don't need to travel.
September 7, 2025 at 4:11 PM
I proposed a talk on Nova JavaScript engine to JSConf.jp but unfortunately didn't make the cut :(
I proposed to give the talk in Japanese, so that would've been fun: last time I've given talks in Japanese was back at Kobe University 10 years ago.
I guess now I at least don't need to travel.
I proposed to give the talk in Japanese, so that would've been fun: last time I've given talks in Japanese was back at Kobe University 10 years ago.
I guess now I at least don't need to travel.
I was today years old when I realised that Go the programming language's name has a callback (intentional or not) to Google.
I am also today years old wondering if Google is telling me to go ogle things, and if so then what?
I am also today years old wondering if Google is telling me to go ogle things, and if so then what?
September 6, 2025 at 2:03 PM
I was today years old when I realised that Go the programming language's name has a callback (intentional or not) to Google.
I am also today years old wondering if Google is telling me to go ogle things, and if so then what?
I am also today years old wondering if Google is telling me to go ogle things, and if so then what?
#Streaming some more Nova #JavaScript / #TypeScript development; #programming a JS engine in #Rustlang and today I'm tackling SharedArrayBuffers and perhaps the Atomics API later.
www.twitch.tv/aapoalas
www.twitch.tv/aapoalas
Twitch
Twitch is the world
www.twitch.tv
September 5, 2025 at 10:46 AM
#Streaming some more Nova #JavaScript / #TypeScript development; #programming a JS engine in #Rustlang and today I'm tackling SharedArrayBuffers and perhaps the Atomics API later.
www.twitch.tv/aapoalas
www.twitch.tv/aapoalas
#Streaming Nova #JavaScript #TypeScript development again! Time to do some bpftrace #programming to set up nice debugging scripts before I merge our USDT PR!
www.twitch.tv/aapoalas
www.twitch.tv/aapoalas
Twitch
Twitch is the world
www.twitch.tv
September 1, 2025 at 8:15 AM
#Streaming Nova #JavaScript #TypeScript development again! Time to do some bpftrace #programming to set up nice debugging scripts before I merge our USDT PR!
www.twitch.tv/aapoalas
www.twitch.tv/aapoalas
And this is what we end up with: github.com/oxidecompute...
I think the linkers have won this round, SystemTap is probably(?) also adding the "R" flag to make sure linkers don't drop the base section. Nothing changes the fact that we have possibly a ton of misassembled exes out there. Oh well.
I think the linkers have won this round, SystemTap is probably(?) also adding the "R" flag to make sure linkers don't drop the base section. Nothing changes the fact that we have possibly a ton of misassembled exes out there. Oh well.
August 31, 2025 at 9:46 PM
And this is what we end up with: github.com/oxidecompute...
I think the linkers have won this round, SystemTap is probably(?) also adding the "R" flag to make sure linkers don't drop the base section. Nothing changes the fact that we have possibly a ton of misassembled exes out there. Oh well.
I think the linkers have won this round, SystemTap is probably(?) also adding the "R" flag to make sure linkers don't drop the base section. Nothing changes the fact that we have possibly a ton of misassembled exes out there. Oh well.
Maybe this is related? github.com/iovisor/bcc/...
August 31, 2025 at 7:25 PM
Maybe this is related? github.com/iovisor/bcc/...
I'm losing hope for tracing on Linux: not only mold but also LLD and Gold will GC out the .stapsdt.base section out of executables if given half a chance. At least locally that makes executables not trigger USDTs and/or crash when traced. bpftrace just doesn't trigger, Linux perf crashes.
1/5
1/5
August 31, 2025 at 5:59 PM
I'm losing hope for tracing on Linux: not only mold but also LLD and Gold will GC out the .stapsdt.base section out of executables if given half a chance. At least locally that makes executables not trigger USDTs and/or crash when traced. bpftrace just doesn't trigger, Linux perf crashes.
1/5
1/5
Is anyone aware of implementations of the Tiny Pointers / Krapivin hash table from arxiv.org/abs/2501.02305?
Specifically, I'm interested in if the optimal bounds enable performance improvements in the physical world as well. (Compare to Cuckoo hashing, which is perfect but slow on real hardware.)
Specifically, I'm interested in if the optimal bounds enable performance improvements in the physical world as well. (Compare to Cuckoo hashing, which is perfect but slow on real hardware.)
August 31, 2025 at 10:55 AM
Is anyone aware of implementations of the Tiny Pointers / Krapivin hash table from arxiv.org/abs/2501.02305?
Specifically, I'm interested in if the optimal bounds enable performance improvements in the physical world as well. (Compare to Cuckoo hashing, which is perfect but slow on real hardware.)
Specifically, I'm interested in if the optimal bounds enable performance improvements in the physical world as well. (Compare to Cuckoo hashing, which is perfect but slow on real hardware.)