a-mir-formality
minirust
Our great sponsors
a-mir-formality | minirust | |
---|---|---|
4 | 7 | |
244 | 764 | |
5.7% | 2.0% | |
9.3 | 9.2 | |
3 months ago | 7 days ago | |
Rust | Rust | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
a-mir-formality
-
My resignation letter as R7RS-large chair
Racket is very used in the PLT community (programming language theory) for prototyping programming languages. Lots of cool stuff in this area.
For example, the MIR formality [0] project of the Rust programming language to formalize MIR (their intermediate language) was first prototyped in Racket [1], then rewritten in Rust. [1]'s readme give a rationale:
> For the time being, the model is implemented in PLT Redex. PLT Redex was chosen because it is ridiculously accessible and fun to use. It lets you write down type system rules and operational semantics and then execute them, using a notation that is very similar to what is commonly used in published papers. You can also write collections of unit tests and fuzz your model by generating test programs automatically.
> The hope is that PLT Redex will prove to be a sufficiently accessible tool that many Rust contributors will be able to understand, play with, and extend the model.
> One downside of PLT Redex is that it doesn't scale naturally to performing proofs. We may choose to port the model to another system at some point, or maintain multiple variants.
[0] https://github.com/rust-lang/a-mir-formality
[1] https://github.com/rust-lang/a-mir-formality/tree/1f40120f09...
- Officially announcing the types team
-
Why are Rust programs slow to compile?
But MIR optimizations are a bit of a mess right now. The semantics of MIR are not completely settled but that is an area of active work: https://github.com/nikomatsakis/a-mir-formality
-
Announcing: MiniRust
That's happening separately, in the "mir-formality" project: https://github.com/nikomatsakis/a-mir-formality
The two projects are related, but have different objectives (mir-formality includes traits and borrow checking, while MiniRust focuses on operational semantics).
minirust
-
The Cerberus C semantics [pdf]
People are working on the formal specification of rust. It isn't easy. There are at least three projects, maybe more if we include academia https://github.com/RalfJung/minirust has a summary of efforts in the end of the readme.
-
[...] each time a journalist is killed because of memory safety violations, one committee member who voted to add more UB or remove bounds checks should have their legs broken with a sledgehammer.
The real qualitative difference between the two is that C++ is developed as normative document shared by several software project. Rust, on the other hand, is developed as a software project, and its various efforts at codification, on the other hand, are targeted to make sure the pillars of the language is comprehensible and sound. Not at implementing a compiler front end in prose.
-
Tell HN: Rust Is Complex
Rust doesn’t handhold you for anything low-level. It’s just that Rust hides all that complexity beneath Unsafe Rust, which is an eldritch abomination of a language that no one quite knows all the rules yet… I hope the MiniRust project (https://github.com/RalfJung/minirust) succeeds in writing a formal spec of it someday.
-
Do we need a "Rust Standard"?
By the way, are you familiar with the MiniRust project?
-
Announcing: MiniRust
I compare MiniRust and Ferrocene at https://github.com/RalfJung/minirust#what-about-the-ferrocen.... :) TL;DR they re quite different in style, precision, and scope.
Yeah, I didn't even bother specifying a concrete syntax. This file specifies the "abstract syntax", i.e. the result produced by the parser; it doesn't really matter much how you choose to construct those datatypes.
-
The last two years in Miri
If you want a sneak peak and give some early feedback: https://github.com/RalfJung/minirust. The best channel for feedback is Zulip.
What are some alternatives?
datafrog - A lightweight Datalog engine in Rust
renegade-way - Option Trading Application
r7rs-spec
options-chain-marketdata.ps1
r7rs-work
theory-exploration-benchmarks - Mirror of http://chriswarbo.net/git/theory-exploration-benchmarks