Circle C++ with memory safety
Circle’s Approach to C++ Memory Safety
- Circle is presented as a C++-compatible language adding Rust-style ownership, borrowing, lifetimes, and exhaustive pattern matching to enforce memory safety.
- It aims to be a “superset of C++” so existing code can compile, while new code can opt into stricter, borrow-checked semantics.
- Some see it as the most concrete “TypeScript-for-C++” path, with an existing compiler, versus other successor experiments.
Comparisons to Rust, Carbon, Ada, Zig, Others
- Rust is repeatedly cited as the current benchmark for systems-level memory safety, with both technology and culture that push safer APIs, though it still allows
unsafeand logical errors. - Carbon is discussed as another C++ successor; its current story on data races and whether its safety model will match Rust’s is seen as unsettled/compromised.
- Ada/SPARK are mentioned as earlier safe systems languages; opinions differ on how fully they achieve Rust-like guarantees and on their relevance today.
- Zig is praised as a more “pragmatic systems” language that accepts explicit unsafety where needed.
Undefined Behavior, Data Races, and Analysis Limits
- There is extended debate around UB: what compilers are allowed to reject, Rice’s theorem/halting problem limits, and how much UB a C++-successor with C++ interop must inherit.
- Data races are highlighted as a key part of “real” memory safety; some argue you can’t credibly claim safety without preventing them, others argue you can still meet some security goals.
Adoption, Licensing, and Ecosystem Concerns
- Circle is currently proprietary; many see that as a deal-breaker for wide adoption, others argue large enterprises will pay if it solves a big risk for huge C++ codebases.
- There’s skepticism about any non-open successor language gaining traction, and about projects that aren’t clearly used in production.
- Some argue that migrating to Rust is more realistic long-term, even for big shops; others say rewrites of mission-critical C++ are too risky.
Broader Safety Debate
- Several comments stress that memory safety bugs dominate high-severity vulnerabilities in large C/C++ codebases, though some dispute how broadly these stats generalize.
- Others argue memory safety is only one bug class; logic and performance bugs are more common in many domains, and over-focusing on memory safety may distract from overall correctness.
- Style issues (e.g., missing braces) are cited as low-hanging safety wins; others counter that tooling and warnings already mitigate such risks.