From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11859 invoked by alias); 23 Nov 2016 23:10:19 -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 11845 invoked by uid 89); 23 Nov 2016 23:10:18 -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= 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; Wed, 23 Nov 2016 23:10:08 +0000 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by pb-smtp1.pobox.com (Postfix) with ESMTP id AE79750B14 for ; Wed, 23 Nov 2016 18:10:06 -0500 (EST) Received: from pb-smtp1.nyi.icgroup.com (unknown [127.0.0.1]) by pb-smtp1.pobox.com (Postfix) with ESMTP id 85E6050B13 for ; Wed, 23 Nov 2016 18:10:06 -0500 (EST) Received: from mail-io0-f174.google.com (unknown [209.85.223.174]) (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 615B850B0D for ; Wed, 23 Nov 2016 18:10:05 -0500 (EST) Received: by mail-io0-f174.google.com with SMTP id a124so50621614ioe.2 for ; Wed, 23 Nov 2016 15:10:05 -0800 (PST) X-Gm-Message-State: AKaTC03OKe+dGrNCuV9RgKunMCI/tZtnwWUzvqGIi7HSAku8u+3Bziuf8lsJBPH0KeSBY9+5W+JZT9bHD8Ot3A== X-Received: by 10.107.187.132 with SMTP id l126mr5683830iof.118.1479942603205; Wed, 23 Nov 2016 15:10:03 -0800 (PST) MIME-Version: 1.0 Received: by 10.107.156.67 with HTTP; Wed, 23 Nov 2016 15:09:22 -0800 (PST) In-Reply-To: <9c9ac6f4-1f6c-3ebe-b23d-3611f4f52192@codesourcery.com> References: <20161120204526.7203-1-jonah@kichwacoders.com> <9c9ac6f4-1f6c-3ebe-b23d-3611f4f52192@codesourcery.com> From: Jonah Graham Date: Wed, 23 Nov 2016 23:10: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: F857B322-B1D1-11E6-984F-E98412518317-18936988!pb-smtp1.pobox.com X-IsSubscribed: yes X-SW-Source: 2016-11/txt/msg00734.txt.bz2 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