• Sign in
  • Sign up
Elektrine
EN
  • EN English
  • 中 中文
Log in Register
Modes
Overview Search Chat Timeline Communities Gallery Lists Friends Email Vault VPN
Back to Timeline
  • Open on tech.lgbt

arya dradjica

@bal4e@tech.lgbt
mastodon 4.5.6+glitch.techlgbt

Hi! I like programming.

Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while.

Working at @nlnetlabs@social.nlnetlabs.nl, on DNS software. Writing a Rust compiler (https://bal-e.org/speed/krabby) on the side.

🏳️‍⚧️

0 Followers
0 Following
Joined August 19, 2024
GitHub:
https://github.com/bal-e
Website:
https://bal-e.org
Pronouns:
she/her

Posts

bal4e
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
arya dradjica
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
@bal4e@tech.lgbt · Mar 06, 2026

Linux offers a concerning number of ways to track another process' writes in userspace. Especially at the granularity of pages.

#programming #linux

View on tech.lgbt
0
0
0
0
bal4e
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
arya dradjica
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
@bal4e@tech.lgbt · Mar 06, 2026

I'm really itching to write a generic tool for exploring state machines. Let me explain: the tool's input would be an executable representing the state machine; it runs from an initial state and performs state transitions specified by the tool. After the last action, it informs the tool about potential actions at the current state. The tool would run the executable repeatedly, starting with an empty list of actions and gradually learning the state space. It could explore random paths in the state space or try to exhaustively cover everything. I came up with the idea while looking into https://docs.rs/loom and "stateless model checking" (SMC, for checking concurrent programs); it also feels very similar to fuzzing. I can see it being useful in several other domains.

I can't be the first person to think of this; are there existing implementations of such tools (particularly generic ones)? Does this class of tools have a name?

1/N

#programming

View on tech.lgbt
2
0
1
0
bal4e
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
arya dradjica
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
@bal4e@tech.lgbt · Mar 05, 2026

I've always found it weird that Rust has *mut T and *const T, while the two seem pretty much interchangeable. Turns out, there is at least one difference -- *mut T is invariant in T, while *const T is covariant in T. These match the rules for &mut T and &T, but it's a bit scary when you're building safe APIs around pointers generic in T. Perhaps there are more differences I don't know about; I'll dig around.

https://doc.rust-lang.org/reference/subtyping.html#r-subtyping.variance.builtin-types

#programming #rust

View on tech.lgbt
3
0
1
0
bal4e
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
arya dradjica
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
@bal4e@tech.lgbt · Feb 26, 2026

I think a lot about why I wrote code the way I do; I don't know anyone whose brain works the same way. A few days ago, I managed to capture the feeling that drives me and take a closer look. I wrote about it: https://bal-e.org/blog/2026/making-nice-things.

#programming

View on tech.lgbt
7
0
2
0
bal4e
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
arya dradjica
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
@bal4e@tech.lgbt · Feb 26, 2026

RE: @rustnl@fosstodon.org

I'M SO EXCITED

for more details, see https://bal-e.org/blog/2026/see-you-at-rustweek/

View on tech.lgbt
6
0
1
0
bal4e
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
arya dradjica
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
@bal4e@tech.lgbt · Feb 17, 2026

@harold@mastodon.gamedev.place Oh, yeah, sure. That works for >=8 byte inputs, and I'm taking advantage of it. The foldhash crate (which I adapted my hash function from) has a more thorough and sound implementation (https://docs.rs/foldhash/latest/src/foldhash/lib.rs.html#240). But for <8 byte inputs (which are quite common in my data set), an out-of-bounds load is by far the fastest implementation.

View on tech.lgbt
1
0
0
0
bal4e
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
arya dradjica
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
@bal4e@tech.lgbt · Feb 17, 2026

@harold@mastodon.gamedev.place I'm using the overlapping-loads trick already, but I still need the hashes to be consistent regardless of the alignment of the input. Aligning the load would give me a u64 that depends on the address of the input, which won't do. I could manually recombine two aligned loads, so that I'm filling a u64 with the right data, but that's just a manual unaligned load.

View on tech.lgbt
0
0
0
0
bal4e
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
arya dradjica
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
@bal4e@tech.lgbt · Feb 17, 2026

@harold@mastodon.gamedev.place I'm using the same out-of-bounds read to hash the string and to compare it to another string. Aligning the load would work for the comparison (although it would add some overhead to compute the right mask), but I don't think it's possible for hashing.

View on tech.lgbt
1
0
0
0
bal4e
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
arya dradjica
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
@bal4e@tech.lgbt · Feb 17, 2026

@harold@mastodon.gamedev.place @wffl@im-in.space I wish it wasn't as much of a performance improvement as it is 😩

My plan is to

1) Offer an explicitly-unsafe API which lets the caller assert that out-of-bounds reads will work (e.g. if their identifier is parsed from a buffer of source code, where at least 7 extra bytes have been reserved).

