News for hackers. Stuff that matters.

jafffsuds

Re:Migrating from Go to Rust on Monday May 25, 2026 @10:31AM (#48267308)
> There’s no built-in goroutine-style preemption. Long CPU-bound work in an async task starves the executor; you offload to tokio::task::spawn_blocking or rayon instead.

I don't know why anyone uses spawn_blocking for CPU-bound tasks. It's clearly designed for blocking IO tasks. There's a reason why Erlang cordons them separately into Dirty CPU and Dirty IO schedulers.

Re:dotNET (OK, C#) gets union types on Sunday May 24, 2026 @12:29AM (#48254377)
He's been busy with the typescript-go project
Re:dotNET (OK, C#) gets union types on Sunday May 24, 2026 @12:11AM (#48254295)
What you are describing is something different called a disjoint union which will maintain the identities of the left and right values when there is overlap.

The C# unions appear to behave like unions, not disjoint unions.