<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/cpython-git.git/Python/pythonrun.c, branch revert-10341-patch-7</title>
<subtitle>github.com: python/cpython.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/'/>
<entry>
<title>bpo-35975: Support parsing earlier minor versions of Python 3 (GH-12086)</title>
<updated>2019-03-07T20:38:08+00:00</updated>
<author>
<name>Guido van Rossum</name>
<email>guido@python.org</email>
</author>
<published>2019-03-07T20:38:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=495da292255b92dd73758fdd0e4c7d27d82b1e57'/>
<id>495da292255b92dd73758fdd0e4c7d27d82b1e57</id>
<content type='text'>
This adds a `feature_version` flag to `ast.parse()` (documented) and `compile()` (hidden) that allow tweaking the parser to support older versions of the grammar. In particular if `feature_version` is 5 or 6, the hacks for the `async` and `await` keyword from PEP 492 are reinstated. (For 7 or higher, these are unconditionally treated as keywords, but they are still special tokens rather than `NAME` tokens that the parser driver recognizes.)



https://bugs.python.org/issue35975</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds a `feature_version` flag to `ast.parse()` (documented) and `compile()` (hidden) that allow tweaking the parser to support older versions of the grammar. In particular if `feature_version` is 5 or 6, the hacks for the `async` and `await` keyword from PEP 492 are reinstated. (For 7 or higher, these are unconditionally treated as keywords, but they are still special tokens rather than `NAME` tokens that the parser driver recognizes.)



https://bugs.python.org/issue35975</pre>
</div>
</content>
</entry>
<entry>
<title>Re-init _Py_UnhandledKeyboardInterrupt before run. (GH-11963)</title>
<updated>2019-02-21T01:35:54+00:00</updated>
<author>
<name>Gregory P. Smith</name>
<email>greg@krypto.org</email>
</author>
<published>2019-02-21T01:35:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=d9bc543cbb9681f77d94864d05e2ba2d353e6de9'/>
<id>d9bc543cbb9681f77d94864d05e2ba2d353e6de9</id>
<content type='text'>
Explicitly reinitialize this every eval *just in case* someone is
calling into an embedded Python where they don't care about an uncaught
KeyboardInterrupt exception (why didn't they leave
`config.install_signal_handlers` set to `0`?!?) but then later call
`Py_Main()` itself (which *checks* this flag and dies with a signal after
its interpreter exits).  We don't want a previous embedded interpreter's
uncaught exception to trigger an unexplained signal exit from a future
`Py_Main()` based one.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Explicitly reinitialize this every eval *just in case* someone is
calling into an embedded Python where they don't care about an uncaught
KeyboardInterrupt exception (why didn't they leave
`config.install_signal_handlers` set to `0`?!?) but then later call
`Py_Main()` itself (which *checks* this flag and dies with a signal after
its interpreter exits).  We don't want a previous embedded interpreter's
uncaught exception to trigger an unexplained signal exit from a future
`Py_Main()` based one.</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-1054041: Exit properly after an uncaught ^C. (#11862)</title>
<updated>2019-02-16T20:57:40+00:00</updated>
<author>
<name>Gregory P. Smith</name>
<email>greg@krypto.org</email>
</author>
<published>2019-02-16T20:57:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=38f11cc3f62db11a4a24354bd06273322ac91afa'/>
<id>38f11cc3f62db11a4a24354bd06273322ac91afa</id>
<content type='text'>
* bpo-1054041: Exit properly by a signal after a ^C.

An uncaught KeyboardInterrupt exception means the user pressed ^C and
our code did not handle it.  Programs that install SIGINT handlers are
supposed to reraise the SIGINT signal to the SIG_DFL handler in order
to exit in a manner that their calling process can detect that they
died due to a Ctrl-C.  https://www.cons.org/cracauer/sigint.html

After this change on POSIX systems

 while true; do python -c 'import time; time.sleep(23)'; done

can be stopped via a simple Ctrl-C instead of the shell infinitely
restarting a new python process.

What to do on Windows, or if anything needs to be done there has not
yet been determined.  That belongs in its own PR.

TODO(gpshead): A unittest for this behavior is still needed.

* Do the unhandled ^C check after pymain_free.

* Return STATUS_CONTROL_C_EXIT on Windows.

* Fix ifdef around unistd.h include.

* 📜🤖 Added by blurb_it.

* Add STATUS_CTRL_C_EXIT to the os module on Windows

* Add unittests.

* Don't send CTRL_C_EVENT in the Windows test.

It was causing CI systems to bail out of the entire test suite.

See https://dev.azure.com/Python/cpython/_build/results?buildId=37980
for example.

* Correct posix test (fail on macOS?) check.

* STATUS_CONTROL_C_EXIT must be unsigned.

* Improve the error message.

* test typo :)

