Skip to content

Commit a9242b6

Browse files
PEP 744: Additional updates from discussion thread (#3861)
1 parent b0ed14c commit a9242b6

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -622,7 +622,7 @@ peps/pep-0740.rst @dstufft
622622
peps/pep-0741.rst @vstinner
623623
peps/pep-0742.rst @JelleZijlstra
624624
peps/pep-0743.rst @vstinner @encukou
625-
peps/pep-0744.rst @brandtbucher
625+
peps/pep-0744.rst @brandtbucher @savannahostrowski
626626
peps/pep-0745.rst @hugovk
627627
peps/pep-0746.rst @JelleZijlstra
628628
peps/pep-0747.rst @JelleZijlstra

peps/pep-0744.rst

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,11 @@ physical hardware registers).
9999

100100
Since much of this data varies even between identical runs of a program and the
101101
existing optimization pipeline makes heavy use of runtime profiling information,
102-
it doesn't make much sense to compile these traces ahead of time. As has been
103-
demonstrated for many other dynamic languages (`and even Python itself
104-
<https://www.pypy.org>`__), the most promising approach is to compile the
105-
optimized micro-ops "just in time" for execution.
102+
it doesn't make much sense to compile these traces ahead of time and would be a
103+
substantial redesign of the existing specification and micro-op tracing infrastructure
104+
that has already been implemented. As has been demonstrated for many other dynamic
105+
languages (`and even Python itself <https://www.pypy.org>`__), the most promising
106+
approach is to compile the optimized micro-ops "just in time" for execution.
106107

107108
Rationale
108109
=========
@@ -138,8 +139,10 @@ code and 500 lines of runtime C code.
138139
Specification
139140
=============
140141

141-
The JIT will become non-experimental once all of the following conditions are
142-
met:
142+
The JIT is currently not part of the default build configuration, and it is
143+
likely to remain that way for the foreseeable future (though official binaries
144+
may include it). That said, the JIT will become non-experimental once all of
145+
the following conditions are met:
143146

144147
#. It provides a meaningful performance improvement for at least one popular
145148
platform (realistically, on the order of 5%).
@@ -525,7 +528,10 @@ likely to be a real concern.
525528
Not much effort has been put into optimizing the JIT's memory usage yet, so
526529
these numbers likely represent a maximum that will be reduced over time.
527530
Improving this is a medium priority, and is being tracked in `GH-116017
528-
<https://github.com/python/cpython/issues/116017>`__.
531+
<https://github.com/python/cpython/issues/116017>`__. We may consider
532+
exposing configurable parameters for limiting memory consumption in the
533+
future, but no official APIs will be exposed until the JIT meets the
534+
requirements to be considered non-experimental.
529535

530536
Earlier versions of the JIT had a more complicated memory allocation scheme
531537
which imposed a number of fragile limitations on the size and layout of the

0 commit comments

Comments
 (0)