This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: print() unpredictable behaviour
Type: behavior Stage: resolved
Components: IO Versions: Python 3.8
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: Nosy List: eric.smith, n-io, remi.lapeyre
Priority: normal Keywords:

Created on 2020-07-24 13:56 by n-io, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Messages (5)
msg374176 - (view) Author: n-io (n-io) Date: 2020-07-24 13:56
There seems to be a behavioural issue with the print() function. Using python3.8 and the following line:

>>> print("\t".join(['arith_int_512-cuda.sfeat', '__hipsyclkernel$wrapped_kernelname$MicroBenchArithmeticKernel_512_1', '578', '65', '5', '64', '4', '1025', '128', '1', '1', '512', '1']))

arith_int_512-cuda.sfeat    __hipsyclkernel$wrapped_kernelname$MicroBenchArithmeticKernel_512_1    578    65    5    64    4    1025    128    512    1

Notice the missing numbers between 128 and 512. If I do random modifications the either of the first two string, some of the missing numbers may appear. For instance:

>>> print("\t".join(['arith_int_512-cuda', '__hipsycl_kernel_$wrapped_kernel_name_$MicroBenchArithmeticKernel_512_1', '578', '65', '5', '64', '4', '1025', '128', '1', '1', '512', '1']))

arith_int_512-cuda	__hipsycl_kernel_$wrapped_kernel_name_$MicroBenchArithmeticKernel_512_1	578	65	5	64	4	1025	128	1	512	1

Notice that one of the two missing numbers has appeared. There appears nothing wrong with the value used to invoke print.

The error appears to be linked to joining on the "\t" character and does not appear to occur when joining on other whitespace characters such as " ".join(...) or "\n".join(...)
msg374181 - (view) Author: Rémi Lapeyre (remi.lapeyre) * Date: 2020-07-24 14:06
On MacOS with Python 3.8.2 I get the correct results. Can you give more details about the platform and send the result of:


    >>> "\t".join(['arith_int_512-cuda.sfeat', '__hipsyclkernel$wrapped_kernelname$MicroBenchArithmeticKernel_512_1', '578', '65', '5', '64', '4', '1025', '128', '1', '1', '512', '1'])

?


Could you also try `echo 'arith_int_512-cuda.sfeat\t__hipsyclkernel$wrapped_kernelname$MicroBenchArithmeticKernel_512_1\t578\t65\t5\t64\t4\t1025\t128\t1\t1\t512\t1'` in shell? Maybe your terminal emulator behaves weirdly.
msg374187 - (view) Author: n-io (n-io) Date: 2020-07-24 14:41
The first call you requested (as hinted before, this looks fine to me):
$ python3.8
Python 3.8.3 (default, May 14 2020, 22:09:32) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> "\t".join(['arith_int_512-cuda.sfeat', '__hipsyclkernel$wrapped_kernelname$MicroBenchArithmeticKernel_512_1', '578', '65', '5', '64', '4', '1025', '128', '1', '1', '512', '1'])
'arith_int_512-cuda.sfeat\t__hipsyclkernel$wrapped_kernelname$MicroBenchArithmeticKernel_512_1\t578\t65\t5\t64\t4\t1025\t128\t1\t1\t512\t1'


I can reproduce the issue on both:

Python 3.8.3 (default, May 14 2020, 22:09:32) 
[GCC 5.4.0 20160609] on linux

Python 3.6.6 (v3.6.6:4cf1f54eb7, Jun 26 2018, 19:50:54) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin


The second call you requested `echo 'arith_int_512-....'` will say 'command not found: arith_.....' in bash.
msg374190 - (view) Author: Eric V. Smith (eric.smith) * (Python committer) Date: 2020-07-24 14:55
It would help if you could pare this down to a simpler example, hopefully removing the '$'.

For example, does the problem still occur if you '$'s? What if you make all of the non-numeric strings 1 character long? What if you delete the non-numeric strings?
msg374193 - (view) Author: n-io (n-io) Date: 2020-07-24 15:06
Redirecting the stdout of the command to a file (script.py > out) shows the output being produced correctly. The bug seems therefore unrelated to python, my apologies. Thanks though!

FYI, "$cat out" will reproduce the bug, while "$vi out" will show the correct output as expected. Your intuition seemed correct, thanks.
History
Date User Action Args
2022-04-11 14:59:34adminsetgithub: 85554
2020-07-24 15:06:23n-iosetstatus: open -> closed
resolution: not a bug
messages: + msg374193

stage: resolved
2020-07-24 14:55:17eric.smithsetnosy: + eric.smith
messages: + msg374190
2020-07-24 14:41:04n-iosetmessages: + msg374187
2020-07-24 14:06:37remi.lapeyresetnosy: + remi.lapeyre
messages: + msg374181
2020-07-24 13:56:19n-iocreate