From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 64765 invoked by alias); 23 Nov 2016 23:04:55 -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 64680 invoked by uid 89); 23 Nov 2016 23:04:55 -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_NONE,SPF_PASS,URIBL_RED autolearn=ham version=3.3.2 spammy= X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 23 Nov 2016 23:04:44 +0000 Received: from svr-orw-mbx-03.mgc.mentorg.com ([147.34.90.203]) by relay1.mentorg.com with esmtp id 1c9gao-0003UG-LA from Luis_Gustavo@mentor.com ; Wed, 23 Nov 2016 15:04:42 -0800 Received: from [172.30.6.103] (147.34.91.1) by svr-orw-mbx-03.mgc.mentorg.com (147.34.90.203) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Wed, 23 Nov 2016 15:04:40 -0800 Reply-To: Luis Machado Subject: Re: [PATCH] bound_registers.py: Add support for Python 3 References: <20161120204526.7203-1-jonah@kichwacoders.com> To: Jonah Graham CC: From: Luis Machado Message-ID: <9c9ac6f4-1f6c-3ebe-b23d-3611f4f52192@codesourcery.com> Date: Wed, 23 Nov 2016 23:04:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: svr-orw-mbx-02.mgc.mentorg.com (147.34.90.202) To svr-orw-mbx-03.mgc.mentorg.com (147.34.90.203) X-IsSubscribed: yes X-SW-Source: 2016-11/txt/msg00733.txt.bz2 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.