Skip to content

Commit 09db52b

Browse files
committed
Wording
1 parent 6e03fb1 commit 09db52b

1 file changed

Lines changed: 10 additions & 10 deletions

File tree

peps/pep-0836.rst

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ explicitly deferred a number of questions about the JIT's long-term status.
2020
Since then, the JIT has been re-architected and matured considerably. In Python
2121
3.15, it delivers a measurable, reproducible speedup over the interpreter
2222
(about 4-12% geometric mean performance improvement across measured Tier 1
23-
platforms (see :ref:`Appendix <836-appendix-jit-speedup-2wk>`),
23+
platforms; see :ref:`Appendix <836-appendix-jit-speedup-2wk>`),
2424
emits frames that native debuggers can unwind through, and reduces the memory
2525
footprint of generated code relative to 3.14. Along the way, we have learned a
2626
good deal about what works for a JIT in CPython.
@@ -123,8 +123,8 @@ Python versions, extension compatibility, embedding requirements, deployment
123123
constraints, and tooling support.
124124

125125
:pep:`744` did valuable work explaining the JIT's copy-and-patch approach, made
126-
the case for keeping the implementation in CPython ``main`` branch so that it could
127-
be maintained by a broader group of volunteers, and sketched some criteria
126+
the case for keeping the implementation in CPython's ``main`` branch so that it
127+
could be maintained by a broader group of volunteers, and sketched some criteria
128128
under which the JIT might eventually graduate from an experimental state.
129129
However, the original PEP for the JIT left many questions open about
130130
guarantees, maintenance commitments, success metrics, timelines, tooling
@@ -146,7 +146,7 @@ As of CPython 3.15, the current JIT compiler is roughly 4-12% faster geometric
146146
mean on the pyperformance benchmark suite compared to the interpreter across
147147
measured Tier 1 platforms
148148
(see :ref:`Appendix <836-appendix-jit-speedup-2wk>`). In order to
149-
achieve this, the JIT and supporting infrastructure has undergone a number of
149+
achieve this, the JIT and supporting infrastructure have undergone a number of
150150
revisions across the last four major versions of Python:
151151

152152
* **3.12:** Introduction of the CPython bytecode DSL, and refactoring of
@@ -424,7 +424,7 @@ evolves:
424424

425425
With all of the above, most optimizations in the JIT can be implemented as
426426
local rewrites. This is again, inspired by certain properties of other
427-
runtime's intermediate representations. Our goal is to make the JIT more
427+
runtimes' intermediate representations. Our goal is to make the JIT more
428428
traditional and teachable, without sacrificing what we can optimize. We do
429429
acknowledge that a method JIT requires joining control-flow. However, we
430430
believe this is not a large conceptual overhead, as a tracing JIT already
@@ -435,9 +435,9 @@ In terms of what code we need to achieve this frontend, most of the
435435
infrastructure required is already present. The main code modifications
436436
required are the data structures to represent a control-flow graph, and
437437
worklist algorithms to drive the pre-existing optimizer/analysis pass. We can
438-
proceed to remove most of the current tracing frontend from the JIT from the
438+
proceed to remove most of the current tracing frontend from the JIT and the
439439
interpreter, which will simplify the interpreter's core dispatch mechanism and
440-
simplify the main interpreter loop. We believe these are not foreign concepts
440+
the main interpreter loop. We believe these are not foreign concepts
441441
to CPython -- the current bytecode compiler in CPython already represents
442442
control-flow graphs and has worklist algorithms.
443443

@@ -526,7 +526,7 @@ CPython.
526526
First-Class Support for Free-Threading
527527
--------------------------------------
528528

529-
free-threading is already a part of Python's future, and the current JIT must
529+
Free-threading is already a part of Python's future, and the current JIT must
530530
be made free-threading safe as soon as possible to be a viable option for
531531
improved performance. This involves making the frontend and middle-end's
532532
optimizations free-threading safe (the backend should already be safe). We do
@@ -543,12 +543,12 @@ slight (1-2% geomean) performance hit initially.
543543

544544
All future optimizations upon resuming JIT development will be reviewed with
545545
free-threading compatibility and performance impact required before merge.
546-
Optimizations that rely solely on the GIL build and break on the free threaded
546+
Optimizations that rely solely on the GIL build and break on the free-threaded
547547
build will be rejected.
548548

549549
Additionally, the JIT may eventually even produce better performance versus the
550550
free-threading build than the current GIL build. Early experiments in the JIT
551-
suggest free threaded optimization may gain a few more percentage points on
551+
suggest free-threaded optimization may gain a few more percentage points on
552552
pyperformance. For example:
553553

554554
* Reference counting on the free-threading build is more expensive than on the

0 commit comments

Comments
 (0)