11

Rust's borrow-checker lets you write code with the both safety guarantees of immutability and the practicality of mutability. But it has its own drawbacks, most notably it's hard-to-understand and makes certain code inexpressible (without using unsafe).

This article describes another borrow-checking type system which has the shared XOR mutable guarantee that gives "best of both worlds" mutability/immutability, but is more expressive and (arguably) easier to understand. In summary, instead of annotating borrows with "lifetimes" (how long they exist), they are annotated with origins (sets of places the borrow may have been created + mutabilities). Rust's polonius borrow checker uses origins internally, but only to check and infer lifetimes; perhaps explicit origin-borrows could be added in addition to lifetime-borrows, except this would make Rust even more complex and difficult for newcomers.

Another "aliased XOR mutable" type system is Mutable Value Semantics, which is in the language Hylo (formerly Val).

no comments (yet)
sorted by: hot top controversial new old
there doesn't seem to be anything here
this post was submitted on 04 Mar 2024
11 points (92.3% liked)

Programming Languages

1160 readers
2 users here now

Hello!

This is the current Lemmy equivalent of https://www.reddit.com/r/ProgrammingLanguages/.

The content and rules are the same here as they are over there. Taken directly from the /r/ProgrammingLanguages overview:

This community is dedicated to the theory, design and implementation of programming languages.

Be nice to each other. Flame wars and rants are not welcomed. Please also put some effort into your post.

This isn't the right place to ask questions such as "What language should I use for X", "what language should I learn", and "what's your favorite language". Such questions should be posted in /c/learn_programming or /c/programming.

This is the right place for posts like the following:

See /r/ProgrammingLanguages for specific examples

Related online communities

founded 1 year ago
MODERATORS