* Skip if the bash version is too old.

...and rename the windows test to reflect what it does.

* min bash version is 4.4, detect no bash.

* restore a blank line i didn't mean to delete.

* PyErr_Occurred() before the Py_DECREF(co);

* Don't add os.STATUS_CONTROL_C_EXIT as a constant.

* Update the Windows test comment.

* Refactor common logic into a run_eval_code_obj fn.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* bpo-1054041: Exit properly by a signal after a ^C.

An uncaught KeyboardInterrupt exception means the user pressed ^C and
our code did not handle it.  Programs that install SIGINT handlers are
supposed to reraise the SIGINT signal to the SIG_DFL handler in order
to exit in a manner that their calling process can detect that they
died due to a Ctrl-C.  https://www.cons.org/cracauer/sigint.html

After this change on POSIX systems

 while true; do python -c 'import time; time.sleep(23)'; done

can be stopped via a simple Ctrl-C instead of the shell infinitely
restarting a new python process.

What to do on Windows, or if anything needs to be done there has not
yet been determined.  That belongs in its own PR.

TODO(gpshead): A unittest for this behavior is still needed.

* Do the unhandled ^C check after pymain_free.

* Return STATUS_CONTROL_C_EXIT on Windows.

* Fix ifdef around unistd.h include.

* 📜🤖 Added by blurb_it.

* Add STATUS_CTRL_C_EXIT to the os module on Windows

* Add unittests.

* Don't send CTRL_C_EVENT in the Windows test.

It was causing CI systems to bail out of the entire test suite.

See https://dev.azure.com/Python/cpython/_build/results?buildId=37980
for example.

* Correct posix test (fail on macOS?) check.

* STATUS_CONTROL_C_EXIT must be unsigned.

* Improve the error message.

* test typo :)

* Skip if the bash version is too old.

...and rename the windows test to reflect what it does.

* min bash version is 4.4, detect no bash.

* restore a blank line i didn't mean to delete.

* PyErr_Occurred() before the Py_DECREF(co);

* Don't add os.STATUS_CONTROL_C_EXIT as a constant.

* Update the Windows test comment.

* Refactor common logic into a run_eval_code_obj fn.
</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-35766: Merge typed_ast back into CPython (GH-11645)</title>
<updated>2019-01-31T11:40:27+00:00</updated>
<author>
<name>Guido van Rossum</name>
<email>guido@python.org</email>
</author>
<published>2019-01-31T11:40:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=dcfcd146f8e6fc5c2fc16a4c192a0c5f5ca8c53c'/>
<id>dcfcd146f8e6fc5c2fc16a4c192a0c5f5ca8c53c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-30167: Remove __cached__ from __main__ when removing __file__ (GH-7415)</title>
<updated>2018-11-29T11:01:27+00:00</updated>
<author>
<name>INADA Naoki</name>
<email>methane@users.noreply.github.com</email>
</author>
<published>2018-11-29T11:01:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=82daa60defbd6497efdaa6c1132ecc8563122ed5'/>
<id>82daa60defbd6497efdaa6c1132ecc8563122ed5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-35177, Python-ast.h: Fix "Yield" compiler warning (GH-10664)</title>
<updated>2018-11-22T17:38:38+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>vstinner@redhat.com</email>
</author>
<published>2018-11-22T17:38:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=3bb183d7fb83ad6a84ec13dea90f95d67be35c69'/>
<id>3bb183d7fb83ad6a84ec13dea90f95d67be35c69</id>
<content type='text'>
Partially revert commit 5f2df88b63e50d23914e97ec778861a52abdeaad:
add "#undef Yield" to .c files after including Python-ast.h.

Fix the warning:

    winbase.h(102): warning C4005: 'Yield': macro redefinition</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Partially revert commit 5f2df88b63e50d23914e97ec778861a52abdeaad:
add "#undef Yield" to .c files after including Python-ast.h.

Fix the warning:

    winbase.h(102): warning C4005: 'Yield': macro redefinition</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-35081: Rename internal headers (GH-10275)</title>
<updated>2018-11-12T15:53:38+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>vstinner@redhat.com</email>
</author>
<published>2018-11-12T15:53:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=621cebe81b1e6c8de10425955bf532d31ee4df42'/>
<id>621cebe81b1e6c8de10425955bf532d31ee4df42</id>
<content type='text'>
Rename Include/internal/ headers:

* pycore_hash.h -&gt; pycore_pyhash.h
* pycore_lifecycle.h -&gt; pycore_pylifecycle.h
* pycore_mem.h -&gt; pycore_pymem.h
* pycore_state.h -&gt; pycore_pystate.h

Add missing headers to Makefile.pre.in and PCbuild:

