Commit Graph

795 Commits

Author SHA1 Message Date
Victor Stinner 41551ee7e2
bpo-45020: Fix build out of source tree (GH-28410)
* Makefile.pre.in: Add $(srcdir) when needed, remove it when it was
  used by mistake.
* freeze_modules.py tool uses ./Programs/_freeze_module if the
  executable doesn't exist in the source tree.
2021-09-17 20:20:43 +02:00
Victor Stinner c5a677da9e
bpo-45231: update_file.py preserves end of line (GH-28411)
The update_file.py tool now preserves the end of line of the updated
file. Fix the "make regen-frozen" command: it no longer changes the
end of line of PCbuild/ files on Unix. Git changes the end of line
depending on the platform.
2021-09-17 20:12:25 +02:00
Eric Snow fdc6b3d931
bpo-45020: Drop the frozen .h files from the repo. (gh-28392)
The main advantage is that the files will no longer show up in diffs and PRs. That means, for a PR, the number of files / lines changed will more clearly reflect the actual change.  (This is essentially an un-revert of gh-28375.)

https://bugs.python.org/issue45020
2021-09-16 14:20:52 -06:00
Eric Snow 9fd87a5fe5
bpo-45020: Revert "Drop the frozen .h files from the repo." (gh-28380)
gh-28375 broke one of the buildbots. Until I figure out why, I'm rolling the change back.

https://bugs.python.org/issue45020
2021-09-15 23:27:38 -06:00
Eric Snow a9757bf34d
bpo-45020: Drop the frozen .h files from the repo. (gh-28375)
The main advantage is that the files will no longer show up in diffs and PRs. That means, for a PR, the number of files / lines changed will more clearly reflect the actual change.

https://bugs.python.org/issue45020
2021-09-15 19:15:26 -06:00
Eric Snow 3814e2036d
bpo-45019: Clean up the frozen __hello__ module. (gh-28374)
Here's one more small cleanup that should have been in PR gh-28319. We eliminate stdout side-effects from importing the frozen __hello__ module, and update tests accordingly. We also move the module's source file into Lib/ from Toos/freeze/flag.py.

https://bugs.python.org/issue45019
2021-09-15 14:15:32 -06:00
Steve Dower 09b4ad11f3
bpo-45188: Windows now regenerates frozen modules at the start of build instead of late (GH-28322)
This will enable us to drop the frozen module header files from the repository.

It does currently cause many source files to be built twice, which just takes more time. For whoever comes to fix this in the future, the files shared between freeze_module and pythoncore should be put into a static library that is consumed by both.
2021-09-15 18:11:12 +01:00
Eric Snow cbeb819710
bpo-45020: Freeze some of the modules imported during startup. (gh-28335)
Doing this provides significant performance gains for runtime startup (~15% with all the imported modules frozen). We don't yet freeze all the imported modules because there are a few hiccups in the build systems we need to sort out first. (See bpo-45186 and bpo-45188.)

Note that in PR GH-28320 we added a command-line flag (-X frozen_modules=[on|off]) that allows users to opt out of (or into) using frozen modules. The default is still "off" but we will change it to "on" as soon as we can do it in a way that does not cause contributors pain.

https://bugs.python.org/issue45020
2021-09-15 10:19:30 -06:00
Irit Katriel c2f1e95337
bpo-45152: Add HAS_CONST macro and get_const_value() function and use… (#28262) 2021-09-14 09:53:32 +01:00
Eric Snow a2d8c4b81b
bpo-45019: Do some cleanup related to frozen modules. (gh-28319)
There are a few things I missed in gh-27980. This is a follow-up that will make subsequent PRs cleaner. It includes fixes to tests and tools that reference the frozen modules.

https://bugs.python.org/issue45019
2021-09-13 16:18:37 -06:00
Ikko Ashimine 4338aeeb9e
Fix typos in pep384_macrocheck.py (GH-28220)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>
2021-09-10 22:44:03 +08:00
Eric Snow 044e8d866f
bpo-45019: Add a tool to generate list of modules to include for frozen modules (gh-27980)
Frozen modules must be added to several files in order to work properly. Before this change this had to be done manually. Here we add a tool to generate the relevant lines in those files instead. This helps us avoid mistakes and omissions.

https://bugs.python.org/issue45019
2021-08-30 17:25:11 -06:00
Mark Shannon 9816777861
Classify specialization failures. Provides more useful stats, with lower overhead. (GH-27701) 2021-08-10 14:53:05 +01:00
Mark Shannon c83919bd63
Add option to write specialization stats to files and script to summarize. (GH-27575)
* Add option to write stats to random file in a directory.

* Add script to summarize stats.
2021-08-04 11:39:52 +01:00
Petr Viktorin 7cad9cb51b
bpo-43795: Don't list private names in the limited API (GH-26740)
* Remove struct _node from the stable ABI list

This struct was removed along with the old parser in Python 3.9 (PEP 617)

* Stable ABI list: Use the public name "PyFrameObject" rather than "_frame"

* Ensure limited API doesn't contain private names

Names prefixed by an underscore are private by definition.

* Add a blurb
2021-06-16 11:22:36 +02:00
Mark Shannon e117c02837
bpo-44337: Port LOAD_ATTR to PEP 659 adaptive interpreter (GH-26595)
* Specialize LOAD_ATTR with  LOAD_ATTR_SLOT and LOAD_ATTR_SPLIT_KEYS

* Move dict-common.h to internal/pycore_dict.h

* Add LOAD_ATTR_WITH_HINT specialized opcode.

* Quicken in function if loopy

* Specialize LOAD_ATTR for module attributes.

* Add specialization stats
2021-06-10 08:46:01 +01:00
Antoine Pitrou 1aa3530314
bpo-44125: Fix "make patchcheck" on non-English locale (GH-26102)
The patch from [bpo-44074]() does not account for a possibly non-English locale and blindly greps for "HEAD branch" in a possibly localized text.

Automerge-Triggered-By: GH:pitrou
2021-05-13 10:48:15 -07:00
Petr Viktorin b05955d6f5
bpo-43795: PEP 652 user documentation (GH-25668)
- Reformat the C API and ABI Versioning page (and extend/clarify a bit)
- Rewrite the stable ABI docs into a general text on C API Compatibility
- Add a list of Limited API contents, and notes for the individual items. 
- Replace `Include/README.rst` with a link to a devguide page with the same info
2021-05-11 07:04:33 -07:00
Leonardo Lai 21fbbb98ba
bpo-44074: let patchcheck infer the base branch name (GH-25991) 2021-05-10 19:34:27 +01:00
Mark Shannon adcd220556
bpo-40222: "Zero cost" exception handling (GH-25729)
"Zero cost" exception handling.

* Uses a lookup table to determine how to handle exceptions.
* Removes SETUP_FINALLY and POP_TOP block instructions, eliminating (most of) the runtime overhead of try statements.
* Reduces the size of the frame object by about 60%.
2021-05-07 15:19:19 +01:00
Petr Viktorin f6ee4dad58
bpo-43795: Generate python3dll.c and doc data from manifest (PEP 652) (GH-25315) 2021-04-29 11:33:14 +02:00
Inada Naoki 489c36920e
bpo-43651: PEP 597: Fix pdeps used locale encoding (GH-25204) 2021-04-06 17:02:54 +09:00
Victor Stinner 9bb5658bd1
bpo-43688: Support "make regen-limited-abi" in debug mode (GH-25133) 2021-04-02 16:46:08 +02:00
Victor Stinner 61092a99c4
bpo-43690: stable_abi.py no longer parses macros (GH-25136)
The stable_abi.py script no longer parse macros. Macro targets can be
static inline functions which are not part of the stable ABI, only
part of the limited C API.

Run "make regen-limited-abi" to exclude PyType_HasFeature from
Doc/data/stable_abi.dat.
2021-04-01 14:13:42 +02:00
Victor Stinner ad493edf57
bpo-42955: Add _overlapped to sys.stdlib_module_names (GH-25122) 2021-04-01 02:28:23 +02:00
Victor Stinner 28ad12f8fe
bpo-43244: Remove symtable.h header file (GH-24910)
Rename Include/symtable.h to to Include/internal/pycore_symtable.h,
don't export symbols anymore (replace PyAPI_FUNC and PyAPI_DATA with
extern) and rename functions:

* PyST_GetScope() to _PyST_GetScope()
* PySymtable_BuildObject() to _PySymtable_Build()
* PySymtable_Free() to _PySymtable_Free()

Remove PySymtable_Build(), Py_SymtableString() and
Py_SymtableStringObject() functions.

The Py_SymtableString() function was part the stable ABI by mistake
but it could not be used, since the symtable.h header file was
excluded from the limited C API.

The Python symtable module remains available and is unchanged.
2021-03-19 12:41:49 +01:00
Victor Stinner a9c03d7fb7
bpo-43456: Remove _xxsubinterpreters from sys.stdlib_module_names (GH-24814) 2021-03-10 12:10:01 +01:00
Victor Stinner 307745aa42
bpo-43445: Add frozen modules to sys.stdlib_module_names (GH-24798)
Add frozen modules to sys.stdlib_module_names. For example, add
"_frozen_importlib" and "_frozen_importlib_external" names.

Add "list_frozen" command to Programs/_testembed.
2021-03-10 11:14:07 +01:00
Nicholas Sim 4a6bf276ed
bpo-35134: Move non-limited C API files to Include/cpython/ (GH-24561)
Include/{odictobject.h,parser_interface.h,picklebufobject.h,pydebug.h,pyfpe.h}
into Include/cpython/.

Parser: peg_api: include Python.h instead of parser_interface.h.
2021-02-19 15:55:46 +01:00
Nicholas Sim 366dc3a135
bpo-35134: Move Include/{pyarena.h,pyctype.h} to Include/cpython/ (GH-24550)
Move non-limited C API headers pyarena.h and pyctype.h
into Include/cpython/ directory.
2021-02-17 19:30:31 +01:00
Victor Stinner 801bb0b503
bpo-43103: Add configure --without-static-libpython (GH-24418)
Add a new configure --without-static-libpython option to not build
the libpythonMAJOR.MINOR.a static library and not install the
python.o object file.

Fix smelly.py and stable_abi.py tools when libpython3.10.a is
missing.
2021-02-17 11:14:42 +01:00
Victor Stinner 64fc105b2d
bpo-42955: Remove sub-packages from sys.stdlib_module_names (GH-24353) 2021-01-28 00:03:23 +01:00
Victor Stinner 9852cb3811
bpo-42955: Rename module_names to sys.stdlib_module_names (GH-24332)
* Rename _Py_module_names to _Py_stdlib_module_names.
* Rename Python/module_names.h to Python/stdlib_module_names.h.
2021-01-25 23:12:50 +01:00
Victor Stinner db584bdad3
bpo-42955: Add sys.modules_names (GH-24238)
Add sys.module_names, containing the list of the standard library
module names.
2021-01-25 13:24:42 +01:00
Victor Stinner cad8020cb8
bpo-42955: Add Python/module_names.h (GH-24258)
Add a private list of all stdlib modules: _Py_module_names.

* Add Tools/scripts/generate_module_names.py script.
* Makefile: Add "make regen-module-names" command.
* setup.py: Add --list-module-names option.
* GitHub Action and Travis CI also runs "make regen-module-names",
  not ony "make regen-all", to ensure that the module names remains
  up to date.
2021-01-19 23:04:49 +01:00
Pablo Galindo 0911411e0c
Update stable ABI script for MacOS and update list of exported symbols (GH-23783) 2020-12-15 18:16:13 +00:00
Pablo Galindo 79c1849b9e
bpo-42545: Improve the error message in the stable API script (GH-23648) 2020-12-04 23:19:21 +00:00
Pablo Galindo 85f1dedb8d
bpo-42545: Check that all symbols in the limited ABI are exported (GH-23616) 2020-12-04 22:05:58 +00:00
Victor Stinner ac7d0169d2
bpo-42212: smelly.py also checks the dynamic library (GH-23423)
The smelly.py script now also checks the Python dynamic library and
extension modules, not only the Python static library. Make also the
script more verbose: explain what it does.

