Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Phil Muldoon <pmuldoon@redhat.com>
To: Jan Kratochvil <jan.kratochvil@redhat.com>
Cc: Tom Tromey <tromey@redhat.com>,
	       "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Subject: Re: python-2.4 compat.  [Re: [patch][python] 1 of 5 - Frame filter Python C code changes.]
Date: Thu, 12 Sep 2013 07:57:00 -0000	[thread overview]
Message-ID: <523173C4.4060906@redhat.com> (raw)
In-Reply-To: <20130912073646.GB13948@host2.jankratochvil.net>

On 12/09/13 08:36, Jan Kratochvil wrote:
> On Fri, 10 May 2013 12:42:20 +0200, Phil Muldoon wrote:
> [...]
>> --- /dev/null
>> +++ b/gdb/python/lib/gdb/command/frame_filters.py
>> @@ -0,0 +1,461 @@
> [...]
>> +            for frame_filter in sorted_frame_filters:
>> +                name = frame_filter[0]
>> +                try:
>> +                    priority = '{:<8}'.format(
>> +                        str(gdb.frames.get_priority(frame_filter[1])))
>> +                    enabled = '{:<7}'.format(
>> +                        self.enabled_string(gdb.frames.get_enabled(frame_filter[1])))
>> +                except Exception as e:
>> +                    print("  Error printing filter '"+name+"': "+str(e))
>> +                else:
>> +                    print("  %s  %s  %s" % (priority, enabled, name))
> (plus it is there once again later)
> 
> CentOS-5 python-2.4.3-56.el5.x86_64:
> 
> ./gdb -nx -data-directory ./data-directoryTraceback (most recent call last):
>   File ".../gdb/testsuite/../data-directory/python/gdb/__init__.py", line 105, in auto_load_packages
>     __import__(modname)
>   File "./data-directory/python/gdb/command/frame_filters.py", line 82
>     except Exception as e:
>                       ^
> SyntaxError: invalid syntax
> 
> GNU gdb (GDB) 7.6.50.20130912-cvs
> 
> IIRC it was agreed upon upstream FSF GDB should support python-2.4, could you
> code it in a compatible way?

To write this so it works in Python 2.4 -> Python 3.x I will have to
write it as:

except Exception:
   e = sys.exc_info()[1]
   ....

That's fine - I will do that.  But I think it is kind of silly to do
stuff like this in Python - we are just circumventing how Exceptions
should be written to support a broad subset of Python versions.

The differences between 2.4 and 2.7, and 3.x and everything in-between
are just becoming a major pain to maintain, and harder to review.  At
some point we should discuss, for future GDB releases, our strategy
for Python versions.  I just see in the future incompatibilities we
can't write around being replaced with:

if sys.version >= 2.4 and sys.version <= 2.7:
   ....
else if sys.version > 2.7:
   ....

Which is just the moral equivalent of #ifdef'ness in C.  Not to
mention the same equivalent in the Python C code in GDB.


Cheers,

Phil
   


      reply	other threads:[~2013-09-12  7:57 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-06  8:23 [patch][python] 1 of 5 - Frame filter Python C code changes Phil Muldoon
2013-05-06 20:39 ` Tom Tromey
2013-05-09 13:23   ` Phil Muldoon
2013-05-09 15:14     ` Tom Tromey
2013-05-10 10:42       ` Phil Muldoon
2013-09-12  7:36         ` python-2.4 compat. [Re: [patch][python] 1 of 5 - Frame filter Python C code changes.] Jan Kratochvil
2013-09-12  7:57           ` Phil Muldoon [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=523173C4.4060906@redhat.com \
    --to=pmuldoon@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=jan.kratochvil@redhat.com \
    --cc=tromey@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox