[v2] Fix xmethod Python so that it works with Python 3
Commit Message
The attached patch fixes the "no space before parenthesis in Python"
comment by Joel. The comment was for the changes in the test suite.
Going by examples, I thought the test case code (but not the .exp
files) did not require adherence to coding style.
I also agree with Joel that this patch should also pushed to the 7.8 branch.
ChangeLog:
2014-08-14 Siva Chandra Reddy <sivachandra@gmail.com>
gdb/
* python/lib/gdb/command/xmethods.py (set_xm_status1): Use the
'items' methods instead of 'iteritems' method on dictionaries.
gdb/testsuite/
* gdb.python/py-xmethods.py (A_getarrayind)
(E_method_char_worker.__call__, E_method_int_worker.__call__):
Use 'print' with function call syntax.
(E_method_matcher.match): Fix tab vs space indentation mixup.
Comments
Siva Chandra writes:
> The attached patch fixes the "no space before parenthesis in Python"
> comment by Joel. The comment was for the changes in the test suite.
> Going by examples, I thought the test case code (but not the .exp
> files) did not require adherence to coding style.
>
> I also agree with Joel that this patch should also pushed to the 7.8 branch.
>
> ChangeLog:
> 2014-08-14 Siva Chandra Reddy <sivachandra@gmail.com>
>
> gdb/
>
> * python/lib/gdb/command/xmethods.py (set_xm_status1): Use the
> 'items' methods instead of 'iteritems' method on dictionaries.
>
> gdb/testsuite/
>
> * gdb.python/py-xmethods.py (A_getarrayind)
> (E_method_char_worker.__call__, E_method_int_worker.__call__):
> Use 'print' with function call syntax.
> (E_method_matcher.match): Fix tab vs space indentation mixup.
LGTM
On Thu, Aug 14, 2014 at 3:34 PM, Doug Evans <dje@google.com> wrote:
> Siva Chandra writes:
> > The attached patch fixes the "no space before parenthesis in Python"
> > comment by Joel. The comment was for the changes in the test suite.
> > Going by examples, I thought the test case code (but not the .exp
> > files) did not require adherence to coding style.
> >
> > I also agree with Joel that this patch should also pushed to the 7.8 branch.
> >
> > ChangeLog:
> > 2014-08-14 Siva Chandra Reddy <sivachandra@gmail.com>
> >
> > gdb/
> >
> > * python/lib/gdb/command/xmethods.py (set_xm_status1): Use the
> > 'items' methods instead of 'iteritems' method on dictionaries.
> >
> > gdb/testsuite/
> >
> > * gdb.python/py-xmethods.py (A_getarrayind)
> > (E_method_char_worker.__call__, E_method_int_worker.__call__):
> > Use 'print' with function call syntax.
> > (E_method_matcher.match): Fix tab vs space indentation mixup.
>
> LGTM
Pushed 940df408121be31beed22ef7a5ad133cb1592726.
On Fri, Aug 15, 2014 at 6:16 PM, Siva Chandra <sivachandra@google.com> wrote:
> On Thu, Aug 14, 2014 at 3:34 PM, Doug Evans <dje@google.com> wrote:
>> Siva Chandra writes:
>> > The attached patch fixes the "no space before parenthesis in Python"
>> > comment by Joel. The comment was for the changes in the test suite.
>> > Going by examples, I thought the test case code (but not the .exp
>> > files) did not require adherence to coding style.
>> >
>> > I also agree with Joel that this patch should also pushed to the 7.8 branch.
>> >
>> > ChangeLog:
>> > 2014-08-14 Siva Chandra Reddy <sivachandra@gmail.com>
>> >
>> > gdb/
>> >
>> > * python/lib/gdb/command/xmethods.py (set_xm_status1): Use the
>> > 'items' methods instead of 'iteritems' method on dictionaries.
>> >
>> > gdb/testsuite/
>> >
>> > * gdb.python/py-xmethods.py (A_getarrayind)
>> > (E_method_char_worker.__call__, E_method_int_worker.__call__):
>> > Use 'print' with function call syntax.
>> > (E_method_matcher.match): Fix tab vs space indentation mixup.
>>
>> LGTM
>
> Pushed 940df408121be31beed22ef7a5ad133cb1592726.
Missed asking: OK for 7.8 branch?
> >> > ChangeLog:
> >> > 2014-08-14 Siva Chandra Reddy <sivachandra@gmail.com>
> >> >
> >> > gdb/
> >> >
> >> > * python/lib/gdb/command/xmethods.py (set_xm_status1): Use the
> >> > 'items' methods instead of 'iteritems' method on dictionaries.
> >> >
> >> > gdb/testsuite/
> >> >
> >> > * gdb.python/py-xmethods.py (A_getarrayind)
> >> > (E_method_char_worker.__call__, E_method_int_worker.__call__):
> >> > Use 'print' with function call syntax.
> >> > (E_method_matcher.match): Fix tab vs space indentation mixup.
> >>
> >> LGTM
> >
> > Pushed 940df408121be31beed22ef7a5ad133cb1592726.
>
> Missed asking: OK for 7.8 branch?
Yes. Pleasae make sure to update the branch's wiki as well
(section "Fixes in 7.8.1" - you might need to create a PR for that).
Thanks,
On Sun, Aug 31, 2014 at 11:30 PM, Joel Brobecker <brobecker@adacore.com> wrote:
>> > Pushed 940df408121be31beed22ef7a5ad133cb1592726.
>>
>> Missed asking: OK for 7.8 branch?
>
> Yes. Pleasae make sure to update the branch's wiki as well
> (section "Fixes in 7.8.1" - you might need to create a PR for that).
Pushed to the branch. For editing the wiki, does my account need some
special permissions? My username is "SivaChandraReddy".
Thanks,
Siva Chandra
> > Yes. Pleasae make sure to update the branch's wiki as well
> > (section "Fixes in 7.8.1" - you might need to create a PR for that).
>
> Pushed to the branch. For editing the wiki, does my account need some
> special permissions? My username is "SivaChandraReddy".
Yes, you need to be part of the EditorGroup. I've just added you,
so you should be able to edit the wiki now.
@@ -140,7 +140,7 @@ def print_xm_info(xm_dict, name_re):
def set_xm_status1(xm_dict, name_re, status):
"""Set the status (enabled/disabled) of a dictionary of xmethods."""
- for locus_str, matchers in xm_dict.iteritems():
+ for locus_str, matchers in xm_dict.items():
for matcher in matchers:
if not name_re:
# If the name regex is missing, then set the status of the
@@ -25,22 +25,22 @@ from gdb.xmethod import SimpleXMethodMatcher
def A_plus_A(obj, opr):
- print ('From Python <A_plus_A>:')
+ print('From Python <A_plus_A>:')
return obj['a'] + opr['a']
def plus_plus_A(obj):
- print ('From Python <plus_plus_A>:')
+ print('From Python <plus_plus_A>:')
return obj['a'] + 1
def A_geta(obj):
- print ('From Python <A_geta>:')
+ print('From Python <A_geta>:')
return obj['a']
def A_getarrayind(obj, index):
- print 'From Python <A_getarrayind>:'
+ print('From Python <A_getarrayind>:')
return obj['array'][index]
@@ -61,7 +61,7 @@ class E_method_char_worker(XMethodWorker):
return gdb.lookup_type('char')
def __call__(self, obj, arg):
- print 'From Python <E_method_char>'
+ print('From Python <E_method_char>')
return None
@@ -73,7 +73,7 @@ class E_method_int_worker(XMethodWorker):
return gdb.lookup_type('int')
def __call__(self, obj, arg):
- print 'From Python <E_method_int>'
+ print('From Python <E_method_int>')
return None
@@ -86,7 +86,7 @@ class E_method_matcher(XMethodMatcher):
class_tag = class_type.unqualified().tag
if not re.match('^dop::E$', class_tag):
return None
- if not re.match('^method$', method_name):
+ if not re.match('^method$', method_name):
return None
workers = []
if self.methods[0].enabled:
@@ -109,7 +109,7 @@ class G_size_diff_worker(XMethodWorker):
pass
def __call__(self, obj):
- print ('From Python G<>::size_diff()')
+ print('From Python G<>::size_diff()')
return (self._method_template_type.sizeof -
self._class_template_type.sizeof)
@@ -123,7 +123,7 @@ class G_size_mul_worker(XMethodWorker):
pass
def __call__(self, obj):
- print ('From Python G<>::size_mul()')
+ print('From Python G<>::size_mul()')
return self._class_template_type.sizeof * self._method_template_val
@@ -136,7 +136,7 @@ class G_mul_worker(XMethodWorker):
return self._method_template_type
def __call__(self, obj, arg):
- print ('From Python G<>::mul()')
+ print('From Python G<>::mul()')
return obj['t'] * arg