Fork me on GitHub

@schmee it's close, but different in some rather critical ways. In Truffle you create an AST, and then Truffle merges the AST execute methods into a single large method. In PyPy you write an interpreter in a subset of Python, then the framework analyzes the interpreter and finds you interpreter dispatch loop (via a special hint). From there it constructs a JIT for your interpreter. So Truffle requires you to compile your code to an AST, PyPy figures out how your interpreter works and builds a JIT for however you chose to write your interpreter.


So PyPy is still a bytecode interpreter. While Zippy (Python on Truffle) is a python to AST compiler with a JIT backend.


The cool thing about PyPy's approach is that PyPy still looks like a mostly normal Python interpreter. You can still introspect stack frames, construct bytecode on-the-fly, etc.


@tbaldridge I see, thanks! so know I have to read up on tracing JITs, just when I thought I was getting some sort of understanding on this topic 😂


so PyPy = tracing, Truffle = partial evaluation


Hey Everyone , Another question - How do you discover open source projects ? what are your sources and is there any glitch or gap in open source discovery? Pls reply on thread, it's easy to track


Pls reply on thread, it's easy to track


For Clojure libraries, via, as well as announcements in this Slack, or on Twitter, or Reddit, or the mailing list...


Sometimes I just go to github and sort projects by stars / month and maybe programming language.


For random discovery, can be interesting, less so for Clojure tbh, it's almost always ring


do you want to use any single point of discovery for all these project regardless the language? will you use it?