opale !!

opale !!

@n1ark.acouphene.net

compsci phd + soteria rust @ https://soteria-tools.com writing + dev @ https://acouphene.net myself @ https://n1ark.com she/her 🏳️‍⚧️

186 followers166 following373 posts

Pinned

i wrote a blog post about a cool optimisation i did to make quadratic behaviour linear while remaining sound !! its a mix of pretty technical GC details and theoretical Rust stuff, which is the best of mixes imo, go read it !! ! !! soteria-tools.com/blog/meta-ga...

soteria-tools.comMeta Garbage Collection: Using OCaml's GC to GC Rust - SoteriaTracking Rust's aliasing model can be quadratically expensive if done naively. Learn how we fixed this in Soteria Rust by doing meta garbage collection.

today i got hit by the innocent looking 2 line change that hides a system-wide unsoundness instead ! yippee

opale !!@n1ark.acouphene.net

the issue w using llms for Smart things is they they'll put out a 150 line change because it works and if you actually study the thing it turns out all of it isn't needed if you study the root cause and actually just do the principled 2 line change

the issue w using llms for Smart things is they they'll put out a 150 line change because it works and if you actually study the thing it turns out all of it isn't needed if you study the root cause and actually just do the principled 2 line change

and like i haven't figured out how to hone them towards doing principled things, like at all!!! which makes trusting them super hard!!! they are so so bad at abstraction

if u need to find a hole in your code it will do saw flawlessly atp and will fix it but not in a composable way, so if you just iterate find bugs / fix / repeat you end up with a mess (<- girl who has 10kloc to go through)

i think in PL / static analysis community we have to do like a lot more research into what our tools and our work is worth against LLMs. it's an awkward conversation to have, but what worth is the tool i spent 2 years making if running Claude on the code will find the same if not more bugs ?

we are effectively in the process of figuring out either how (a) good or (b) cheap running LLMs will get. because our tools have two advantages: (a) fully precise,* and (b) virtually free to run. if LLMs beat us at two, we're dead! *up to supported features. unlike Claude, that has "all" features.

well this is a bit doomposting, i don't think we're done for. but we have to very strongly reevaluate the use of our tools, what we build for, what we aim for, and how we interact with LLMs. it's not a fight imo, both can be beneficial to the other, but i think rn we're completely missing the mark

i could spend 3 hours configuring obsidian to be exactly how i want, and struggle anytime i want to do something obsidian doesn't support and for which there isn't a plugin. OR i can just summon exactly what i want into existence and make it evolve as i use it anyways i have a notetaking app now:D

i still got it Anthropeum.com · Aug 25 2026 🟦🟩🟩🟩🟦🟦🟩🟩🟩🟦 80,269 · top 1% of players today!

opale !!@n1ark.acouphene.net

got bored so i did a lil tips and tricks guide for anthropeum with a map to explore what the Met has "acquired" check it out or don't n1ark.com/blog/anthrop... anyways Anthropeum.com · Aug 23 2026 🟦🟦🟦🟩🟨🟦🟩🟩🟩🟦 84,794 · top 6% of players today!

Anthropeum.com · Aug 24 2026 🟨🟩🟩🟦🟦🟩🟦🟩🟨🟨 73,367 · top 7% of players today!

opale !!@n1ark.acouphene.net

got bored so i did a lil tips and tricks guide for anthropeum with a map to explore what the Met has "acquired" check it out or don't n1ark.com/blog/anthrop... anyways Anthropeum.com · Aug 23 2026 🟦🟦🟦🟩🟨🟦🟩🟩🟩🟦 84,794 · top 6% of players today!

the worst part of doing this was spending 2 days scraping all ~50K image urls from the met bc it's not part of their database export, and doing it client side would hit intense rate limits pretty much instantly 🔥

i might write a lil blog post on abstraction, been doing some work that has forced me to do things properly and oughh its so nice also spent the day writing a symbolic stub for core::ptr::align_offset and there's probably something to say there too

it would be cool if ocaml had even more syntax sugar or some form of `unit -> unit t` coercion for monads. basically a wait to be able to have `fn1 x; f2 y; f3 z` as monadic code rather than `let* () = fn1 x in let* () = fn2 y in f3 z`

View full thread

best i could do is come up with an `if_ : bool -> unit t -> unit t` that hides this away but i still get `let* () = if_ b (fn1 x) in fn2 y`

this is very much a minor inconvenience but i like to have as short code as possible (helps readability), and using monads adds a layer of obligations that gets in the way

it would be cool if ocaml had even more syntax sugar or some form of `unit -> unit t` coercion for monads. basically a wait to be able to have `fn1 x; f2 y; f3 z` as monadic code rather than `let* () = fn1 x in let* () = fn2 y in f3 z`

or, in my case rn, have `if b then fn1 x; fn2 y` rather than `let* () = if b then fn1 x else return () in fn2 y`. a monad kind of forces you to have a symmetry on if-elses that is quite cumbersome

anthropeum (my favourite browser game atm) just changed the map rendering on the game and i hate it so much . . we had such a good thing going </3

STOP DOING MATHS we were not supposed to do bit manipulations on floats !! hello i would like the decimal 0x3f851592 they have taken us for fools

opale !!@n1ark.acouphene.net

now i have to fight with transcendental functions . i hate it here

finally made my IEEE-754 soft floats library for ocaml (using rustc_apfloat). i am free of my shackles. no longer will i rely on the evil z3 to compute floats for me !!!