Crowthebird
28187a9c4f
gh-105908: fix `barry_as_FLUFL` future import ( #105909 )
2023-06-19 22:50:57 +01:00
Mark Shannon
581619941e
GH-104584: Assorted fixes for the optimizer API. (GH-105683)
...
* Add test for long loops
* Clear ENTER_EXECUTOR when deopting code objects.
2023-06-19 10:32:20 +01:00
Irit Katriel
14d01262da
gh-105481: remove HAS_ARG, HAS_CONST, IS_JUMP_OPCODE, IS_PSEUDO_OPCODE and replace by their new versions ( #105865 )
2023-06-17 17:00:16 +01:00
Brandt Bucher
2beab5bdef
GH-105840: Fix assertion failures when specializing calls with too many __defaults__ (GH-105847)
2023-06-16 11:01:15 -07:00
Brandt Bucher
a4056c8f9c
GH-105588: Add missing error checks to some obj2ast_* converters (GH-105589)
2023-06-15 15:45:13 -07:00
Irit Katriel
d1b0297d3e
gh-105481: add HAS_JUMP flag to opcode metadata ( #105791 )
2023-06-14 23:14:22 +00:00
Mark Shannon
1d857da7f0
GH-77273: Better bytecodes for f-strings (GH-6132)
2023-06-14 16:15:08 +01:00
Mark Shannon
7199584ac8
GH-100987: Allow objects other than code objects as the "executable" of an internal frame. (GH-105727)
...
* Add table describing possible executable classes for out-of-process debuggers.
* Remove shim code object creation code as it is no longer needed.
* Make lltrace a bit more robust w.r.t. non-standard frames.
2023-06-14 13:46:37 +01:00
Eric Snow
b87d288275
gh-105699: Use a Thread-Local Variable for PKGCONTEXT (gh-105740)
...
This fixes a race during import. The existing _PyRuntimeState.imports.pkgcontext is shared between interpreters, and occasionally this would cause a crash when multiple interpreters were importing extensions modules at the same time. To solve this we add a thread-local variable for the value. We also leave the existing state (and infrequent race) in place for platforms that do not support thread-local variables.
2023-06-13 18:58:23 -06:00
Eric Snow
757b402ea1
gh-104812: Run Pending Calls in any Thread (gh-104813)
...
For a while now, pending calls only run in the main thread (in the main interpreter). This PR changes things to allow any thread run a pending call, unless the pending call was explicitly added for the main thread to run.
2023-06-13 15:02:19 -06:00
Irit Katriel
be2779c0cb
gh-105481: add flags to each instr in the opcode metadata table, to replace opcode.hasarg/hasname/hasconst ( #105482 )
2023-06-13 21:42:03 +01:00
Eric Snow
b97e14a806
gh-105603: Change the PyInterpreterConfig.own gil Field (gh-105620)
...
We are changing it to be more flexible that a strict bool can be for possible future expanded used cases.
2023-06-13 11:08:32 -06:00
Mark Shannon
09ffa69e2e
GH-105678: Split MAKE_FUNCTION into MAKE_FUNCTION and SET_FUNCTION_ATTRIBUTE (GH-105680)
2023-06-13 09:51:05 +01:00
Nikita Sobolev
a8d69fe92c
gh-105673: Fix uninitialized warning in sysmodule.c ( #105674 )
...
In sys_add_xoption(), 'value' may be uninitialized for some error paths.
2023-06-12 08:47:56 +00:00
Irit Katriel
58f5227d7c
gh-105481: add pseudo-instructions to the bytecodes DSL ( #105506 )
2023-06-11 22:31:59 +01:00
Erlend E. Aasland
41cddc2e93
gh-105375: Improve error handling in the sys extension module ( #105611 )
...
In _PySys_AddXOptionWithError() and sys_add_xoption(),
bail on first error to prevent exceptions from possibly being
overwritten.
2023-06-11 20:02:49 +00:00
Erlend E. Aasland
567d6ae8e7
gh-105375: Improve PyErr_WarnExplicit() error handling ( #105610 )
...
Bail on first error to prevent exceptions from possibly being
overwritten.
2023-06-11 21:23:28 +02:00
Erlend E. Aasland
d4fa52934a
gh-105375: Improve error handling in the builtins extension module ( #105585 )
2023-06-11 12:20:43 +02:00
Erlend E. Aasland
6c832ddcf2
gh-105375: Improve error handling in compiler_enter_scope() ( #105494 )
2023-06-09 18:55:53 +02:00
Pablo Galindo Salgado
d7f46bcd98
gh-105564: Don't include artificial newlines in the line attribute of tokens ( #105565 )
2023-06-09 17:01:26 +01:00
Victor Stinner
3e525d2212
gh-105396: Deprecate PyImport_ImportModuleNoBlock() function ( #105397 )
...
Deprecate the PyImport_ImportModuleNoBlock() function which is just
an alias to PyImport_ImportModule() since Python 3.3.
2023-06-09 10:30:57 +02:00
Eric Snow
68dfa49627
gh-100227: Lock Around Modification of the Global Allocators State (gh-105516)
...
The risk of a race with this state is relatively low, but we play it safe anyway. We do avoid using the lock in performance-sensitive cases where the risk of a race is very, very low.
2023-06-08 14:06:54 -06:00
Eric Snow
e822a676f1
gh-100227: Lock Around Adding Global Audit Hooks (gh-105515)
...
The risk of a race with this state is relatively low, but we play it safe anyway.
2023-06-08 18:38:15 +00:00
Eric Snow
7799c8e678
gh-100227: Lock Around Use of the Global "atexit" State (gh-105514)
...
The risk of a race with this state is relatively low, but we play it safe anyway.
2023-06-08 18:08:28 +00:00
Mark Shannon
e830289c52
GH-105229: Remove remaining two-codeunit superinstructions (GH-105326)
...
* Remove LOAD_CONST__LOAD_FAST and LOAD_FAST__LOAD_CONST superinstructions.
2023-06-08 12:35:34 +01:00
Dong-hee Na
aa5b762bd3
gh-104635: Eliminate redundant STORE_FAST instructions in the compiler (gh-105320)
2023-06-08 08:39:56 +09:00
Kirill Podoprigora
264a0110ff
gh-105390: Add explicit type cast ( #105466 )
2023-06-07 20:20:43 +00:00
Mark Shannon
064de0e3fc
GH-104610: Remove the use of `PREDICT` macros. (GH-104651)
2023-06-07 17:04:53 +01:00
Pablo Galindo Salgado
7279fb6408
gh-105435: Fix spurious NEWLINE token if file ends with comment without a newline ( #105442 )
2023-06-07 13:31:48 +01:00
Pablo Galindo Salgado
ffd2654550
gh-105390: Correctly raise TokenError instead of SyntaxError for tokenize errors ( #105399 )
2023-06-07 12:04:40 +01:00
Pablo Galindo Salgado
c0a6ed3934
gh-105259: Ensure we don't show newline characters for trailing NEWLINE tokens ( #105364 )
2023-06-06 12:52:16 +01:00
Dong-hee Na
058b960535
gh-103906: Remove immortal refcounting in compile/marshal.c (gh-103922)
2023-06-05 22:38:36 +09:00
Jelle Zijlstra
69d1245685
gh-105164: Detect annotations inside match blocks ( #105177 )
2023-06-05 06:07:17 -07:00
Mark Shannon
0689340366
GH-105229: Replace some superinstructions with single instruction equivalent. (GH-105230)
2023-06-05 11:07:04 +01:00
Mark Shannon
e8ecb9ee6b
GH-104584: Allow optimizers to opt out of optimizing. (GH-105244)
2023-06-05 09:44:23 +01:00
Irit Katriel
94a1eea511
gh-103277: remove unused macros ( #105247 )
2023-06-03 05:12:07 -06:00
Dong-hee Na
2f5c1ae080
gh-87092: avoid gcc warning on uninitialized struct field in assemble… (gh-105243)
...
gh-87092: avoid gcc warning on uninitialized struct field in assemble.c (part2)
2023-06-02 16:00:50 +00:00
Jelle Zijlstra
44bb03f856
gh-105214: Use named constants for MAKE_FUNCTION oparg ( #105215 )
2023-06-02 14:10:45 +00:00
Mark Shannon
4bfa01b9d9
GH-104584: Plugin optimizer API (GH-105100)
2023-06-02 11:46:18 +01:00
Irit Katriel
ee26ca13a1
gh-105184: document that marshal functions can fail and need to be checked with PyErr_Occurred ( #105185 )
2023-06-02 08:59:18 +01:00
Jelle Zijlstra
77d2579586
gh-104799: Default missing lists in AST to the empty list ( #104834 )
...
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-06-01 18:39:39 -07:00
Victor Stinner
ef300937c2
gh-92536: Remove PyUnicode_READY() calls ( #105210 )
...
Since Python 3.12, PyUnicode_READY() does nothing and always
returns 0.
2023-06-02 01:33:17 +02:00
Victor Stinner
cbb9ba844f
gh-92536: Argument Clinic no longer emits PyUnicode_READY() ( #105208 )
...
Since Python 3.12, PyUnicode_READY() does nothing and always
returns 0.
Argument Clinic now also checks for .cpp files (PC/_wmimodule.cpp).
2023-06-02 01:31:58 +02:00
Eric Snow
3698fda06e
gh-104341: Call _PyEval_ReleaseLock() with NULL When Finalizing the Current Thread (gh-105109)
...
This avoids the problematic race in drop_gil() by skipping the FORCE_SWITCHING code there for finalizing threads.
(The idea for this approach came out of discussions with @markshannon.)
2023-06-01 16:24:10 -06:00
Irit Katriel
60f8117d0c
gh-105140: remove unused arg of _PyErr_ChainStackItem ( #105141 )
2023-06-01 20:57:28 +00:00
Victor Stinner
ec0082ca46
gh-105182: Remove PyEval_AcquireLock() and PyEval_InitThreads() ( #105183 )
...
Remove functions in the C API:
* PyEval_AcquireLock()
* PyEval_ReleaseLock()
* PyEval_InitThreads()
* PyEval_ThreadsInitialized()
But keep these functions in the stable ABI.
Mention "make regen-limited-abi" in "make regen-all".
2023-06-01 13:41:56 +02:00
Irit Katriel
76b9c0cfaa
remove unused #includes of pycore_pymem.h ( #105166 )
2023-06-01 12:12:53 +01:00
Victor Stinner
424049cc11
gh-105145: Remove old functions to config Python init ( #105154 )
...
Remove the following old functions to configure the Python
initialization, deprecated in Python 3.11:
* PySys_AddWarnOptionUnicode()
* PySys_AddWarnOption()
* PySys_AddXOption()
* PySys_HasWarnOptions()
* PySys_SetArgvEx()
* PySys_SetArgv()
* PySys_SetPath()
* Py_SetPath()
* Py_SetProgramName()
* Py_SetPythonHome()
* Py_SetStandardStreamEncoding()
* _Py_SetProgramFullPath()
Most of these functions are kept in the stable ABI, except:
* Py_SetStandardStreamEncoding()
* _Py_SetProgramFullPath()
Update Doc/extending/embedding.rst and Doc/extending/extending.rst to
use the new PyConfig API.
_testembed.c:
* check_stdio_details() now sets stdio_encoding and stdio_errors
of PyConfig.
* Add definitions of functions removed from the API but kept in the
stable ABI.
* test_init_from_config() and test_init_read_set() now use
PyConfig_SetString() instead of PyConfig_SetBytesString().
Remove _Py_ClearStandardStreamEncoding() internal function.
2023-06-01 09:14:02 +02:00
Victor Stinner
8ed705c083
gh-105156: Deprecate the old Py_UNICODE type in C API ( #105157 )
...
Deprecate the old Py_UNICODE and PY_UNICODE_TYPE types in the C API:
use wchar_t instead.
Replace Py_UNICODE with wchar_t in multiple C files.
Co-authored-by: Inada Naoki <songofacandy@gmail.com>
2023-06-01 08:56:35 +02:00
Irit Katriel
f990bb8b2d
gh-105148: make _PyASTOptimizeState internal to ast_opt.c ( #105149 )
2023-05-31 20:21:46 +01:00
Guido van Rossum
df396b59af
gh-104909: Split BINARY_OP into micro-ops ( #104910 )
...
Co-authored-by: Brandt Bucher <brandtbucher@gmail.com>
2023-05-31 08:09:23 -07:00
Inada Naoki
adccff3b3f
gh-104922: Make `PY_SSIZE_T_CLEAN` not mandatory again ( #105051 )
2023-05-31 18:38:55 +09:00
Lysandros Nikolaou
70f315c2d6
gh-105042: Disable unmatched parens syntax error in python tokenize ( #105061 )
2023-05-30 22:52:52 +01:00
Pablo Galindo Salgado
9216e69a87
gh-105069: Add a readline-like callable to the tokenizer to consume input iteratively ( #105070 )
2023-05-30 22:43:34 +01:00
Carl Meyer
68c75c3153
gh-105035: fix super() calls on unusual types (e.g. meta-types) ( #105094 )
2023-05-30 14:36:24 -06:00
Victor Stinner
4b65d5638c
gh-80064: Fix is_valid_wide_char() return type ( #105099 )
...
Return a classical int, rather than size_t. The size_t type was
kept from copied/pasted code related to mbstowcs().
2023-05-30 18:36:20 +02:00
Marta Gómez Macías
96fff35325
gh-105017: Include CRLF lines in strings and column numbers ( #105030 )
...
Co-authored-by: Pablo Galindo <pablogsal@gmail.com>
2023-05-28 15:15:53 +01:00
Pablo Galindo Salgado
46b52e6e2b
gh-104976: Ensure trailing dedent tokens are emitted as the previous tokenizer ( #104980 )
...
Signed-off-by: Pablo Galindo <pablogsal@gmail.com>
2023-05-26 22:02:26 +01:00
Pablo Galindo Salgado
3fdb55c482
gh-104972: Ensure that line attributes in tokens in the tokenize module are correct ( #104975 )
2023-05-26 15:46:22 +01:00
Victor Stinner
e399f46a77
gh-104773: PEP 594: Remove the imghdr module ( #104777 )
...
* Remove the Lib/test/imghdrdata/ directory.
* Copy 5 pictures (gif, png, ppm, pgm, xbm) from removed
Lib/test/imghdrdata/ to a new Lib/test/tkinterdata/ directory.
* Update Sphinx from 4.5 to 6.2 in Doc/requirements.txt.
2023-05-26 13:29:45 +00:00
Jelle Zijlstra
ba73473f4c
gh-104799: Move location of type_params AST fields ( #104828 )
...
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-05-26 05:54:37 -07:00
Kumar Aditya
7fc542c88d
GH-89091: raise `RuntimeWarning` for unawaited async generator methods ( #104611 )
2023-05-26 16:53:29 +05:30
Victor Stinner
77d7ec5aa9
gh-104773: PEP 594: Remove the chunk module ( #104868 )
...
The module had no tests.
2023-05-25 16:27:55 +00:00
Victor Stinner
f66be6b11a
gh-104773: PEP 594: Remove the audioop module ( #104937 )
2023-05-25 17:59:00 +02:00
Victor Stinner
036da3bd43
gh-104773: PEP 594: Remove the aifc module ( #104933 )
...
* Remove .aifc and .aiff test files of Lib/test/audiodata/
* Remove Lib/test/Sine-1000Hz-300ms.aif test file
2023-05-25 17:20:48 +02:00
Victor Stinner
dbc8216f4c
gh-104773: PEP 594: Remove the uu module ( #104932 )
...
Doc/license.rst: Keep the UUencode and UUdecode license since it's
also used by the uu codec.
2023-05-25 16:25:27 +02:00
Victor Stinner
e4127eaa1e
gh-104773: PEP 594: Remove the crypt module ( #104908 )
...
Remove the crypt module and its private _crypt extension, deprecated
in Python 3.11.
2023-05-25 15:45:46 +02:00
Zachary Ware
98c4333e88
gh-104773: Remove the msilib package (GH-104911)
2023-05-24 20:06:00 -05:00
Steve Dower
6031727a37
gh-104820: Fixes os.stat on Windows to better handle file systems that do not support FileIdInformation (GH-104892)
2023-05-25 00:16:13 +01:00
Victor Stinner
087c1a6539
gh-104773: PEP 594: Remove the xdrlib module ( #104900 )
...
pickle documentation no longer mentions the XDR format.
2023-05-25 00:40:30 +02:00
Victor Stinner
17e1fe0f9b
gh-104773: PEP 594: Remove the nis module ( #104897 )
2023-05-25 00:08:36 +02:00
Victor Stinner
ded5f1f287
gh-104773: PEP 594: Remove the nntplib module ( #104894 )
...
* socket_helper.transient_internet() no longer imports nntplib to
catch nntplib.NNTPTemporaryError.
* ssltests.py no longer runs test_nntplib.
* "make quicktest" no longer runs test_nntplib.
* WASM: remove nntplib from OMIT_NETWORKING_FILES.
* Remove mentions to nntplib in the email documentation.
2023-05-24 21:15:43 +00:00
Victor Stinner
684e99d01d
gh-104773: PEP 594: Remove the spwd module ( #104871 )
...
Remove spwd from the configure script and Modules/Setup.
2023-05-24 20:34:41 +00:00
Victor Stinner
9d457e1154
gh-104773: PEP 594: Remove the mailcap module ( #104867 )
...
Remove Lib/test/mailcap.txt test file.
2023-05-24 14:16:55 +00:00
Victor Stinner
a5e0f5b230
gh-104773: PEP 594: Remove the sunau module ( #104863 )
...
* Remove Lib/test/audiodata/pluck-*.au files.
* Remove Lib/test/audiotest.au file.
2023-05-24 13:51:59 +00:00
Victor Stinner
fc07fe4e37
gh-104773: PEP 594: Remove the ossaudiodev module ( #104862 )
...
* Remove ossaudiodev extension in configure.ac and regenerate
the configure script.
* Remove ossaudiodev in Modules/Setup and Modules/Setup.stdlib.in.
2023-05-24 15:00:51 +02:00
Victor Stinner
a4b7e9d1f8
gh-104773: PEP 594: Remove the pipes module ( #104848 )
2023-05-24 13:11:29 +02:00
Pablo Galindo Salgado
c8cf9b42eb
gh-104825: Remove implicit newline in the line attribute in tokens emitted in the tokenize module ( #104846 )
2023-05-24 09:59:18 +00:00
Victor Stinner
7b00940f69
gh-104773: PEP 594: Remove the sndhdr module ( #104774 )
...
Remove the Lib/test/sndhdrdata/ directory.
2023-05-24 09:32:18 +00:00
Victor Stinner
08d5923896
gh-104773: PEP 594: Remove cgi and cgitb modules ( #104775 )
...
* Replace "cgi" with "!cgi" in the Sphinx documentation to avoid
warnings on broken references.
* test_pyclbr no longer tests the cgi module.
2023-05-24 09:04:53 +00:00
Victor Stinner
ae00b810d1
gh-104780: Remove 2to3 program and lib2to3 module ( #104781 )
...
* Remove the Tools/scripts/2to3 script.
* Remove the Lib/test/test_lib2to3/ directory.
* Doc/tools/extensions/pyspecific.py: remove the "2to3fixer" object
type.
* Makefile and PC/layout/main.py no longer compile lib2to3 grammar
files.
* Update Makefile for 2to3 removal.
2023-05-23 19:40:02 +02:00
Victor Stinner
9dc476be2d
gh-104773: PEP 594: Remove the telnetlib module ( #104778 )
2023-05-23 07:09:02 +00:00
Marta Gómez Macías
729b252241
gh-104741: Add line number attribute to indentation error exception ( #104743 )
2023-05-22 11:30:18 +00:00
Jelle Zijlstra
a5f244d627
gh-104656: Rename typeparams AST node to type_params ( #104657 )
2023-05-21 21:25:09 -07:00
Marta Gómez Macías
8817886ae5
gh-102856: Tokenize performance improvement ( #104731 )
2023-05-22 00:29:04 +00:00
Jelle Zijlstra
cd9748409a
gh-104686: Fix tracing for decorated classes ( #104708 )
2023-05-21 16:20:19 -07:00
gsallam
be0c106789
gh-103295: expose API for writing perf map files ( #103546 )
...
Co-authored-by: Aniket Panse <aniketpanse@fb.com>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
Co-authored-by: Carl Meyer <carl@oddbird.net>
2023-05-21 11:12:24 +01:00
Marta Gómez Macías
6715f91edc
gh-102856: Python tokenizer implementation for PEP 701 ( #104323 )
...
This commit replaces the Python implementation of the tokenize module with an implementation
that reuses the real C tokenizer via a private extension module. The tokenize module now implements
a compatibility layer that transforms tokens from the C tokenizer into Python tokenize tokens for backward
compatibility.
As the C tokenizer does not emit some tokens that the Python tokenizer provides (such as comments and non-semantic newlines), a new special mode has been added to the C tokenizer mode that currently is only used via
the extension module that exposes it to the Python layer. This new mode forces the C tokenizer to emit these new extra tokens and add the appropriate metadata that is needed to match the old Python implementation.
Co-authored-by: Pablo Galindo <pablogsal@gmail.com>
2023-05-21 01:03:02 +01:00
Jelle Zijlstra
8a8853af24
gh-104640: Disallow walrus in comprehension within type scopes ( #104641 )
2023-05-19 07:31:09 -07:00
Mark Shannon
c26d03d5d6
GH-102818: Do not call `PyTraceBack_Here` in sys.settrace trampoline. (GH-104579)
2023-05-19 12:40:48 +01:00
Carl Meyer
70c7796477
gh-104619: never leak comprehension locals to outer locals() ( #104637 )
2023-05-18 18:50:24 -07:00
Carl Meyer
86e6f16ccb
gh-104602: ensure all cellvars are known up front ( #104603 )
...
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2023-05-19 00:07:35 +00:00
Carl Meyer
0589c6a4d3
gh-104615: don't make unsafe swaps in apply_static_swaps ( #104620 )
2023-05-18 21:22:03 +00:00
Mark Shannon
cfa517d5a6
GH-96803: Document and test new unstable internal frame API functions (GH-104211)
...
Weaken contract of PyUnstable_InterpreterFrame_GetCode to return PyObject*.
2023-05-18 10:10:15 +01:00
Mark Shannon
68b5f08b72
GH-104580: Don't cache eval breaker in interpreter (GH-104581)
...
Move eval-breaker to the front of the interpreter state.
2023-05-18 10:08:33 +01:00
Jelle Zijlstra
662aede68b
gh-104374: Remove access to class scopes for inlined comprehensions ( #104528 )
...
Co-authored-by: Carl Meyer <carl@oddbird.net>
2023-05-18 05:22:17 +00:00
Mark Shannon
f7df173949
GH-101520: Move tracemalloc functionality into core, leaving interface in Modules. ( #104508 )
2023-05-17 14:17:16 +01:00
Jelle Zijlstra
97db2f3e07
gh-104572: Improve error messages for invalid constructs in PEP 695 contexts ( #104573 )
2023-05-17 06:05:42 -07:00
Brandt Bucher
b4a9747923
GH-103906: Remove immortal refcounting in the interpreter (GH-103909)
2023-05-16 14:36:02 -07:00
Carl Meyer
f40890b124
gh-103865: add monitoring support to LOAD_SUPER_ATTR ( #103866 )
2023-05-16 10:29:00 -06:00