The Vale Programming Language! Learn more at https://xitter.cf/t.co/M36j2hb8SP

Joined July 2020
Just posted a new article! verdagon.dev/blog/group-borr… "Group Borrowing: Zero-Cost Memory Safety with Fewer Restrictions" TL;DR: Nick Smith's epic approach to better borrow checking. Take a look!
3
2
8
1,062
With this, new languages like Vale are one step closer to being able to reuse the entire Rust ecosystem! verdagon.dev/blog/exploring-… "Crossing the Impossible FFI Boundary, and My Gradual Descent Into Madness"
2
7
563
If we're right, then this could pave the way towards newer languages calling into and building upon Rust, in the same way C++ built upon C! verdagon.dev/blog/exploring-… The most surprising part is that we're sending non-#[repr(C)]'d types into C. Heresy, but effective!
1
3
10
724
Behold! Higher RAII, and the Seven Arcane Uses of Linear Types: verdagon.dev/blog/higher-rai… It turns out, you unlock pretty sorcerous powers when you make it so only specific functions can destroy a certain type. Also, it's very weird that a language could help with caching.
2
1
13
881
New article! "Borrow checking, RC, GC, and the Eleven (!) Other Memory Safety Approaches" verdagon.dev/grimoire/grimoi… If anyone knows any more approaches, speak up, would love to expand that list!
3
5
1
28
2,143
Replying to @verdagon @vale_pl
Regions are also a way to make colorless fearless structured concurrency (a mouthful I know), without going all in on a Rust-like borrow checker. verdagon.dev/blog/seamless-f… Now that we have a working regions prototype, I can finally start working on concurrency!
1
358
Replying to @vale_pl
This has been a long time coming! Regions are Vale's "killer feature", they let us write in a normal unrestricted way then incrementally optimize. This lets the user choose whether they their is flexible like Java, fast like Rust, or any point in between.
1
1
1
318
At long last, the first prototype of immutable region borrowing in Vale! verdagon.dev/blog/first-regi… This technique removes Vale's memory safety overhead by making borrowing and shared mutability work well together.
2
1
8
609
Blend #2: Single-threaded RC (Nim), plus region borrowing (Vale) [1], plus copy types (C#, Swift). Enforced by static analysis checker, of course. (I think we might also be able to do contiguous ref-counted arrays, but still looking into that.) [1] verdagon.dev/blog/zero-cost-…
1
1
1
259
How to make a language like C++ memory-safe without borrow checking, RC, or tracing GC. Enjoy! verdagon.dev/blog/vale-memor…
4
284
We often talk about zero-overhead memory safety, but no language has ever really achieved it. Once we use a more holistic definition, we see that memory safety always has a run-time cost. The only question is: where do we want to pay it? verdagon.dev/blog/myth-zero-…
2
250
Replying to @vale_pl
Linear types (and the higher RAII they enable) are pretty huge. Any time you say "Ah, I forgot to do X", that's a bug linear types help prevent. I wrote about this in verdagon.dev/blog/higher-rai… and have been discovering more and more uses for them ever since!
1
2
213
It turns out, one doesn't need borrow checking, RC, or GC to get memory safe single ownership! And with a little twist, we can enable compile-time guarantees that no mainstream language has been able to achieve. verdagon.dev/blog/single-own… Enjoy!
1
1
7
373
One of those little weird little language details that can have potentially *huge* development time benefits: generics and type erasure. verdagon.dev/blog/generics-c…
1
5
199
Replying to @vale_pl
Fun fact: All these techniques we're designing for Vale could easily be applied to reference counted languages too. This (plus regions) is why I think RC will make a huge comeback in the next decade, even over tracing GC.
1
1
3
149
Revelations about where efficient memory safety actually comes from! verdagon.dev/blog/linear-typ… TL;DR: We can combine linear types with other memory safety approaches (like gen refs or ref counting) to reduce overhead down to zero where we want.
1
1
8
201
There's a *lot* that goes on under the hood for Vale's region borrowing. But hey, nobody said it would be easy to make a completely new memory safety paradigm! verdagon.dev/blog/making-reg…
2
6
198
The Vale compiler just passed 100,000 lines! Some lessons learned from the endeavor so far: verdagon.dev/blog/first-100k…
1
10
522
An analysis of why GC is so fast to develop with, why borrow checking is often slower, and everything in-between. Enjoy! verdagon.dev/blog/when-to-us… "How Memory Safety Approaches Speed Up and Slow Down Development Velocity"
1
6
17
1,597
A tale of how a 2am realization led to discovering the fourth memory safety paradigm! verdagon.dev/blog/making-reg…
1
2