Jump to content

Copy-and-patch

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by The Anome (talk | contribs) at 17:42, 9 January 2024 ({{computing-stub}} created). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) โ† Previous revision | Latest revision (diff) | Newer revision โ†’ (diff)

Copy-and-patch compilation is a compiler technique that uses pre-generated templates to match parts of a bytecode stream, and emit corresponding machine code that is then patched to insert memory addresses, register addresses, constants and other paramaters. Code not matched by templates can be either be interpreted in the normal way, or code created to directly call interpreter code.

Copy-and-patch was described by Fredrik Kjolstad and Haoran Xu in a 2021 paper.[1]

Copy-and-patch is used for the Python 3.11 JIT compiler.[2]

References

  1. ^ Xu, Haoran; Kjolstad, Fredrik (2021-10-15). "Copy-and-patch compilation: a fast compilation algorithm for high-level languages and bytecode". Proceedings of the ACM on Programming Languages. 5 (OOPSLA): 136:1โ€“136:30. doi:10.1145/3485513.
  2. ^ "Python 3.13 gets a JIT". tonybaloney.github.io. Retrieved 2024-01-09.