The GitHub Action job now builds Python with the libpython dynamic
library.
2020-11-24 13:38:08 +01:00
Mark Shannon 582aaf19e8
bpo-41463: Generate information about jumps from 'opcode.py' rather than duplicating it in 'compile.c' (GH-21714)
Generate information about jumps from 'opcode.py' rather than duplicate it in 'compile.c'
2020-08-04 17:30:11 +01:00
Victor Stinner 8182cc2e68
bpo-39573: Use the Py_TYPE() macro (GH-21433)
Replace obj->ob_type with Py_TYPE(obj).
2020-07-10 12:40:38 +02:00
Lysandros Nikolaou 314858e276
bpo-40939: Remove the old parser (Part 2) (GH-21005)
Remove some remaining files and Makefile targets for the old parser
2020-06-20 19:07:25 +01:00
Pablo Galindo 436b648910
bpo-40939: Remove some extra references to PYTHONOLDPARSER (GH-20815)
Automerge-Triggered-By: @pablogsal
2020-06-11 10:08:05 -07:00
Ammar Askar f82807746d
closes bpo-40385: Remove Tools/scripts/checkpyc.py (GH-19709)
This is one of the few files that has intimate knowledge of the pyc file
format. Since it lacks tests it tends to become outdated fairly quickly.
At present it has been broken since the introduction of PEP 552.
2020-04-24 23:33:59 -05:00
Pablo Galindo c5fc156852
bpo-40334: PEP 617 implementation: New PEG parser for CPython (GH-19503)
Co-authored-by: Guido van Rossum <guido@python.org>
Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com>
2020-04-22 23:29:27 +01:00
Lysandros Nikolaou 9a4b38f66b
bpo-40267: Fix message when last input character produces a SyntaxError (GH-19521)
When there is a SyntaxError after reading the last input character from
the tokenizer and if no newline follows it, the error message used to be
`unexpected EOF while parsing`, which is wrong.
2020-04-15 11:22:10 -07:00
Victor Stinner e7c98f08e2
bpo-40094: Fix which.py script exit code (GH-19286)
It now uses os.waitstatus_to_exitcode() to convert os.system() exit
status into an exit code.
2020-04-02 03:42:47 +02:00
Mark Shannon 9af0e47b17
bpo-39156: Break up COMPARE_OP into four logically distinct opcodes. (GH-17754)
Break up COMPARE_OP into four logically distinct opcodes:
* COMPARE_OP for rich comparisons
* IS_OP for 'is' and 'is not' tests
* CONTAINS_OP for 'in' and 'is not' tests
* JUMP_IF_NOT_EXC_MATCH for checking exceptions in 'try-except' statements.
2020-01-14 10:12:45 +00:00
Ruediger Pluem 2b7dc40b2a bpo-38347: find pathfix for Python scripts whose name contain a '-' (GH-16536)
pathfix.py: Assume all files that end on '.py' are Python scripts when working recursively.
2019-10-11 15:36:50 +02:00
PatrikKopkan 1dc1acbd73 bpo-37064: Add option -a to pathfix.py tool (GH-15717)
Add option -a to Tools/Scripts/pathfix.py script: add flags.
2019-09-25 14:26:28 +02:00
Greg Price fa3a38d81f Mark files as executable that are meant as scripts. (GH-15354)
This is the converse of GH-15353 -- in addition to plenty of
scripts in the tree that are marked with the executable bit
(and so can be directly executed), there are a few that have
a leading `#!` which could let them be executed, but it doesn't
do anything because they don't have the executable bit set.

Here's a command which finds such files and marks them.  The
first line finds files in the tree with a `#!` line *anywhere*;
the next-to-last step checks that the *first* line is actually of
that form.  In between we filter out files that already have the
bit set, and some files that are meant as fragments to be
consumed by one or another kind of preprocessor.

    $ git grep -l '^#!' \
      | grep -vxFf <( \
          git ls-files --stage \
          | perl -lane 'print $F[3] if (!/^100644/)' \
        ) \
      | grep -ve '\.in$' -e '^Doc/includes/' \
      | while read f; do
          head -c2 "$f" | grep -qxF '#!' \
          && chmod a+x "$f"; \
        done
2019-09-09 07:16:33 -07:00
PatrikKopkan 50254ac4c1 bpo-37064: Add option -k to Tools/scripts/pathfix.py (GH-15548)
Add flag -k to pathscript.py script: preserve shebang flags.
2019-09-05 16:54:54 +02:00
Victor Stinner 27eeaf0f2c
bpo-37704: Remove Tools/scripts/h2py.py (GH-15000)
Use cffi to access a C API in Python.
2019-07-30 17:45:09 +02:00
Zackery Spytz c4e78b116f bpo-14546: Fix the argument handling in Tools/scripts/lll.py (GH-13026) 2019-05-02 18:03:43 +03:00
Stéphane Wirtel 2b7f93b99a
bpo-36345: Update wsgiref example (GH-12562)
Use literalinclude markup to include Tools/scripts/serve.py code.
Tools/scripts/serve.py first argument on the command line is now optional.
2019-04-16 14:52:54 +02:00
Serhiy Storchaka 172bb39452
bpo-22831: Use "with" to avoid possible fd leaks in tools (part 2). (GH-10927) 2019-03-30 08:33:02 +02:00
Serhiy Storchaka afbb7a371f
bpo-22831: Use "with" to avoid possible fd leaks in tools (part 1). (GH-10926) 2019-03-30 08:32:18 +02:00
Stefan Behnel 68d228f174 bpo-35884: Add string-keys-only microbenchmark for dict access to var_access_benchmark.py (GH-11905) 2019-03-25 01:20:53 -07:00
Raymond Hettinger 43766f82dd bpo-35884: Add missing FIFO queue benchmark (GH-11898)
https://bugs.python.org/issue35884
2019-02-16 12:51:02 -08:00
Raymond Hettinger 9da3583e78 Fix typo (micro->nano) (GH-11759) 2019-02-04 23:32:55 -08:00
Raymond Hettinger f75d59e1a8
bpo-35884: Add variable access benchmarking script (GH-11725) 2019-02-02 22:54:56 -08:00
Serhiy Storchaka 8ac658114d
bpo-30455: Generate all token related code and docs from Grammar/Tokens. (GH-10370)
"Include/token.h", "Lib/token.py" (containing now some data moved from
"Lib/tokenize.py") and new files "Parser/token.c" (containing the code
moved from "Parser/tokenizer.c") and "Doc/library/token-list.inc" (included
in "Doc/library/token.rst") are now generated from "Grammar/Tokens" by
"Tools/scripts/generate_token.py". The script overwrites files only if
needed and can be used on the read-only sources tree.

