From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16726 invoked by alias); 26 Nov 2016 21:27:08 -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 16709 invoked by uid 89); 26 Nov 2016 21:27:07 -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; Sat, 26 Nov 2016 21:26:57 +0000 Received: from svr-orw-mbx-03.mgc.mentorg.com ([147.34.90.203]) by relay1.mentorg.com with esmtp id 1cAkUp-0001ZY-F5 from Luis_Gustavo@mentor.com ; Sat, 26 Nov 2016 13:26:55 -0800 Received: from [172.30.4.90] (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; Sat, 26 Nov 2016 13:26:52 -0800 Reply-To: Luis Machado Subject: Re: [PATCH] bound_registers.py: Add support for Python 3 References: <20161120204526.7203-1-jonah@kichwacoders.com> <9c9ac6f4-1f6c-3ebe-b23d-3611f4f52192@codesourcery.com> To: Jonah Graham CC: From: Luis Machado Message-ID: <3d3a1226-dbb2-04ef-c922-3462e6f318b3@codesourcery.com> Date: Sat, 26 Nov 2016 21:27: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-01.mgc.mentorg.com (147.34.90.201) To svr-orw-mbx-03.mgc.mentorg.com (147.34.90.203) X-IsSubscribed: yes X-SW-Source: 2016-11/txt/msg00901.txt.bz2 On 11/26/2016 10:27 AM, 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. One of the maintainers needs to OK it, which shouldn't that that long. Given the size of the patch, i don't there's anything else that should be done code-wise.