Gossamer promises “pause-free” memory and real goroutines — then ships a reference counter and a Rust compiler

A two-month-old language pitches Rust syntax, Go-style green threads, and no garbage-collector pauses. The thread liked the wish list and dismantled the claims: eager refcounting isn't pause-free, and a systems language that can't compile itself is waving a red flag.

In brief

Gossamer (v0.19.1) offers Result/Option, traits, typed channels on an M:N scheduler, no async coloring, no unsafe, no macros — memory via deterministic reference counting plus arena regions. It reads like a greatest-hits of modern language design.

The takedown was specific: dropping the last reference to a 10,000-node cyclic graph is a stall, so “pause-free” is marketing; and the compiler is written in Rust, which for a self-described systems language is the tell.

The wish-list language

Gossamer bills itself as “a Rust-flavoured systems language with real goroutines and automatic, pause-free memory.” The feature list is seductive: Result/Option, exhaustive match, traits and generics with “no null”; genuine goroutines via go and typed channels on an M:N scheduler with “no async, no await, no function colouring”; and memory managed by “deterministic reference counting paired with arena { } regions — no borrow checker, no lifetimes, no stop-the-world collector.” One reader called it exactly the thing he'd been yearning for: “Kotlin without the Java baggage … Rust but with automated memory management … Go with a modern type system.”

“Pause-free” meets a 10,000-node graph

The central claim didn't survive contact with someone who knows GC theory. A commenter who picked apart the memory model was direct:

“Gossamer has a cycle collector and eager reference counting. Good luck dropping the last reference to a 10,000-node graph, especially if cyclic. That means it doesn't have 'pause free' memory.”

His point: eager refcounting can stall hard when a large object graph is freed, and the field already has genuinely pauseless GCs (ZGC and friends) that this design ignores rather than improves on.

The self-hosting tell

The most damning structural critique was a single observation about provenance. A reader flagged it as a red flag for anything calling itself a systems language: “it isn't used for its own compiler. The compiler is written in Rust. A systems programming language should be able to self-host.” Layered on top, a detailed migration-guide reading noted no user macros, no unsafe, and no move semantics — i.e. “no low level programming,” which makes “Rust-flavored systems language” a stretch. The honest summary came from a reader who liked it anyway: it's “only 2 months old … clearly vibe coded,” and crazy that such a thing can exist at all — which is its own statement about where language design is heading, even if Gossamer itself isn't the one that gets there.

Get breakdowns like this every day

The top Hacker News stories, unpacked — by email, Telegram, or RSS.

Next story · 27 of 30 Read more
🌍Other

Why does doubling your speed quadruple the crash, not double it? A 2011 physics thread still nails it

Kinetic energy scales with v², and the most intuitive explanation isn't an equation — it's two cars braking. Double the speed and you don't just go twice as fast, you also cover more ground while you bleed it off. Both effects multiply.

★ 110 · 💬 47 · physics.stackexchange.com · 2 min