summaryrefslogtreecommitdiffstats
path: root/Tools
Commit message (Collapse)AuthorAgeFilesLines
...
* gh-104050: Run mypy on `clinic.py` in CI (#104421)Alex Waygood2023-05-154-24/+55
| | | | | | | | | | * Add basic mypy workflow to CI * Make the type check pass --------- Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com> Co-authored-by: Nikita Sobolev <mail@sobolevn.me> Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
* GH-103082: Filter LINE events in VM, to simplify tool implementation. ↵Mark Shannon2023-05-121-1/+1
| | | | | | | | (GH-104387) When monitoring LINE events, instrument all instructions that can have a predecessor on a different line. Then check that the a new line has been hit in the instrumentation code. This brings the behavior closer to that of 3.11, simplifying implementation and porting of tools.
* gh-104389: Add 'unused' keyword to Argument Clinic C converters (#104390)Erlend E. Aasland2023-05-121-1/+19
| | | | | | | | | Use the unused keyword param in the converter to explicitly mark an argument as unused: /*[clinic input] SomeBaseClass.stubmethod flag: bool(unused=True) [clinic start generated code]*/
* gh-87729: improve hit rate of LOAD_SUPER_ATTR specialization (#104270)Carl Meyer2023-05-111-3/+5
|
* GH-102181: Improve specialization stats for SEND (GH-102182)penguin_wwy2023-05-101-0/+2
|
* gh-90953: Don't use deprecated AST nodes in clinic.py (#104322)Alex Waygood2023-05-091-9/+3
|
* Trim trailing whitespace and test on CI (#104275)Hugo van Kemenade2023-05-082-2/+2
| | | | Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* gh-99108: Replace SHA3 implementation HACL* version (#103597)Jonathan Protzenko2023-05-081-7/+1
| | | | | | | | | | | Replaces our built-in SHA3 implementation with a verified one from the HACL* project. This implementation is used when OpenSSL does not provide SHA3 or is not present. 3.11 shiped with a very slow tiny sha3 implementation to get off of the <=3.10 reference implementation that wound up having serious bugs. This brings us back to a reasonably performing built-in implementation consistent with what we've just replaced our other guaranteed available standard hash algorithms with: code from the HACL* project. --------- Co-authored-by: Gregory P. Smith <greg@krypto.org>
* gh-64660: Don't hardcode Argument Clinic return converter result variable ↵Erlend E. Aasland2023-05-071-9/+14
| | | | name (#104200)
* gh-101819: Port _io.PyBytesIOBuffer_Type to heap type (#104264)Erlend E. Aasland2023-05-071-1/+0
|
* gh-101819: Adapt _io.PyWindowsConsoleIO_Type to heap type (#104197)Erlend E. Aasland2023-05-071-1/+0
|
* gh-101819: Port _io.PyIncrementalNewlineDecoder_Type to heap type (#104249)Erlend E. Aasland2023-05-071-1/+0
|
* gh-104146: Remove unused var 'parser_body_declarations' from clinic.py (#104214)Erlend E. Aasland2023-05-051-3/+1
|
* gh-103533: Use PEP 669 APIs for cprofile (GH-103534)Tian Gao2023-05-051-0/+1
|
* gh-64595: Argument Clinic: Touch source file if any output file changed ↵Erlend E. Aasland2023-05-051-6/+13
| | | | (#104152)
* gh-68395: Avoid naming conflicts by mangling variable names in Argument ↵Erlend E. Aasland2023-05-051-1/+12
| | | | | Clinic (#104065) Add all internally used variable names to CLINIC_PREFIXED_ARGS.
* gh-103963: fix 'make regen-opcode' in out-of-tree builds (#104177)Carl Meyer2023-05-041-1/+1
|
* gh-102500: Implement PEP 688 (#102521)Jelle Zijlstra2023-05-043-0/+4
| | | Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
* gh-104146: Remove unused 'second_pass_replacements' from clinic.py (#104147)Erlend E. Aasland2023-05-041-19/+2
| | | | The code that manipulated 'second_pass_replacements' was removed in 2015 with commit 0759f84 (gh-67688, bpo-23500).
* GH-103963: Make dis display names of args for intrinsics opcodes (#104029)Juhi Chandalia2023-05-031-2/+34
|
* gh-98040: Remove just the `imp` module (#98573)Barry Warsaw2023-04-283-9/+8
|
* gh-103583: Isolate CJK codec modules (#103869)Erlend E. Aasland2023-04-271-21/+0
|
* gh-103092: Isolate _ctypes, part 1 (#103893)Erlend E. Aasland2023-04-271-6/+2
| | | | | | | | | Establish global state and port the following types to heap types: - DictRemover_Type - PyCArg_Type - PyCThunk_Type - PyCField_Type - StructParam_Type
* gh-103875: Use ascii and latin1 singletons in deepfreeze (#103876)Yichen Yan2023-04-261-0/+6
|
* gh-101659: Isolate "obmalloc" State to Each Interpreter (gh-101660)Eric Snow2023-04-241-0/+1
| | | | | | | | | | | | | | This is strictly about moving the "obmalloc" runtime state from `_PyRuntimeState` to `PyInterpreterState`. Doing so improves isolation between interpreters, specifically most of the memory (incl. objects) allocated for each interpreter's use. This is important for a per-interpreter GIL, but such isolation is valuable even without it. FWIW, a per-interpreter obmalloc is the proverbial canary-in-the-coalmine when it comes to the isolation of objects between interpreters. Any object that leaks (unintentionally) to another interpreter is highly likely to cause a crash (on debug builds at least). That's a useful thing to know, relative to interpreter isolation.
* gh-103801: Tools/wasm linting and formatting (#103796)Daniel Versoza2023-04-242-3/+4
| | | | | | | | | | | | This PR makes three minor linting adjustments to the `wasm` module caught by [ruff](https://github.com/charliermarsh/ruff). <!-- gh-issue-number: gh-103801 --> * Issue: gh-103801 <!-- /gh-issue-number --> --------- Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
* gh-84436: Implement Immortal Objects (gh-19474)Eddie Elizondo2023-04-221-1/+1
| | | | | | | | | This is the implementation of PEP683 Motivation: The PR introduces the ability to immortalize instances in CPython which bypasses reference counting. Tagging objects as immortal allows up to skip certain operations when we know that the object will be around for the entire execution of the runtime. Note that this by itself will bring a performance regression to the runtime due to the extra reference count checks. However, this brings the ability of having truly immutable objects that are useful in other contexts such as immutable data sharing between sub-interpreters.
* gh-102856: Initial implementation of PEP 701 (#102855)Pablo Galindo Salgado2023-04-192-0/+3
| | | | | | Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com> Co-authored-by: Batuhan Taskaya <isidentical@gmail.com> Co-authored-by: Marta Gómez Macías <mgmacias@google.com> Co-authored-by: sunmy2019 <59365878+sunmy2019@users.noreply.github.com>
* gh-95299: Stop installing setuptools as a part of ensurepip and venv (#101039)Pradyun Gedam2023-04-181-1/+1
| | | | | | | Remove the bundled setuptools wheel from ensurepip, and stop installing setuptools in environments created by venv. Co-Authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com> Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM> Co-authored-by: Oleg Iarygin <oleg@arhadthedev.net>
* gh-103583: Add codecs and maps to _codecs_* module state (#103540)Erlend E. Aasland2023-04-171-2/+0
|
* gh-103326: Remove `Python/importlib.h` (GH-103331)Nikita Sobolev2023-04-121-1/+0
| | | | Co-authored-by: Brett Cannon <brett@python.org> Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
* gh-103092: Isolate `_collections` (#103093)Erlend E. Aasland2023-04-121-5/+0
| | | Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
* GH-103082: Implementation of PEP 669: Low Impact Monitoring for CPython ↵Mark Shannon2023-04-123-5/+8
| | | | | | | | | | (GH-103083) * The majority of the monitoring code is in instrumentation.c * The new instrumentation bytecodes are in bytecodes.c * legacy_tracing.c adapts the new API to the old sys.setrace and sys.setprofile APIs
* Remove redundant words from interpreter_definition.md. (GH-103455)Benjamin Peterson2023-04-111-3/+3
|
* gh-91276: remove unused _PyOpcode_RelativeJump (#103156)Irit Katriel2023-04-111-2/+0
|
* gh-103334: Ignore `Tools/c-analyzer/cpython/_parser.py` from `patchcheck` ↵Nikita Sobolev2023-04-102-2/+15
| | | | | | | (GH-103335) I've also added a small comment to `Tools/c-analyzer/cpython/_parser.py` to trigger the `patchcheck` CI. It must pass now. Automerge-Triggered-By: GH:ericsnowcurrently
* gh-103300: Fix `Popen.wait()` deadlock in patchcheck.py (#103301)Oleg Iarygin2023-04-091-2/+3
|
* gh-103092: Isolate `socket` module (#103094)Erlend E. Aasland2023-04-091-6/+0
|
* gh-100176: Tools/iobench: Remove redundant compat code for Python <= 3.2 ↵Hugo van Kemenade2023-04-081-42/+54
| | | | | | (#100197) Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* gh-103092: Isolate `_pickle` module (#102982)Erlend E. Aasland2023-04-041-5/+0
| | | | Co-authored-by: Mohamed Koubaa <koubaa.m@gmail.com> Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
* gh-87092: move CFG related code from compile.c to flowgraph.c (#103021)Irit Katriel2023-03-312-3/+5
|
* gh-102110: Add all tools description missed (GH-102625)Missoupro2023-03-302-3/+32
| | | | | Added missing descriptions of some tools. Automerge-Triggered-By: GH:hugovk
* gh-90110: Bring the whitelists up to date. (gh-103114)Eric Snow2023-03-292-2/+3
| | | https://github.com/python/cpython/issues/90110
* GH-102973: add a dev container (GH-102975)Brett Cannon2023-03-291-0/+1
| | | | | | On content update, builds `python` and the docs. Also adds a Dockerfile that should include everything but autoconf 2.69 that's necessary to build CPython and the entire stdlib on Fedora. Co-authored-by: Ronald Oussoren <ronaldoussoren@mac.com> Co-authored-by: Dusty Phillips <dusty@phillips.codes>
* gh-100227: Move the Dict of Interned Strings to PyInterpreterState (gh-102339)Eric Snow2023-03-281-2/+2
| | | | | We can revisit the options for keeping it global later, if desired. For now the approach seems quite complex, so we've gone with the simpler isolation solution in the meantime. https://github.com/python/cpython/issues/100227
* GH-100982: Break up COMPARE_AND_BRANCH (GH-102801)Brandt Bucher2023-03-232-3/+0
|
* gh-102033: Fix syntax error in `Tools/c-analyzer` (GH-102066)Nikita Sobolev2023-03-2214-335/+3
| | | The easiest way to format strings with `{}` meaningful chars is via `%`.
* GH-101291: Rearrange the size bits in PyLongObject (GH-102464)Mark Shannon2023-03-222-13/+23
| | | | | | | | | | * Eliminate all remaining uses of Py_SIZE and Py_SET_SIZE on PyLongObject, adding asserts. * Change layout of size/sign bits in longobject to support future addition of immortal ints and tagged medium ints. * Add functions to hide some internals of long object, and for setting sign and digit count. * Replace uses of IS_MEDIUM_VALUE macro with _PyLong_IsCompact().
* gh-102304: Move _Py_RefTotal to _PyRuntimeState (gh-102543)Eric Snow2023-03-201-1/+1
| | | | | | | The essentially eliminates the global variable, with the associated benefits. This is also a precursor to isolating this bit of state to PyInterpreterState. Folks that currently read _Py_RefTotal directly would have to start using _Py_GetGlobalRefTotal() instead. https://github.com/python/cpython/issues/102304
* gh-102781: fix cwd dependence in cases generator (#102782)Carl Meyer2023-03-171-1/+3
|