"Lib/symbol.py" is now generated by "Tools/scripts/generate_symbol_py.py"
instead of been executable itself.

Added new make targets "regen-token" and "regen-symbol" which are now
dependencies of "regen-all".

The documentation contains now strings for operators and punctuation tokens.
2018-12-22 11:18:40 +02:00
Serhiy Storchaka 34fd4c2019
bpo-35133: Fix mistakes when concatenate string literals on different lines. (GH-10284)
Two kind of mistakes:

1. Missed space. After concatenating there is no space between words.

2. Missed comma. Causes unintentional concatenating in a list of strings.
2018-11-05 16:20:25 +02:00
Alexey Izbyshev aa95bfb5fe bpo-32256: Make patchcheck.py work for out-of-tree builds (GH-4760)
Set SRCDIR as the current directory for git.
2018-10-20 02:49:41 +02:00
Shivank98 e3d1455fe4 Update opcode.h header comment to mention the source data file (GH-9935)
This is intended to help code explorers find out more about what's defined there.
2018-10-18 14:53:18 -05:00
Ned Deily 9d6d06e806
pypi.python.org -> pypi.org (GH-7613) 2018-06-11 00:45:50 -04:00
Christian Tismer ea62ce7f4f bpo-33738: Fix macros which contradict PEP 384 (GH-7477)
During development of the limited API support for PySide,
we saw an error in a macro that accessed a type field.

This patch fixes the 7 errors in the Python headers.
Macros which were not written as capitals were implemented
as function.

To do the necessary analysis again, a script was included that
parses all headers and looks for "->tp_" in serctions which can
be reached with active limited API.

It is easily possible to call this script as a test.

Error listing:

../../Include/objimpl.h:243
#define PyObject_IS_GC(o) (PyType_IS_GC(Py_TYPE(o)) && \
    (Py_TYPE(o)->tp_is_gc == NULL || Py_TYPE(o)->tp_is_gc(o)))
Action: commented only

../../Include/objimpl.h:362
#define PyType_SUPPORTS_WEAKREFS(t) ((t)->tp_weaklistoffset > 0)
Action: commented only

../../Include/objimpl.h:364
#define PyObject_GET_WEAKREFS_LISTPTR(o) \
    ((PyObject **) (((char *) (o)) + Py_TYPE(o)->tp_weaklistoffset))
Action: commented only

../../Include/pyerrors.h:143
#define PyExceptionClass_Name(x) \
     ((char *)(((PyTypeObject*)(x))->tp_name))
Action: implemented function

../../Include/abstract.h:593
#define PyIter_Check(obj) \
    ((obj)->ob_type->tp_iternext != NULL && \
     (obj)->ob_type->tp_iternext != &_PyObject_NextNotImplemented)
Action: implemented function

../../Include/abstract.h:713
#define PyIndex_Check(obj)                              \
    ((obj)->ob_type->tp_as_number != NULL &&            \
     (obj)->ob_type->tp_as_number->nb_index != NULL)
Action: implemented function

../../Include/abstract.h:924
#define PySequence_ITEM(o, i)\
    ( Py_TYPE(o)->tp_as_sequence->sq_item(o, i) )
