Skip to content

bpo-31650: PEP 552 (Deterministic pycs) implementation#4575

Merged
benjaminp merged 14 commits intomasterfrom
benjamin-pep-552
Dec 9, 2017
Merged

bpo-31650: PEP 552 (Deterministic pycs) implementation#4575
benjaminp merged 14 commits intomasterfrom
benjamin-pep-552

Conversation

@benjaminp
Copy link
Contributor

@benjaminp benjaminp commented Nov 26, 2017

Python now supports checking bytecode cache up-to-dateness with a hash of the
source contents rather than volatile source metadata. See the PEP for details.

While a fairly straightforward idea, quite a lot of code had to be modified due
to the pervasiveness of pyc implementation details in the codebase. Changes in
this commit include:

  • The core changes to importlib to understand how to read, validate, and
    regenerate hash-based pycs.

  • Support for generating hash-based pycs in py_compile and compileall.

  • Modifications to our siphash implementation to support passing a custom
    key. We then expose it to importlib through _imp.

  • Updates to all places in the interpreter, standard library, and tests that
    manually generate or parse pyc files to grok the new format.

  • Support in the interpreter command line code for long options like
    --check-hash-based-pycs.

  • Tests and documentation for all of the above.

https://bugs.python.org/issue31650

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants