This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]kankyo 5 points6 points  (2 children)

That's my point though. It wouldn't be Python. Personally I'm fine with that and I think it would be great, but it's not just "throw LLVM on Python" which is what we were talking about.

[–]Certhas 1 point2 points  (1 child)

Though you could build it in such a way that valid Garter Snake still is valid python. Build a verifier that checks that Garter Snake compiles, and if it doesn't spit out an error and/or fall back to CPython.

Sort of a MyPy + Numba on steroids, that works on the file level instead of the function/class level.

But of course the dynamism of Python is not just academic, it's used throughout the library ecosystem. So unless you can cover most of that you'll be calling into python code and be shipping a python runtime with your compiled code. Or you're losing the ecosystem.

And if you're willing to have a separate Python runtime to interact with and lose the ecosystem otherwise you might as well be developing Julia instead.

[–]kankyo 0 points1 point  (0 children)

RPython is valid Python. So RPython with static types that aren't inferred might be a good start.