magmide
csharplang
magmide | csharplang | |
---|---|---|
22 | 280 | |
821 | 12,096 | |
0.0% | 1.3% | |
6.6 | 9.8 | |
about 1 year ago | 5 days ago | |
Coq | C# | |
- | - |
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
- Announcing Magmide Month! (proof language for/using Rust)
- A dependently-typed proof language intended to make provably correct bare metal code possible for working software engineers.
- Make formal verification and provably correct software practical and mainstream
csharplang
-
"ZLinq", a Zero-Allocation LINQ Library for .NET
Sadly expression trees got out of love in modern .NET and it remains to be seen how much they will ever improve them.
https://github.com/dotnet/csharplang/discussions/158
-
Why Tracebit is written in C#
Here's the language proposal for those that are interested.
https://github.com/dotnet/csharplang/issues/8928
-
The Untouched Goldmine of F#
C# has a much awaited and active proposal to add DUs to C# so I suspect C# will also support this once live (and continue its legacy of plucking great features from F#).
https://github.com/dotnet/csharplang/blob/main/proposals/Typ...
-
The Monad Invasion - Part 3: Railway-Oriented Programming
We cannot blame Monads or ROP for this issue - it is a language limitation. In comparison, this is where a language like F# shines, as it allows us to define a discriminated union type that can carry multiple types of failures. Still, hope is possible - discriminated unions will eventually come to C#.
-
Sets, Types and Type Checking
disjoint union vs union.
Scala3 is the only programming language to implement both AFAIK.
C# has a proposal to add both unions and disjoint unions: https://github.com/dotnet/csharplang/blob/main/proposals/Typ...
OCaml has polymorphic variants which are open disjoint unions.
Kotlin is looking to add union types for errors: https://youtrack.jetbrains.com/issue/KT-68296/Union-Types-fo...
I believe Java's checked exceptions behave somewhat like union types.
-
A comparison of Rust's borrow checker to the one in C#
There is a runtime (not C#) feature that has been added that is relevant to the article: ref fields in structs. Before these, only certain runtime-blessed types like Span could contain refs directly.
In case anyone is interested, here is the spec about refs in structs and other lifetime features mentioned in the article:
https://github.com/dotnet/csharplang/blob/main/proposals/csh...
And here is the big list of ways .NET differs from the publish ECMA spec. Some of these differences represent new runtime features.
https://github.com/dotnet/runtime/blob/main/docs/design/spec...
-
Net 9.0 LINQ Performance Improvements
7 years ago: https://github.com/dotnet/csharplang/issues/1060
3 years ago: https://github.com/dotnet/csharplang/blob/main/meetings/2021...
I've given up submitting to csharplang now. It seemed like a positive when it was first open-sourced, but the proposals/issues are often just circular discussions that go nowhere. It doesn't feel (at least from the outside) that any proposal by a non-MS employee would make it thru the process unless MS needed it themselves. Which is what I was alluding to in my original post.
I may well be wrong and maybe some proposals have made it through, but it feels like an illusion of community collaboration rather than actual community collaboration imho.
-
Why is F# code so robust and reliable?
https://github.com/dotnet/csharplang/blob/main/proposals/Typ...
-
Discriminated unions in 2024
This means we rely on switch expressions rather than a Match function with lambdas for each case. Unfortunately, unlike lambdas, switch expressions don't allow blocks of code. However, we can emulate them like this:
-
.NET Digest #3
Type Unions for C#
What are some alternatives?
prusti-dev - A static verifier for Rust, based on the Viper verification infrastructure.
SharpLab - .NET language playground
Rudra - Rust Memory Safety & Undefined Behavior Detection
language-ext - C# pure functional programming framework - come and get declarative!
practical-fm - A gently curated list of companies using verification formal methods in industry
dotnet-script - Run C# scripts from the .NET CLI.