PEP 744: Add link to slides and clarification about LLVM dependency (GH-3850)
This commit is contained in:
parent
2d60997b1c
commit
8c02849924
|
@ -1,6 +1,7 @@
|
||||||
PEP: 744
|
PEP: 744
|
||||||
Title: JIT Compilation
|
Title: JIT Compilation
|
||||||
Author: Brandt Bucher <brandt@python.org>
|
Author: Brandt Bucher <brandt@python.org>,
|
||||||
|
Savannah Ostrowski <savannahostrowski@gmail.com>,
|
||||||
Discussions-To: https://discuss.python.org/t/pep-744-jit-compilation/50756
|
Discussions-To: https://discuss.python.org/t/pep-744-jit-compilation/50756
|
||||||
Status: Draft
|
Status: Draft
|
||||||
Type: Informational
|
Type: Informational
|
||||||
|
@ -33,7 +34,7 @@ the following resources:
|
||||||
JIT at the 2023 CPython Core Developer Sprint. It includes relevant
|
JIT at the 2023 CPython Core Developer Sprint. It includes relevant
|
||||||
background, a light technical introduction to the "copy-and-patch" technique
|
background, a light technical introduction to the "copy-and-patch" technique
|
||||||
used, and an open discussion of its design amongst the core developers
|
used, and an open discussion of its design amongst the core developers
|
||||||
present.
|
present. Slides for this talk can be found on `GitHub <https://github.com/brandtbucher/brandtbucher/blob/master/2023/10/10/a_jit_compiler_for_cpython.pdf>`__.
|
||||||
|
|
||||||
- The `open access paper <https://dl.acm.org/doi/10.1145/3485513>`__ originally
|
- The `open access paper <https://dl.acm.org/doi/10.1145/3485513>`__ originally
|
||||||
describing copy-and-patch.
|
describing copy-and-patch.
|
||||||
|
@ -534,6 +535,12 @@ executable. These issues are no longer present in the current design.
|
||||||
Dependencies
|
Dependencies
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
At the time of writing, the JIT has a build-time dependency on LLVM. LLVM
|
||||||
|
is used to compile individual micro-op instructions into blobs of machine code,
|
||||||
|
which are then linked together to form the JIT's templates. These templates are
|
||||||
|
used to build CPython itself. The JIT has no runtime dependency on LLVM and is
|
||||||
|
therefore not at all exposed as a dependency to end users.
|
||||||
|
|
||||||
Building the JIT adds between 3 and 60 seconds to the build process, depending
|
Building the JIT adds between 3 and 60 seconds to the build process, depending
|
||||||
on platform. It is only rebuilt whenever the generated files become out-of-date,
|
on platform. It is only rebuilt whenever the generated files become out-of-date,
|
||||||
so only those who are actively developing the main interpreter loop will be
|
so only those who are actively developing the main interpreter loop will be
|
||||||
|
|
Loading…
Reference in New Issue