Alice ✨

Alice ✨

@welltypedwit.ch

There’s no sense crying over every mistake. You just keep on trying ’til you run out of cake - GLaDOS

3K followers343 following6.7K posts

"I need to keep track of boxed pointers in sret allocas during shadow stack generation" none of these words are in the bible

View full thread

Alice ✨ reposted

I was interviewing someone with 4 years of OCaml experience, and said: "The language solved problems I didn't know I had, but the tooling invented problems I didn't know were possible"

I thought that now that i'm writing more rust i could maybe make my peace with method syntax but no. it's so dumb, why are you all doing this to yourselves

quick, what is the type of this rust function? fn(*const T) -> *mut T? no! it's actually fn(*mut [T]) -> *mut T because there is an impl block several screens (and 169 lines in the code) higher that fixes `Self` to `*mut [T]` just so that this can be used with method syntax

%_9.unboxed.sroa.2.i.i.0._9.unboxed.sroa.2.i.i.0._9.unboxed.sroa.2.i.i.0._9.unboxed.sroa.2.i.0._9.unboxed.sroa.2.i.0._9.unboxed.sroa.2.0._9.unboxed.sroa.2.0._9.unboxed.sroa.2.0._9.unboxed.sroa.2.8._10.unboxed.sroa.3.16.copyload.i.i statements dreamed up by the even more deranged (LLVM)

Alice ✨@welltypedwit.ch

statements dreamed up by the utterly deranged (the vega compiler)

(well, the inline getelementptr thing and all the nonnulls are llvm's fault, but everything else is vega ^^)

this is especially ironic if you've seen the amount of totally unnecessary unsafe low level string code that exists in the elm compiler

it's so strange how like at least 60% of the time when someone makes a claim about "making invalid states unrepresentable", what they actually mean is using a representation with many perfectly representable invalid states that are just hidden behind an abstract type and a smart constructor

like, abstract types are good. smart constructors are good, sure. but that's just not what that phrase is about... at all

it's interesting how every few months half of bluesky gets outraged at the platform's fascist leadership practices (banning people for sending death threats)

you know, i don't love that there is a massive difference between let x = blah(); f(x); g(); and { let x = blah(); f(x); } g(); in rust

especially since someone might accidentally remove the block in the second case because they also moved the scope of an unsafe block (hi i'm someone)