Recent submissions

Comment · 1 month ago
That is actually quite reassuring, thanks
Comment · 1 month ago
And compatibility part was most fun =)

Basically, it is better to use maps that can be directly used with load with immediate map index/fd, but we have at most 64 of those, sharing limit with user's data maps and even maps used for (iirc) 7.1 gotox. So for most programs we just use 32 maps or so. If we need more memory - only then array maps (I mean one that has more than 1 element and each element is 4MB) are used as upper part of address space, since they require helper call and are overall slower for our case. But fiber stacks can be allocated from this "slow space", because fiber mostly never reloads its map pointer and fiber stack is aligned so it is always within one such region. (and that is one part of two - memory; second one is about compute and verifier limits and we overcome them by using regions and dispatch-loop)

Comment · 1 month ago
Noted for the future. I actually wrote a draft myself and mostly used ai to translate it. And there were some "late discoveries" that required me to patch article fast. For instance, for older memory tier (without arenas) I was using 2MB+8B regions with 8B overlap - this allowed unaligned reads to happen without checks, but later I got 4MB non-overlapping regions with llvm read-write alignments to work and that allowed me to remove additional check on stores, make memory fully writable from host side and made atomics correct. So this kind of patch needed to land in article between my "finishing tinkerings".
Comment · 1 month ago
Yes, there is a language barrier. And I was in a hurry because of ongoing life events, so it was kinda "today or in a month" for me. Couldn't keep it much longer for myself and wanted to share.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton