This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] bound_registers.py: Add support for Python 3


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.

Jonah


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]