Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork34.1k
gh-100239: Handle NaN and zero division in guards#128963
gh-100239: Handle NaN and zero division in guards#128963Eclips4 merged 8 commits intopython:mainfrom
Conversation
Uh oh!
There was an error while loading.Please reload this page.
iritkatriel commentedJan 17, 2025
Shall we check for NaN as well? |
Eclips4 commentedJan 17, 2025
You mean "Shall we continue with specialization if we encounter a NaN value?"? |
iritkatriel commentedJan 17, 2025
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.
iritkatriel commentedJan 17, 2025
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>
Eclips4 commentedJan 18, 2025
Unfortunately Details==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. |
Eclips4 commentedJan 18, 2025
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>
iritkatriel left a comment
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!
Eclips4 commentedJan 19, 2025
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.