mypyc-benchmark-results
masr
mypyc-benchmark-results | masr | |
---|---|---|
4 | 2 | |
10 | 4 | |
- | - | |
9.4 | 8.7 | |
7 days ago | 3 months ago | |
Clojure | ||
MIT License | 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.
mypyc-benchmark-results
-
LPython: Novel, Fast, Retargetable Python Compiler
This looks very cool ! There is also MyPyC which is not in the comparison table, but worth noting.
They have some benchmarks vs regular python here :
https://github.com/mypyc/mypyc-benchmark-results/blob/master...
One difference is that MyPyC compiles your code to a C extension, so your are still dependent on python. On the other hand you can call regular python libraries with the normal syntax while, in LPython, the "break-out" syntax to regular libraries isn't straightforward
In any case super exiting to see work going into AOT python
- Statically typed Python
-
I Want a New Duck
The post isn't about performance, and is aimed at people using Python for whatever reason, so, sure, retrofit away.
That said, if you care about the performance improvements that typing can give you with Mypy, you might want to look here:
https://github.com/mypyc/mypyc-benchmark-results/blob/master...
It won't be going toe to toe with Rust any time soon, but a 4x to 17x speedup is nothing to sneeze at.
-
Mypyc: Compile type-annotated Python to C
https://github.com/mypyc/mypyc-benchmark-results/blob/master...
masr
-
LPython: Novel, Fast, Retargetable Python Compiler
Implication is that ASR is a full programming language in its own right (though with no quality-of-life features: everything is explicit, and it's also currently restricted to the operations featured by LFortran and LPython: heavily array-oriented for now, ASR grows as LFortran and LPython grow). I've prototyped, in Clojure, an independent type-checker for ASR (https://github.com/rebcabin/masr), and an interpreter (for "abstract execution") should not be difficult.
-
Hobby optimizing compilers?
A bit of self-promotion, here, but perhaps take a look at Abstract Semantics Representation (ASR) in https://lfortran.org/ and https://lpython.org. It's designed specifically to support optimizer passes free of surface-language syntax issues, so Fortran and Python share everything "South" of ASR. We target C, LLVM, webasm, and a proprietary custom compute-in-memory chip. I'm working on a type-checker for it right now: https://github.com/rebcabin/masr.
What are some alternatives?
mypy - Optional static typing for Python
lpython - Python compiler
mypyc - Compile type annotated Python to fast C extensions
lpython.org-deploy - Sources of deployed webpage behind https://lpython.org/
typed_python - An llvm-based framework for generating and calling into high-performance native code from Python.
kecc-public - KECC: KAIST Educational C Compiler. IMPORTANT: DON'T FORK!
pyccel - Python extension language using accelerators
pydantic - Data validation using Python type hints
pex - A tool for generating .pex (Python EXecutable) files, lock files and venvs.
pyre-check - Performant type-checking for python.
typeguard - Run-time type checker for Python