News for hackers. Stuff that matters.
Re:Cloudflare outage should not have happened by frumplestlatz on Wednesday November 26, 2025 @11:30PM (#46065668)
“Narrowing” a compile-time invariant without a corresponding proof is formally unsound and does not “respect” the declared invariant in any reasonable sense.

What’s silly is the desire to pretend otherwise because it’s easier.

Re:Cloudflare outage should not have happened by dragonwriter on Wednesday November 26, 2025 @11:48PM (#46065772)
> “Narrowing” a compile-time invariant without a corresponding proof is formally unsound and does not “respect” the declared invariant in any reasonable sense

The invariant is that either condition X applies or condition Y applies. "Panic and stop execution if X, continue execution with the invariant Y if Y" is not unsound and does respect the original invariant in every possible sense.

It may be the wrong choice of behavior given the frequency of X occurring and the costs incurred by the decision to panic, but that’s not a type-level problem.

Re:Cloudflare outage should not have happened by frumplestlatz on Thursday November 27, 2025 @06:48AM (#46068350)
Claiming panic as sound and not a type-level problem is very cute, but also clearly wrong and a bit hilarious after the outage in question.

You guys really will go to any possible rhetorical length to justify lazy programming practices in error handling.

Re:Cloudflare outage should not have happened by zbentley on Wednesday November 26, 2025 @11:57PM (#46065824)
Formal verification is well and good, but that is not what unsoundness means.

If a proof trivially demonstrated that a given program’s behavior was indeed “proceed if a condition is satisfied, crash otherwise”, then what? Or do we not trust the verifier with branching code all of a sudden?