PochiVM
wyvern
PochiVM | wyvern | |
---|---|---|
2 | 2 | |
83 | 54 | |
- | - | |
0.0 | 3.5 | |
over 2 years ago | 7 months ago | |
C++ | C++ | |
- | GNU General Public License v3.0 only |
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.
PochiVM
-
The Onyx Programming Language
There are methods to generate an interpreter but AFAICT there are no real implementations. Seems to be one of those pure research fields.
https://github.com/sillycross/PochiVM is the closest I've seen to an actual implementation but it looks mostly abandoned.
And I'm talking about generators on the same level as flex/bison and not something like pypy where they (used to?) use abstract interpretation/partial evaluation as you're really just transforming a handwritten interpreter with all the hard work that entails.
-
Copy-and-Patch Compilation: A fast compilation algorithm for high-level languages and bytecode
https://github.com/sillycross/PochiVM A fast template JIT, looking good
wyvern
-
Lazy Let: A Cheap Way and Easy Way to Add Lazyness
We have implemented automatic "lazification" of function arguments at the level of the LLVM IR. We released the code last year.
-
Lazification of Function Arguments
For those interested, the code is here: https://github.com/lac-dcc/wyvern
What are some alternatives?
codon - A high-performance, zero-overhead, extensible Python compiler using LLVM
regal86 - Register Allocator for 8086
casadi - CasADi is a symbolic framework for numeric optimization implementing automatic differentiation in forward and reverse modes on sparse matrix-valued computational graphs. It supports self-contained C-code generation and interfaces state-of-the-art codes such as SUNDIALS, IPOPT etc. It can be used from C++, Python or Matlab/Octave.
jank - A Clojure dialect hosted on LLVM with native C++ interop
symforce - Fast symbolic computation, code generation, and nonlinear optimization for robotics
rangeless - c++ LINQ -like library of higher-order functions for data manipulation
faust - Functional programming language for signal processing and sound synthesis
Pipefish - Source code for the Pipefish programming language
ONE - On-device Neural Engine