Arthur Peters
Arthur Peters
Naively, it seems that it would be enough to just copy the `globals` dict attached to the function. And that would fix the code that @sestephens73 mentions above. However, it...
> what if we capture non-function global objects into `__closure__` as well? 1. Things other than functions can be recursive. 2. This would force us to rewrite the function byte...
It looks like recursive local functions are handled by creating a cell which is filled later with the declaration of the other function. This is very reasonable. But I hadn't...
Valgrind may have some features that could help. It does this by runtime code rewriting I think. https://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.wrapping
Option 2 is a bit "magical". For instance, ``` for i in range(3): @spawn def t(): slow_op() print(x) x = i ``` would work, most of the time, and would...
While rewriting the bytecode is a pain. Reading it to find out what globals the function actually uses and only copying those into the new globals dict for the function...
I don't think an empty process is a good idea. The problem is that `/proc/` would be total lies at that point. What about using the thread ID of a...
> On the other hand we've seen the libunwind stack tracing outright skip printing function names or only print out a small portion of the stack. I remember similar behavior...
VECs definitely require a patched glibc, so I'm not sure what you are getting at here.
Though I will point out that nothing forces us to use conda. We don't have all that many dependencies. We could easily use recent Ubuntu packages or something and maybe...