Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH] Some Python 3 fixes
@ 2015-04-07 17:13 Simon Marchi
  2015-04-15 15:27 ` Simon Marchi
  0 siblings, 1 reply; 4+ messages in thread
From: Simon Marchi @ 2015-04-07 17:13 UTC (permalink / raw)
  To: gdb-patches; +Cc: Simon Marchi

Some missing parentheses and one itertools.imap (Py2) vs map (Py3) issue.

gdb/ChangeLog:

	* python/lib/gdb/command/unwinders.py: Add parentheses.

gdb/testsuite/ChangeLog:

	* gdb.python/py-framefilter.py (ErrorFilter.filter): Use map function
	if itertools.imap is not present.
	* gdb.python/py-objfile.exp: Add parentheses.
	* gdb.python/py-type.exp: Same.
	* gdb.python/py-unwind-maint.py: Same.
---
 gdb/python/lib/gdb/command/unwinders.py     | 2 +-
 gdb/testsuite/gdb.python/py-framefilter.py  | 7 ++++++-
 gdb/testsuite/gdb.python/py-objfile.exp     | 4 ++--
 gdb/testsuite/gdb.python/py-type.exp        | 4 ++--
 gdb/testsuite/gdb.python/py-unwind-maint.py | 8 ++++----
 5 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/gdb/python/lib/gdb/command/unwinders.py b/gdb/python/lib/gdb/command/unwinders.py
index 8530b35..1a5aed9 100644
--- a/gdb/python/lib/gdb/command/unwinders.py
+++ b/gdb/python/lib/gdb/command/unwinders.py
@@ -83,7 +83,7 @@ class InfoUnwinder(gdb.Command):
         """
         if not unwinders:
             return
-        print title
+        print(title)
         for unwinder in unwinders:
             if name_re.match(unwinder.name):
                 print("  %s%s" % (unwinder.name,
diff --git a/gdb/testsuite/gdb.python/py-framefilter.py b/gdb/testsuite/gdb.python/py-framefilter.py
index 0de026c..1e5b2b3 100644
--- a/gdb/testsuite/gdb.python/py-framefilter.py
+++ b/gdb/testsuite/gdb.python/py-framefilter.py
@@ -145,7 +145,12 @@ class ErrorFilter():
         gdb.frame_filters [self.name] = self
 
     def filter(self, frame_iter):
-        return itertools.imap(ErrorInName, frame_iter)
+        # Python 3.x moved the itertools.imap functionality to map(),
+        # so check if it is available.
+        if hasattr(itertools, "imap"):
+            return itertools.imap (ErrorInName, frame_iter)
+        else:
+            return map(ErrorInName, frame_iter)
 
 FrameFilter()
 FrameElider()
diff --git a/gdb/testsuite/gdb.python/py-objfile.exp b/gdb/testsuite/gdb.python/py-objfile.exp
index b53f5e3..4de20c5 100644
--- a/gdb/testsuite/gdb.python/py-objfile.exp
+++ b/gdb/testsuite/gdb.python/py-objfile.exp
@@ -88,9 +88,9 @@ if { [gdb_unload] < 0 } {
     return -1
 }
 
-gdb_test "python print objfile.filename" "None" \
+gdb_test "python print(objfile.filename)" "None" \
     "objfile.filename after objfile is unloaded"
-gdb_test "python print objfile.username" "None" \
+gdb_test "python print(objfile.username)" "None" \
     "objfile.username after objfile is unloaded"
 
 # Now build another copy of the testcase, this time without debug info.
diff --git a/gdb/testsuite/gdb.python/py-type.exp b/gdb/testsuite/gdb.python/py-type.exp
index c4c8d9f..9e522f2 100644
--- a/gdb/testsuite/gdb.python/py-type.exp
+++ b/gdb/testsuite/gdb.python/py-type.exp
@@ -247,10 +247,10 @@ restart_gdb "${binfile}"
 # Skip all tests if Python scripting is not enabled.
 if { [skip_python_tests] } { continue }
 
-gdb_test "python print gdb.lookup_type('char').array(1, 0)" \
+gdb_test "python print(gdb.lookup_type('char').array(1, 0))" \
     "char \\\[0\\\]"
 
-gdb_test "python print gdb.lookup_type('char').array(1, -1)" \
+gdb_test "python print(gdb.lookup_type('char').array(1, -1))" \
     "Array length must not be negative.*"
 
 with_test_prefix "lang_c" {
diff --git a/gdb/testsuite/gdb.python/py-unwind-maint.py b/gdb/testsuite/gdb.python/py-unwind-maint.py
index f8c6277..288fe07 100644
--- a/gdb/testsuite/gdb.python/py-unwind-maint.py
+++ b/gdb/testsuite/gdb.python/py-unwind-maint.py
@@ -24,7 +24,7 @@ class TestGlobalUnwinder(Unwinder):
         super(TestGlobalUnwinder, self).__init__("global_unwinder")
 
     def __call__(self, unwinder_info):
-        print "%s called" % self.name
+        print("%s called" % self.name)
         return None
 
 class TestProgspaceUnwinder(Unwinder):
@@ -32,7 +32,7 @@ class TestProgspaceUnwinder(Unwinder):
         super(TestProgspaceUnwinder, self).__init__("%s_ps_unwinder" % name)
 
     def __call__(self, unwinder_info):
-        print "%s called" % self.name
+        print("%s called" % self.name)
         return None
 
 class TestObjfileUnwinder(Unwinder):
@@ -40,7 +40,7 @@ class TestObjfileUnwinder(Unwinder):
         super(TestObjfileUnwinder, self).__init__("%s_obj_unwinder" % name)
 
     def __call__(self, unwinder_info):
-        print "%s called" % self.name
+        print("%s called" % self.name)
         return None
 
 
@@ -56,4 +56,4 @@ if not saw_runtime_error:
 gdb.unwinder.register_unwinder(None, TestGlobalUnwinder(), replace=True)
 gdb.unwinder.register_unwinder(gdb.current_progspace(),
                                TestProgspaceUnwinder("py_unwind_maint"))
-print "Python script imported"
+print("Python script imported")
-- 
2.1.4


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] Some Python 3 fixes
  2015-04-07 17:13 [PATCH] Some Python 3 fixes Simon Marchi
@ 2015-04-15 15:27 ` Simon Marchi
  2015-04-15 15:40   ` Joel Brobecker
  0 siblings, 1 reply; 4+ messages in thread
From: Simon Marchi @ 2015-04-15 15:27 UTC (permalink / raw)
  To: gdb-patches

On 15-04-07 01:13 PM, Simon Marchi wrote:
> Some missing parentheses and one itertools.imap (Py2) vs map (Py3) issue.
> 
> gdb/ChangeLog:
> 
> 	* python/lib/gdb/command/unwinders.py: Add parentheses.
> 
> gdb/testsuite/ChangeLog:
> 
> 	* gdb.python/py-framefilter.py (ErrorFilter.filter): Use map function
> 	if itertools.imap is not present.
> 	* gdb.python/py-objfile.exp: Add parentheses.
> 	* gdb.python/py-type.exp: Same.
> 	* gdb.python/py-unwind-maint.py: Same.
> ---
>  gdb/python/lib/gdb/command/unwinders.py     | 2 +-
>  gdb/testsuite/gdb.python/py-framefilter.py  | 7 ++++++-
>  gdb/testsuite/gdb.python/py-objfile.exp     | 4 ++--
>  gdb/testsuite/gdb.python/py-type.exp        | 4 ++--
>  gdb/testsuite/gdb.python/py-unwind-maint.py | 8 ++++----
>  5 files changed, 15 insertions(+), 10 deletions(-)
> 
> diff --git a/gdb/python/lib/gdb/command/unwinders.py b/gdb/python/lib/gdb/command/unwinders.py
> index 8530b35..1a5aed9 100644
> --- a/gdb/python/lib/gdb/command/unwinders.py
> +++ b/gdb/python/lib/gdb/command/unwinders.py
> @@ -83,7 +83,7 @@ class InfoUnwinder(gdb.Command):
>          """
>          if not unwinders:
>              return
> -        print title
> +        print(title)
>          for unwinder in unwinders:
>              if name_re.match(unwinder.name):
>                  print("  %s%s" % (unwinder.name,
> diff --git a/gdb/testsuite/gdb.python/py-framefilter.py b/gdb/testsuite/gdb.python/py-framefilter.py
> index 0de026c..1e5b2b3 100644
> --- a/gdb/testsuite/gdb.python/py-framefilter.py
> +++ b/gdb/testsuite/gdb.python/py-framefilter.py
> @@ -145,7 +145,12 @@ class ErrorFilter():
>          gdb.frame_filters [self.name] = self
>  
>      def filter(self, frame_iter):
> -        return itertools.imap(ErrorInName, frame_iter)
> +        # Python 3.x moved the itertools.imap functionality to map(),
> +        # so check if it is available.
> +        if hasattr(itertools, "imap"):
> +            return itertools.imap (ErrorInName, frame_iter)
> +        else:
> +            return map(ErrorInName, frame_iter)
>  
>  FrameFilter()
>  FrameElider()
> diff --git a/gdb/testsuite/gdb.python/py-objfile.exp b/gdb/testsuite/gdb.python/py-objfile.exp
> index b53f5e3..4de20c5 100644
> --- a/gdb/testsuite/gdb.python/py-objfile.exp
> +++ b/gdb/testsuite/gdb.python/py-objfile.exp
> @@ -88,9 +88,9 @@ if { [gdb_unload] < 0 } {
>      return -1
>  }
>  
> -gdb_test "python print objfile.filename" "None" \
> +gdb_test "python print(objfile.filename)" "None" \
>      "objfile.filename after objfile is unloaded"
> -gdb_test "python print objfile.username" "None" \
> +gdb_test "python print(objfile.username)" "None" \
>      "objfile.username after objfile is unloaded"
>  
>  # Now build another copy of the testcase, this time without debug info.
> diff --git a/gdb/testsuite/gdb.python/py-type.exp b/gdb/testsuite/gdb.python/py-type.exp
> index c4c8d9f..9e522f2 100644
> --- a/gdb/testsuite/gdb.python/py-type.exp
> +++ b/gdb/testsuite/gdb.python/py-type.exp
> @@ -247,10 +247,10 @@ restart_gdb "${binfile}"
>  # Skip all tests if Python scripting is not enabled.
>  if { [skip_python_tests] } { continue }
>  
> -gdb_test "python print gdb.lookup_type('char').array(1, 0)" \
> +gdb_test "python print(gdb.lookup_type('char').array(1, 0))" \
>      "char \\\[0\\\]"
>  
> -gdb_test "python print gdb.lookup_type('char').array(1, -1)" \
> +gdb_test "python print(gdb.lookup_type('char').array(1, -1))" \
>      "Array length must not be negative.*"
>  
>  with_test_prefix "lang_c" {
> diff --git a/gdb/testsuite/gdb.python/py-unwind-maint.py b/gdb/testsuite/gdb.python/py-unwind-maint.py
> index f8c6277..288fe07 100644
> --- a/gdb/testsuite/gdb.python/py-unwind-maint.py
> +++ b/gdb/testsuite/gdb.python/py-unwind-maint.py
> @@ -24,7 +24,7 @@ class TestGlobalUnwinder(Unwinder):
>          super(TestGlobalUnwinder, self).__init__("global_unwinder")
>  
>      def __call__(self, unwinder_info):
> -        print "%s called" % self.name
> +        print("%s called" % self.name)
>          return None
>  
>  class TestProgspaceUnwinder(Unwinder):
> @@ -32,7 +32,7 @@ class TestProgspaceUnwinder(Unwinder):
>          super(TestProgspaceUnwinder, self).__init__("%s_ps_unwinder" % name)
>  
>      def __call__(self, unwinder_info):
> -        print "%s called" % self.name
> +        print("%s called" % self.name)
>          return None
>  
>  class TestObjfileUnwinder(Unwinder):
> @@ -40,7 +40,7 @@ class TestObjfileUnwinder(Unwinder):
>          super(TestObjfileUnwinder, self).__init__("%s_obj_unwinder" % name)
>  
>      def __call__(self, unwinder_info):
> -        print "%s called" % self.name
> +        print("%s called" % self.name)
>          return None
>  
>  
> @@ -56,4 +56,4 @@ if not saw_runtime_error:
>  gdb.unwinder.register_unwinder(None, TestGlobalUnwinder(), replace=True)
>  gdb.unwinder.register_unwinder(gdb.current_progspace(),
>                                 TestProgspaceUnwinder("py_unwind_maint"))
> -print "Python script imported"
> +print("Python script imported")
> 

Ping!


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] Some Python 3 fixes
  2015-04-15 15:27 ` Simon Marchi
