ocaml-jst
P
ocaml-jst | P | |
---|---|---|
12 | 8 | |
69 | 2,919 | |
- | 0.9% | |
9.5 | 8.3 | |
6 months ago | 6 days ago | |
OCaml | C# | |
GNU General Public License v3.0 or later | MIT License |
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.
ocaml-jst
-
Property-based testing in practice [pdf]
Not just the standard library, but a whole ecosystem around it.
And their own compiler. https://github.com/ocaml-flambda/ocaml-jst
-
Oxidizing OCaml: Locality
This Github proposal is also worth reading
-
Jane Street Tech Blog – Oxidizing OCaml: Locality
From the post:
> Even without explicit mode annotations, the compiler can statically determine which variables may escape their enclosing region. Such variables are assigned the global mode; all others are automatically inferred to be local.
There's a little more info about mode inference in the proposal:
https://github.com/ocaml-flambda/ocaml-jst/blob/main/jane/do...
So arguments to "public functions" do require explicit annotations in order to be local, but otherwise the compiler is able to infer locality and this acts as a transparent optimization.
- Data Race Free OCaml
- OCaml Data Race Freedom Proposal
- A detailed proposal for a data-race-free OCaml (e.g. Rust's borrow-checker)
- Leo White's proposal for data-race-free OCaml with 'mode polymorphism' — i.e. Rust's borrow-checker
- Data races are bad (OCaml/Jane Street)
P
- Property-based testing in practice [pdf]
-
Gem adds support for creating state machines for attributes on any Ruby class
I worked on a state machine framework in another language, and have definitely have found less terse to be pretty good. Typing a few extra characters isn't that bad, especially if it makes some awful bit of evented code easier for someone to understand.
Of the things available open source, I think P-lang is pretty cool: https://github.com/p-org/P/blob/master/Tutorial/1_ClientServ...
-
The Actor Model and the Chess Clock
Your proposed syntax reminded me of https://p-org.github.io/P/
-
The TLA+ Video Course
I’ve gotten a lot of good about TLA+ and the more recent the P language has been really promising lately. It’s got a good pedigree and is being increasingly used as AWS as well.
- P Language
-
Learn TLA+
I tried to use TLA+ but what annoys me the most is the disconnection between the actual implementation and its code. I think the P language has a much better future just because it can generate code that works: https://github.com/p-org/P
-
Let's build a distributed Postgres proof of concept
It is tough.
My approach when learning new protocols like Raft or Paxos is to implement them in Pluscal (TLA+'s higher-level language) or P (https://github.com/p-org/P). I've found that helps separate the protocol-level concerns from the implementation-level concerns (sockets? wire format?) in a way that reduces the difficulty of learning the protocol.
What are some alternatives?
Hybridizer - Examples of C# code compiled to GPU by hybridizer
Testura.Code - Testura.Code is a wrapper around the Roslyn API and used for generation, saving and compiling C# code. It provides methods and helpers to generate classes, methods, statements and expressions.
Mond - A scripting language for .NET Core
PeachPie - PeachPie - the PHP compiler and runtime for .NET and .NET Core
Iron python - Implementation of the Python programming language for .NET Framework; built on top of the Dynamic Language Runtime (DLR).
Amplifier.NET - Amplifier allows .NET developers to easily run complex applications with intensive mathematical computation on Intel CPU/GPU, NVIDIA, AMD without writing any additional C kernel code. Write your function in .NET and Amplifier will take care of running it on your favorite hardware.
orioledb - OrioleDB – building a modern cloud-native storage engine (... and solving some PostgreSQL wicked problems) 🇺🇦
litestream-read-replica-examp
Underlang - A Programming Language Made In C#.
coyote - Coyote is a library and tool for testing concurrent C# code and deterministically reproducing bugs.
litestream-read-replica-example - An example of using Litestream's live read replication feature.
Ncodi - Tunisian Programming Language, Ncodi - Code in your own words.