tlaplus
Corinna
Our great sponsors
tlaplus | Corinna | |
---|---|---|
38 | 42 | |
2,208 | 153 | |
1.5% | 2.0% | |
9.1 | 6.4 | |
4 days ago | 9 months ago | |
Java | Perl | |
MIT License | Artistic 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.
tlaplus
- Ask HN: Usefulness of formal verification (Coq) and formal verification (TLA+)?
-
Quint: A specification language based on the temporal logic of actions (TLA)
```
https://github.com/tlaplus/tlaplus/blob/master/tlatools/org....
In any case, our whole team thinks TLA is great, and we're happy people like you and Ron find it so useful and insightful. We also think it is a very insightful.
-
Concurrent Data-structure Design Walk-Through
There are no tests! There are various ways to test concurrent data structures. You could use a stress test, where you spawn a lot of threads and let them mutate the map in a random way and then check the consistency of the map and some invariants. You could learn TLA+ and write a formal model of the map and then verify it.
-
In Which I Claim Rich Hickey Is Wrong
Dafny and Whiley are two examples with explicit verification support. Idris and other dependently typed languages should all be rich enough to express the required predicate but might not necessarily be able to accept a reasonable implementation as proof. Isabelle, Lean, Coq, and other theorem provers definitely can express the capability but aren't going to churn out much in the way of executable programs; they're more useful to guide an implementation in a more practical functional language but then the proof is separated from the implementation, and you could also use tools like TLA+.
https://dafny.org/
https://whiley.org/
https://www.idris-lang.org/
https://isabelle.in.tum.de/
https://leanprover.github.io/
https://coq.inria.fr/
http://lamport.azurewebsites.net/tla/tla.html
-
Programming Languages Going Above and Beyond
I wish something like Lamport's TLA+ (https://lamport.azurewebsites.net/tla/tla.html) was supported in modern language compilers - perhaps with annotations/macros and a mini formal DSL.
- Ask HN: How you understand TLA+ and how you use TLA+ in your projects?
-
A collection of lock-free data structures written in standard C++11
Checking the invariant with assert is also useful in my limited experience with concurrency.
https://lamport.azurewebsites.net/tla/tla.html
- Ask HN: Is writing a math proof like programming without ever running your code?
-
What I've Learned About Formal Methods in Half a Year
One advantage of formal methods is in determining "what was expected" (including all the goofy edge cases) without having to burrow into the details of code.
Take a look at Alloy (http://alloytools.org/) and TLA+ (https://lamport.azurewebsites.net/tla/tla.html) for example. (Or even the ancient Z ("Zed") notation (https://www.cs.cmu.edu/~15819/zedbook.pdf)).
-
How do I get the set of process identifier of PlusCal?
The pcal generator does *not* generate a definition for the set of labels. However, some users have suggested to add such a feature: https://github.com/tlaplus/tlaplus/issues/613
Corinna
-
Perl 5.38 Released
this the repository of initial draft:https://github.com/Ovid/Cor
after they proposed this, people debating around this in long time.
-
Reject Rustardism, Embrace Good Languages
Have you been following the developments with Perl's forthcoming OOP engine, Corinna?
-
What's Wrong with Moose?
You can read about some of the discussions here (that's after the BUILD/BUILDARGS debate). Unfortunately, since much of the discussion took place on IRC, and there's a policy against allowing public logging without explicit permission of the channel owners (I am not an IRC guy, so I'm not one of the channel owners), much of this valuable discussion has been lost to time. I don't wish to repeat this mistake in future projects, but I can't change the past.
-
Now that the PR for the first bit of Corinna is out, I tried porting one of my CPAN modules to it. It was ... interesting.
I've opened a discussion about revisiting Twigils.
-
A short tutorial for writing code using the new "feature 'class'" syntax.
However, I wouldn't shelve your plans to put more time into Moose. The PR for the initial Corinna work is out and while /u/leonerduk's work is great, the PR is huge and there are a few minor issues to deal with. I do not know when the initial Corinna work will be finished and even after that, it will be a couple of years before it's considered "stable."
-
Paul "LeoNerd" Evans has created the first pull request for Corinna, the modern OOP system for Perl
From the Rationale for Corinna:
- Corinna "Quickstart" Tutorial (rough work in progress)
-
What should I rename MooseX::Extreme to?
It's based on years of experience being the lead designer of the Corinna project and trying to figure out how we can get a version of Moose which is safer and easier to use, including removing a lot of boilerplate. This code:
-
Unofficial Corinna Update
By now most of you have probably heard about the Corinna project to get modern object-oriented programming in the Perl core. The RFC has been submitted to P5P and it's a slimmed down version of the full specification. It's in seven stages, each building on the last.
-
James Web Space Telescope runs on C++ code.
Then you'll be happy to know that I've submitted an RFC to the core Perl team to introduce a modern OO model to the language. So far the response has been positive and we already have /u/leonerduk who's committed himself to implement it.
What are some alternatives?
dafny - Dafny is a verification-aware programming language
perl5 - 🐪 The Perl programming language
coq - Coq is a formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs.
Inline-Perl5 - Use Perl 5 code in a Raku program
apalache - APALACHE: symbolic model checker for TLA+ and Quint
inxi - inxi is a full featured CLI system information tool. It is available in most Linux distribution repositories, and does its best to support the BSDs.
stateright - A model checker for implementing distributed systems.
perlweeklychallenge-club - Knowledge base for The Weekly Challenge club members using Perl, Raku, Ada, APL, Awk, Bash, BASIC, Bc, Befunge-93, Bourne Shell, BQN, Brainfuck, C3, C, CESIL, C++, C#, Clojure, COBOL, Coconut, Crystal, D, Dart, Dc, Elm, Emacs Lisp, Erlang, Excel VBA, Fennel, Fish, Forth, Fortran, Gembase, GNAT, Go, Haskell, Haxe, HTML, Idris, IO, J, Janet, Java, JavaScript, Julia, Kotlin, Lisp, Lua, M4, Miranda, Modula 3, MMIX, Mumps, Myrddin, Nim, Nix, Node.js, Nuweb, OCaml, Odin, Ook, Pascal, PHP, Python, Postscript, Prolog, R, Ring, Ruby, Rust, Scala, Scheme, Sed, Smalltalk, SQL, Swift, Tcl, TypeScript, Visual BASIC, WebAssembly, Wolfram, XSLT and Zig.
awesome-programming-languages - The list of an awesome programming languages that you might be interested in
cnext - an alternate CPAN client using next-cpan GitHub repositories
adventofcode - Advent of Code solutions of 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 and 2023 in Scala
RFB - Perl Request for Bikeshed