Grumpy's runtime library implements a Python call stack, complete with exceptions. It would probably require a lot of abuse (if it's even possible) to support Python's exception/traceback APIs using Go's native call stack (I.e., not building a call stack atop Go's).
I see. That will probably add a huge performance hit (compared to actually calling native code functions) but oh well. Not that different from what CPython is already doing.
This project supports exceptions. If you're calling a Go function, you'll have to check the returned error (assuming it has an error in its return signature) before promoting it to an exception for your Python code. It's analogous to using C extensions, except the glue code is on the Python side.
So is this a kick in Pythons nuts ? (i.e. Google moving away from it)
ihsw 1 points · Jan 2017
Think of it like TypeScript->ES6 transpilation -- you don't have to use Go to write Go apps, but instead Go-based Python.
Error handling will have to be Go-like though, so handling return values instead of raised exceptions.
[deleted] 1 points · Jan 2017
Not sure how it actually works, but maybe exceptions can be faked on Go with Panic()/Recover()
weberc2 1 points · Jan 2017
Grumpy's runtime library implements a Python call stack, complete with exceptions. It would probably require a lot of abuse (if it's even possible) to support Python's exception/traceback APIs using Go's native call stack (I.e., not building a call stack atop Go's).
[deleted] 1 points · Jan 2017
I see. That will probably add a huge performance hit (compared to actually calling native code functions) but oh well. Not that different from what CPython is already doing.
weberc2 1 points · Jan 2017
This project supports exceptions. If you're calling a Go function, you'll have to check the returned error (assuming it has an error in its return signature) before promoting it to an exception for your Python code. It's analogous to using C extensions, except the glue code is on the Python side.
alehander42 1 points · Jan 2017
It's running slower than Go: it has the runtime overhead