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.

Author BCSharp
Recipients BCSharp
Date 2019-05-14.20:28:36
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1557865717.35.0.0613603941425.issue36919@roundup.psfhosted.org>
In-reply-to
Content
Since Python 3.2, input in 'exec' mode  of 'compile' does not have to end in a newline anymore. However, it creates a surprising behavior when a 'SyntaxError' is reported:

>>> try: compile('try', '<string>', 'exec')
... except SyntaxError as ex: print(repr(ex))
... 
SyntaxError('invalid syntax', ('<string>', 1, 4, 'try\n'))

The 'text' field of the exception thrown contains an additional newline character that was not present in the input. Is it:

a. Proper Python language behavior?
b. CPython implementation artifact?
c. A bug?

In case of:

a. I will submit a patch to IronPython, which does not add an extra newline at the moment.
b. I can submit a patch to CPython to make StdLib tests implementation independent.
c. This inquiry can serve as a bug report.
History
Date User Action Args
2019-05-14 20:28:37BCSharpsetrecipients: + BCSharp
2019-05-14 20:28:37BCSharpsetmessageid: <1557865717.35.0.0613603941425.issue36919@roundup.psfhosted.org>
2019-05-14 20:28:37BCSharplinkissue36919 messages
2019-05-14 20:28:36BCSharpcreate