Commit Graph

50 Commits

Author SHA1 Message Date
Benjamin Peterson
42aa93b8ff closes bpo-31650: PEP 552 (Deterministic pycs) implementation (#4575)
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.
2017-12-09 10:26:52 -08:00
Serhiy Storchaka
70d28a184c Remove unused imports. 2016-12-16 20:00:15 +02:00
Serhiy Storchaka
3e99fdeed5 Issue #26881: The modulefinder module now supports extended opcode arguments. 2016-05-08 23:44:54 +03:00
Serhiy Storchaka
02d9f5e5b2 Issue #26881: The modulefinder module now supports extended opcode arguments. 2016-05-08 23:43:50 +03:00
Victor Stinner
7e50978a4e Issue #26647: Cleanup modulefinder
Use directly dis.opmap[name] rather than dis.opname.index(name).

Patch written by Demur Rumed.
2016-04-12 18:17:06 +02:00
Brett Cannon
213b4056a6 Issue #25487: Fix tests not updated when the imp module moved to a
DeprecationWarning.

Thanks to Martin Panter for finding the tests.
2015-10-30 14:41:06 -07:00
Eric Snow
32439d6eb6 Issue #23911: Move path-based bootstrap code to a separate frozen module. 2015-05-02 19:15:18 -06:00
Brett Cannon
f299abdafa Issue #23731: Implement PEP 488.
The concept of .pyo files no longer exists. Now .pyc files have an
optional `opt-` tag which specifies if any extra optimizations beyond
the peepholer were applied.
2015-04-13 14:21:02 -04:00
Berker Peksag
0a0d1da987 Issue #21707: Add missing kwonlyargcount argument to ModuleFinder.replace_paths_in_code(). 2014-07-07 14:58:12 +03:00
Brett Cannon
0f3847855d merge for issue #20778 2014-02-28 10:50:34 -05:00
Brett Cannon
298bb96776 Issue #20778: Fix modulefinder to work with bytecode-only modules.
Bug filed and initial attempt at a patch by Bohuslav Kabrda.
2014-02-28 10:44:45 -05:00
Serhiy Storchaka
ab0ac27d24 Issue #20315: Removed support for backward compatibility with early 2.x versions.
Removed backward compatibility alias curses.window.nooutrefresh which should
be removed in 2.3.
2014-01-20 21:35:06 +02:00
Serhiy Storchaka
7e52705ee3 Issue #20315: Removed support for backward compatibility with early 2.x versions. 2014-01-20 21:29:31 +02:00
Ezio Melotti
9a3777e525 #18705: merge with 3.3. 2013-08-17 15:53:55 +03:00
Ezio Melotti
30b9d5d3af #18705: fix a number of typos. Patch by Févry Thibault. 2013-08-17 15:50:46 +03:00
Brett Cannon
e4f41deccf Issue #17177: The imp module is pending deprecation.
To make sure there is no issue with code that is both Python 2 and 3
compatible, there are no plans to remove the module any sooner than
Python 4 (unless the community moves to Python 3 solidly before then).
2013-06-16 13:13:40 -04:00
Brett Cannon
2909d6b47c merge with 3.3 2012-12-22 19:38:32 -05:00
Brett Cannon
73b969ec70 Issue #16752: Add a missing import to modulefinder.
Also fix Misc/ACKS to put part of it back in alphabetical order and
remove some duplicate names.

Patch by Berker Peksag.
2012-12-22 19:34:21 -05:00
Andrew Svetlov
ad28c7f9da Issue #16706: get rid of os.error 2012-12-18 22:02:39 +02:00
Brett Cannon
cb66eb0dec Issue #13959: Deprecate imp.get_suffixes() for new attributes on
importlib.machinery that provide the suffix details for import.
The attributes were not put on imp so as to compartmentalize
everything importlib needs for setting up imports in
importlib.machinery.

This also led to an indirect deprecation of inspect.getmoduleinfo() as
it directly returned imp.get_suffix's returned tuple which no longer
makes sense.
2012-05-11 12:58:42 -04:00
Éric Araujo
cee6bb5499 Fix bug I unwittingly added in 1521d9837d16 (found by Ezio Melotti) 2011-08-01 15:29:07 +02:00
Éric Araujo
1e3a68d36b Modernize modulefinder module and tests a bit.
The tests don’t use an internal distutils function anymore, and use
regular assertEqual with sorted lists instead of a convoluted manual
diff.
2011-07-28 23:35:29 +02:00
Martin v. Löwis
867754e3e3 merge 11164 2011-05-09 08:10:38 +02:00
Martin v. Löwis
2f48d892d4 Stop trying to use _xmlplus in the xml module. Closes #11164.
Patch by Arfrever Frehtes Taifersar Arahesis.
2011-05-09 08:05:43 +02:00
Brett Cannon
028011f9f0 Silence ResourceWarnings in modulefinder by using file context managers. 2010-10-30 00:26:48 +00:00