Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Luis Machado <lgustavo@codesourcery.com>
To: Jonah Graham <jonah@kichwacoders.com>
Cc: <gdb-patches@sourceware.org>
Subject: Re: [PATCH] bound_registers.py: Add support for Python 3
Date: Sat, 26 Nov 2016 21:27:00 -0000	[thread overview]
Message-ID: <3d3a1226-dbb2-04ef-c922-3462e6f318b3@codesourcery.com> (raw)
In-Reply-To: <CAPmGMvjAAz8TeoiDJ5Fx2Cq8hyG8A+5zdWDYMprrbzQct=H1aw@mail.gmail.com>

On 11/26/2016 10:27 AM, Jonah Graham wrote:
> On 23 November 2016 at 23:09, Jonah Graham <jonah@kichwacoders.com> wrote:
>> On 23 November 2016 at 23:04, Luis Machado <lgustavo@codesourcery.com> wrote:
>>> On 11/23/2016 04:39 PM, Jonah Graham wrote:
>>>>
>>>> On 23 November 2016 at 16:59, Luis Machado <lgustavo@codesourcery.com>
>>>> wrote:
>>>>>
>>>>> On 11/20/2016 02:45 PM, Jonah Graham wrote:
>>>>>>
>>>>>>
>>>>>> gdb/Changelog:
>>>>>>
>>>>>>         * python/lib/gdb/printer/bound_registers.py: Add support
>>>>>>         for Python 3.
>>>>>> ---
>>>>>>  gdb/ChangeLog                                 | 5 +++++
>>>>>>  gdb/python/lib/gdb/printer/bound_registers.py | 5 +++++
>>>>>>  2 files changed, 10 insertions(+)
>>>>>>
>>>>>> diff --git a/gdb/ChangeLog b/gdb/ChangeLog
>>>>>> index 3797e8b..1923888 100644
>>>>>> --- a/gdb/ChangeLog
>>>>>> +++ b/gdb/ChangeLog
>>>>>> @@ -1,3 +1,8 @@
>>>>>> +2016-11-20  Jonah Graham  <jonah@kichwacoders.com>
>>>>>> +
>>>>>> +       * python/lib/gdb/printer/bound_registers.py: Add support
>>>>>> +       for Python 3.
>>>>>> +
>>>>>>  2016-11-19  Joel Brobecker  <brobecker@adacore.com>
>>>>>>
>>>>>>         * contrib/ari/gdb_ari.sh: Add detection of printf_vma and
>>>>>> diff --git a/gdb/python/lib/gdb/printer/bound_registers.py
>>>>>> b/gdb/python/lib/gdb/printer/bound_registers.py
>>>>>> index 9ff94aa..e91cc19 100644
>>>>>> --- a/gdb/python/lib/gdb/printer/bound_registers.py
>>>>>> +++ b/gdb/python/lib/gdb/printer/bound_registers.py
>>>>>> @@ -16,6 +16,11 @@
>>>>>>
>>>>>>  import gdb.printing
>>>>>>
>>>>>> +if sys.version_info[0] > 2:
>>>>>> +    # Python 3 removed basestring and long
>>>>>> +    basestring = str
>>>>>> +    long = int
>>>>>> +
>>>>>>  class MpxBound128Printer:
>>>>>>      """Adds size field to a mpx __gdb_builtin_type_bound128 type."""
>>>>>>
>>>>>>
>>>>>
>>>>> Since this should apply to every python module, maybe this should be
>>>>> defined
>>>>> inside gdb/python/lib/gdb/__init__.py?
>>>>>
>>>>> I'm assuming it gets included by module "gdb" and therefore "long" is
>>>>> defined to be "int" for Python versions > 3.
>>>>>
>>>>> Then we can remove that code from gdb/python/lib/gdb/printing.py (and
>>>>> from
>>>>> other places setting this type of version-specific adjustment).
>>>>>
>>>>> Does that make sense?
>>>>
>>>>
>>>> Hi Luis,
>>>>
>>>> I am not sure I understand how to do it in __init__.py as the modules
>>>> that wanted to be both Python 2 and Python 3 compatible would still
>>>> have to have special code. AFAIK an __init__.py cannot change the
>>>> value of long in other py files. So python/lib/gdb/printing.py and
>>>> python/lib/gdb/printer/bound_registers.py would still need special
>>>> case code locally, even if that special case was an import for a
>>>> definition of long.
>>>
>>>
>>> That was the point i wasn't sure about (not a Python expert). I see
>>> conditional code executing if the version is > 3, but i wasn't sure if it
>>> would take effect globally when a module is included.
>>>
>>> In that case, i suppose there is not much that can be done other than
>>> duplicate the code.
>>>
>>
>> There is no way I know of, as a reference
>> http://python3porting.com/differences.html#long recommends doing it
>> (roughly) the way already done in python/lib/gdb/printing.py and
>> copied to python/lib/gdb/printer/bound_registers.py
>>
>> Thanks for the review,
>> Jonah
>
> Hi,
>
> Is there more I am supposed to do to get this patch into GDB? If so,
> please advise and I would be happy to.

One of the maintainers needs to OK it, which shouldn't that that long. 
Given the size of the patch, i don't there's anything else that should 
be done code-wise.


  parent reply	other threads:[~2016-11-26 21:27 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-20 20:47 Jonah Graham
2016-11-20 20:51 ` Jonah Graham
2016-11-23 16:59 ` Luis Machado
2016-11-23 22:40   ` Jonah Graham
2016-11-23 23:04     ` Luis Machado
2016-11-23 23:10       ` Jonah Graham
2016-11-26 16:28         ` Jonah Graham
2016-11-26 18:55           ` Jonah Graham
2016-11-26 18:55             ` Jonah Graham
2016-11-26 21:27           ` Luis Machado [this message]
2017-03-08  8:35             ` Jonah Graham
2017-03-17 15:00               ` Pedro Alves
2017-03-22  9:16                 ` Yao Qi
2017-03-22  9:38                   ` Jonah Graham
2017-03-22 11:26                     ` Yao Qi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3d3a1226-dbb2-04ef-c922-3462e6f318b3@codesourcery.com \
    --to=lgustavo@codesourcery.com \
    --cc=gdb-patches@sourceware.org \
    --cc=jonah@kichwacoders.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox