All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeremy Cline <jcline@redhat.com>
To: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Michal Marek <michal.lkml@markovi.net>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] scripts: Add Python 3 support to tracing/draw_functrace.py
Date: Wed, 25 Jul 2018 11:01:21 -0400	[thread overview]
Message-ID: <fd435ffe-5323-6c71-8945-b3b22ee80e84@redhat.com> (raw)
In-Reply-To: <CAK7LNAQWotaFhMAnW=Ah8aFO8VMxUB4bXursTe6JTZxcTzettQ@mail.gmail.com>

On 07/25/2018 10:39 AM, Masahiro Yamada wrote:
> 2018-07-21 4:35 GMT+09:00 Jeremy Cline <jcline@redhat.com>:
>> Use the print function. This maintains Python 2 support and should have
>> no functional change.
>>
>> Signed-off-by: Jeremy Cline <jcline@redhat.com>
>> ---
>>  scripts/tracing/draw_functrace.py | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/scripts/tracing/draw_functrace.py b/scripts/tracing/draw_functrace.py
>> index db40fa04cd51..7d44e796d362 100755
>> --- a/scripts/tracing/draw_functrace.py
>> +++ b/scripts/tracing/draw_functrace.py
>> @@ -20,6 +20,7 @@ Usage:
>>         $ scripts/draw_functrace.py < raw_trace_func > draw_functrace
>>         Then you have your drawn trace in draw_functrace
>>  """
>> +from __future__ import print_function
> 
> What do you need this line for?
> 
> I have not tested this,
> but I guess print(CallTree.ROOT) will work for Python 2.

Although "print(CallTree.ROOT)" (as a statement) works in Python 2,
its behavior is different than print (as a function) in Python 3. In
this case, there's no additional arguments being provided so the
behavior will match, but if someone added an argument it would work
differently on Python 2 vs Python 3:

Python 2.7.15
>>> print("hello", "world")
('hello', 'world')

Python 3.6.6
>>> print("hello, "world")
  File "<stdin>", line 1
    print("hello, "world")
                       ^
SyntaxError: invalid syntax

Importing the print_function works on Python 2.6+[0] and changes print
to be a function in Python 2 so it'll behave the same in 2 and 3. Given
that this script doesn't appear to change much it's probably not going
to save anyone from making that mistake, though. Would you prefer a
patch without it?

[0] https://docs.python.org/3/library/__future__.html

Regards,
Jeremy

> 
> 
> 
>>
>>  import sys, re
>> @@ -123,7 +124,7 @@ def main():
>>                 tree = tree.getParent(caller)
>>                 tree = tree.calls(callee, calltime)
>>
>> -       print CallTree.ROOT
>> +       print(CallTree.ROOT)
>>
>>  if __name__ == "__main__":
>>         main()
>> --
>> 2.17.1
>>
> 
> 
> 

  reply	other threads:[~2018-07-25 15:01 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-20 19:35 [PATCH] scripts: Add Python 3 support to tracing/draw_functrace.py Jeremy Cline
2018-07-25 14:39 ` Masahiro Yamada
2018-07-25 15:01   ` Jeremy Cline [this message]
2018-07-28  5:41     ` Masahiro Yamada

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=fd435ffe-5323-6c71-8945-b3b22ee80e84@redhat.com \
    --to=jcline@redhat.com \
    --cc=fweisbec@gmail.com \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michal.lkml@markovi.net \
    --cc=yamada.masahiro@socionext.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.