Thread: [Pyobjc-dev] Lion and pyobjc 2.2b3 Decimal compares with NSDecimalNumber compare goes in endless re
Brought to you by:
ronaldoussoren
From: Marc V. O. <mar...@gm...> - 2011-11-22 17:37:35
|
hi, for our project we haven't upgraded to latest version of pyobjc I just notice we run with 2.2b3 but we have the following bug on Lion Only: When bindings try to compare a decimal number that originally came from Python code. It goes in endless recursive calls... .... (this last few lines are repeated over and over again... #3515 0x02edf84d in _ffi_call_SYSV at x86-darwin.S:74 #3516 0x02edfc01 in ffi_call #3517 0x02ef8d79 in PyObjCFFI_Caller #3518 0x02f1ddbd in objcsel_call #3519 0x0289f315 in PyObject_Call #3520 0x02950677 in PyEval_EvalFrameEx #3521 0x02953e9d in PyEval_EvalCodeEx #3522 0x028d0a36 in function_call #3523 0x0289f315 in PyObject_Call #3524 0x028b18e6 in instancemethod_call #3525 0x0289f315 in PyObject_Call #3526 0x0290706b in half_richcompare #3527 0x0290714b in slot_tp_richcompare #3528 0x028e8dd7 in try_rich_compare #3529 0x028eb60e in PyObject_Compare #3530 0x02f11f14 in -[OC_PythonNumber compare:] #3531 0x94ea8f68 in -[NSDecimalNumber compare:] #3532 0x94f0dc7c in -[NSDecimalNumber isEqual:] #3533 0x02edf84d in _ffi_call_SYSV at x86-darwin.S:74 #3534 0x02edfc01 in ffi_call #3535 0x02ef8d79 in PyObjCFFI_Caller #3536 0x02f1ddbd in objcsel_call #3537 0x0289f315 in PyObject_Call #3538 0x02950677 in PyEval_EvalFrameEx #3539 0x02953e9d in PyEval_EvalCodeEx #3540 0x028d0a36 in function_call #3541 0x0289f315 in PyObject_Call #3542 0x028b18e6 in instancemethod_call #3543 0x0289f315 in PyObject_Call #3544 0x0290706b in half_richcompare #3545 0x0290714b in slot_tp_richcompare #3546 0x028e8dd7 in try_rich_compare #3547 0x028eb60e in PyObject_Compare #3548 0x02f11f14 in -[OC_PythonNumber compare:] #3549 0x94ea8f68 in -[NSDecimalNumber compare:] #3550 0x94f0dc7c in -[NSDecimalNumber isEqual:] #3551 0x02edf84d in _ffi_call_SYSV at x86-darwin.S:74 #3552 0x02edfc01 in ffi_call #3553 0x02ef8d79 in PyObjCFFI_Caller #3554 0x02f1ddbd in objcsel_call #3555 0x0289f315 in PyObject_Call #3556 0x02950677 in PyEval_EvalFrameEx #3557 0x02953e9d in PyEval_EvalCodeEx #3558 0x028d0a36 in function_call #3559 0x0289f315 in PyObject_Call #3560 0x028b18e6 in instancemethod_call #3561 0x0289f315 in PyObject_Call #3562 0x0290706b in half_richcompare #3563 0x0290714b in slot_tp_richcompare #3564 0x028e8dd7 in try_rich_compare #3565 0x028eb60e in PyObject_Compare #3566 0x02f11f14 in -[OC_PythonNumber compare:] #3567 0x94ea8f68 in -[NSDecimalNumber compare:] #3568 0x94f0dc7c in -[NSDecimalNumber isEqual:] #3569 0x02edf84d in _ffi_call_SYSV at x86-darwin.S:74 #3570 0x02edfc01 in ffi_call #3571 0x02ef8d79 in PyObjCFFI_Caller #3572 0x02f1ddbd in objcsel_call #3573 0x0289f315 in PyObject_Call #3574 0x02950677 in PyEval_EvalFrameEx #3575 0x02953e9d in PyEval_EvalCodeEx #3576 0x028d0a36 in function_call #3577 0x0289f315 in PyObject_Call #3578 0x028b18e6 in instancemethod_call #3579 0x0289f315 in PyObject_Call #3580 0x0290706b in half_richcompare #3581 0x0290714b in slot_tp_richcompare #3582 0x028e8dd7 in try_rich_compare #3583 0x028eb60e in PyObject_Compare #3584 0x02f11f14 in -[OC_PythonNumber compare:] #3585 0x94ea8f68 in -[NSDecimalNumber compare:] #3586 0x94f0dc7c in -[NSDecimalNumber isEqual:] #3587 0x98cc98cd in _NSValuesAreEqual #3588 0x993a6ccb in -[NSValueBinder _validateDisplayValue] #3589 0x993a5471 in -[NSValueBinder validateAndCommitValueInEditor:editingIsEnding:errorUserInterfaceHandled:] #3590 0x993ea198 in -[_NSBindingAdaptor _validateAndCommitValueInEditor:editingIsEnding:errorUserInterfaceHandled:bindingAdaptor:] #3591 0x993ea2bf in -[_NSBindingAdaptor validateAndCommitValueInEditor:editingIsEnding:errorUserInterfaceHandled:] #3592 0x992f343e in -[NSTextField textShouldEndEditing:] Was this bug addressed already in subsequently releases? Thanks Marc Van Olmen |
From: Aahz <aa...@py...> - 2011-11-30 02:18:00
|
On Tue, Nov 22, 2011, Marc Van Olmen wrote: > > for our project we haven't upgraded to latest version of pyobjc I just > notice we run with 2.2b3 but we have the following bug on Lion Only: > > When bindings try to compare a decimal number that originally came from > Python code. It goes in endless recursive calls... Nobody else has responded, so I'll just suggest that you should explicitly convert between Python Decimal and NSDecimalNumber. -- Aahz (aa...@py...) <*> http://www.pythoncraft.com/ "....Normal is what cuts off your sixth finger and your tail..." --Siobhan |
From: Marc V. O. <mar...@gm...> - 2011-12-01 13:06:43
|
hi Aahz, i got an answer offline that confirmed a bug in Lion: :>>> aNSDecimalNumber.compare_(aPythonDecimal) > > This also causes infinite recusion, this time on the Python side. With > some luck it is related to the issue you ran into using bindings. I currently found a workaround in my code. I haven't tried yours yet. Thanks for the input! marc On Tue, Nov 29, 2011 at 9:17 PM, Aahz <aa...@py...> wrote: > On Tue, Nov 22, 2011, Marc Van Olmen wrote: > > > > for our project we haven't upgraded to latest version of pyobjc I just > > notice we run with 2.2b3 but we have the following bug on Lion Only: > > > > When bindings try to compare a decimal number that originally came from > > Python code. It goes in endless recursive calls... > > Nobody else has responded, so I'll just suggest that you should > explicitly convert between Python Decimal and NSDecimalNumber. > -- > Aahz (aa...@py...) <*> > http://www.pythoncraft.com/ > > "....Normal is what cuts off your sixth finger and your tail..." --Siobhan > |
From: Marc V. O. <mar...@gm...> - 2011-12-01 21:34:48
|
Aahz Regarding your suggestion, there is helper function that does that: Just for those googling for answers:, I can also add that from PyObjCTools.Conversion import fromPythonDecimal Does this conversion for you from Decimal To NSDecimalNumber. Code is located at: pyobjc-framework-Cocoa/Lib/PyObjCTools/Conversion.py On Thu, Dec 1, 2011 at 8:06 AM, Marc Van Olmen <mar...@gm...>wrote: > hi Aahz, > > i got an answer offline that confirmed a bug in Lion: > > :>>> aNSDecimalNumber.compare_(aPythonDecimal) >> >> This also causes infinite recusion, this time on the Python side. With >> some luck it is related to the issue you ran into using bindings. > > > I currently found a workaround in my code. I haven't tried yours yet. > > Thanks for the input! > > marc > > > On Tue, Nov 29, 2011 at 9:17 PM, Aahz <aa...@py...> wrote: > >> On Tue, Nov 22, 2011, Marc Van Olmen wrote: >> > >> > for our project we haven't upgraded to latest version of pyobjc I just >> > notice we run with 2.2b3 but we have the following bug on Lion Only: >> > >> > When bindings try to compare a decimal number that originally came from >> > Python code. It goes in endless recursive calls... >> >> Nobody else has responded, so I'll just suggest that you should >> explicitly convert between Python Decimal and NSDecimalNumber. >> -- >> Aahz (aa...@py...) <*> >> http://www.pythoncraft.com/ >> >> "....Normal is what cuts off your sixth finger and your tail..." >> --Siobhan >> > > |