* pycore_condvar.h.
* pycore_hamt.h
* pycore_pyhash.h</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rename Include/internal/ headers:

* pycore_hash.h -&gt; pycore_pyhash.h
* pycore_lifecycle.h -&gt; pycore_pylifecycle.h
* pycore_mem.h -&gt; pycore_pymem.h
* pycore_state.h -&gt; pycore_pystate.h

Add missing headers to Makefile.pre.in and PCbuild:

* pycore_condvar.h.
* pycore_hamt.h
* pycore_pyhash.h</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-35177: Add dependencies between header files (GH-10361)</title>
<updated>2018-11-11T23:56:19+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>vstinner@redhat.com</email>
</author>
<published>2018-11-11T23:56:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=5f2df88b63e50d23914e97ec778861a52abdeaad'/>
<id>5f2df88b63e50d23914e97ec778861a52abdeaad</id>
<content type='text'>
* ast.h now includes Python-ast.h and node.h
* parsetok.h now includes node.h and grammar.h
* symtable.h now includes Python-ast.h
* Modify asdl_c.py to enhance Python-ast.h:

  * Add #ifndef/#define Py_PYTHON_AST_H to be able to include the header
    twice
  * Add "extern { ... }" for C++
  * Undefine "Yield" macro conflicting with winbase.h

* Remove "#undef Yield" from C files, it's now done in Python-ast.h
* Remove now useless includes in C files</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* ast.h now includes Python-ast.h and node.h
* parsetok.h now includes node.h and grammar.h
* symtable.h now includes Python-ast.h
* Modify asdl_c.py to enhance Python-ast.h:

  * Add #ifndef/#define Py_PYTHON_AST_H to be able to include the header
    twice
  * Add "extern { ... }" for C++
  * Undefine "Yield" macro conflicting with winbase.h

* Remove "#undef Yield" from C files, it's now done in Python-ast.h
* Remove now useless includes in C files</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-35081: Add pycore_ prefix to internal header files (GH-10263)</title>
<updated>2018-10-31T23:52:28+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>vstinner@redhat.com</email>
</author>
<published>2018-10-31T23:52:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=27e2d1f21975dfb8c0ddcb192fa0f45a51b7977e'/>
<id>27e2d1f21975dfb8c0ddcb192fa0f45a51b7977e</id>
<content type='text'>
* Rename Include/internal/ header files:

  * pyatomic.h -&gt; pycore_atomic.h
  * ceval.h -&gt; pycore_ceval.h
  * condvar.h -&gt; pycore_condvar.h
  * context.h -&gt; pycore_context.h
  * pygetopt.h -&gt; pycore_getopt.h
  * gil.h -&gt; pycore_gil.h
  * hamt.h -&gt; pycore_hamt.h
  * hash.h -&gt; pycore_hash.h
  * mem.h -&gt; pycore_mem.h
  * pystate.h -&gt; pycore_state.h
  * warnings.h -&gt; pycore_warnings.h

* PCbuild project, Makefile.pre.in, Modules/Setup: add the
  Include/internal/ directory to the search paths of header files.
* Update includes. For example, replace #include "internal/mem.h"
  with #include "pycore_mem.h".</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Rename Include/internal/ header files:

  * pyatomic.h -&gt; pycore_atomic.h
  * ceval.h -&gt; pycore_ceval.h
  * condvar.h -&gt; pycore_condvar.h
  * context.h -&gt; pycore_context.h
  * pygetopt.h -&gt; pycore_getopt.h
  * gil.h -&gt; pycore_gil.h
  * hamt.h -&gt; pycore_hamt.h
  * hash.h -&gt; pycore_hash.h
  * mem.h -&gt; pycore_mem.h
  * pystate.h -&gt; pycore_state.h
  * warnings.h -&gt; pycore_warnings.h

* PCbuild project, Makefile.pre.in, Modules/Setup: add the
  Include/internal/ directory to the search paths of header files.
* Update includes. For example, replace #include "internal/mem.h"
  with #include "pycore_mem.h".</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-34653: Removed unused function PyParser_SimpleParseStringFilename. (GH-9260)</title>
<updated>2018-09-13T16:34:55+00:00</updated>
<author>
<name>Eric V. Smith</name>
<email>ericvsmith@users.noreply.github.com</email>
</author>
<published>2018-09-13T16:34:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=53c427e839d3e55d4791dca687a2d47534465a7a'/>
<id>53c427e839d3e55d4791dca687a2d47534465a7a</id>
<content type='text'>
This function was not in any .h file and was not used by Python, so removing it is safe.


https://bugs.python.org/issue34653</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This function was not in any .h file and was not used by Python, so removing it is safe.


https://bugs.python.org/issue34653</pre>
</div>
</content>
</entry>
</feed>