2) Offer a safe API where the caller loads the identifier into a u64 for me; if the caller is parsing the identifier and using scalar SIMD tricks, they may already have it in a u64, and I can use that directly.

3) Within this regular API, add a page boundary check as a relatively strong check that the memory access will succeed. I need to devise some really fast bit tests, something like addr ^ (addr + 7) < 4096. I'll also add some real dark magic to convince LLVM not to treat it as UB (which it could hypothetically do with the current code).

View on tech.lgbt
1
0
0
0
bal4e
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
arya dradjica
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
@bal4e@tech.lgbt · Feb 17, 2026

I'm super excited to announce that I'll be presenting a talk at RustWeek! I'm going to talk about obsessively optimizing an identifier interner. I want to share my tools, knowledge and excitement for shaving off nanoseconds. I've gone into a bit more detail on my blog, at https://bal-e.org/blog/2026/see-you-at-rustweek. I'm so grateful for this opportunity, and I hope you watch it! See you there!

#programming #rust #rustweek

View on tech.lgbt
13
0
8
0
bal4e
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
arya dradjica
arya dradjica
@bal4e@tech.lgbt

Hi! I like programming. Severely addicted to high-performance code. Mostly involved in the low-level side of things, like memory layouts, concurrent data structures, and SIMD. Interested in OS design, programming languages, privacy/security, network protocols, and compiler architecture. Dabbling in number theory every once in a while. Working at @ nlnetlabs , on DNS software. Writing a Rust compiler ( https:// bal-e.org/speed/krabby ) on the side. 🏳️‍⚧️

tech.lgbt
@bal4e@tech.lgbt · Jun 10, 2025

I'm in the process of implementing a new task queue architecture for my very-very-WIP Rust compiler, and I seem to be achieving some gorgeous speedups over crossbeam-deque (which, to be fair, wasn't really fit for my use case). My task architecture is capable of prioritizing tasks, while still implementing work-stealing. I previously had ~20% of the compiler runtime stuck in the task queues; it's now around 7.5%. The compiler's become about 25% faster overall (~650ms => ~450ms for my main benchmark target, over 4x2 threads).

There's still further improvements waiting: the 7.5% is spent in futexes, because the current data structures use locking, and I have a sketch of a lock-free version to try out. Near the end of compilation, threads are going to sleep and not being woken up correctly. Even so, there's more optimizations I had planned that are yet to come, such as using a better global data structure to reduce contention even further.

Blog post coming soon (ETA 1 week?).

#rust #compiler #krabby

View on tech.lgbt
7
0
3
0
313k7r1n3

Company

  • About
  • Contact
  • FAQ

Legal

  • Terms of Service
  • Privacy Policy
  • VPN Policy

Email Settings

IMAP: imap.elektrine.com:993

POP3: pop.elektrine.com:995

SMTP: smtp.elektrine.com:465

SSL/TLS required

Support

  • support@elektrine.com
  • Report Security Issue

Connect

Tor Hidden Service

khav7sdajxu6om3arvglevskg2vwuy7luyjcwfwg6xnkd7qtskr2vhad.onion
© 2026 Elektrine. All rights reserved. • Server: 15:12:08 UTC