From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 93126 invoked by alias); 26 Nov 2016 18:55:06 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 93106 invoked by uid 89); 26 Nov 2016 18:55:05 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,RCVD_IN_SORBS_SPAM,URIBL_RED autolearn=ham version=3.3.2 spammy=Hx-languages-length:3589 X-HELO: sasl.smtp.pobox.com Received: from pb-smtp2.pobox.com (HELO sasl.smtp.pobox.com) (64.147.108.71) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 26 Nov 2016 18:54:55 +0000 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by pb-smtp2.pobox.com (Postfix) with ESMTP id 970A65049F for ; Sat, 26 Nov 2016 13:54:53 -0500 (EST) Received: from pb-smtp2.nyi.icgroup.com (unknown [127.0.0.1]) by pb-smtp2.pobox.com (Postfix) with ESMTP id 8BAE15049C for ; Sat, 26 Nov 2016 13:54:53 -0500 (EST) Received: from mail-io0-f182.google.com (unknown [209.85.223.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pb-smtp2.pobox.com (Postfix) with ESMTPSA id 144E95049A for ; Sat, 26 Nov 2016 13:54:53 -0500 (EST) Received: by mail-io0-f182.google.com with SMTP id j65so170375043iof.0 for ; Sat, 26 Nov 2016 10:54:52 -0800 (PST) X-Gm-Message-State: AKaTC014wJpYP2ObFxZtqJc1uhXY5bCYRRacZCmzcjTVz3zEWbdBUhM38kKGR1PVd0a15SvkzIE2AdQmnFGIug== X-Received: by 10.36.204.9 with SMTP id x9mr11873883itf.123.1480186492201; Sat, 26 Nov 2016 10:54:52 -0800 (PST) MIME-Version: 1.0 Received: by 10.107.156.67 with HTTP; Sat, 26 Nov 2016 10:54:11 -0800 (PST) In-Reply-To: References: <20161120204526.7203-1-jonah@kichwacoders.com> <9c9ac6f4-1f6c-3ebe-b23d-3611f4f52192@codesourcery.com> From: Jonah Graham Date: Sat, 26 Nov 2016 18:55:00 -0000 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] bound_registers.py: Add support for Python 3 To: Luis Machado Cc: gdb-patches@sourceware.org Content-Type: text/plain; charset=UTF-8 X-Pobox-Relay-ID: D0BBC60C-B409-11E6-AB4F-B2917B1B28F4-18936988!pb-smtp2.pobox.com X-IsSubscribed: yes X-SW-Source: 2016-11/txt/msg00899.txt.bz2 On 26 November 2016 at 16:27, Jonah Graham wrote: > On 23 November 2016 at 23:09, Jonah Graham wrote: >> On 23 November 2016 at 23:04, Luis Machado wrote: >>> On 11/23/2016 04:39 PM, Jonah Graham wrote: >>>> >>>> On 23 November 2016 at 16:59, Luis Machado >>>> 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 >>>>>> + >>>>>> + * python/lib/gdb/printer/bound_registers.py: Add support >>>>>> + for Python 3. >>>>>> + >>>>>> 2016-11-19 Joel Brobecker >>>>>> >>>>>> * 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. > > Thanks > Jonah This patch is missing the import of sys. Update on the way.