Antonio Cuni pushed to branch branch/default at PyPy / pypy
Commits: c47532d7 by Antonio Cuni at 2020-11-18T13:52:50+01:00 a branch where to introduce @error_value to be able to specify arbitrary return values to use in case of exceptions (which is needed by hpy) --HG-- branch : rpython-error_value - - - - - c711d9f8 by Antonio Cuni at 2020-11-18T14:09:50+01:00 add a test which checks that in case of exception the function returns a specific error value, and the llinterp machinerty to make it possible. The default case passes out of the box of course, while test_custom_error_value is WIP --HG-- branch : rpython-error_value - - - - - 3fcbb084 by Antonio Cuni at 2020-11-18T15:07:19+01:00 implement @ll_error_value and add a couple of test to ensure that it works correctly also in corner cases --HG-- branch : rpython-error_value - - - - - b52af824 by Antonio Cuni at 2020-11-18T21:22:27+01:00 fix the case for exceptions raised by builtin ops --HG-- branch : rpython-error_value - - - - - 454729a7 by Antonio Cuni at 2020-11-18T21:25:32+01:00 document the branch --HG-- branch : rpython-error_value - - - - - ef0de482 by Antonio Cuni at 2020-11-20T18:13:38+01:00 rename this test, else it's ungreppable --HG-- branch : rpython-error_value - - - - - 1cbed6f5 by Antonio Cuni at 2020-11-21T11:58:27+01:00 WIP: require the user to explicitly define which error_value to use when using @llhelper_can_raise, because this is what we need for HPy. However, this uncovers a problem, see test_llhelper_can_raise_custome_error_value --HG-- branch : rpython-error_value - - - - - 349cc6b1 by Antonio Cuni at 2020-11-30T18:08:58+00:00 temporary checkin to see whether disabling this breaks any test --HG-- branch : rpython-error_value - - - - - cf646112 by Antonio Cuni at 2020-11-30T21:39:44+01:00 Refactor&simplify the approach: 1. declare that the return value of general RPython function is undefined and that you should not rely on it 2. merge @llhelper_can_raise and @ll_error_value into a combined @llhelper_error_value: this is the only case which we ultimately care about, and it's simpler to test/implement them together than separately 3. introduce a failing test (test_enforce_llhelper_error_value_in_case_of_nested_exception) which will be fixed in the next commit. --HG-- branch : rpython-error_value - - - - - f6e51b8f by Antonio Cuni at 2020-11-30T21:40:01+01:00 merge heads --HG-- branch : rpython-error_value - - - - - 4a88a927 by Antonio Cuni at 2020-11-30T21:44:34+01:00 fix test_enforce_llhelper_error_value_in_case_of_nested_exception by disabling an optimization if the graph has @llhelper_error_value --HG-- branch : rpython-error_value - - - - - 90587a52 by Antonio Cuni at 2020-12-02T11:54:15+01:00 fix whatsnew --HG-- branch : rpython-error_value - - - - - 02c2f725 by Antonio Cuni at 2020-12-02T17:22:15+01:00 close merged branch --HG-- branch : rpython-error_value - - - - - 6add670f by Antonio Cuni at 2020-12-02T17:25:57+01:00 Merge the rpython-error_value branch. This branch introduces a new decorator @llhelper_error_value, which officializes the fact that you can raise RPython exceptions from llhelpers, and makes it possible to specify what is the C value to return in case of errors. It is needed to implement correctly HPy exceptions (see also its sister branch, hpy-error-value) - - - - - 7 changed files: - pypy/doc/whatsnew-head.rst - rpython/rlib/objectmodel.py - rpython/rtyper/llinterp.py - rpython/rtyper/lltypesystem/ll2ctypes.py - rpython/rtyper/lltypesystem/test/test_ll2ctypes.py - rpython/translator/exceptiontransform.py - rpython/translator/test/test_exceptiontransform.py View it on GitLab: https://foss.heptapod.net/pypy/pypy/-/compare/8bbff48601c6aeb6f7d9708ea72cb046dafde659...6add670f28886f2003bb75cdaeca4a56ced13fbe -- View it on Heptapod: https://foss.heptapod.net/pypy/pypy/-/compare/8bbff48601c6aeb6f7d9708ea72cb046dafde659...6add670f28886f2003bb75cdaeca4a56ced13fbe You're receiving this email because of your account on foss.heptapod.net.
_______________________________________________ pypy-commit mailing list [email protected] https://mail.python.org/mailman/listinfo/pypy-commit
