From: SourceForge.net <no...@so...> - 2004-02-24 21:07:17
|
Patches item #903723, was opened at 2004-02-24 20:56 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312867&aid=903723&group_id=12867 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Jonathan Ellis (ellisj) Assigned to: Nobody/Anonymous (nobody) Summary: fixes for test_new Initial Comment: Sanity checking of the closure supplied via new.function. Note that test_closure(g, None, TypeError) still fails because jython raises a ValueError instead of a TypeError. (Because Jython sees None and turns it into a null PyObject[], indistinguishable from no closure at all.) Fixing this would require changing the signature of the PyFunction constructor to take PyObject (PyTuple) instead of PyObject[] which would require a substantial rewrite of CodeCompiler's visitFunctionDef/makeClosure methods. It's doable but since the new module is deprecated in Python 2.3 anyway I don't think it's really worth all that trouble to match CPython's exact exception in a fairly obscure case. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312867&aid=903723&group_id=12867 |
From: SourceForge.net <no...@so...> - 2004-02-25 03:37:51
|
Patches item #903723, was opened at 2004-02-24 20:56 Message generated for change (Comment added) made by pedronis You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312867&aid=903723&group_id=12867 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Jonathan Ellis (ellisj) Assigned to: Nobody/Anonymous (nobody) Summary: fixes for test_new Initial Comment: Sanity checking of the closure supplied via new.function. Note that test_closure(g, None, TypeError) still fails because jython raises a ValueError instead of a TypeError. (Because Jython sees None and turns it into a null PyObject[], indistinguishable from no closure at all.) Fixing this would require changing the signature of the PyFunction constructor to take PyObject (PyTuple) instead of PyObject[] which would require a substantial rewrite of CodeCompiler's visitFunctionDef/makeClosure methods. It's doable but since the new module is deprecated in Python 2.3 anyway I don't think it's really worth all that trouble to match CPython's exact exception in a fairly obscure case. ---------------------------------------------------------------------- >Comment By: Samuele Pedroni (pedronis) Date: 2004-02-25 03:26 Message: Logged In: YES user_id=61408 Good. The validation stuff is good, but you don't want the check to be inside the constructor. I will take care of this detail when I merge this. Anyway some of this logic should migrate to new.function.__new__ because new.function is a type in 2.2 not a builtin function. Not that I was asking for that. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312867&aid=903723&group_id=12867 |
From: SourceForge.net <no...@so...> - 2004-02-25 05:13:06
|
Patches item #903723, was opened at 2004-02-24 12:56 Message generated for change (Comment added) made by nobody You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312867&aid=903723&group_id=12867 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Jonathan Ellis (ellisj) Assigned to: Nobody/Anonymous (nobody) Summary: fixes for test_new Initial Comment: Sanity checking of the closure supplied via new.function. Note that test_closure(g, None, TypeError) still fails because jython raises a ValueError instead of a TypeError. (Because Jython sees None and turns it into a null PyObject[], indistinguishable from no closure at all.) Fixing this would require changing the signature of the PyFunction constructor to take PyObject (PyTuple) instead of PyObject[] which would require a substantial rewrite of CodeCompiler's visitFunctionDef/makeClosure methods. It's doable but since the new module is deprecated in Python 2.3 anyway I don't think it's really worth all that trouble to match CPython's exact exception in a fairly obscure case. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2004-02-24 20:45 Message: Logged In: NO I almost didn't put the validate call in the constructor but I looked at the CPython source and it always does the checks so I imitated it in that respect. ---------------------------------------------------------------------- Comment By: Samuele Pedroni (pedronis) Date: 2004-02-24 19:26 Message: Logged In: YES user_id=61408 Good. The validation stuff is good, but you don't want the check to be inside the constructor. I will take care of this detail when I merge this. Anyway some of this logic should migrate to new.function.__new__ because new.function is a type in 2.2 not a builtin function. Not that I was asking for that. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312867&aid=903723&group_id=12867 |
From: SourceForge.net <no...@so...> - 2004-02-25 14:16:28
|
Patches item #903723, was opened at 2004-02-24 20:56 Message generated for change (Comment added) made by pedronis You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312867&aid=903723&group_id=12867 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Jonathan Ellis (ellisj) Assigned to: Nobody/Anonymous (nobody) Summary: fixes for test_new Initial Comment: Sanity checking of the closure supplied via new.function. Note that test_closure(g, None, TypeError) still fails because jython raises a ValueError instead of a TypeError. (Because Jython sees None and turns it into a null PyObject[], indistinguishable from no closure at all.) Fixing this would require changing the signature of the PyFunction constructor to take PyObject (PyTuple) instead of PyObject[] which would require a substantial rewrite of CodeCompiler's visitFunctionDef/makeClosure methods. It's doable but since the new module is deprecated in Python 2.3 anyway I don't think it's really worth all that trouble to match CPython's exact exception in a fairly obscure case. ---------------------------------------------------------------------- >Comment By: Samuele Pedroni (pedronis) Date: 2004-02-25 14:05 Message: Logged In: YES user_id=61408 I see, but CPython code tries to avoid segmentation faults and memory corruption, OTOH for code called from java if someone passes a null or something wich will fail a cast, they will get a NullPointerException or Cast* which is fine, like it happens also with other java libraries What we are interested in is to avoid that Jython side code sees /can trigger such exceptions. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2004-02-25 04:45 Message: Logged In: NO I almost didn't put the validate call in the constructor but I looked at the CPython source and it always does the checks so I imitated it in that respect. ---------------------------------------------------------------------- Comment By: Samuele Pedroni (pedronis) Date: 2004-02-25 03:26 Message: Logged In: YES user_id=61408 Good. The validation stuff is good, but you don't want the check to be inside the constructor. I will take care of this detail when I merge this. Anyway some of this logic should migrate to new.function.__new__ because new.function is a type in 2.2 not a builtin function. Not that I was asking for that. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312867&aid=903723&group_id=12867 |