These are chat archives for dropbox/pyston

23rd
Nov 2015
Marius Wachtler
@undingen
Nov 23 2015 14:29
concerning the dict mutation stuff, I'm wondering if there is some specification which says what is undefined behavior / implementation detail and what's not. It's really unfortunate that we have to add support for such a crazy use case which is imho much more insane than the modification while iterating case...
Sun
@Daetalus
Nov 23 2015 14:37
Didn't find it. I still don't understand while modify dict in __eq__, but PyPy also support this crazy use.
Marius Wachtler
@undingen
Nov 23 2015 15:40
signal handling: My implementation currently has different behavior when running inside the interpreter or bjit and llvm jit. The interpreter checks if it should call a python signal handler after executing a AST_stmt while the baseline and llvm jit check after every call to a external function.
Python docs says: Although Python signal handlers are called asynchronously as far as the Python user is concerned, they can only occur between the “atomic” instructions of the Python interpreter. the implementation does a check before every bytecode is interpreted (same fro pypy imho)
Marius Wachtler
@undingen
Nov 23 2015 15:45
It would be imho nice to have the same behavior between all our tiers which could mean doing the check on every statement we execute (this would make it easy to implement the same across all tiers). After every external call (like I have now) is not so nice because it means that there is some difference between the tiers...
Any opinion on this?
Marius Wachtler
@undingen
Nov 23 2015 15:54
and I would prefer not have to do the check on every byte code --> every ast node.... what would mean a huge regression...