@ 2015-04-15 15:40   ` Joel Brobecker
  2015-04-15 15:56     ` Simon Marchi
  0 siblings, 1 reply; 4+ messages in thread
From: Joel Brobecker @ 2015-04-15 15:40 UTC (permalink / raw)
  To: Simon Marchi; +Cc: gdb-patches

> > gdb/ChangeLog:
> > 
> > 	* python/lib/gdb/command/unwinders.py: Add parentheses.
> > 
> > gdb/testsuite/ChangeLog:
> > 
> > 	* gdb.python/py-framefilter.py (ErrorFilter.filter): Use map function
> > 	if itertools.imap is not present.
> > 	* gdb.python/py-objfile.exp: Add parentheses.
> > 	* gdb.python/py-type.exp: Same.
> > 	* gdb.python/py-unwind-maint.py: Same.

Sorry for the delay, Simon. Most of those are on the obvious side
(print being a function, now, and thus requiring the use of
parentheses), so they'd be OK to push without approval. The one
change that is less obvious is the adjustment after itertools.imap
got replaced by "map"; but the change looks good to me.

So go ahead and push.

-- 
Joel


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] Some Python 3 fixes
  2015-04-15 15:40   ` Joel Brobecker
@ 2015-04-15 15:56     ` Simon Marchi
  0 siblings, 0 replies; 4+ messages in thread
From: Simon Marchi @ 2015-04-15 15:56 UTC (permalink / raw)
  To: Joel Brobecker; +Cc: gdb-patches

> Sorry for the delay, Simon.

No worries.

> Most of those are on the obvious side
> (print being a function, now, and thus requiring the use of
> parentheses), so they'd be OK to push without approval. The one
> change that is less obvious is the adjustment after itertools.imap
> got replaced by "map"; but the change looks good to me.
> 
> So go ahead and push.

Pushed. Thanks a lot!


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-04-15 15:56 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-07 17:13 [PATCH] Some Python 3 fixes Simon Marchi
2015-04-15 15:27 ` Simon Marchi
2015-04-15 15:40   ` Joel Brobecker
2015-04-15 15:56     ` Simon Marchi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox