Py2many
py2many transpiler
py2many is a python -> {c++14, rust, go, julia, kotlin, dart, nim} transpiler written in python.
Recent improvements
- IntEnum/IntFlag support: rust/go/nim support it. The other languages need work.
- Integer overflow mitigation: most languages now use inferred types as opposed to defering to lanugage specific type inference (e.g. C++
auto
). - Streamline function call dispatch and remove the copy-pasta from pyrs
Future Plans
There are several transpiler projects that once had a large mindshare, but have petered out after several years of inactivity.
- grumpy
- rusthon
- py2nim
- py2jl
among others. Trying to learn from their experiences and finding potential collaborators is going to take time.
In the meanwhile, I’m thinking of a few potential directions:
- Plugin system to write user defined function maps. Look for
small_dispatch_map
in the code for examples. - Map python module system to other languages
- Write a small runtime. Golang doesn’t have an ergonomic
range(3, 9, 2)
for example.
Are there other features you think py2many should prioritize? Do drop me a line.
This post is licensed under CC BY 4.0 by the author.