Action: commented only
2018-06-09 14:32:25 -04:00
Benjamin Peterson b8c0845fee
remove hg support from patchcheck (GH-7440) 2018-06-05 22:40:12 -07:00
Brett Cannon a8c342465b
bpo-25427: Remove pyvenv (GH-5962) 2018-04-20 14:15:40 -07:00
Miro Hrončok 5affd5c29e bpo-32885: Tools/scripts/pathfix.py: Add -n option for no backup~ (#5772)
Creating backup files with ~ suffix can be undesirable in some environment,
such as when building RPM packages. Instead of requiring the user to remove
those files manually, option -n was added, that simply disables this feature.

-n was selected because 2to3 has the same option with this behavior.
2018-03-13 05:56:43 -04:00
Antoine Pitrou d7687eb4b6
bpo-31355: Travis-CI: re-enable macOS job (#5858)
The long build queues that plagued macOS builds on Travis seem to be
a thing of the past now.
2018-02-27 21:40:37 +01:00
Victor Stinner dc6b9462c0
bpo-20361: Remove workaround for a now fixed bug (#5283)
"python3 -bb -Wd" now works as expected:
"python3 -bb -Wd -Werror::BytesWarning" is no more needed.
2018-01-23 13:30:53 +01:00
Victor Stinner fe2d5babba
bpo-32159: Remove tools for CVS and Subversion (#4615)
CPython migrated from CVS to Subversion, to Mercurial, and then to
Git. CVS and Subversion are not more used to develop CPython.

* platform module: drop support for sys.subversion. The
  sys.subversion attribute has been removed in Python 3.3.
* Remove Misc/svnmap.txt
* Remove Tools/scripts/svneol.py
* Remove Tools/scripts/treesync.py
2017-11-28 22:29:32 +01:00
Victor Stinner 696b501cd1
bpo-32155: Bugfixes found by flake8 F841 warnings (#4608)
* distutils.config: Use the PyPIRCCommand.realm attribute if set
* turtledemo: wait until macOS osascript command completes to not
  create a zombie process
* Tools/scripts/treesync.py: declare 'default_answer' and
  'create_files' as globals to modify them with the command line
  arguments. Previously, -y, -n, -f and -a options had no effect.

flake8 warning: "F841 local variable 'p' is assigned to but never
used".
2017-11-28 15:30:32 +01:00
Victor Stinner 87d332dcdb bpo-31810: Add smelly.py to check exported symbols (#4057)
* Add Tools/scripts/smelly.py: script checking if all symbols
  exported by libpython start with "Py" or "_Py".
* Modify "make smelly" to run smelly.py: the command now fails with a
  non-zero exit code if libpython leaks a "smelly" symbol.
* Travis CI now runs "make smelly"
2017-10-24 01:29:53 -07:00
Antoine Pitrou b091bec824 bpo-31536: Avoid wholesale rebuild after `make regen-all` (#3678)
* bpo-31536: Avoid wholesale rebuild after `make regen-all`

* Add NEWS
2017-09-20 14:57:56 -07:00
Antoine Pitrou d39dbf4cf1 Simplify run_tests.py (#3482) 2017-09-10 20:32:13 +02:00
Benjamin Peterson 069306312a remove IRIX support (closes bpo-31341) (#3310)
See PEP 11.
2017-09-04 16:36:05 -07:00
Victor Stinner 4a347ce426 bpo-31221: patchcheck ignores external libraries (#3109)
Tools/scripts/patchcheck.py now ignores changes in directories which
are copies of external libraries:

* Modules/_ctypes/libffi_msvc/
* Modules/_ctypes/libffi_osx/
* Modules/_decimal/libmpdec/
* Modules/expat/
* Modules/zlib/

Drop also support for Mercurial, since CPython migrated to Git.

Exclude also libmpdec

patchcheck: exclude also libffi_osx and libffi_msvc
2017-08-17 16:29:15 +02:00
Antoine Pitrou 1ba9469e9f Update `make patchcheck` for blurb and NEWS.d (#2381) 2017-06-25 11:21:49 +10:00
Brett Cannon 70cb1875bb Check the whitespace of pull requests on Travis (GH-2367) 2017-06-24 16:51:23 -07:00
Jon Dufresne 3972628de3 bpo-30296 Remove unnecessary tuples, lists, sets, and dicts (#1489)
* Replaced list(<generator expression>) with list comprehension
* Replaced dict(<generator expression>) with dict comprehension
* Replaced set(<list literal>) with set literal
* Replaced builtin func(<list comprehension>) with func(<generator
  expression>) when supported (e.g. any(), all(), tuple(), min(), &
  max())
2017-05-18 07:35:54 -07:00
Mariatta 58f3c9dc8f bpo-30109: Fix reindent.py (GH-1207)
Skip the file if it has bad encoding.
2017-04-19 22:59:20 -07:00
Nick Coghlan 2abfdf5a81 Issue #29798: Handle git worktree in patchcheck (#1058)
The original attempted fix missed an `isdir()` call in
`get_base_branch()`.
2017-04-09 18:33:03 +10:00
Nick Coghlan 6a6d090612 bpo-29798: Handle git worktree in `make patchcheck` (#629)
In git worktree directories, `.git` is a configuration
file rather than a subdirectory
2017-03-12 19:37:09 +10:00
Nick Coghlan 482f7a274f bpo-29656: Handle PR branches in 'make patchcheck' (#302) 2017-03-12 13:19:08 +10:00
Victor Stinner 213cc388c7 Reintroduce Python2 support in generate_opcode_h.py
Issue #28821.

Add also a message to show that the command did something :-)
2016-11-28 18:13:52 +01:00
Victor Stinner 6193ecd779 Fix a ResourceWarning in generate_opcode_h.py
Use a context manager to close the Python file. Replace also open() with
tokenize.open() to handle coding cookie if any in Lib/opcode.py.
2016-11-25 11:59:52 +01:00
Victor Stinner 3e56c23e7d regrtest: add -u for unbuffered stdout/stderr 2016-09-21 17:12:50 +02:00
Berker Peksag 1cd53f6100 Issue #26830: Refactor Tools/scripts/google.py
Patch by Francisco Couzo.
2016-09-14 10:59:27 +03:00
Martin Panter bdb847ae99 Issue #27952: Merge fixcid.py from 3.5 2016-09-11 10:06:38 +00:00
Martin Panter b7665386bc Issue #27952: Get fixcid.py working with the re module 2016-09-11 09:32:26 +00:00
Gregory P. Smith ext:(%20%5BGoogle%20Inc.%5D) a68c1bca7b Remove legacy "from __future__ import with_statement" lines. 2016-09-08 13:47:41 -07:00
R David Murray 44b548dda8 #27364: fix "incorrect" uses of escape character in the stdlib.
And most of the tools.

Patch by Emanual Barry, reviewed by me, Serhiy Storchaka, and
Martin Panter.
2016-09-08 13:59:53 -04:00
Ned Deily 622b2f6ec9 Issue #24225: Fix additional renamed module references. 2016-06-03 17:50:44 -07:00
Serhiy Storchaka ccd047ea4b Removed unused imports. 2016-04-25 00:12:32 +03:00
Serhiy Storchaka a051bf3afb Issue #26581: Use the first coding cookie on a line, not the last one. 2016-03-20 23:47:48 +02:00
Serhiy Storchaka e431d3c9aa Issue #26581: Use the first coding cookie on a line, not the last one. 2016-03-20 23:36:29 +02:00
Serhiy Storchaka 885bdc4946 Issue #25985: sys.version_info is now used instead of sys.version
to format short Python version.
2016-02-11 13:10:36 +02:00
Martin Panter b4ce1fc31b Issue #5319: New Py_FinalizeEx() API to exit with status 120 on failure 2015-11-30 03:18:29 +00:00
Terry Jan Reedy 4df429618d Merge with 3.5 2015-10-30 19:26:03 -04:00
Terry Jan Reedy 3f209b63f5 Merge with 3.4 2015-10-30 19:25:50 -04:00
Terry Jan Reedy a05e7f6743 Issue #25505: Remove unused buggy method. 2015-10-30 19:25:34 -04:00
Brett Cannon dd1e670758 Fix a variable typo by switching to a f-string. 2015-10-26 17:11:04 -07:00
Brett Cannon f1c47e4751 Issue #25154: Make the file argument apply to the print function and
not str.format call.
2015-10-25 17:40:31 -07:00
Brett Cannon 9b63868f77 Issue #25154: Deprecate the pyvenv script.
This was done so as to move users to `python3 -m venv` which prevents
confusion over which Python interpreter will be used in the virtual
environment when more than one is installed.
2015-10-16 15:14:27 -07:00
Yury Selivanov f488fb422a Issue #19235: Add new RecursionError exception. Patch by Georg Brandl. 2015-07-03 01:04:23 -04:00
Serhiy Storchaka 3028c955fa Issue #24288: Generated opcode.h no longer contains trailing spaces and tabs. 2015-05-27 21:31:33 +03:00
Serhiy Storchaka ba9ac5b5c4 Issue #16261: Converted some bare except statements to except statements
with specified exception type.  Original patch by Ramchandra Apte.
2015-05-20 10:33:40 +03:00
Serhiy Storchaka d2a694c1be Issue #23330: h2py now supports arbitrary filenames in #include. 2015-05-03 15:36:37 +03:00
Serhiy Storchaka b9c04db64f Issue #23330: h2py now supports arbitrary filenames in #include. 2015-05-03 15:35:14 +03:00
Christian Heimes c314e28766 Issue #24031: make patchcheck now supports git checkouts, too. 2015-04-23 11:25:41 +02:00
Christian Heimes d98c6773fa Issue #24031: make patchcheck now supports git checkouts, too. 2015-04-23 11:24:14 +02:00
Serhiy Storchaka 45ec3288d0 Removed trailing whitespaces in miscalenous files. 2015-04-03 19:42:32 +03:00
Steve Dower 17be514d0a Closes #23437: Make user scripts directory versioned on Windows (patch by pmoore) 2015-02-14 09:50:59 -08:00
Benjamin Peterson 864d57c244 merge 3.4 (#23130) 2014-12-30 10:09:30 -06:00
Benjamin Peterson 3cd1af51f6 merge 3.3 (#23130) 2014-12-30 10:09:17 -06:00
Benjamin Peterson 9582b33933 merge 3.2 (#23130) 2014-12-30 10:08:52 -06:00
Benjamin Peterson 44e4b98ff0 delete old ftpmirror script, which now has security bugs (closes #23130) 2014-12-30 10:08:16 -06:00
Serhiy Storchaka 7a1104d292 Issue #22924: Scripts gprof2html.py and highlight.py now use html.escape()
instead of deperecated cgi.escape().  Original patch by Raymond Hettinger.
2014-12-01 10:50:33 +02:00
Serhiy Storchaka cac7ec485b Issue #22924: Scripts gprof2html.py and highlight.py now use html.escape()
instead of deperecated cgi.escape().  Original patch by Raymond Hettinger.
2014-12-01 10:51:37 +02:00
Georg Brandl 6e868b7bef merge with 3.4 2014-10-19 11:55:15 +02:00
Georg Brandl 24f0717b82 Closes #22663: patchcheck: only modify text files under Doc/ 2014-10-19 11:54:08 +02:00
Zachary Ware 51af1deb32 Merge removal of Tools/scripts/pydocgui.pyw 2014-07-16 13:30:27 -05:00
Zachary Ware 52b2bc0369 Remove Tools/scripts/pydocgui.pyw.
pydoc.gui was removed over 3 years ago (#10818), this script has been
utterly bereft of worth since then.
2014-07-16 13:24:55 -05:00
Serhiy Storchaka 992334127e Issue #18974: Tools/scripts/diff.py now uses argparse instead of optparse. 2014-07-15 13:23:58 +03:00
Berker Peksag 6960c1a94b Issue #21906: Merge from 3.4. 2014-07-11 20:44:39 +03:00
Berker Peksag 7aee3ecd57 Issue #21906: Make Tools/scripts/md5sum.py work in Python 3.
Patch by Zachary Ware.
2014-07-11 20:42:18 +03:00
Zachary Ware 69d2d013f1 Issue #21907: Exit with the correct return code 2014-07-07 15:07:46 -05:00
Zachary Ware e12fa65744 Issue #21907: Improved the batch scripts provided for building Python.
The user-facing scripts in PCbuild have been updated to be easier to use
and the buildbot scripts in Tools\buildbot have been updated to use the
user-facing scripts in PCbuild wherever possible.
2014-07-07 13:39:59 -05:00
Antoine Pitrou a171979a19 Remove a workaround for fixed issue #20355. 2014-04-29 00:58:02 +02:00
Ned Deily 7fae75a415 Issue #17861: Allow generate_opcode_h to run with a system Python 2.5.
Patch by David Bolen.
2014-04-28 13:46:36 -07:00
Thomas Wouters 67d8dc1f58 Fix Tools/scripts/generate_opcode_h.py from issue #17861 to work correctly
when building in a separate object tree. More people should build this way.
This may still fail if the source is unwritable, I haven't tested that yet.
2014-04-17 01:13:29 +02:00
Kushal Das 02d23a212a Closes Issue 17861: Autogenerate Include/opcode.h from opcode.py.
It includes required changes in Makefile.pre.in and configure.ac
among other files.
2014-04-15 23:50:06 +05:30
Serhiy Storchaka eb44b2d9e8 Issue #20535: PYTHONWARNING no longer affects the run_tests.py script.
Patch by Arfrever Frehtes Taifersar Arahesis.
2014-02-24 14:00:38 +02:00
Serhiy Storchaka 20f8728bf0 Issue #20535: PYTHONWARNING no longer affects the run_tests.py script.
Patch by Arfrever Frehtes Taifersar Arahesis.
2014-02-24 13:57:00 +02:00
Serhiy Storchaka 8f8ec92de8 Issue #19936: Added executable bits or shebang lines to Python scripts which
requires them.  Disable executable bits and shebang lines in test and
benchmark files in order to prevent using a random system python, and in
source files of modules which don't provide command line interface.  Fixed
shebang lines in the unittestgui and checkpip scripts.
2014-01-16 17:33:23 +02:00
Serhiy Storchaka b992a0e102 Issue #19936: Added executable bits or shebang lines to Python scripts which
requires them.  Disable executable bits and shebang lines in test and
benchmark files in order to prevent using a random system python, and in
source files of modules which don't provide command line interface.  Fixed
shebang line to use python3 executable in the unittestgui script.
2014-01-16 17:15:49 +02:00
Serhiy Storchaka f4c9664a24 Fixed the serve.py script.
The application object must return an iterable yielding bytestrings.
2014-01-11 11:53:13 +02:00
Serhiy Storchaka 02d5db2777 Fixed the serve.py script.
The application object must return an iterable yielding bytestrings.
2014-01-11 11:52:20 +02:00
Serhiy Storchaka 7282ff6d5b Issue #18960: Fix bugs with Python source code encoding in the second line.
* The first line of Python script could be executed twice when the source
encoding (not equal to 'utf-8') was specified on the second line.

* Now the source encoding declaration on the second line isn't effective if
the first line contains anything except a comment.

* As a consequence, 'python -x' works now again with files with the source
encoding declarations specified on the second file, and can be used again
to make Python batch files on Windows.

* The tokenize module now ignore the source encoding declaration on the second
line if the first line contains anything except a comment.

* IDLE now ignores the source encoding declaration on the second line if the
first line contains anything except a comment.

* 2to3 and the findnocoding.py script now ignore the source encoding
declaration on the second line if the first line contains anything except
a comment.
2014-01-09 18:41:59 +02:00
Serhiy Storchaka 768c16ce02 Issue #18960: Fix bugs with Python source code encoding in the second line.
* The first line of Python script could be executed twice when the source
encoding (not equal to 'utf-8') was specified on the second line.

* Now the source encoding declaration on the second line isn't effective if
the first line contains anything except a comment.

* As a consequence, 'python -x' works now again with files with the source
encoding declarations specified on the second file, and can be used again
to make Python batch files on Windows.

* The tokenize module now ignore the source encoding declaration on the second
line if the first line contains anything except a comment.

* IDLE now ignores the source encoding declaration on the second line if the
first line contains anything except a comment.

* 2to3 and the findnocoding.py script now ignore the source encoding
declaration on the second line if the first line contains anything except
a comment.
2014-01-09 18:36:09 +02:00
Serhiy Storchaka 6787a3806e Issue #15204: Deprecated the 'U' mode in file-like objects. 2013-11-23 22:12:06 +02:00
Nick Coghlan d0cf0635b3 Close #19406: Initial implementation of ensurepip
Patch by Donald Stufft and Nick Coghlan
2013-11-11 22:11:55 +10:00
Serhiy Storchaka 935349406a Issue #18873: The tokenize module, IDLE, 2to3, and the findnocoding.py script
now detect Python source code encoding only in comment lines.
2013-09-16 23:57:00 +03:00
Serhiy Storchaka dafea85190 Issue #18873: The tokenize module, IDLE, 2to3, and the findnocoding.py script
now detect Python source code encoding only in comment lines.
2013-09-16 23:51:56 +03:00
Ezio Melotti d640fe2af5 #18803: merge with 3.3. 2013-08-26 01:33:30 +03:00
Ezio Melotti 7c4a7e6f3c #18803: fix more typos. Patch by Févry Thibault. 2013-08-26 01:32:56 +03:00
Andrew Kuchling f3a2e9f937 #18445: update Tools/scripts/README.
- document abitype.py, analyze_dxp.py, get-remote-certificate.py,
  import_diagnostics.py, parse_html5_entities.py.
- remove redemo.py which was moved to Tools/Demo.
- sort list into alphabetical order

Patch by Seydou Dia.
2013-08-18 20:04:34 -04:00
Andrew Kuchling d36b515954 #18445: change permissions on some scripts to executable 2013-08-18 19:48:12 -04:00
Terry Jan Reedy db53ad7cf1 Merge with 3.3 2013-07-21 20:58:15 -04:00
Terry Jan Reedy 6e2711b345 Issue #18439: Make patchcheck work on Windows for ACKS, NEWS. 2013-07-21 20:57:44 -04:00
Brett Cannon 53e600c24a Issue #17177: update checkpyc to stop using imp 2013-06-15 18:10:18 -04:00
Serhiy Storchaka 369d05a616 Fix some bugs in Tools/scripts/abitype.py. 2013-05-17 10:17:43 +03:00
Serhiy Storchaka e67f8e7419 Fix some bugs in Tools/scripts/abitype.py. 2013-05-17 10:18:40 +03:00
Ned Deily dbccf6ad4c Issue #17801: fix shebang line of gprof2html.py 2013-04-20 14:08:16 -07:00
Ned Deily 67804e9838 Issue #17801: fix shebang line of gprof2html.py 2013-04-20 14:07:43 -07:00
Victor Stinner 765531d2d0 Issue #17516: use comment syntax for comments, instead of multiline string 2013-03-26 01:11:54 +01:00
doko@python.org 6951fea3ab - Issue #17029: Let h2py search the multiarch system include directory. 2013-01-25 13:20:46 +01:00
doko@python.org 0c77bf757f - Issue #17029: Let h2py search the multiarch system include directory. 2013-01-25 13:19:35 +01:00
doko@python.org 3e6e2ac31d - Issue #17029: Let h2py search the multiarch system include directory. 2013-01-25 13:12:29 +01:00
Serhiy Storchaka 1829bb4591 Issue #15539: Fix a backup file creation in pindent.py on Windows. 2013-01-11 22:21:45 +02:00
Serhiy Storchaka b4fb2e2aac Issue #15539: Fix a backup file creation in pindent.py on Windows. 2013-01-11 22:19:07 +02:00
Serhiy Storchaka a3a01b6ac3 Issue #15539: Fix a backup file creation in pindent.py on Windows. 2013-01-11 22:18:17 +02:00
Ezio Melotti e814501c21 Merge patchcheck changes with 3.3 2013-01-11 14:12:42 +02:00
Ezio Melotti 8762595ef3 Merge patchcheck changes with 3.2 2013-01-11 14:12:20 +02:00
Ezio Melotti 5e12bb728f Add a note about checking refleaks to patchcheck. 2013-01-11 14:07:47 +02:00
Serhiy Storchaka 9942e5a9cf Issue #15539: Fix a number of bugs in Tools/scripts/pindent.py.
Now pindent.py works with a "with" statement.  pindent.py no longer produces
improper indentation.  pindent.py now works with continued lines broken after
"class" or "def" keywords and with continuations at the start of line.  Added
regression tests for pindent.py.  Modernized pindent.py.
2013-01-11 12:12:32 +02:00
Serhiy Storchaka 40ce22edb5 Issue #15539: Fix a number of bugs in Tools/scripts/pindent.py.
Now pindent.py works with a "with" statement.  pindent.py no longer produces
improper indentation.  pindent.py now works with continued lines broken after
"class" or "def" keywords and with continuations at the start of line.  Added
regression tests for pindent.py.  Modernized pindent.py.
2013-01-11 12:10:57 +02:00
Serhiy Storchaka 6840a54ad4 Issue #15539: Fix a number of bugs in Tools/scripts/pindent.py.
Now pindent.py works with a "with" statement.  pindent.py no longer produces
improper indentation.  pindent.py now works with continued lines broken after
"class" or "def" keywords and with continuations at the start of line.  Added
regression tests for pindent.py.  Modernized pindent.py.
2013-01-11 12:04:23 +02:00
Andrew Svetlov 8b33dd8e54 Use OESeeror instead of os.error (#16720)
Patch by Serhiy Storchaka.
2012-12-24 19:58:48 +02:00
Andrew Svetlov 2606a6f197 Issue #16719: Get rid of WindowsError. Use OSError instead
Patch by Serhiy Storchaka.
2012-12-19 14:33:35 +02:00
Andrew Svetlov a191959849 Issue #16714: use 'raise' exceptions, don't 'throw'.
Patch by Serhiy Storchaka.
2012-12-18 21:27:16 +02:00
Andrew Svetlov 5b89840d9c Issue #16714: use 'raise' exceptions, don't 'throw'.
Patch by Serhiy Storchaka.
2012-12-18 21:26:36 +02:00
Andrew Svetlov 737fb89dd1 Issue #16714: use 'raise' exceptions, don't 'throw'.
Patch by Serhiy Storchaka.
2012-12-18 21:14:22 +02:00
Nick Coghlan 8155f8e5d4 Issue #5765: Merge from 3.3 2012-11-05 00:19:49 +10:00
Nick Coghlan 10d6ddeef1 Issue #5765: Also check the compiler when finding the recursion limit 2012-11-05 00:19:18 +10:00
Ezio Melotti ccc9e617f5 #16245: add a script to generate the html.entities.html5 dict. 2012-10-23 15:46:33 +02:00
Benjamin Peterson b29614e047 compare singletons by identity not equality (closes #16712)
Patch from Serhiy Storchaka.
2012-10-09 11:16:03 -04:00
Victor Stinner a90f311d05 Cleanup findnocoding.py and pysource.py scripts (with infile/infile.close) 2012-08-02 00:05:41 +02:00
Victor Stinner 98516a6930 Fix findnocoding.p and pysource.py scripts
I suppose that these scripts didn't work since Python 3.0.
2012-08-01 20:12:51 +02:00
Raymond Hettinger d3f63d3661 Simplify the LaTeX section (only three escapes are needed for alltt) 2012-07-23 00:24:24 -05:00
Raymond Hettinger c4ac789be7 Fix-up latex styling 2012-07-14 17:58:29 -07:00
Raymond Hettinger fb20a1a924 Fix builtin test and simplify the classified text tuple. 2012-07-13 11:52:45 -07:00
Raymond Hettinger 7d39055f7f Add simple LaTeX markup 2012-07-09 23:52:08 -07:00
Raymond Hettinger 848245a078 Add verbose option for diagnostics 2012-07-09 01:17:22 -07:00
Raymond Hettinger 42a5f4a3f2 Minor algorithmic tweaks, better factoring, improved docstrings and variable names 2012-07-08 15:42:54 -07:00
Mark Dickinson 3bee1f1154 Fix undefined names in __all__. 2012-07-04 11:07:06 +02:00
Raymond Hettinger 5b381a3650 Make ANSI the default output style 2012-07-03 17:55:23 -07:00
Raymond Hettinger 0712f40308 Add examples to the module docstring 2012-07-03 14:42:33 -07:00
Raymond Hettinger 1087d9c4b3 Fix spelling. 2012-07-03 14:25:16 -07:00
Raymond Hettinger 3a96161a73 Add support for ANSI escape sequences 2012-07-03 14:11:40 -07:00
Raymond Hettinger 5da6039765 Refactor to isolate HTML encoding step from the parsing step. 2012-07-03 13:13:52 -07:00
Raymond Hettinger ac5f8467b1 Fix keyword argument 2012-07-03 00:15:59 -07:00
Raymond Hettinger cf6eac4063 Minor cleanups 2012-07-03 00:12:27 -07:00
Raymond Hettinger ecea0fb173 Use new-style string formatting for the HTML template 2012-07-02 17:17:16 -07:00
Raymond Hettinger f57baaba49 Clean-up unused variable 2012-07-02 13:54:33 -07:00
Raymond Hettinger f2cc352afd Do HTML escaping after the tokenization step. 2012-07-02 13:29:57 -07:00
Georg Brandl 487f191b79 Fix filename. 2012-07-01 10:04:35 +02:00
Raymond Hettinger e4870b5117 Limit which operators get colorized 2012-07-01 00:37:05 -07:00