CINXE.COM

Issue 35134: Add a new Include/cpython/ subdirectory for the "CPython API" with implementation details - Python tracker

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title> Issue 35134: Add a new Include/cpython/ subdirectory for the "CPython API" with implementation details - Python tracker </title> <link rel="shortcut icon" href="@@file/favicon.ico" /> <link rel="stylesheet" type="text/css" href="@@file/main.css" /> <link rel="stylesheet" type="text/css" href="@@file/style.css" /> <link rel="search" type="application/opensearchdescription+xml" href="@@file/osd.xml" title="Python bug tracker search" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script nonce="9a6244cc07b8a586eecdfd05a04e17e839488843f5e3ef7529ce60c9092f845f" type="text/javascript"> submitted = false; function submit_once() { if (submitted) { alert("Your request is being processed.\nPlease be patient."); return false; } submitted = true; return true; } function help_window(helpurl, width, height) { HelpWin = window.open('https://bugs.python.org/' + helpurl, 'RoundupHelpWindow', 'scrollbars=yes,resizable=yes,toolbar=no,height='+height+',width='+width); HelpWin.focus () } </script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.15/jquery-ui.js"></script> <script type="text/javascript" src="@@file/issue.item.js"></script> <link rel="stylesheet" type="text/css" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/smoothness/jquery-ui.css" /> </head> <body> <!-- Logo --> <h1 id="logoheader"> <a accesskey="1" href="." id="logolink"> <img src="@@file/python-logo.gif" alt="homepage" border="0" id="logo" /></a> </h1> <div id="utility-menu"> <!-- Search Box --> <div id="searchbox"> <form name="searchform" method="get" action="issue" id="searchform"> <div id="search"> <input type="hidden" name="@columns" value="id,github,activity,title,creator,assignee,status,type" /> <input type="hidden" name="@sort" value="-activity" /> <input type="hidden" name="@filter" value="status" /> <input type="hidden" name="@action" value="searchid" /> <input type="hidden" name="ignore" value="file:content" /> <input class="input-text" id="search-text" name="@search_text" size="10" /> <input type="submit" id="submit" value="search" name="submit" class="input-button" /> <input type="radio" name="status" id="status_notresolved" value="-1,1,3" /> <label for="status_notresolved">open</label> <input type="radio" name="status" checked="checked" id="status_all" value="-1,1,2,3" /> <label for="status_all">all</label> </div> </form> </div> </div> <div id="left-hand-navigation"> <!-- Main Menu NEED LEVEL TWO HEADER AND FOOTER --> <div id="menu"> <ul class="level-one"> <li><a href="https://www.python.org/" title="Go to the Python homepage">Python Home</a></li> <li><a href="https://www.python.org/about/" title="About The Python Language">About</a></li> <li><a href="https://www.python.org/blogs/" title="">News</a></li> <li><a href="https://www.python.org/doc/" title="">Documentation</a></li> <li><a href="https://www.python.org/downloads/" title="">Downloads</a></li> <li><a href="https://www.python.org/community/" title="">Community</a></li> <li><a href="https://www.python.org/psf/" title="Python Software Foundation">Foundation</a></li> <li><a href="https://devguide.python.org/" title="Python Developer's Guide">Developer's Guide</a></li> <li class="selected"><a href="." class="selected" title="Python Issue Tracker">Issue Tracker</a> <ul class="level-two"> <li> <strong>Issues</strong> <ul class="level-three"> <li><a href="issue?@template=search&amp;status=1">Search</a></li> <li><a href="issue?@action=random">Random Issue</a></li> <li> <form method="post" action="issue35134"> <input type="submit" class="form-small" value="Show issue:" /> <input class="form-small" size="4" type="text" name="@number" /> <input type="hidden" name="@type" value="issue" /> <input type="hidden" name="@action" value="show" /> </form> </li> </ul> </li> <li> <strong>Summaries</strong> <ul class="level-three"> <li> <a href="issue?status=1&amp;@sort=-activity&amp;@columns=id%2Cgithub%2Cactivity%2Ctitle%2Ccreator%2Cstatus&amp;@dispname=Issues%20with%20patch&amp;@startwith=0&amp;@group=priority&amp;keywords=2&amp;@action=search&amp;@filter=&amp;@pagesize=50">Issues with patch</a> </li> <li> <a href="issue?status=1&amp;@sort=-activity&amp;@columns=id%2Cgithub%2Cactivity%2Ctitle%2Ccreator%2Cstatus&amp;@dispname=Easy%20issues&amp;@startwith=0&amp;@group=priority&amp;keywords=6&amp;@action=search&amp;@filter=&amp;@pagesize=50">Easy issues</a> </li> <li> <a href="issue?@template=stats">Stats</a> </li> </ul> </li> <li> <strong>User</strong> <form method="post" action="issue35134"> <ul class="level-three"> <li> Login<br /> <input size="10" name="openid_identifier" style="" /><br /> <input size="10" type="password" name="__login_password" /><br /> <input type="hidden" name="@action" value="Login" /> <input type="checkbox" name="remember" id="remember" /> <label for="remember">Remember me?</label><br /> <input class="form-small" type="submit" value="Login" /><br /> <input type="hidden" name="__came_from" value="https://bugs.python.org/issue35134?"> <input type="hidden" name="@sort" value=""/> <input type="hidden" name="@group" value=""/> <input type="hidden" name="@pagesize" value="50"/> <input type="hidden" name="@startwith" value="0"/> </li> <li> </li> <li><a href="user?@template=forgotten">Lost&nbsp;your&nbsp;login?</a></li> </ul> </form> </li> <li> <strong>Administration</strong> <ul class="level-three"> <li> <a href="user?@sort=username">User List</a></li> <li> <a href="user?iscommitter=1&amp;@action=search&amp;@sort=username&amp;@pagesize=300">Committer List</a></li> </ul> </li> <li> <strong>Help</strong> <ul class="level-three"> <li><a href="http://docs.python.org/devguide/triaging.html"> Tracker Documentation</a></li> <li><a href="http://wiki.python.org/moin/TrackerDevelopment"> Tracker Development</a></li> <li><a href="https://github.com/python/psf-infra-meta/issues"> Report Tracker Problem</a></li> </ul> </li> </ul> </li> </ul> </div> <!-- menu --> </div> <!-- left-hand-navigation --> <div id="content-body"> <div id="body-main"> <div id="content"> <div id="breadcrumb"> Issue35134 </div> <div id="migration-notice"> <div id="migration-images"> <img width="32" src="@@file/python-logo-small.png" /> ➜ <a href="https://github.com/python/cpython/issues"><img width="32" src="@@file/gh-icon.png" /></a> </div> <p>This issue tracker <b>has been migrated to <a href="https://github.com/python/cpython/issues">GitHub</a></b>, and is currently <b>read-only</b>.<br /> For more information, <a title="GitHub FAQs" href="https://devguide.python.org/gh-faq/"> see the GitHub FAQs in the Python's Developer Guide.</a></p> </div> <div> <form method="post" name="itemSynopsis" onsubmit="return submit_once()" enctype="multipart/form-data" action="issue35134"> <div id="gh-issue-link"> <a href="https://github.com/python/cpython/issues/79315"> <img width="32" src="@@file/gh-icon.png" /> <p> <span>This issue has been migrated to GitHub:</span> https://github.com/python/cpython/issues/79315 </p> </a> </div> <fieldset><legend>classification</legend> <table class="form"> <tr> <th class="required"><a href="http://docs.python.org/devguide/triaging.html#title" target="_blank">Title</a>:</th> <td colspan="3"> <span>Add a new Include/cpython/ subdirectory for the "CPython API" with implementation details</span> <input type="hidden" name="title" value="Add a new Include/cpython/ subdirectory for the &quot;CPython API&quot; with implementation details"> </td> </tr> <tr> <th class="required"><a href="http://docs.python.org/devguide/triaging.html#type" target="_blank">Type</a>:</th> <td></td> <th><a href="http://docs.python.org/devguide/triaging.html#stage" target="_blank">Stage</a>:</th> <td>resolved</td> </tr> <tr> <th><a href="http://docs.python.org/devguide/triaging.html#components" target="_blank">Components</a>:</th> <td>Interpreter Core</td> <th><a href="http://docs.python.org/devguide/triaging.html#versions" target="_blank">Versions</a>:</th> <td>Python 3.8</td> </tr> </table> </fieldset> <fieldset><legend>process</legend> <table class="form"> <tr> <th><a href="http://docs.python.org/devguide/triaging.html#status" target="_blank">Status</a>:</th> <td>closed</td> <th><a href="http://docs.python.org/devguide/triaging.html#resolution" target="_blank">Resolution</a>:</th> <td>fixed</td> </tr> <tr> <th> <a href="http://docs.python.org/devguide/triaging.html#dependencies" target="_blank">Dependencies</a>: </th> <td> </td> <th><a href="http://docs.python.org/devguide/triaging.html#superseder" target="_blank">Superseder</a>:</th> <td> </td> </tr> <tr> <th> <a href="http://docs.python.org/devguide/triaging.html#assigned-to" target="_blank">Assigned To</a>: </th> <td> </td> <th> <a href="http://docs.python.org/devguide/triaging.html#nosy-list" target="_blank">Nosy List</a><!-- <span tal:condition="context/nosy_count" tal:replace="python: ' (%d)' % context.nosy_count" /> -->: </th> <td> brett.cannon, eric.snow, erlendaasland, jkloth, ncoghlan, nw0, serhiy.storchaka, shihai1991, vstinner </td> </tr> <tr> <th> <a href="http://docs.python.org/devguide/triaging.html#priority" target="_blank">Priority</a>: </th> <td>normal</td> <th> <a href="http://docs.python.org/devguide/triaging.html#keywords" target="_blank">Keywords</a>: </th> <td>patch</td> </tr> </table> </fieldset> </form> <p>Created on <strong>2018-11-01 12:46</strong> by <strong>vstinner</strong>, last changed <strong>2022-04-11 14:59</strong> by <strong>admin</strong>. This issue is now <strong style="color:#00F; background-color:inherit;">closed</strong>.</p> <table class="files"> <tr><th class="header" colspan="4">Pull Requests</th></tr> <tr> <th>URL</th> <th>Status</th> <th>Linked</th> <th>Edit</th> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/10285" title="[WIP] bpo-35134: Create Include/pycapi/ subdirectory">PR 10285</a></td> <td>closed</td> <td> <span>vstinner</span>, <span>2018-11-01 13:04</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/10624" title="bpo-35134: Create Include/cpython/ subdirectory">PR 10624</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2018-11-20 22:37</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/10679" title="bpo-35134: Create Include/cpython/object.h">PR 10679</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2018-11-23 16:17</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/10680" title="bpo-35134: Create Include/cpython/unicodeobject.h">PR 10680</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2018-11-23 16:43</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/10727" title="bpo-35134: Add Include/cpython/pyerrors.h">PR 10727</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2018-11-26 20:50</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/10728" title="bpo-35134: Create Include/cpython/abstract.h">PR 10728</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2018-11-26 21:09</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/10731" title="bpo-35134: Create Include/cpython/pylifecycle.h">PR 10731</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2018-11-26 22:24</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/10732" title="bpo-35134: Create Include/cpython/dictobject.h">PR 10732</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2018-11-26 22:43</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/10733" title="bpo-35134: Create Include/cpython/pystate.h">PR 10733</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2018-11-26 22:59</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/10739" title="bpo-35134: Update "make tags": add Include/cpython/">PR 10739</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2018-11-27 11:20</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/10754" title="bpo-35134: Don't define types twice in header files">PR 10754</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2018-11-27 22:28</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/10764" title="bpo-35134: Create Include/cpython/tupleobject.h">PR 10764</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2018-11-28 11:47</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/12840" title="bpo-35134: Add Include/cpython/pymem.h">PR 12840</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2019-04-15 14:37</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/12842" title="bpo-35134: Add cpython/pymem.h to build system">PR 12842</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2019-04-15 15:03</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/13430" title="bpo-35134: Split traceback.h header">PR 13430</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2019-05-19 21:55</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/13431" title="bpo-35134: Register new traceback.h header files">PR 13431</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2019-05-19 22:24</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/14213" title="bpo-35134: Add Include/cpython/import.h header file">PR 14213</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2019-06-18 22:27</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/18052" title="bpo-35134: Migrate frameobject.h contents to cpython/frameobject.h">PR 18052</a></td> <td>merged</td> <td> <span>ncoghlan</span>, <span>2020-01-20 22:19</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/18395" title="bpo-35134: Create Include/cpython/listobject.h">PR 18395</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2020-02-07 07:53</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/18490" title="[WIP] bpo-35134: Move header files to Include/cpython/">PR 18490</a></td> <td>closed</td> <td> <span>vstinner</span>, <span>2020-02-12 20:33</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/18493" title="bpo-35134: Add Include/cpython/fileutils.h header file">PR 18493</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2020-02-12 22:08</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/18494" title="bpo-35134: Add Include/cpython/bytesobject.h file">PR 18494</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2020-02-12 22:25</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/19756" title="bpo-40421: Add Include/cpython/code.h header file">PR 19756</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2020-04-28 14:45</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/23701" title="bpo-35134: Add Include/cpython/pythonrun.h file">PR 23701</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2020-12-08 17:13</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/23988" title="bpo-35134: Add Include/cpython/pytime.h file">PR 23988</a></td> <td>merged</td> <td> <span>nw0</span>, <span>2020-12-29 09:53</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/24550" title="bpo-35134: Move Include/{pyarena.h,pyctype.h} to Include/cpython">PR 24550</a></td> <td>merged</td> <td> <span>nw0</span>, <span>2021-02-16 14:13</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/24561" title="bpo-35134: Move non-limited C API files to Include/cpython/">PR 24561</a></td> <td>merged</td> <td> <span>nw0</span>, <span>2021-02-18 10:55</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/24770" title="bpo-35134: move asdl.h, pystrhex.h, symtable.h, token.h, tracemalloc.h into Include/cpython">PR 24770</a></td> <td>closed</td> <td> <span>nw0</span>, <span>2021-03-06 05:42</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/24922" title="bpo-35134: Move non-limited C API of include/compile.h into include/cpython.">PR 24922</a></td> <td>merged</td> <td> <span>shihai1991</span>, <span>2021-03-18 17:43</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/28957" title="bpo-35134: Add Include/cpython/floatobject.h">PR 28957</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2021-10-14 21:10</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/28958" title="bpo-35134: Move Include/funcobject.h to Include/cpython/">PR 28958</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2021-10-14 22:16</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/28964" title="bpo-35134: Move Include/cellobject.h to Include/cpython/">PR 28964</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2021-10-14 23:54</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/28968" title="bpo-35134: Move classobject.h to Include/cpython/">PR 28968</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2021-10-15 07:20</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/29042" title="bpo-35134: Split warnings.h and weakrefobject.h">PR 29042</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2021-10-18 22:38</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/29044" title="bpo-35134: Add Include/cpython/longobject.h">PR 29044</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2021-10-18 23:39</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/30923" title="bpo-35134: Add Include/cpython/descrobject.h">PR 30923</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2022-01-26 16:02</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/32383" title="bpo-35134: Add Include/cpython/complexobject.h header">PR 32383</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2022-04-06 22:38</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/32384" title="bpo-35134: Add Include/cpython/setobject.h header">PR 32384</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2022-04-06 22:46</span> </td> <td> </td> </tr> <tr> <td><a href="https://github.com/python/cpython/pull/32385" title="bpo-35134: Remove the Include/code.h header file">PR 32385</a></td> <td>merged</td> <td> <span>vstinner</span>, <span>2022-04-06 22:58</span> </td> <td> </td> </tr> </table> <table class="messages"> <tr><th colspan="4" class="header">Messages (61)</th></tr> <tr> <th> <a href="#msg329060" id="msg329060">msg329060</a> - <a href="msg329060">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-01 12:46</th> </tr> <tr> <td colspan="4" class="content"> <pre>The <a href="https://www.python.org/dev/peps/pep-0384/">PEP 384</a> "Defining a Stable ABI" introduced Py_LIMITED_API define to exclude functions from the Python C API. The problem is when a new API is introduced, it has to explicitly be excluded using "#ifndef Py_LIMITED_API". If the author forgets it, the function is added to be stable API by mistake. I propose to move the API which should be excluded from the stable ABI to a new subdirectory: <a href="https://github.com/python/cpython/blob/master/Include/pycapi/">Include/pycapi/</a>. To not break the backward compatibility, I propose to automatically include new header files from existing header files. For example, <a href="https://github.com/python/cpython/blob/master/Include/pycapi/pyapi_objimpl.h">Include/pycapi/pyapi_objimpl.h</a> would be automatically included by <a href="https://github.com/python/cpython/blob/master/Include/pycapi/pycapi_objimpl.h">Include/pycapi/pycapi_objimpl.h</a>. New header files would have a "pycapi_" prefix to avoid conflict Include/ header files, if <a href="https://github.com/python/cpython/blob/master/Include/pycapi/">Include/pycapi/</a> directory is in the header search paths. This change is a follow-up of <a class="closed" title="[closed] Move internal headers to Include/internal/" href="issue35081">bpo-35081</a> which moved Py_BUILD_CORE code to <a href="https://github.com/python/cpython/blob/master/Include/internal/">Include/internal/</a>. It is also part of a larger project to cleanup the C API, see: * <a href="https://pythoncapi.readthedocs.io/split_include.html">https://pythoncapi.readthedocs.io/split_include.html</a> * <a href="https://pythoncapi.readthedocs.io/">https://pythoncapi.readthedocs.io/</a> The change is backward compatible: #include &lt;Python.h&gt; will still provide exactly the same API.</pre> </td> </tr> <tr> <th> <a href="#msg329087" id="msg329087">msg329087</a> - <a href="msg329087">(view)</a></th> <th>Author: Serhiy Storchaka (serhiy.storchaka) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-01 21:06</th> </tr> <tr> <td colspan="4" class="content"> <pre>There are not just two sides. It is common to wrap new stable C API with something like: #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 &gt;= 0x03050000 What will you do with this?</pre> </td> </tr> <tr> <th> <a href="#msg329123" id="msg329123">msg329123</a> - <a href="msg329123">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-02 10:55</th> </tr> <tr> <td colspan="4" class="content"> <pre>&gt; There are not just two sides. It is common to wrap new stable C API with something like: &gt; #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 &gt;= 0x03050000 &gt; What will you do with this? objimpl.h always includes pycapi/pycapi_objimpl.h, so I don't think that we need a strong rules. I propose to always add move code using "#if ... Py_LIMITED_API" to the pycapi/ subdirectory, even if it uses "#if !defined(Py_LIMITED_API)".</pre> </td> </tr> <tr> <th> <a href="#msg329124" id="msg329124">msg329124</a> - <a href="msg329124">(view)</a></th> <th>Author: Serhiy Storchaka (serhiy.storchaka) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-02 11:18</th> </tr> <tr> <td colspan="4" class="content"> <pre>Do you want to keep only stable ABI v.3.2 and move both newer stable API and non-stable API to the pycapi/ subdirectory? Sorry, I don't found a sense in this.</pre> </td> </tr> <tr> <th> <a href="#msg329126" id="msg329126">msg329126</a> - <a href="msg329126">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-02 11:38</th> </tr> <tr> <td colspan="4" class="content"> <pre>&gt; Do you want to keep only stable ABI v.3.2 and move both newer stable API and non-stable API to the pycapi/ subdirectory? Sorry, I don't found a sense in this. The raw definition could be that Include/*.h is part of the stable ABI, and <a href="https://github.com/python/cpython/blob/master/Include/pycapi/">Include/pycapi/</a>*.h are the definitions using Py_LIMITED_API and so can be stable or not stable depending on Py_LIMITED_API value :-) To be honest, I'm not sure that I understand how "Py_LIMITED_API+0 &gt;= 0x03050000" works and should be used. I understand that you would prefer to leave PyObject_Calloc() in <a href="https://github.com/python/cpython/blob/master/Include/objimpl.h">Include/objimpl.h</a>. Honestly, I have no strong opinion on that. We can leave it there if you prefer. -- Maybe the rule "move everything using Py_LIMITED_API to pycapi" is misleading. My intent is that API in Include/*.h should not leak implementation details. It should be the starting point to design a new C API which does not leak any implementation detail: <a href="http://pythoncapi.readthedocs.io/">http://pythoncapi.readthedocs.io/</a> It's easier with an example: #define _PyObject_GC_TRACK(o) do { \ PyGC_Head *g = _Py_AS_GC(o); \ if (g-&gt;_gc_next != 0) { \ Py_FatalError("GC object already tracked"); \ } \ assert((g-&gt;_gc_prev &amp; _PyGC_PREV_MASK_COLLECTING) == 0); \ ... This macro is private: it starts with "_Py", so it doesn't belong to Include/*.h. Moreover, it access private fields like PyGC_Head._gc_prev. From my point of view, the ideal API would not access *any* structure field and PyGC_Header structure must not be used nor part of the C API. -- After saying that, I looked again at my PR, and I still see private functions in objimpl.h. Example: PyAPI_FUNC(PyObject *) _PyObject_New(PyTypeObject *); PyAPI_FUNC(PyVarObject *) _PyObject_NewVar(PyTypeObject *, Py_ssize_t); #define PyObject_New(type, typeobj) \ ( (type *) _PyObject_New(typeobj) ) #define PyObject_NewVar(type, typeobj, n) \ ( (type *) _PyObject_NewVar((typeobj), (n)) ) These functions are not excluded from Py_LIMITED_API. Since they are private, we are free to remove them whenever we want, so IMHO it's fine to exclude from Py_LIMITED_API right now if we want. Another example: static inline PyObject* PyObject_INIT(PyObject *op, PyTypeObject *typeobj) { assert(op != NULL); Py_TYPE(op) = typeobj; _Py_NewReference(op); return op; } It's a public function but it calls the private function _Py_NewReference(). So _Py_NewReference() must be part of Py_LIMITED_API somehow... In release mode (if Py_TRACE_REFS is not defined), _Py_NewReference() is defined like that: /* Without Py_TRACE_REFS, there's little enough to do that we expand code inline. */ static inline void _Py_NewReference(PyObject *op) { if (_Py_tracemalloc_config.tracing) { _PyTraceMalloc_NewReference(op); } _Py_INC_TPALLOCS(op); _Py_INC_REFTOTAL; Py_REFCNT(op) = 1; } It does access to the private _Py_tracemalloc_config variable and private macros/functions _Py_INC_TPALLOCS(op) and _Py_INC_REFTOTAL. We *can* always define _Py_NewReference() as a function call if Py_LIMITED_API is defined, but it would have an impact on performance. Right now, I don't want to risk to introduce a performance slowdown. I have a "Proof-of-concept" implementation of my proposed "new C API": <a href="https://github.com/pythoncapi/cpython/">https://github.com/pythoncapi/cpython/</a> My implementation currently uses 3 defines: * Py_NEWCAPI_NO_MACRO: replace macros with function calls PyTuple_GET_SIZE() becomes PyTuple_Size() * Py_NEWCAPI_NO_STRUCT: must not use PyObject.ob_refcnt or any other field of Python object structures; structures should hide their fields: compilation error. * Py_NEWCAPI: new C API without borrowed references, without macro, without struct But this project is highly experimental and I don't want to make it upstream before we measured properly the impact on the performance, the API has been properly reviewed and discussed, and the overall project has been approved by core developers. For example, by writing a PEP :-) -- In short, I'm not sure of what can or should be done right now for <a href="https://github.com/python/cpython/blob/master/Include/pycapi/">Include/pycapi/</a> :-) I wrote the PR to open the discussion :-)</pre> </td> </tr> <tr> <th> <a href="#msg329290" id="msg329290">msg329290</a> - <a href="msg329290">(view)</a></th> <th>Author: Alyssa Coghlan (ncoghlan) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-05 11:44</th> </tr> <tr> <td colspan="4" class="content"> <pre>&gt; To be honest, I'm not sure that I understand how "Py_LIMITED_API+0 &gt;= 0x03050000" works and should be used. It's described here: <a href="https://docs.python.org/3/c-api/stable.html">https://docs.python.org/3/c-api/stable.html</a> If a stable ABI consumer just declares "#define PY_LIMITED_API 1", then they'll get the original stable ABI as defined in Python 3.2. If they don't care about versions prior to 3.6, they can instead declare "#define PY_LIMITED_API 0x03060000", and get access to the functions added to the stable ABI in 3.3, 3.4, 3.5, and 3.6. For this PR though, I think it's OK to ignore that detail, as once all the internal APIs are in "<a href="https://github.com/python/cpython/blob/master/Include/internal">Include/internal</a>", and all the APIs that don't offer ABI stability guarantees are in "<a href="https://github.com/python/cpython/blob/master/Include/TBD">Include/TBD</a>" (see note below), then the general rule to follow is that everything added to the headers directly in "Include/" needs a Py_LIMITED_API guard that matches the upcoming release. Note: I wrote "TBD" rather than "pycapi" above, as "pycapi" sounds like the name of a preferred public API to me, rather than "code compiled against this API is not portable to later versions, and may not be portable to other implementations". Given the name of the macro, "<a href="https://github.com/python/cpython/blob/master/Include/unlimited/">Include/unlimited/</a>*.h" may make sense, especially if those header files are all written to error out at compile time if PY_LIMITED_API is defined. "<a href="https://github.com/python/cpython/blob/master/Include/unstable_abi/">Include/unstable_abi/</a>*.h" would be another self-describing name.</pre> </td> </tr> <tr> <th> <a href="#msg329292" id="msg329292">msg329292</a> - <a href="msg329292">(view)</a></th> <th>Author: Alyssa Coghlan (ncoghlan) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-05 11:53</th> </tr> <tr> <td colspan="4" class="content"> <pre>On actually looking at the initial changes in the PR: * declarations that aren't part of the stable ABI in any version (i.e. "#ifndef PY_LIMITED_API", "#if !defined(PY_LIMITED_API)") should move to the new directory * declarations that are part of the stable ABI in *some* version should remain where they are (i.e. in "Include/*.h") In your initial PR, the only API that subtle distinction affects is PyObject_Calloc (since that's a new addition to the stable ABI in 3.5+), and moving that back to the public header means you can add the desired "Py_LIMITED_API is not defined" check to the header in the new directory.</pre> </td> </tr> <tr> <th> <a href="#msg330161" id="msg330161">msg330161</a> - <a href="msg330161">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-20 22:46</th> </tr> <tr> <td colspan="4" class="content"> <pre>I created a new <a href="https://github.com/python/cpython/pull/10624" class="closed" title="GitHub PR 10624: [merged] bpo-35134: Create Include/cpython/ subdirectory">PR 10624</a>: * move "#ifndef Py_LIMITED_API" code to a new unstable/objimpl.h header file * <a href="https://github.com/python/cpython/blob/master/Include/unstable/">Include/unstable/</a> files (<a href="https://github.com/python/cpython/blob/master/Include/unstable/objimpl.h">Include/unstable/objimpl.h</a>) are no longer prefixed with "unstable_". <a href="https://github.com/python/cpython/blob/master/Include/unstable/">Include/unstable/</a> directory must not be added to the search paths for headers (gcc -I <a href="https://github.com/python/cpython/blob/master/Include/unstable/">Include/unstable/</a>). unstable/objimpl.h must not be included directly: it fails with a compiler error.</pre> </td> </tr> <tr> <th> <a href="#msg330162" id="msg330162">msg330162</a> - <a href="msg330162">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-20 22:53</th> </tr> <tr> <td colspan="4" class="content"> <pre>I propose the following organization: * Include/*.h should be the "stable API" * <a href="https://github.com/python/cpython/blob/master/Include/unstable/">Include/unstable/</a>*.h is the "unstable API" (if Py_LIMITED_API is *not* defined at all) * <a href="https://github.com/python/cpython/blob/master/Include/internal/pycore">Include/internal/pycore</a>_*.h is the "internal" API It should become easier to see what is exposed or not to the stable ABI just by looking at Include.*.h. It should also become easier to spot in a review when a pull request something to the stable ABI, whereas it should be added to the unstable or internal API.</pre> </td> </tr> <tr> <th> <a href="#msg330165" id="msg330165">msg330165</a> - <a href="msg330165">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-20 23:55</th> </tr> <tr> <td colspan="4" class="content"> <pre>Just to avoid the risk of name conflict, would it make sense to rename "unstable" to "pyunstable" or something else with "py" inside? I'm not sure if #include "unstable/objimpl.h" first looks the same directory than the header file that does the include? Note: I tested "make install" and I get a /opt/py38/include/python3.8dm/unstable/ directory which contains a single file (yet): objimpl.h.</pre> </td> </tr> <tr> <th> <a href="#msg330246" id="msg330246">msg330246</a> - <a href="msg330246">(view)</a></th> <th>Author: Alyssa Coghlan (ncoghlan) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-22 11:35</th> </tr> <tr> <td colspan="4" class="content"> <pre>I think the rules for C includes are that `"path/header.h"` looks next to the current file first, whereas `&lt;path/header.h&gt;` looks only in include directories. However, given your technique of mostly hiding the new directory name from API consumers, what do you think of calling the new directory "cpython" rather than "unstable"? The idea there would be that the "unstable ABI" eventually become known as "the CPython C API" (since it exposes a lot of CPython implementation details", while the limited API could become known as "the portable cross-implementation Python C API". (I know, I know, you were aiming to avoid further bikeshedding on the name, but "cpython" would namespace things nicely even if a compiler does something weird with header file lookups, and helps make it clearer to CPython contributors that we still need to care about public API stability in that directory, we just don't need to care about cross-implementation portability)</pre> </td> </tr> <tr> <th> <a href="#msg330261" id="msg330261">msg330261</a> - <a href="msg330261">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-22 14:25</th> </tr> <tr> <td colspan="4" class="content"> <pre>&gt; I think the rules for C includes are that `"path/header.h"` looks next to the current file first, whereas `&lt;path/header.h&gt;` looks only in include directories. Oh ok, thanks. &gt; However, given your technique of mostly hiding the new directory name from API consumers, what do you think of calling the new directory "cpython" rather than "unstable"? I'm not comfortable with "CPython" name. For me, everything the "CPython C API" is the concatenation of all files in Include/ but also in subdirectories. Right now, it's unclear what is the "Python" API ("portable" API, without implemenetation details) vs the "CPython API" (implementation details). "unstable" comes from the <a href="https://www.python.org/dev/peps/pep-0384/">PEP 384</a>: "Defining a Stable ABI". IMHO what is not in the "Stable ABI" is the "Unstable ABI". By extension, APIs excluded by Py_LIMITED_API make the "unstable API". From my point of view, "CPython API" would be more internal/ + unstable/ APIs. &gt; The idea there would be that the "unstable ABI" eventually become known as "the CPython C API" (since it exposes a lot of CPython implementation details", while the limited API could become known as "the portable cross-implementation Python C API". Everybody seems to be confused by what is the "Python C API"... I see even more confusion if we have a "CPython C API". Do you see? "CPython" vs "Python", "Python C" vs "CPython"... IMHO "unstable" is more explicit :-) It means: "don't touch this" :-D</pre> </td> </tr> <tr> <th> <a href="#msg330276" id="msg330276">msg330276</a> - <a href="msg330276">(view)</a></th> <th>Author: Brett Cannon (brett.cannon) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-22 19:05</th> </tr> <tr> <td colspan="4" class="content"> <pre>The "unstable" name bugs me as it suggests we might change it without notice which isn't true at all. It's more a limited versus broad API. So maybe rename the directory "broad"?</pre> </td> </tr> <tr> <th> <a href="#msg330282" id="msg330282">msg330282</a> - <a href="msg330282">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-22 21:49</th> </tr> <tr> <td colspan="4" class="content"> <pre>Brett: &gt; The "unstable" name bugs me as it suggests we might change it without notice which isn't true at all. It's more a limited versus broad API. So maybe rename the directory "broad"? Brett: Nick proposed "Include\cpython", do you prefer this name?</pre> </td> </tr> <tr> <th> <a href="#msg330283" id="msg330283">msg330283</a> - <a href="msg330283">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-22 21:53</th> </tr> <tr> <td colspan="4" class="content"> <pre>Another proposal: Include\impl\ as in "implementation details".</pre> </td> </tr> <tr> <th> <a href="#msg330285" id="msg330285">msg330285</a> - <a href="msg330285">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-22 22:22</th> </tr> <tr> <td colspan="4" class="content"> <pre>I created a poll on discuss.python.org for the name of the new subdirectory :-) <a href="https://discuss.python.org/t/poll-what-is-your-favorite-name-for-the-new-include-subdirectory/477">https://discuss.python.org/t/poll-what-is-your-favorite-name-for-the-new-include-subdirectory/477</a></pre> </td> </tr> <tr> <th> <a href="#msg330296" id="msg330296">msg330296</a> - <a href="msg330296">(view)</a></th> <th>Author: Jeremy Kloth (jkloth) <span title="Contributor form received">*</span></th> <th>Date: 2018-11-23 03:04</th> </tr> <tr> <td colspan="4" class="content"> <pre>As a heavy user of the non-limited Python C API, I would like to offer my suggestions for consideration. (I'm not allowed to post in discourse) First off, to me, 'unstable' comes off quite negative, i.e. risky or erratic. Brett's suggestion of 'broad' is, well, seemingly too "broad" :) In no particular order, some ideas: - 'extended' or 'extra'; as opposed to limited (from the macro) - 'volatile'; synonym for 'unstable' but with the benefit of being a C concept. I like this one as the APIs covered by this include would have access to the "volatile" object details. Things like borrowed references, direct array access or even the structure fields of the objects themselves. - 'crunchy'; Monty Python reference, "If we took the bones out, it wouldn't be crunchy, would it?" <a href="https://en.wikipedia.org/wiki/Crunchy_Frog">https://en.wikipedia.org/wiki/Crunchy_Frog</a></pre> </td> </tr> <tr> <th> <a href="#msg330324" id="msg330324">msg330324</a> - <a href="msg330324">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-23 13:39</th> </tr> <tr> <td colspan="4" class="content"> <pre>Jeremy Kloth: &gt; First off, to me, 'unstable' comes off quite negative, i.e. risky or erratic. Ok, the 3rd people who dislike my "unstable" name, so it sounds really bad :-) Jeremy Kloth: &gt; 'volatile'; synonym for 'unstable' but with the benefit of being a C concept. I don't think that it's true that the "#ifndef Py_LIMITED_API" is unstable or volatile. Most of this API didn't change much in the last 10 years. So sorry, "unstable" was really a bad name. Brett Cannon: &gt; It's more a limited versus broad API. So maybe rename the directory "broad"? Jeremy Kloth: &gt; - 'extended' or 'extra'; as opposed to limited (from the macro) The name by itself doesn't explain why an API should be in Include/ or Include/&lt;name&gt;/. What is extra or not? Jeremy Kloth: &gt; - 'crunchy'; Monty Python reference, "If we took the bones out, it wouldn't be crunchy, would it?" <a href="https://en.wikipedia.org/wiki/Crunchy_Frog">https://en.wikipedia.org/wiki/Crunchy_Frog</a> Sorry, I dislike humor in an API. An API has to make sense :-( -- Ok, after I read all proposition, I now prefer "cpython". Extract of my updated PR which gives the rationale: <a href="https://github.com/python/cpython/blob/master/Include/.h">Include/.h</a> should be the "portable Python API", whereas <a href="https://github.com/python/cpython/blob/master/Include/cpython/.h">Include/cpython/.h</a> should be the "CPython API": CPython implementation details. It now makes sense to me what should go to Include/ and what should go to <a href="https://github.com/python/cpython/blob/master/Include/cpython/">Include/cpython/</a>. Obviously, <a href="https://github.com/python/cpython/blob/master/Include/cpython/">Include/cpython/</a> is incomplete. It's only the public flavor of the "CPython API". There is also the private CPython internal API in <a href="https://github.com/python/cpython/blob/master/Include/internal/">Include/internal/</a>.</pre> </td> </tr> <tr> <th> <a href="#msg330331" id="msg330331">msg330331</a> - <a href="msg330331">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-23 15:28</th> </tr> <tr> <td colspan="4" class="content"> <pre>Nick Coghlan, Steve Dower and Paul Moore and me prefer "cpython" name, so let's go with that one!</pre> </td> </tr> <tr> <th> <a href="#msg330336" id="msg330336">msg330336</a> - <a href="msg330336">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-23 16:00</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/e421106b9e4d780c083113e4180d58d68acc69ab">e421106b9e4d780c083113e4180d58d68acc69ab</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Create <a href="https://github.com/python/cpython/blob/master/Include/cpython/">Include/cpython/</a> subdirectory (<a href="https://github.com/python/cpython/pull/10624" class="closed" title="GitHub PR 10624: [merged] bpo-35134: Create Include/cpython/ subdirectory">GH-10624</a>) <a href="https://github.com/python/cpython/commit/e421106b9e4d780c083113e4180d58d68acc69ab">https://github.com/python/cpython/commit/e421106b9e4d780c083113e4180d58d68acc69ab</a> </pre> </td> </tr> <tr> <th> <a href="#msg330337" id="msg330337">msg330337</a> - <a href="msg330337">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-23 16:47</th> </tr> <tr> <td colspan="4" class="content"> <pre>Number lines containing Py_LIMITED_API in Include/ dir: 13:pyerrors.h 12:abstract.h 11:pylifecycle.h 11:dictobject.h 10:pystate.h 8:longobject.h 7:modsupport.h 7:ceval.h 7:bytesobject.h 6:pythonrun.h 5:warnings.h 5:tupleobject.h 5:methodobject.h 5:complexobject.h ...</pre> </td> </tr> <tr> <th> <a href="#msg330446" id="msg330446">msg330446</a> - <a href="msg330446">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-26 16:09</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/6eb996685e25c09499858bee4be258776e603c6f">6eb996685e25c09499858bee4be258776e603c6f</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Create <a href="https://github.com/python/cpython/blob/master/Include/cpython/object.h">Include/cpython/object.h</a> (<a href="https://github.com/python/cpython/pull/10679" class="closed" title="GitHub PR 10679: [merged] bpo-35134: Create Include/cpython/object.h">GH-10679</a>) <a href="https://github.com/python/cpython/commit/6eb996685e25c09499858bee4be258776e603c6f">https://github.com/python/cpython/commit/6eb996685e25c09499858bee4be258776e603c6f</a> </pre> </td> </tr> <tr> <th> <a href="#msg330447" id="msg330447">msg330447</a> - <a href="msg330447">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-26 16:29</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/75e4699b31d1d88abad097ad13466c5c07711324">75e4699b31d1d88abad097ad13466c5c07711324</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Create <a href="https://github.com/python/cpython/blob/master/Include/cpython/unicodeobject.h">Include/cpython/unicodeobject.h</a> (<a href="https://github.com/python/cpython/pull/10680" class="closed" title="GitHub PR 10680: [merged] bpo-35134: Create Include/cpython/unicodeobject.h">GH-10680</a>) <a href="https://github.com/python/cpython/commit/75e4699b31d1d88abad097ad13466c5c07711324">https://github.com/python/cpython/commit/75e4699b31d1d88abad097ad13466c5c07711324</a> </pre> </td> </tr> <tr> <th> <a href="#msg330463" id="msg330463">msg330463</a> - <a href="msg330463">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-26 21:11</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/5a8c240b1d97de0bd6ced2a57cbcf26da19c1fcc">5a8c240b1d97de0bd6ced2a57cbcf26da19c1fcc</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Add <a href="https://github.com/python/cpython/blob/master/Include/cpython/pyerrors.h">Include/cpython/pyerrors.h</a> (<a href="https://github.com/python/cpython/pull/10727" class="closed" title="GitHub PR 10727: [merged] bpo-35134: Add Include/cpython/pyerrors.h">GH-10727</a>) <a href="https://github.com/python/cpython/commit/5a8c240b1d97de0bd6ced2a57cbcf26da19c1fcc">https://github.com/python/cpython/commit/5a8c240b1d97de0bd6ced2a57cbcf26da19c1fcc</a> </pre> </td> </tr> <tr> <th> <a href="#msg330467" id="msg330467">msg330467</a> - <a href="msg330467">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-26 21:42</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/4060283fcec7bb2bde4eb3c42b0a6ec99cf1d391">4060283fcec7bb2bde4eb3c42b0a6ec99cf1d391</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Create <a href="https://github.com/python/cpython/blob/master/Include/cpython/abstract.h">Include/cpython/abstract.h</a> (<a href="https://github.com/python/cpython/pull/10728" class="closed" title="GitHub PR 10728: [merged] bpo-35134: Create Include/cpython/abstract.h">GH-10728</a>) <a href="https://github.com/python/cpython/commit/4060283fcec7bb2bde4eb3c42b0a6ec99cf1d391">https://github.com/python/cpython/commit/4060283fcec7bb2bde4eb3c42b0a6ec99cf1d391</a> </pre> </td> </tr> <tr> <th> <a href="#msg330477" id="msg330477">msg330477</a> - <a href="msg330477">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-26 23:12</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/dd12aa0aea733820807ec4f99e4e476064a0ee41">dd12aa0aea733820807ec4f99e4e476064a0ee41</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Create <a href="https://github.com/python/cpython/blob/master/Include/cpython/pylifecycle.h">Include/cpython/pylifecycle.h</a> (<a href="https://github.com/python/cpython/pull/10731" class="closed" title="GitHub PR 10731: [merged] bpo-35134: Create Include/cpython/pylifecycle.h">GH-10731</a>) <a href="https://github.com/python/cpython/commit/dd12aa0aea733820807ec4f99e4e476064a0ee41">https://github.com/python/cpython/commit/dd12aa0aea733820807ec4f99e4e476064a0ee41</a> </pre> </td> </tr> <tr> <th> <a href="#msg330478" id="msg330478">msg330478</a> - <a href="msg330478">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-26 23:12</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/ffedd9ad2a8be4bf82a4d8f2bac3eaee5b44191e">ffedd9ad2a8be4bf82a4d8f2bac3eaee5b44191e</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Create <a href="https://github.com/python/cpython/blob/master/Include/cpython/dictobject.h">Include/cpython/dictobject.h</a> (<a href="https://github.com/python/cpython/pull/10732" class="closed" title="GitHub PR 10732: [merged] bpo-35134: Create Include/cpython/dictobject.h">GH-10732</a>) <a href="https://github.com/python/cpython/commit/ffedd9ad2a8be4bf82a4d8f2bac3eaee5b44191e">https://github.com/python/cpython/commit/ffedd9ad2a8be4bf82a4d8f2bac3eaee5b44191e</a> </pre> </td> </tr> <tr> <th> <a href="#msg330480" id="msg330480">msg330480</a> - <a href="msg330480">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-26 23:20</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/f2a9d5c8378cd7eca90b3b197e2cc0989da55014">f2a9d5c8378cd7eca90b3b197e2cc0989da55014</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Create <a href="https://github.com/python/cpython/blob/master/Include/cpython/pystate.h">Include/cpython/pystate.h</a> (<a href="https://github.com/python/cpython/pull/10733" class="closed" title="GitHub PR 10733: [merged] bpo-35134: Create Include/cpython/pystate.h">GH-10733</a>) <a href="https://github.com/python/cpython/commit/f2a9d5c8378cd7eca90b3b197e2cc0989da55014">https://github.com/python/cpython/commit/f2a9d5c8378cd7eca90b3b197e2cc0989da55014</a> </pre> </td> </tr> <tr> <th> <a href="#msg330512" id="msg330512">msg330512</a> - <a href="msg330512">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-27 11:42</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/480833808e918a1dcebbbcfd07d5a8de3c5c2a66">480833808e918a1dcebbbcfd07d5a8de3c5c2a66</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Update "make tags": add <a href="https://github.com/python/cpython/blob/master/Include/cpython/">Include/cpython/</a> (<a href="https://github.com/python/cpython/pull/10739" class="closed" title="GitHub PR 10739: [merged] bpo-35134: Update 'make tags': add Include/cpython/">GH-10739</a>) <a href="https://github.com/python/cpython/commit/480833808e918a1dcebbbcfd07d5a8de3c5c2a66">https://github.com/python/cpython/commit/480833808e918a1dcebbbcfd07d5a8de3c5c2a66</a> </pre> </td> </tr> <tr> <th> <a href="#msg330556" id="msg330556">msg330556</a> - <a href="msg330556">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-27 21:18</th> </tr> <tr> <td colspan="4" class="content"> <pre>Oh cpython/pystate.h introduced this warning, when building Python with clang in release mode: In file included from <a href="https://github.com/python/cpython/blob/master/Parser/node.c#L3">Parser/node.c:3</a>: In file included from ./Include/Python.h:107: In file included from ./Include/traceback.h:8: In file included from ./Include/pystate.h:123: ./Include/cpython/pystate.h:217:3: warning: redefinition of typedef 'PyThreadState' is a C11 feature [-Wtypedef-redefinition] } PyThreadState; ^ ./Include/pystate.h:27:20: note: previous definition is here typedef struct _ts PyThreadState; ^</pre> </td> </tr> <tr> <th> <a href="#msg330557" id="msg330557">msg330557</a> - <a href="msg330557">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-27 22:55</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/9bdd2de84c1af55fbc006d3f892313623bd0195c">9bdd2de84c1af55fbc006d3f892313623bd0195c</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Don't define types twice in header files (<a href="https://github.com/python/cpython/pull/10754" class="closed" title="GitHub PR 10754: [merged] bpo-35134: Don't define types twice in header files">GH-10754</a>) <a href="https://github.com/python/cpython/commit/9bdd2de84c1af55fbc006d3f892313623bd0195c">https://github.com/python/cpython/commit/9bdd2de84c1af55fbc006d3f892313623bd0195c</a> </pre> </td> </tr> <tr> <th> <a href="#msg330594" id="msg330594">msg330594</a> - <a href="msg330594">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2018-11-28 12:01</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/54ba556c6c7d8fd5504dc142c2e773890c55a774">54ba556c6c7d8fd5504dc142c2e773890c55a774</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Create <a href="https://github.com/python/cpython/blob/master/Include/cpython/tupleobject.h">Include/cpython/tupleobject.h</a> (<a href="https://github.com/python/cpython/pull/10764" class="closed" title="GitHub PR 10764: [merged] bpo-35134: Create Include/cpython/tupleobject.h">GH-10764</a>) <a href="https://github.com/python/cpython/commit/54ba556c6c7d8fd5504dc142c2e773890c55a774">https://github.com/python/cpython/commit/54ba556c6c7d8fd5504dc142c2e773890c55a774</a> </pre> </td> </tr> <tr> <th> <a href="#msg340283" id="msg340283">msg340283</a> - <a href="msg340283">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2019-04-15 15:00</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/9820c07e4146e18bddc9ac1586cee7e542903de0">9820c07e4146e18bddc9ac1586cee7e542903de0</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Add <a href="https://github.com/python/cpython/blob/master/Include/cpython/pymem.h">Include/cpython/pymem.h</a> (<a href="https://github.com/python/cpython/pull/12840" class="closed" title="GitHub PR 12840: [merged] bpo-35134: Add Include/cpython/pymem.h">GH-12840</a>) <a href="https://github.com/python/cpython/commit/9820c07e4146e18bddc9ac1586cee7e542903de0">https://github.com/python/cpython/commit/9820c07e4146e18bddc9ac1586cee7e542903de0</a> </pre> </td> </tr> <tr> <th> <a href="#msg340285" id="msg340285">msg340285</a> - <a href="msg340285">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2019-04-15 15:29</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/aba7d662abbb847f9f45c6db58242a9b4bf65bff">aba7d662abbb847f9f45c6db58242a9b4bf65bff</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Add cpython/pymem.h to build system (<a href="https://github.com/python/cpython/pull/12842" class="closed" title="GitHub PR 12842: [merged] bpo-35134: Add cpython/pymem.h to build system">GH-12842</a>) <a href="https://github.com/python/cpython/commit/aba7d662abbb847f9f45c6db58242a9b4bf65bff">https://github.com/python/cpython/commit/aba7d662abbb847f9f45c6db58242a9b4bf65bff</a> </pre> </td> </tr> <tr> <th> <a href="#msg342876" id="msg342876">msg342876</a> - <a href="msg342876">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2019-05-19 22:15</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/ed48866c55b8e4ee14faa8b5ad97819e8e74c98b">ed48866c55b8e4ee14faa8b5ad97819e8e74c98b</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Split traceback.h header (<a href="https://github.com/python/cpython/pull/13430" class="closed" title="GitHub PR 13430: [merged] bpo-35134: Split traceback.h header">GH-13430</a>) <a href="https://github.com/python/cpython/commit/ed48866c55b8e4ee14faa8b5ad97819e8e74c98b">https://github.com/python/cpython/commit/ed48866c55b8e4ee14faa8b5ad97819e8e74c98b</a> </pre> </td> </tr> <tr> <th> <a href="#msg342881" id="msg342881">msg342881</a> - <a href="msg342881">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2019-05-20 00:22</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/fd1e0e93b15af018184476ea0b3af0eabef37d89">fd1e0e93b15af018184476ea0b3af0eabef37d89</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Register new traceback.h header files (<a href="https://github.com/python/cpython/pull/13431" class="closed" title="GitHub PR 13431: [merged] bpo-35134: Register new traceback.h header files">GH-13431</a>) <a href="https://github.com/python/cpython/commit/fd1e0e93b15af018184476ea0b3af0eabef37d89">https://github.com/python/cpython/commit/fd1e0e93b15af018184476ea0b3af0eabef37d89</a> </pre> </td> </tr> <tr> <th> <a href="#msg346014" id="msg346014">msg346014</a> - <a href="msg346014">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2019-06-18 22:48</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/01b63ecac66581f80ba953d9182751e591c2b2ba">01b63ecac66581f80ba953d9182751e591c2b2ba</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Add <a href="https://github.com/python/cpython/blob/master/Include/cpython/import.h">Include/cpython/import.h</a> header file (<a href="https://github.com/python/cpython/pull/14213" class="closed" title="GitHub PR 14213: [merged] bpo-35134: Add Include/cpython/import.h header file">GH-14213</a>) <a href="https://github.com/python/cpython/commit/01b63ecac66581f80ba953d9182751e591c2b2ba">https://github.com/python/cpython/commit/01b63ecac66581f80ba953d9182751e591c2b2ba</a> </pre> </td> </tr> <tr> <th> <a href="#msg360338" id="msg360338">msg360338</a> - <a href="msg360338">(view)</a></th> <th>Author: Alyssa Coghlan (ncoghlan) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2020-01-20 22:21</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/1e420f849d0c094098543d2c27d35eaec69b2784">1e420f849d0c094098543d2c27d35eaec69b2784</a> by Nick Coghlan in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Migrate frameobject.h contents to cpython/frameobject.h (<a href="https://github.com/python/cpython/pull/18052" class="closed" title="GitHub PR 18052: [merged] bpo-35134: Migrate frameobject.h contents to cpython/frameobject.h">GH-18052</a>) <a href="https://github.com/python/cpython/commit/1e420f849d0c094098543d2c27d35eaec69b2784">https://github.com/python/cpython/commit/1e420f849d0c094098543d2c27d35eaec69b2784</a> </pre> </td> </tr> <tr> <th> <a href="#msg361542" id="msg361542">msg361542</a> - <a href="msg361542">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2020-02-07 08:20</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/bec4186c67345f1e6cd3f8a531bc228f14d7ed7b">bec4186c67345f1e6cd3f8a531bc228f14d7ed7b</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Create <a href="https://github.com/python/cpython/blob/master/Include/cpython/listobject.h">Include/cpython/listobject.h</a> (<a href="https://github.com/python/cpython/pull/18395" class="closed" title="GitHub PR 18395: [merged] bpo-35134: Create Include/cpython/listobject.h">GH-18395</a>) <a href="https://github.com/python/cpython/commit/bec4186c67345f1e6cd3f8a531bc228f14d7ed7b">https://github.com/python/cpython/commit/bec4186c67345f1e6cd3f8a531bc228f14d7ed7b</a> </pre> </td> </tr> <tr> <th> <a href="#msg361922" id="msg361922">msg361922</a> - <a href="msg361922">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2020-02-12 22:54</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/98921aeaf5879b51e2dd1870c9285cfa8d1a52c7">98921aeaf5879b51e2dd1870c9285cfa8d1a52c7</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Add <a href="https://github.com/python/cpython/blob/master/Include/cpython/bytesobject.h">Include/cpython/bytesobject.h</a> file (<a href="https://github.com/python/cpython/pull/18494" class="closed" title="GitHub PR 18494: [merged] bpo-35134: Add Include/cpython/bytesobject.h file">GH-18494</a>) <a href="https://github.com/python/cpython/commit/98921aeaf5879b51e2dd1870c9285cfa8d1a52c7">https://github.com/python/cpython/commit/98921aeaf5879b51e2dd1870c9285cfa8d1a52c7</a> </pre> </td> </tr> <tr> <th> <a href="#msg361923" id="msg361923">msg361923</a> - <a href="msg361923">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2020-02-12 22:55</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/8c3aee65ed3aff3668da330ccd6f9ba7b2aa4567">8c3aee65ed3aff3668da330ccd6f9ba7b2aa4567</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Add <a href="https://github.com/python/cpython/blob/master/Include/cpython/fileutils.h">Include/cpython/fileutils.h</a> header file (<a href="https://github.com/python/cpython/pull/18493" class="closed" title="GitHub PR 18493: [merged] bpo-35134: Add Include/cpython/fileutils.h header file">GH-18493</a>) <a href="https://github.com/python/cpython/commit/8c3aee65ed3aff3668da330ccd6f9ba7b2aa4567">https://github.com/python/cpython/commit/8c3aee65ed3aff3668da330ccd6f9ba7b2aa4567</a> </pre> </td> </tr> <tr> <th> <a href="#msg367536" id="msg367536">msg367536</a> - <a href="msg367536">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2020-04-28 15:07</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/b8f704d2190125a7750b50cd9b67267b9c20fd43">b8f704d2190125a7750b50cd9b67267b9c20fd43</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] [C API] Add public getter functions for the internal PyFrameObject structure" href="issue40421">bpo-40421</a>: Add <a href="https://github.com/python/cpython/blob/master/Include/cpython/code.h">Include/cpython/code.h</a> header file (<a href="https://github.com/python/cpython/pull/19756" class="closed" title="GitHub PR 19756: [merged] bpo-40421: Add Include/cpython/code.h header file">GH-19756</a>) <a href="https://github.com/python/cpython/commit/b8f704d2190125a7750b50cd9b67267b9c20fd43">https://github.com/python/cpython/commit/b8f704d2190125a7750b50cd9b67267b9c20fd43</a> </pre> </td> </tr> <tr> <th> <a href="#msg382771" id="msg382771">msg382771</a> - <a href="msg382771">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2020-12-08 22:51</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/fe6e5e7cfd68eeaa69fd1511f354a1b4d8d90990">fe6e5e7cfd68eeaa69fd1511f354a1b4d8d90990</a> by Victor Stinner in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Add <a href="https://github.com/python/cpython/blob/master/Include/cpython/pythonrun.h">Include/cpython/pythonrun.h</a> file (<a href="https://github.com/python/cpython/pull/23701" class="closed" title="GitHub PR 23701: [merged] bpo-35134: Add Include/cpython/pythonrun.h file">GH-23701</a>) <a href="https://github.com/python/cpython/commit/fe6e5e7cfd68eeaa69fd1511f354a1b4d8d90990">https://github.com/python/cpython/commit/fe6e5e7cfd68eeaa69fd1511f354a1b4d8d90990</a> </pre> </td> </tr> <tr> <th> <a href="#msg383970" id="msg383970">msg383970</a> - <a href="msg383970">(view)</a></th> <th>Author: Serhiy Storchaka (serhiy.storchaka) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2020-12-29 09:58</th> </tr> <tr> <td colspan="4" class="content"> <pre>Victor, could you please add README files in directories cpython and internals? It is not clear what headers are considered more private.</pre> </td> </tr> <tr> <th> <a href="#msg387105" id="msg387105">msg387105</a> - <a href="msg387105">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2021-02-16 12:05</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/17dbd4078b68db8954df6b5cdc40b786bc4ad7af">17dbd4078b68db8954df6b5cdc40b786bc4ad7af</a> by Nicholas Sim in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>, Include: Move pytime.h to cpython/pytime.h (<a href="https://github.com/python/cpython/pull/23988" class="closed" title="GitHub PR 23988: [merged] bpo-35134: Add Include/cpython/pytime.h file">GH-23988</a>) <a href="https://github.com/python/cpython/commit/17dbd4078b68db8954df6b5cdc40b786bc4ad7af">https://github.com/python/cpython/commit/17dbd4078b68db8954df6b5cdc40b786bc4ad7af</a> </pre> </td> </tr> <tr> <th> <a href="#msg387179" id="msg387179">msg387179</a> - <a href="msg387179">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2021-02-17 18:30</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/366dc3a1354078e38808b9c16276e97cca5b8aaf">366dc3a1354078e38808b9c16276e97cca5b8aaf</a> by Nicholas Sim in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Move Include/{pyarena.h,pyctype.h} to <a href="https://github.com/python/cpython/blob/master/Include/cpython/">Include/cpython/</a> (<a href="https://github.com/python/cpython/pull/24550" class="closed" title="GitHub PR 24550: [merged] bpo-35134: Move Include/{pyarena.h,pyctype.h} to Include/cpython">GH-24550</a>) <a href="https://github.com/python/cpython/commit/366dc3a1354078e38808b9c16276e97cca5b8aaf">https://github.com/python/cpython/commit/366dc3a1354078e38808b9c16276e97cca5b8aaf</a> </pre> </td> </tr> <tr> <th> <a href="#msg387327" id="msg387327">msg387327</a> - <a href="msg387327">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2021-02-19 14:55</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/4a6bf276ed3e6687394afe26b0d9a061ac06fc6b">4a6bf276ed3e6687394afe26b0d9a061ac06fc6b</a> by Nicholas Sim in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Move non-limited C API files to <a href="https://github.com/python/cpython/blob/master/Include/cpython/">Include/cpython/</a> (<a href="https://github.com/python/cpython/pull/24561" class="closed" title="GitHub PR 24561: [merged] bpo-35134: Move non-limited C API files to Include/cpython/">GH-24561</a>) <a href="https://github.com/python/cpython/commit/4a6bf276ed3e6687394afe26b0d9a061ac06fc6b">https://github.com/python/cpython/commit/4a6bf276ed3e6687394afe26b0d9a061ac06fc6b</a> </pre> </td> </tr> <tr> <th> <a href="#msg389285" id="msg389285">msg389285</a> - <a href="msg389285">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2021-03-22 08:32</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/56f031ec5281723b7c617edfa5748f2ae6a4c347">56f031ec5281723b7c617edfa5748f2ae6a4c347</a> by Hai Shi in branch 'master': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Add include/cpython/compile.h (<a href="https://github.com/python/cpython/pull/24922" class="closed" title="GitHub PR 24922: [merged] bpo-35134: Move non-limited C API of include/compile.h into include/cpython.">GH-24922</a>) <a href="https://github.com/python/cpython/commit/56f031ec5281723b7c617edfa5748f2ae6a4c347">https://github.com/python/cpython/commit/56f031ec5281723b7c617edfa5748f2ae6a4c347</a> </pre> </td> </tr> <tr> <th> <a href="#msg394491" id="msg394491">msg394491</a> - <a href="msg394491">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2021-05-26 22:46</th> </tr> <tr> <td colspan="4" class="content"> <pre><a href="https://github.com/python/cpython/blob/master/Include/README.rst">Include/README.rst</a> and <a href="https://devguide.python.org/c-api/">https://devguide.python.org/c-api/</a> now define guideliens for header files and the 3 APIs. I consider that this issue is now fixed. Even if there are still non-limited API declared in Include/*.h, changing that can be done in follow-up issues.</pre> </td> </tr> <tr> <th> <a href="#msg403952" id="msg403952">msg403952</a> - <a href="msg403952">(view)</a></th> <th>Author: Eric Snow (eric.snow) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2021-10-14 21:23</th> </tr> <tr> <td colspan="4" class="content"> <pre>Thanks, Victor!</pre> </td> </tr> <tr> <th> <a href="#msg403955" id="msg403955">msg403955</a> - <a href="msg403955">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2021-10-14 21:41</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/0a883a76cda8205023c52211968bcf87bd47fd6e">0a883a76cda8205023c52211968bcf87bd47fd6e</a> by Victor Stinner in branch 'main': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Add <a href="https://github.com/python/cpython/blob/master/Include/cpython/floatobject.h">Include/cpython/floatobject.h</a> (<a href="https://github.com/python/cpython/pull/28957" class="closed" title="GitHub PR 28957: [merged] bpo-35134: Add Include/cpython/floatobject.h">GH-28957</a>) <a href="https://github.com/python/cpython/commit/0a883a76cda8205023c52211968bcf87bd47fd6e">https://github.com/python/cpython/commit/0a883a76cda8205023c52211968bcf87bd47fd6e</a> </pre> </td> </tr> <tr> <th> <a href="#msg403957" id="msg403957">msg403957</a> - <a href="msg403957">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2021-10-14 22:17</th> </tr> <tr> <td colspan="4" class="content"> <pre>I reopen the issue since there is new activity on it :-)</pre> </td> </tr> <tr> <th> <a href="#msg403964" id="msg403964">msg403964</a> - <a href="msg403964">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2021-10-14 23:52</th> </tr> <tr> <td colspan="4" class="content"> <pre>commit <a href="https://hg.python.org/lookup/37b1d607bf0f1a9c1e89b1715349efc24dc180e0">37b1d607bf0f1a9c1e89b1715349efc24dc180e0</a> (upstream/main, main) Author: Victor Stinner &lt;<a href="mailto:vstinner@python.org">vstinner@python.org</a>&gt; Date: Fri Oct 15 01:50:28 2021 +0200 po-35134: Move <a href="https://github.com/python/cpython/blob/master/Include/funcobject.h">Include/funcobject.h</a> to <a href="https://github.com/python/cpython/blob/master/Include/cpython/">Include/cpython/</a> (<a href="https://github.com/python/cpython/pull/28958" class="closed" title="GitHub PR 28958: [merged] bpo-35134: Move Include/funcobject.h to Include/cpython/">GH-28958</a>) Remove redundant "#ifndef Py_LIMITED_API" in funcobject.h.</pre> </td> </tr> <tr> <th> <a href="#msg403967" id="msg403967">msg403967</a> - <a href="msg403967">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2021-10-15 00:40</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/77b24ba505744532d7cfd721b1c92d205e145180">77b24ba505744532d7cfd721b1c92d205e145180</a> by Victor Stinner in branch 'main': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Move <a href="https://github.com/python/cpython/blob/master/Include/cellobject.h">Include/cellobject.h</a> to <a href="https://github.com/python/cpython/blob/master/Include/cpython/">Include/cpython/</a> (<a href="https://github.com/python/cpython/pull/28964" class="closed" title="GitHub PR 28964: [merged] bpo-35134: Move Include/cellobject.h to Include/cpython/">GH-28964</a>) <a href="https://github.com/python/cpython/commit/77b24ba505744532d7cfd721b1c92d205e145180">https://github.com/python/cpython/commit/77b24ba505744532d7cfd721b1c92d205e145180</a> </pre> </td> </tr> <tr> <th> <a href="#msg403983" id="msg403983">msg403983</a> - <a href="msg403983">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2021-10-15 07:46</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/8e5de40f90476249e9a2e5ef135143b5c6a0b512">8e5de40f90476249e9a2e5ef135143b5c6a0b512</a> by Victor Stinner in branch 'main': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Move classobject.h to <a href="https://github.com/python/cpython/blob/master/Include/cpython/">Include/cpython/</a> (<a href="https://github.com/python/cpython/pull/28968" class="closed" title="GitHub PR 28968: [merged] bpo-35134: Move classobject.h to Include/cpython/">GH-28968</a>) <a href="https://github.com/python/cpython/commit/8e5de40f90476249e9a2e5ef135143b5c6a0b512">https://github.com/python/cpython/commit/8e5de40f90476249e9a2e5ef135143b5c6a0b512</a> </pre> </td> </tr> <tr> <th> <a href="#msg404248" id="msg404248">msg404248</a> - <a href="msg404248">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2021-10-18 23:32</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/aad88d33d9db0a93e480f0234292b948890dfc2a">aad88d33d9db0a93e480f0234292b948890dfc2a</a> by Victor Stinner in branch 'main': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Split warnings.h and weakrefobject.h (<a href="https://github.com/python/cpython/pull/29042" class="closed" title="GitHub PR 29042: [merged] bpo-35134: Split warnings.h and weakrefobject.h">GH-29042</a>) <a href="https://github.com/python/cpython/commit/aad88d33d9db0a93e480f0234292b948890dfc2a">https://github.com/python/cpython/commit/aad88d33d9db0a93e480f0234292b948890dfc2a</a> </pre> </td> </tr> <tr> <th> <a href="#msg404252" id="msg404252">msg404252</a> - <a href="msg404252">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2021-10-19 00:05</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/5f09bb021a2862ba89c3ecb53e7e6e95a9e07e1d">5f09bb021a2862ba89c3ecb53e7e6e95a9e07e1d</a> by Victor Stinner in branch 'main': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Add <a href="https://github.com/python/cpython/blob/master/Include/cpython/longobject.h">Include/cpython/longobject.h</a> (<a href="https://github.com/python/cpython/pull/29044" class="closed" title="GitHub PR 29044: [merged] bpo-35134: Add Include/cpython/longobject.h">GH-29044</a>) <a href="https://github.com/python/cpython/commit/5f09bb021a2862ba89c3ecb53e7e6e95a9e07e1d">https://github.com/python/cpython/commit/5f09bb021a2862ba89c3ecb53e7e6e95a9e07e1d</a> </pre> </td> </tr> <tr> <th> <a href="#msg411772" id="msg411772">msg411772</a> - <a href="msg411772">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2022-01-26 16:32</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/d4a85f104bf9d2e368f25c9a567eaaa2cc39a96a">d4a85f104bf9d2e368f25c9a567eaaa2cc39a96a</a> by Victor Stinner in branch 'main': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Add <a href="https://github.com/python/cpython/blob/master/Include/cpython/descrobject.h">Include/cpython/descrobject.h</a> (<a href="https://github.com/python/cpython/pull/30923" class="closed" title="GitHub PR 30923: [merged] bpo-35134: Add Include/cpython/descrobject.h">GH-30923</a>) <a href="https://github.com/python/cpython/commit/d4a85f104bf9d2e368f25c9a567eaaa2cc39a96a">https://github.com/python/cpython/commit/d4a85f104bf9d2e368f25c9a567eaaa2cc39a96a</a> </pre> </td> </tr> <tr> <th> <a href="#msg416906" id="msg416906">msg416906</a> - <a href="msg416906">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2022-04-06 23:05</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/ca219f6dfc57f8f4984f96df0f733b7de92fe91c">ca219f6dfc57f8f4984f96df0f733b7de92fe91c</a> by Victor Stinner in branch 'main': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Add <a href="https://github.com/python/cpython/blob/master/Include/cpython/complexobject.h">Include/cpython/complexobject.h</a> header (<a href="https://github.com/python/cpython/pull/32383" class="closed" title="GitHub PR 32383: [merged] bpo-35134: Add Include/cpython/complexobject.h header">GH-32383</a>) <a href="https://github.com/python/cpython/commit/ca219f6dfc57f8f4984f96df0f733b7de92fe91c">https://github.com/python/cpython/commit/ca219f6dfc57f8f4984f96df0f733b7de92fe91c</a> </pre> </td> </tr> <tr> <th> <a href="#msg416910" id="msg416910">msg416910</a> - <a href="msg416910">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2022-04-06 23:26</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/5c4d1f6e0e192653560ae2941a6677fbf4fbd1f2">5c4d1f6e0e192653560ae2941a6677fbf4fbd1f2</a> by Victor Stinner in branch 'main': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Add <a href="https://github.com/python/cpython/blob/master/Include/cpython/setobject.h">Include/cpython/setobject.h</a> header (<a href="https://github.com/python/cpython/pull/32384" class="closed" title="GitHub PR 32384: [merged] bpo-35134: Add Include/cpython/setobject.h header">GH-32384</a>) <a href="https://github.com/python/cpython/commit/5c4d1f6e0e192653560ae2941a6677fbf4fbd1f2">https://github.com/python/cpython/commit/5c4d1f6e0e192653560ae2941a6677fbf4fbd1f2</a> </pre> </td> </tr> <tr> <th> <a href="#msg416912" id="msg416912">msg416912</a> - <a href="msg416912">(view)</a></th> <th>Author: STINNER Victor (vstinner) <span title="Contributor form received">*</span> <img src="@@file/committer.png" title="Python committer" alt="(Python committer)" /></th> <th>Date: 2022-04-07 00:29</th> </tr> <tr> <td colspan="4" class="content"> <pre> New changeset <a href="https://hg.python.org/lookup/85addfb9c6496eb3d26082348cf5aca848c877ef">85addfb9c6496eb3d26082348cf5aca848c877ef</a> by Victor Stinner in branch 'main': <a class="closed" title="[closed] Add a new Include/cpython/ subdirectory for the 'CPython API' with implementation details" href="issue35134">bpo-35134</a>: Remove the <a href="https://github.com/python/cpython/blob/master/Include/code.h">Include/code.h</a> header file (<a href="https://github.com/python/cpython/pull/32385" class="closed" title="GitHub PR 32385: [merged] bpo-35134: Remove the Include/code.h header file">GH-32385</a>) <a href="https://github.com/python/cpython/commit/85addfb9c6496eb3d26082348cf5aca848c877ef">https://github.com/python/cpython/commit/85addfb9c6496eb3d26082348cf5aca848c877ef</a> </pre> </td> </tr> </table> <table class="history table table-condensed table-striped"><tr><th colspan="4" class="header"> History </th></tr><tr> <th>Date</th> <th>User</th> <th>Action</th> <th>Args</th> </tr> <tr><td>2022-04-11&nbsp;14:59:07</td><td>admin</td><td>set</td><td>github: 79315</td></tr> <tr><td>2022-04-07&nbsp;00:29:55</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg416912">msg416912</a></td></tr> <tr><td>2022-04-06&nbsp;23:26:28</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg416910">msg416910</a></td></tr> <tr><td>2022-04-06&nbsp;23:05:35</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg416906">msg416906</a></td></tr> <tr><td>2022-04-06&nbsp;22:58:30</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request30423">pull_request30423</a></td></tr> <tr><td>2022-04-06&nbsp;22:46:26</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request30422">pull_request30422</a></td></tr> <tr><td>2022-04-06&nbsp;22:38:31</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request30421">pull_request30421</a></td></tr> <tr><td>2022-01-30&nbsp;23:33:02</td><td>vstinner</td><td>set</td><td>status: open -> closed<br />resolution: fixed<br />stage: patch review -> resolved</td></tr> <tr><td>2022-01-26&nbsp;16:32:56</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg411772">msg411772</a></td></tr> <tr><td>2022-01-26&nbsp;16:02:45</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request29102">pull_request29102</a></td></tr> <tr><td>2021-10-19&nbsp;00:05:03</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg404252">msg404252</a></td></tr> <tr><td>2021-10-18&nbsp;23:39:27</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request27315">pull_request27315</a></td></tr> <tr><td>2021-10-18&nbsp;23:32:05</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg404248">msg404248</a></td></tr> <tr><td>2021-10-18&nbsp;22:38:23</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request27313">pull_request27313</a></td></tr> <tr><td>2021-10-15&nbsp;07:46:37</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg403983">msg403983</a></td></tr> <tr><td>2021-10-15&nbsp;07:20:27</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request27256">pull_request27256</a></td></tr> <tr><td>2021-10-15&nbsp;00:40:09</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg403967">msg403967</a></td></tr> <tr><td>2021-10-14&nbsp;23:54:06</td><td>vstinner</td><td>set</td><td>stage: resolved -> patch review<br />pull_requests: + <a rel="nofollow" href="pull_request27253">pull_request27253</a></td></tr> <tr><td>2021-10-14&nbsp;23:52:56</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg403964">msg403964</a></td></tr> <tr><td>2021-10-14&nbsp;22:17:32</td><td>vstinner</td><td>set</td><td>pull_requests: - <a rel="nofollow" href="pull_request23644">pull_request23644</a></td></tr> <tr><td>2021-10-14&nbsp;22:17:13</td><td>vstinner</td><td>set</td><td>status: closed -> open<br />resolution: fixed -> (no value)<br />messages: + <a rel="nofollow" href="msg403957">msg403957</a><br /></td></tr> <tr><td>2021-10-14&nbsp;22:16:52</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request27247">pull_request27247</a></td></tr> <tr><td>2021-10-14&nbsp;21:41:14</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg403955">msg403955</a></td></tr> <tr><td>2021-10-14&nbsp;21:23:15</td><td>eric.snow</td><td>set</td><td>messages: + <a rel="nofollow" href="msg403952">msg403952</a></td></tr> <tr><td>2021-10-14&nbsp;21:10:33</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request27246">pull_request27246</a></td></tr> <tr><td>2021-05-26&nbsp;22:46:00</td><td>vstinner</td><td>set</td><td>status: open -> closed<br />resolution: fixed<br />messages: + <a rel="nofollow" href="msg394491">msg394491</a><br /><br />stage: patch review -> resolved</td></tr> <tr><td>2021-03-22&nbsp;08:32:21</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg389285">msg389285</a></td></tr> <tr><td>2021-03-18&nbsp;17:43:33</td><td>shihai1991</td><td>set</td><td>nosy: + <a rel="nofollow" href="user31412">shihai1991</a><br />pull_requests: + <a rel="nofollow" href="pull_request23686">pull_request23686</a><br /></td></tr> <tr><td>2021-03-15&nbsp;21:02:50</td><td>erlendaasland</td><td>set</td><td>nosy: + <a rel="nofollow" href="user31937">erlendaasland</a><br />pull_requests: + <a rel="nofollow" href="pull_request23644">pull_request23644</a><br /></td></tr> <tr><td>2021-03-06&nbsp;05:42:14</td><td>nw0</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request23538">pull_request23538</a></td></tr> <tr><td>2021-02-19&nbsp;14:55:53</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg387327">msg387327</a></td></tr> <tr><td>2021-02-18&nbsp;10:55:10</td><td>nw0</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request23342">pull_request23342</a></td></tr> <tr><td>2021-02-17&nbsp;18:30:57</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg387179">msg387179</a></td></tr> <tr><td>2021-02-16&nbsp;14:13:53</td><td>nw0</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request23333">pull_request23333</a></td></tr> <tr><td>2021-02-16&nbsp;12:05:06</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg387105">msg387105</a></td></tr> <tr><td>2020-12-29&nbsp;09:58:47</td><td>serhiy.storchaka</td><td>set</td><td>messages: + <a rel="nofollow" href="msg383970">msg383970</a></td></tr> <tr><td>2020-12-29&nbsp;09:53:18</td><td>nw0</td><td>set</td><td>nosy: + <a rel="nofollow" href="user36984">nw0</a><br />pull_requests: + <a rel="nofollow" href="pull_request22830">pull_request22830</a><br /></td></tr> <tr><td>2020-12-08&nbsp;22:51:57</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg382771">msg382771</a></td></tr> <tr><td>2020-12-08&nbsp;17:13:14</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request22568">pull_request22568</a></td></tr> <tr><td>2020-04-28&nbsp;15:07:16</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg367536">msg367536</a></td></tr> <tr><td>2020-04-28&nbsp;14:45:35</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request19078">pull_request19078</a></td></tr> <tr><td>2020-02-12&nbsp;22:55:13</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg361923">msg361923</a></td></tr> <tr><td>2020-02-12&nbsp;22:54:34</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg361922">msg361922</a></td></tr> <tr><td>2020-02-12&nbsp;22:25:52</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request17867">pull_request17867</a></td></tr> <tr><td>2020-02-12&nbsp;22:08:48</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request17866">pull_request17866</a></td></tr> <tr><td>2020-02-12&nbsp;20:33:22</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request17863">pull_request17863</a></td></tr> <tr><td>2020-02-07&nbsp;08:20:25</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg361542">msg361542</a></td></tr> <tr><td>2020-02-07&nbsp;07:53:02</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request17771">pull_request17771</a></td></tr> <tr><td>2020-01-20&nbsp;22:21:39</td><td>ncoghlan</td><td>set</td><td>messages: + <a rel="nofollow" href="msg360338">msg360338</a></td></tr> <tr><td>2020-01-20&nbsp;22:19:51</td><td>ncoghlan</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request17475">pull_request17475</a></td></tr> <tr><td>2019-06-18&nbsp;22:48:13</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg346014">msg346014</a></td></tr> <tr><td>2019-06-18&nbsp;22:27:53</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request14051">pull_request14051</a></td></tr> <tr><td>2019-05-20&nbsp;00:22:35</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg342881">msg342881</a></td></tr> <tr><td>2019-05-19&nbsp;22:24:17</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request13341">pull_request13341</a></td></tr> <tr><td>2019-05-19&nbsp;22:15:00</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg342876">msg342876</a></td></tr> <tr><td>2019-05-19&nbsp;21:55:11</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request13340">pull_request13340</a></td></tr> <tr><td>2019-04-15&nbsp;15:29:36</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg340285">msg340285</a></td></tr> <tr><td>2019-04-15&nbsp;15:03:17</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request12767">pull_request12767</a></td></tr> <tr><td>2019-04-15&nbsp;15:00:22</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg340283">msg340283</a></td></tr> <tr><td>2019-04-15&nbsp;14:37:05</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request12765">pull_request12765</a></td></tr> <tr><td>2019-02-01&nbsp;19:05:00</td><td>eric.snow</td><td>set</td><td>nosy: + <a rel="nofollow" href="user14000">eric.snow</a><br /></td></tr> <tr><td>2018-11-28&nbsp;12:01:37</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330594">msg330594</a></td></tr> <tr><td>2018-11-28&nbsp;11:47:47</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request10012">pull_request10012</a></td></tr> <tr><td>2018-11-27&nbsp;22:55:03</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330557">msg330557</a></td></tr> <tr><td>2018-11-27&nbsp;22:28:04</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request10002">pull_request10002</a></td></tr> <tr><td>2018-11-27&nbsp;21:18:31</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330556">msg330556</a></td></tr> <tr><td>2018-11-27&nbsp;11:42:28</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330512">msg330512</a></td></tr> <tr><td>2018-11-27&nbsp;11:20:36</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request9986">pull_request9986</a></td></tr> <tr><td>2018-11-26&nbsp;23:20:03</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330480">msg330480</a></td></tr> <tr><td>2018-11-26&nbsp;23:12:29</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330478">msg330478</a></td></tr> <tr><td>2018-11-26&nbsp;23:12:10</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330477">msg330477</a></td></tr> <tr><td>2018-11-26&nbsp;22:59:57</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request9981">pull_request9981</a></td></tr> <tr><td>2018-11-26&nbsp;22:43:12</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request9980">pull_request9980</a></td></tr> <tr><td>2018-11-26&nbsp;22:24:28</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request9979">pull_request9979</a></td></tr> <tr><td>2018-11-26&nbsp;21:42:09</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330467">msg330467</a></td></tr> <tr><td>2018-11-26&nbsp;21:11:27</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330463">msg330463</a></td></tr> <tr><td>2018-11-26&nbsp;21:09:04</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request9976">pull_request9976</a></td></tr> <tr><td>2018-11-26&nbsp;20:50:55</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request9975">pull_request9975</a></td></tr> <tr><td>2018-11-26&nbsp;16:29:41</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330447">msg330447</a></td></tr> <tr><td>2018-11-26&nbsp;16:09:19</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330446">msg330446</a></td></tr> <tr><td>2018-11-23&nbsp;16:47:07</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330337">msg330337</a></td></tr> <tr><td>2018-11-23&nbsp;16:43:46</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request9935">pull_request9935</a></td></tr> <tr><td>2018-11-23&nbsp;16:17:57</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request9934">pull_request9934</a></td></tr> <tr><td>2018-11-23&nbsp;16:00:04</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330336">msg330336</a></td></tr> <tr><td>2018-11-23&nbsp;15:28:47</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330331">msg330331</a></td></tr> <tr><td>2018-11-23&nbsp;13:44:16</td><td>vstinner</td><td>set</td><td>title: Add a new Include/unstable/ subdirectory for the "unstable" API -> Add a new Include/cpython/ subdirectory for the "CPython API" with implementation details</td></tr> <tr><td>2018-11-23&nbsp;13:39:42</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330324">msg330324</a></td></tr> <tr><td>2018-11-23&nbsp;03:04:29</td><td>jkloth</td><td>set</td><td>nosy: + <a rel="nofollow" href="user4624">jkloth</a><br />messages: + <a rel="nofollow" href="msg330296">msg330296</a><br /></td></tr> <tr><td>2018-11-22&nbsp;22:22:08</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330285">msg330285</a></td></tr> <tr><td>2018-11-22&nbsp;21:53:48</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330283">msg330283</a></td></tr> <tr><td>2018-11-22&nbsp;21:49:30</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330282">msg330282</a></td></tr> <tr><td>2018-11-22&nbsp;19:05:47</td><td>brett.cannon</td><td>set</td><td>nosy: + <a rel="nofollow" href="user37">brett.cannon</a><br />messages: + <a rel="nofollow" href="msg330276">msg330276</a><br /></td></tr> <tr><td>2018-11-22&nbsp;14:25:13</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330261">msg330261</a></td></tr> <tr><td>2018-11-22&nbsp;11:35:50</td><td>ncoghlan</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330246">msg330246</a></td></tr> <tr><td>2018-11-20&nbsp;23:55:32</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330165">msg330165</a></td></tr> <tr><td>2018-11-20&nbsp;22:54:57</td><td>vstinner</td><td>set</td><td>title: Move !Py_LIMITED_API to Include/pycapi/ -> Add a new Include/unstable/ subdirectory for the "unstable" API</td></tr> <tr><td>2018-11-20&nbsp;22:53:57</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330162">msg330162</a></td></tr> <tr><td>2018-11-20&nbsp;22:46:28</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg330161">msg330161</a></td></tr> <tr><td>2018-11-20&nbsp;22:37:48</td><td>vstinner</td><td>set</td><td>pull_requests: + <a rel="nofollow" href="pull_request9872">pull_request9872</a></td></tr> <tr><td>2018-11-05&nbsp;11:53:31</td><td>ncoghlan</td><td>set</td><td>messages: + <a rel="nofollow" href="msg329292">msg329292</a></td></tr> <tr><td>2018-11-05&nbsp;11:44:46</td><td>ncoghlan</td><td>set</td><td>messages: + <a rel="nofollow" href="msg329290">msg329290</a></td></tr> <tr><td>2018-11-05&nbsp;11:29:01</td><td>ncoghlan</td><td>set</td><td>nosy: + <a rel="nofollow" href="user1309">ncoghlan</a><br /></td></tr> <tr><td>2018-11-02&nbsp;11:38:21</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg329126">msg329126</a></td></tr> <tr><td>2018-11-02&nbsp;11:18:38</td><td>serhiy.storchaka</td><td>set</td><td>messages: + <a rel="nofollow" href="msg329124">msg329124</a></td></tr> <tr><td>2018-11-02&nbsp;10:55:53</td><td>vstinner</td><td>set</td><td>messages: + <a rel="nofollow" href="msg329123">msg329123</a></td></tr> <tr><td>2018-11-01&nbsp;21:06:46</td><td>serhiy.storchaka</td><td>set</td><td>nosy: + <a rel="nofollow" href="user15623">serhiy.storchaka</a><br />messages: + <a rel="nofollow" href="msg329087">msg329087</a><br /></td></tr> <tr><td>2018-11-01&nbsp;13:05:59</td><td>vstinner</td><td>set</td><td>title: Move Py_LIMITED_API to Include/pycapi/ -> Move !Py_LIMITED_API to Include/pycapi/</td></tr> <tr><td>2018-11-01&nbsp;13:04:52</td><td>vstinner</td><td>set</td><td>keywords: + <a rel="nofollow" href="keyword2">patch</a><br />stage: patch review<br />pull_requests: + <a rel="nofollow" href="pull_request9596">pull_request9596</a></td></tr> <tr><td>2018-11-01&nbsp;12:46:49</td><td>vstinner</td><td>create</td><td></td></tr> </table> </div> </div> <!-- content-body --> <div id="footer"> <div id="credits"> Supported by <a href="https://python.org/psf-landing/" title="The Python Software Foundation">The Python Software Foundation</a>, <br> Powered by <a href="http://roundup.sourceforge.net" title="Powered by the Roundup Issue Tracker">Roundup</a> </div> <!-- credits --> Copyright &copy; 1990-2022, <a href="http://python.org/psf">Python Software Foundation</a><br /> <a href="http://python.org/about/legal">Legal Statements</a> </div> <!-- footer --> </div> <!-- body-main --> </div> <!-- content --> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10