[Python-Dev] bpo-36919: Exception from 'compile' reports a newline char not present in input (original) (raw)
Pavel Koneski pavel.koneski at gmail.com
Mon May 20 15:26:31 EDT 2019
- Previous message (by thread): [Python-Dev] Plan to accept PEP 544, PEP 586, PEP 589, PEP 591 -- last call for discussion
- Next message (by thread): [Python-Dev] bpo-36919: Exception from 'compile' reports a newline char not present in input
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi,
The following issue arose when implementing IronPython 3. Normally the behavior of CPython is authoritative, but in this case I started having doubts.
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', '', 'exec') ... except SyntaxError as ex: print(repr(ex)) ... SyntaxError('invalid syntax', ('', 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?
The comments on bpo (https://bugs.python.org/issue36919) suggest Case B, but inconclusive. If case B it is, since IronPython does not exhibit this behavior, I will submit a patch to StdLib test(s) to make them implementation independent.
Thanks for comments, Pavel
- Previous message (by thread): [Python-Dev] Plan to accept PEP 544, PEP 586, PEP 589, PEP 591 -- last call for discussion
- Next message (by thread): [Python-Dev] bpo-36919: Exception from 'compile' reports a newline char not present in input
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]