magmide
flexbugs
DISCONTINUED
Our great sponsors
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.
magmide
-
Languages on the rise like Rust and Go are being quite vocal against inheritance and many engineers seem to agree. Is this the end of inheritance? What do you think?
https://github.com/magmide/magmide when
-
Kani 0.29.0 has been released!
How close are we to this https://github.com/magmide/magmide
-
Make formal verification and provably correct software practical and mainstream
I really want to like this, but it really comes across as more of a wishful thinking project without a lot of experience or intuition about how to solve the very real problems that formal methods run into in this domain. Like, the design goals literally include "verify any program" [1], which is almost certainly impossible.
Important questions like how you implement the design pillars without running smack into the issue of decidability seem entirely ignored. They have a whole section on how "this idea exists in an incentive no man's land" without seemingly being aware of the rich history of formal methods in low level programming, from Ada through Java through formal C through Rust itself. The common issues these encountered like decidability, holes in the formal model (which contributed to the downfall of the Java sandbox as a security boundary), and the combinatorial explosion inherent in verification tools are all huge looming questions that should at least be mentioned.
Maybe I'm being overly critical here, but it all makes me wonder whether the project is even possible.
[1] https://github.com/magmide/magmide/blob/main/posts/design-of...
-
Hello Letlang! My programming language targeting Rust
I would love to play around with a compiled language with as powerful a compile-time type system/proof assistant as Lean or Coq. I saw some early work in the Rust realm here: https://github.com/magmide/magmide
- Software can literally be perfect (talks about some important logical ideas that make the Rust ownership system work, and how we could build a provably correct Rust compiler)
-
My Path to Magma
The Magma name requires disambiguation:
His Magma programming language: https://github.com/blainehansen/magma
> The goal of this project is to: create a programming language and surrounding education/tooling ecosystem capable of making formal verification and provably correct software mainstream and normal among working software engineers.
Magma computer algebra system: https://en.wikipedia.org/wiki/Magma_(computer_algebra_system...
> Magma is a computer algebra system designed to solve problems in algebra, number theory, geometry and combinatorics. It is named after the algebraic structure magma. It runs on Unix-like operating systems, as well as Windows.
-
Magma, a project I hope will make provably correct software possible for everyone
The current design thinking is spelled out in the repo: https://github.com/blainehansen/magma
The idea with notations isn't to make custom symbology impossible, just clearly signaled, much in the same way Rust macros can do whatever they want but have to be underneath some macro_name!esque indicator. Check out my rough design thoughts for more if you're interested :) https://github.com/blainehansen/magma/blob/main/posts/design-of-magma.md
flexbugs
-
Use any web browser as GUI, with Zig in the back end and HTML5 in the front end
For old features yes, for new ones it depends.
-
My Good Friend Flexbox
If you find yourself in a situation when you have to solve a flexbox related layout bug for IE11, you might want to have a look at this collection of known issues and workarounds which helped me a great deal in the past.
-
Make formal verification and provably correct software practical and mainstream
For functional stuff, sure, but I don't think this is achievable within the UI domain. CSS rules have implementation details that change how you write it, for example there's a documented set of issues in flex implementations maintained here: https://github.com/philipwalton/flexbugs
It might be practical and possible to become mainstream for some domains, but it's doubtful for others.
What are some alternatives?
Rudra - Rust Memory Safety & Undefined Behavior Detection
line-combination-proofs
tectonic - A modernized, complete, self-contained TeX/LaTeX engine, powered by XeTeX and TeXLive.
z3 - The Z3 Theorem Prover
practical-fm - A gently curated list of companies using verification formal methods in industry
browser-compat-data - This repository contains compatibility data for Web technologies as displayed on MDN
csharplang - The official repo for the design of the C# programming language
prusti-dev - A static verifier for Rust, based on the Viper verification infrastructure.
dafny - Dafny is a verification-aware programming language
rust-verification-tools - RVT is a collection of tools/libraries to support both static and dynamic verification of Rust programs.
electrolysis - Simple verification of Rust programs via functional purification in Lean 2(!)
fiat - Mostly Automated Synthesis of Correct-by-Construction Programs