Commit Graph

325 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
Sanyam Khurana 1b4587a246 bpo-25910: Fixes redirection from http to https (#4674) 2017-12-06 17:39:33 +01:00
Victor Stinner 5e3806f8cf
bpo-32101: Add PYTHONDEVMODE environment variable (#4624)
* bpo-32101: Add sys.flags.dev_mode flag
  Rename also the "Developer mode" to the "Development mode".
* bpo-32101: Add PYTHONDEVMODE environment variable
  Mention it in the development chapiter.
2017-11-30 11:40:24 +01:00
Victor Stinner 5d39e04290
bpo-32030: Rework memory allocators (#4625)
* Fix _PyMem_SetupAllocators("debug"): always restore allocators to
  the defaults, rather than only caling _PyMem_SetupDebugHooks().
* Add _PyMem_SetDefaultAllocator() helper to set the "default"
  allocator.
* Add _PyMem_GetAllocatorsName(): get the name of the allocators
* main() now uses debug hooks on memory allocators if Py_DEBUG is
  defined, rather than calling directly malloc()
* Document default memory allocators in C API documentation
* _Py_InitializeCore() now fails with a fatal user error if
  PYTHONMALLOC value is an unknown memory allocator, instead of
  failing with a fatal internal error.
* Add new tests on the PYTHONMALLOC environment variable
* Add support.with_pymalloc()
* Add the _testcapi.WITH_PYMALLOC constant and expose it as
   support.with_pymalloc().
* sysconfig.get_config_var('WITH_PYMALLOC') doesn't work on Windows, so
   replace it with support.with_pymalloc().
* pythoninfo: add _testcapi collector for pymem
2017-11-29 17:20:38 +01:00
Victor Stinner 84c4b1938f
bpo-32124: Document C functions safe before init (#4540)
Explicitly document C functions and C variables that can be set
before Py_Initialize().
2017-11-24 22:30:27 +01:00
Victor Stinner bc9b6e29cb
bpo-32043: Rephrase -X dev documentation (#4478)
* should not be more verbose if the code is correct
* enabled checks can be "expensive"
2017-11-20 18:59:50 -08:00
Victor Stinner 09f3a8a124
bpo-32089: Fix warnings filters in dev mode (#4482)
The developer mode (-X dev) now creates all default warnings filters
to order filters in the correct order to always show ResourceWarning
and make BytesWarning depend on the -b option.

Write a functional test to make sure that ResourceWarning is logged
twice at the same location in the developer mode.

Add a new 'dev_mode' field to _PyCoreConfig.
2017-11-20 17:32:40 -08:00
Victor Stinner c5a2071586
bpo-32050: Fix -x option documentation (#4475)
The line number in correct when using the -x option: Py_Main() uses
ungetc() to not skip the first newline character.
2017-11-20 08:08:03 -08:00
Victor Stinner 44862df2ee
bpo-32047: -X dev enables asyncio debug mode (#4418)
The new -X dev command line option now also enables asyncio debug
mode.
2017-11-20 07:14:07 -08:00
Victor Stinner ccb0442a33
bpo-32043: New "developer mode": "-X dev" option (#4413)
Add a new "developer mode": new "-X dev" command line option to
enable debug checks at runtime.

Changes:

* Add unit tests for -X dev
* test_cmd_line: replace test.support with support.
* Fix _PyRuntimeState_Fini(): Use the same memory allocator
   than _PyRuntimeState_Init().
* Fix _PyMem_GetDefaultRawAllocator()
2017-11-16 03:20:31 -08:00
Barry Warsaw 962e2a7317
Fix a minor typo and hyphenate "multi-threading" (#4237) 2017-11-06 18:18:40 -08:00
Barry Warsaw 700d2e4755
bpo-31415: Support PYTHONPROFILEIMPORTTIME envvar equivalent to -X importtime (#4240)
Support PYTHONPROFILEIMPORTTIME envvar equivalent to -X importtime
2017-11-02 16:13:36 -07:00
cocoatomo d609b0c24e bpo-31053: Remove redundant 'venv' argument in venv example (GH-2907) 2017-10-27 07:42:11 +03:00
Berker Peksag 7f58097083 bpo-28647: Update -u documentation after bpo-30404 (GH-3961) 2017-10-13 15:16:31 +03:00
Barry Warsaw 36c1d1f1e5 PEP 553 built-in breakpoint() function (bpo-31353) (#3355)
Implement PEP 553, built-in breakpoint() with support from sys.breakpointhook(), along with documentation and tests.  Closes bpo-31353
2017-10-05 12:11:18 -04:00
Serhiy Storchaka 77732be801 bpo-30404: The -u option now makes the stdout and stderr streams totally unbuffered. (#1667) 2017-10-04 20:25:40 +03:00
INADA Naoki 1a87de7fcf bpo-31415: Add `-X importtime` option (GH-3490)
It shows show import time of each module.
It's useful for optimizing startup time.

Typical usage: python -X importtime -c 'import requests'
2017-10-03 19:46:34 +09:00
Lisa Hewus Fresh 384899dfae bpo-30737: Update DevGuide links to new URL (GH-3228)
Update old devguide links from https://docs.python.org/devguide to https://devguide.python.org
2017-08-30 09:37:43 -07:00
Nick Coghlan eb81795d7d bpo-30565: Add PYTHONCOERCECLOCALE=warn runtime flag (GH-2260)
- removes PY_WARN_ON_C_LOCALE build time flag
- locale coercion and compatibility warnings are now always compiled
  in, but are off by default
- adds PYTHONCOERCECLOCALE=warn runtime option to aid in
  debugging potentially locale related compatibility problems

Due to not-yet-resolved test failures on *BSD systems (including
Mac OS X), this also temporarily disables UTF-8 as a locale coercion
target, and skips testing the interpreter's behavior in the POSIX locale.
2017-06-18 12:29:42 +10:00
csabella 4ebf03d109 Fix trivial typo in Readme (GH-2185)
Replace platform with platforms.
2017-06-14 06:32:06 -07:00
Nick Coghlan 6ea4186de3 bpo-28180: Implementation for PEP 538 (#659)
- new PYTHONCOERCECLOCALE config setting
- coerces legacy C locale to C.UTF-8, C.utf8 or UTF-8 by default
- always uses C.UTF-8 on Android
- uses `surrogateescape` on stdin and stdout in the coercion
  target locales
- configure option to disable locale coercion at build time
- configure option to disable C locale warning at build time
2017-06-11 13:16:15 +10:00
Berker Peksag 87fa8a780e bpo-29898: Fix incorrect env variable name (GH-1576)
It should read PYTHONLEGACYWINDOWSSTDIO as stated
in section "Add legacy mode" in PEP 528.
2017-05-16 12:36:45 +03:00
Wieland Hoffmann 80a3da4d4a Improve the grammar in windows.rst (GH-1330) 2017-04-28 09:12:57 -07:00
Sebastian Vetter d1ae24e888 Correct the README link in Unix install docs (#1245) 2017-04-21 10:24:57 -07:00
Xiang Zhang 0710d75425 bpo-29770: remove outdated PYO related info (GH-590) 2017-03-11 13:02:52 +08:00
Benjamin Peterson 35a1f7f62d massage English for -X descriptions a bit 2017-02-09 22:31:17 -08:00
Senthil Kumaran b0d0e19dd5 issue26149 - Point to Wiki for Editors and Python IDEs on Unix.
Patch contributed by Mariatta Wijaya.
2017-01-25 01:47:49 -08:00
Steve Dower 20367420c8 Issue #28896: Deprecate WindowsRegistryFinder 2016-12-07 13:02:27 -08:00
INADA Naoki f576343179 Issue #28532: Add what's new entry for python -VV option 2016-11-24 17:20:40 +09:00
INADA Naoki 0e175a6e76 Issue #28532: Show sys.version when -V option is supplied twice 2016-11-21 20:57:14 +09:00
Martin Panter 9440787867 Issue #26638: Merge option warning fixes from 3.5 into 3.6 2016-10-30 04:21:23 +00:00
Martin Panter b8c5f54248 Issue #26638: Work around more CLI options that can’t be linked
* Cannot seem to link directly to main options from the “unittest” module,
  because that module has its own set of options
* Mask out linking for options that no longer exist in Python 3
2016-10-30 04:20:23 +00:00
Martin Panter 5c67933940 Issue #26638: Mask undefined CLI options to defeat new Sphinx warnings 2016-10-30 04:20:17 +00:00
Victor Stinner c6b1e15788 Close #28479: Fix reST syntax in windows.rst
Patch written by Julien Palard.
2016-10-20 00:45:50 +02:00
Steve Dower fb12ce1cb3 Issue #28218: Fixes versionadded description in using/windows.rst 2016-10-03 09:15:27 -07:00
Steve Dower ed51b26858 Issue #28137: Renames Windows path file to ._pth
Issue #28138: Windows ._pth file should allow import site
2016-09-17 12:54:06 -07:00
Steve Dower 3cdd7f57a2 Add links from whatsnew to Windows docs. 2016-09-09 15:22:13 -07:00
Steve Dower 814f9ae33e Adds documentation for pythonXX.zip as a landmark. 2016-09-09 15:07:46 -07:00
Steve Dower f333fd82a2 Switch to using |version| substitition in Windows docs. 2016-09-09 09:40:06 -07:00
Steve Dower 4db86bc1b4 Changes pyvenv.cfg trick into an actual sys.path file. 2016-09-09 09:17:35 -07:00
Steve Dower 3929499914 Issue #1602: Windows console doesn't input or print Unicode (PEP 528)
Closes #17602: Adds a readline implementation for the Windows console
2016-08-30 21:22:36 -07:00
Steve Dower cc16be85c0 Issue #27781: Change file system encoding on Windows to UTF-8 (PEP 529) 2016-09-08 10:35:16 -07:00
Steve Dower 19ab0fd456 Issue #27731: Opt-out of MAX_PATH on Windows 10 2016-09-06 20:40:11 -07:00
Berker Peksag 09808e7530 Issue #12982: Merge from 3.5 2016-08-20 11:12:20 +03:00
Berker Peksag f43bc98c48 Issue #12982: Thanks to PEP 488, Python no longer creates .pyo files 2016-08-20 11:11:52 +03:00
Zachary Ware a31ddb3351 Merge with 3.5 2016-08-04 12:14:51 -05:00
Zachary Ware 72e483aac4 Fix half-finished sentence.
Reported by Linda Pescatore on docs@.
2016-08-04 12:13:47 -05:00
Zachary Ware 10ea19f69c Merge with 3.5 2016-07-28 19:01:09 -05:00
Zachary Ware 87ec85f420 Correct typo in Windows docs.
Found by Jack Copper on docs@
2016-07-28 19:00:53 -05:00
Brett Cannon 15552c39e0 Issue #27285: Document the deprecation of the pyvenv script.
As part of the update, the documentation was updated to normalize
around the term "virtual environment" instead of relying too heavily
on "venv" for the same meaning and leading to inconsistent usage of
either.

Thanks to Steve Piercy for the patch.
2016-07-08 10:46:21 -07:00
Serhiy Storchaka 7e160ce356 Issue #23034: The output of a special Python build with defined COUNT_ALLOCS,
SHOW_ALLOC_COUNT or SHOW_TRACK_COUNT macros is now off by  default.  It can
be re-enabled using the "-X showalloccount" option.  It now outputs to stderr
instead of stdout.
2016-07-03 21:03:53 +03:00
Berker Peksag 61d1e99923 Issue #27393: Merge from 3.5 2016-06-27 13:11:16 +03:00
Berker Peksag 6803f35acc Issue #27393: Fix escaping of C:\ too 2016-06-27 13:10:47 +03:00
Berker Peksag c2cfe33b27 Issue #27393: Merge from 3.5 2016-06-27 09:52:07 +03:00
Berker Peksag 9c1e9d453c Issue #27393: Fix escaping of venv activate commands on Windows
Patch by Manuel Kaufmann.
2016-06-27 09:51:40 +03:00
Paul Moore 835416cf7c Issue #27064: The py.exe launcher now defaults to Python 3.
The Windows launcher ``py.exe`` no longer prefers an installed
Python 2 version over Python 3 by default when used interactively.
2016-05-22 12:28:41 +01:00
Senthil Kumaran 93d22ecc7c merge from 3.5
issue27045 - Use backslash in windows path to script file.
2016-05-17 20:51:15 -07:00
Senthil Kumaran c9bfc13aa9 issue27045 - Use backslash in windows path to script file. 2016-05-17 20:50:43 -07:00
Serhiy Storchaka 1acbf853c8 Issue #26736: Used HTTPS for external links in the documentation if possible. 2016-05-07 10:49:58 +03:00
Serhiy Storchaka 6dff0205b7 Issue #26736: Used HTTPS for external links in the documentation if possible. 2016-05-07 10:49:07 +03:00
Victor Stinner f5c4b99034 PyMem_Malloc() now uses the fast pymalloc allocator
Issue #26249: PyMem_Malloc() allocator family now uses the pymalloc allocator
rather than system malloc(). Applications calling PyMem_Malloc() without
holding the GIL can now crash: use PYTHONMALLOC=debug environment variable to
validate the usage of memory allocators in your application.
2016-04-22 16:26:23 +02:00
Serhiy Storchaka 96790a4b82 Issue #25910: Fixed more links in the docs. 2016-04-11 17:33:27 +03:00
Serhiy Storchaka de886d9233 Issue #25910: Fixed more links in the docs. 2016-04-11 17:32:33 +03:00
Victor Stinner d1700a9360 Fix typo in doc: avoid the french "& cie" :-) 2016-03-23 16:57:51 +01:00
Victor Stinner 9b46a57302 Doc: fix typos, patch written by Stefan Behnel 2016-03-18 15:10:43 +01:00
Victor Stinner c2fc56836f Enhance documentation on malloc debug hooks
Issue #26564, #26516, #26563.
2016-03-18 11:04:31 +01:00
Victor Stinner 34be807ca4 Add PYTHONMALLOC env var
Issue #26516:

* Add PYTHONMALLOC environment variable to set the Python memory
  allocators and/or install debug hooks.
* PyMem_SetupDebugHooks() can now also be used on Python compiled in release
  mode.
* The PYTHONMALLOCSTATS environment variable can now also be used on Python
  compiled in release mode. It now has no effect if set to an empty string.
* In debug mode, debug hooks are now also installed on Python memory allocators
  when Python is configured without pymalloc.
2016-03-14 12:04:26 +01:00
Georg Brandl 3902d62c4e merge with 3.5 2016-02-26 19:37:52 +01:00
Georg Brandl 5d94134040 Closes #25910: fix dead and permanently redirected links in the docs. Thanks to SilentGhost for the patch. 2016-02-26 19:37:12 +01:00
Georg Brandl 1a41c44af9 merge with 3.5 2016-02-26 19:18:05 +01:00
Georg Brandl 06871ef2b3 Fix version. 2016-02-26 19:17:39 +01:00
Georg Brandl 8c16cb9f65 Closes #26435: fix syntax in directives. Thanks to Jakub Stasiak. 2016-02-25 20:17:45 +01:00
Martin Panter c04fb56e36 Issue #26304: Change "allows to <verb>" to "allows <verb>ing" or similar
The original form is incorrect grammar and feels awkward, even though the
meaning is clear.
2016-02-10 05:44:01 +00:00
Berker Peksag ef410770a7 Update "Creating Virtual Environments" link in venv documentation 2016-01-30 12:24:31 +02:00
Berker Peksag a9744aebc8 Update output of venv -h
* Update description of the --system-site-packages option
* Show --copies option in the usage
2016-01-30 12:17:10 +02:00
Berker Peksag 547f66f599 Issue #26034: Sync documentation of --clear with its behavior
Most of the docs has already been updated in c3c188a0325a.
2016-01-28 09:01:26 +02:00
Steve Dower e248f6875b Issue #25089: Adds short documentation section for modifying an install. 2016-01-16 11:58:30 -08:00
Brett Cannon 85622e4bc9 Issue #25874: Clarify platform support in the "Using Python on Windows" doc.
Thanks to Chris Wilcox for the initial patch.
2015-12-27 12:08:37 -08:00
Martin Panter 7dda421bff Issue #14285: Do not catch exceptions initializing any ancestor package
The previous fix only handled the case of the parent package of __main__
failing to initialize.

Also make the "Error while finding spec" formatting slightly more appealing,
and document and test that the module name must be absolute.
2015-12-10 06:47:06 +00:00
Steve Dower 9b608e539b Closes #25078: Document InstallAllUsers installer parameter default 0 2015-09-13 14:39:26 -07:00
Serhiy Storchaka 153627c111 Marked keystrokes with the :kbd: role.
Fixed the case of the "Ctrl-" prefixes.
2015-09-12 17:46:20 +03:00
Serhiy Storchaka 0424eaf753 Marked keystrokes with the :kbd: role.
Fixed the case of the "Ctrl-" prefixes.
2015-09-12 17:45:25 +03:00
Steve Dower cb0afc84de Removes invalid installer options from documentation. 2015-09-11 08:47:42 -07:00
Zachary Ware 072d432f3c Issue #24962: Merge 3.4 2015-08-29 22:26:54 -05:00
Zachary Ware 1a83746418 Issue #24962: Remove space from filename 2015-08-29 22:25:04 -05:00
Steve Dower eb3c16d38c Adds documentation for the new Windows embedded package. 2015-08-08 09:09:01 -07:00
Steve Dower 2434aa24e0 Adds support for an unattend.xml file to control the Windows installer options. 2015-07-18 09:28:19 -07:00
Steve Dower a3d03ec6b1 Adds option to only install the launcher. 2015-07-18 09:27:52 -07:00
Steve Dower af75a54193 Removes my username from the documentation. 2015-07-17 11:59:35 -07:00
Steve Dower 2237bdc595 Adds option to install launcher for all users even when installing Python just-for-me. This helps mitigate issues when the incompatible Python 3.4 launcher is installed.
Enables installer builds with the the text marker.
Allows simple installs to include a custom description.
2015-07-16 16:33:55 -07:00
Steve Dower 4a7fe7e397 Issue #23955: Add pyvenv.cfg option to suppress registry/environment lookup for generating sys.path.
Also cleans up and secures getpathp.c
2015-05-22 15:10:10 -07:00
Steve Dower 1d4880db3d Enables shortcuts to be deselected when installing on Windows. 2015-05-03 14:54:32 -07:00
Steve Dower 9a578d9ee6 Updates documentation for installing Python on Windows. 2015-05-02 22:28:58 -07:00
Larry Hastings 770ce204ee Regenerated pydoc-topics and fixed bad/suspicious doc markup for Python 3.5.0a4. 2015-04-19 13:50:12 -07: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
Serhiy Storchaka 1dd49824df Issue #23681: The -b option now affects comparisons of bytes with int. 2015-03-20 16:54:57 +02:00
Berker Peksag f2d4e5773a Add a versionadded directive for PEP 486. 2015-03-02 05:36:19 +02:00
Steve Dower 76998fef2c Issue #23465: Implement PEP 486 - Make the Python Launcher aware of virtual environments (patch by Paul Moore) 2015-02-26 14:25:33 -08:00
Vinay Sajip d005090e01 Closes #23357: Updated documentation on creating venvs. 2015-02-07 10:57:36 +00:00
Vinay Sajip 3595276bdd Corrected typo. 2015-02-07 10:56:06 +00:00