From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 127465 invoked by alias); 26 Nov 2016 16:28:37 -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 127338 invoked by uid 89); 26 Nov 2016 16:28:36 -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=roughly, 1,8, afaik, Jonah X-HELO: sasl.smtp.pobox.com Received: from pb-smtp1.pobox.com (HELO sasl.smtp.pobox.com) (64.147.108.70) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 26 Nov 2016 16:28:26 +0000 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by pb-smtp1.pobox.com (Postfix) with ESMTP id 03D184FD31 for ; Sat, 26 Nov 2016 11:28:23 -0500 (EST) Received: from pb-smtp1.nyi.icgroup.com (unknown [127.0.0.1]) by pb-smtp1.pobox.com (Postfix) with ESMTP id E2AD74FD2D for ; Sat, 26 Nov 2016 11:28:22 -0500 (EST) Received: from mail-io0-f173.google.com (unknown [209.85.223.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pb-smtp1.pobox.com (Postfix) with ESMTPSA id 840D04FD2B for ; Sat, 26 Nov 2016 11:28:22 -0500 (EST) Received: by mail-io0-f173.google.com with SMTP id c21so161867072ioj.1 for ; Sat, 26 Nov 2016 08:28:22 -0800 (PST) X-Gm-Message-State: AKaTC01dY1/nX/D3RqgE3mun1Nj1xa1G1YRHbHFm41XFoymI4DwKqnC9q+ajQvBG71/A/z26Iv6Jrs9StN676g== X-Received: by 10.36.66.143 with SMTP id i137mr11905380itb.43.1480177701969; Sat, 26 Nov 2016 08:28:21 -0800 (PST) MIME-Version: 1.0 Received: by 10.107.156.67 with HTTP; Sat, 26 Nov 2016 08:27:41 -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 16:28: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: 5928392C-B3F5-11E6-B2BB-E98412518317-18936988!pb-smtp1.pobox.com X-IsSubscribed: yes X-SW-Source: 2016-11/txt/msg00895.txt.bz2 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