Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.3k
gh-100239: Handle NaN and zero division in guards#128963
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
Uh oh!
There was an error while loading.Please reload this page.
Shall we check for NaN as well? |
You mean "Shall we continue with specialization if we encounter a NaN value?"? |
Yes, I guess it would be fine. Might be good to cover this in the tests though. |
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Doesn't need to be in this PR, but I don't think we have a test for deoptimizing |
Co-authored-by: Tomas R. <tomas.roun8@gmail.com>
Unfortunately ==CPython3.14.0a4+ (heads/fix-zero-division-dirty:850a862a7d8,Jan182025,13:17:14) [Clang16.0.0 (clang-1600.0.26.4)]==macOS-15.1.1-arm64-arm-64bit-Mach-Olittle-endian==Pythonbuild:debug==cwd:/Users/eclips4/programming/programming-languages/cpython/build/test_python_worker_4826æ==CPUcount:8==encodings:locale=UTF-8FS=utf-8==resources:alltestresourcesaredisabled,use-uoptiontounskiptestsUsingrandomseed:5489788770:00:00loadavg:2.19Run1testsequentiallyinasingleprocess0:00:00loadavg:2.19 [1/1]test_opcachebeginning6repetitions.Showingnumberofleaks (.for0orless,Xfor10ormore)123:456test_binary_op (test.test_opcache.TestSpecializer.test_binary_op) ...ok----------------------------------------------------------------------Ran1testin0.006sOKXtest_binary_op (test.test_opcache.TestSpecializer.test_binary_op) ...ok----------------------------------------------------------------------Ran1testin0.007sOKXtest_binary_op (test.test_opcache.TestSpecializer.test_binary_op) ...FAIL======================================================================FAIL:test_binary_op (test.test_opcache.TestSpecializer.test_binary_op)----------------------------------------------------------------------Traceback (mostrecentcalllast):File"/Users/eclips4/programming/programming-languages/cpython/Lib/test/test_opcache.py",line1405,intest_binary_opbinary_op_nan()~~~~~~~~~~~~~^^File"/Users/eclips4/programming/programming-languages/cpython/Lib/test/test_opcache.py",line1402,inbinary_op_nanself.assert_no_opcode(compactlong_lhs,"BINARY_OP_EXTEND")~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File"/Users/eclips4/programming/programming-languages/cpython/Lib/test/test_opcache.py",line42,inassert_no_opcodeself.assertNotIn(opname,opnames)~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^AssertionError:'BINARY_OP_EXTEND'unexpectedlyfoundin {'RESUME_CHECK','RETURN_VALUE','POP_TOP','LOAD_CONST_IMMORTAL','BINARY_OP_EXTEND','LOAD_SMALL_INT','LOAD_FAST'}----------------------------------------------------------------------Ran1testin0.012sFAILED (failures=1)testtest_opcachefailedtest_opcachefailed (1failure)==Testsresult:FAILURE==1testfailed:test_opcacheTotalduration:174msTotaltests:run=1 (filtered)failures=1Totaltestfiles:run=1/1 (filtered)failed=1Result:FAILURE I'm digging into what's happening. |
Okay, It seems that to get de-specialization it need to "hit" more guards. I'm not sure, though, if this is right. |
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Thank you!
Thank you Irit and Tomas for your review! |
6c52ada intopython:mainUh oh!
There was an error while loading.Please reload this page.
…P_EXTEND` (python#128963)Co-authored-by: Tomas R. <tomas.roun8@gmail.com>Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
Uh oh!
There was an error while loading.Please reload this page.