Mark Shannon
9339d70ac2
GH-106012: Fix monitoring of static code objects (GH-106017)
2023-06-23 13:18:29 +01:00
Victor Stinner
ee52158f20
gh-105927: PyImport_AddModule() uses _PyWeakref_GET_REF() ( #106001 )
...
It now raises an exception if sys.modules doesn't hold a strong
reference to the module.
Elaborate the comment explaining why a weak reference is used to
create a borrowed reference.
2023-06-23 01:23:08 +02:00
Victor Stinner
193a2b2eaa
gh-105922: Use PyImport_AddModuleRef() function ( #105999 )
...
Replace PyImport_AddModuleObject() + Py_XNewRef() with
PyImport_AddModuleRef() to get directly a strong reference.
2023-06-23 00:04:39 +02:00
chgnrdv
cd5280367a
gh-105979: Fix exception handling in unmarshal_frozen_code
(Python/import.c
) ( #105980 )
2023-06-22 21:30:19 +00:00
Victor Stinner
46a3190fcf
gh-105927: Avoid calling PyWeakref_GET_OBJECT() ( #105997 )
...
* Replace PyWeakref_GET_OBJECT() with _PyWeakref_GET_REF().
* _sqlite/blob.c now holds a strong reference to the blob object
while calling close_blob().
* _xidregistry_find_type() now holds a strong reference to registered
while using it.
2023-06-22 22:31:31 +02:00
YAMAMOTO Takashi
d8f87cdf94
gh-101538: Add experimental wasi-threads build ( #101537 )
...
Co-authored-by: Brett Cannon <brett@python.org>
Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
2023-06-22 11:26:10 -07:00
Mark Shannon
04492cbc9a
GH-91095: Specialize calls to normal Python classes. (GH-99331)
2023-06-22 09:48:19 +01:00
Victor Stinner
4328dc6465
gh-105927: finalize_modules_clear_weaklist() uses _PyWeakref_GET_REF() ( #105971 )
...
finalize_modules_clear_weaklist() now holds a strong reference to the
module longer than before: replace PyWeakref_GET_OBJECT() with
_PyWeakref_GET_REF().
2023-06-21 21:50:20 +02:00
Victor Stinner
03f1a132ee
gh-105922: Add PyImport_AddModuleRef() function ( #105923 )
...
* Add tests on PyImport_AddModuleRef(), PyImport_AddModule() and
PyImport_AddModuleObject().
* pythonrun.c: Replace Py_XNewRef(PyImport_AddModule(name)) with
PyImport_AddModuleRef(name).
2023-06-20 08:48:14 +02:00
Victor Stinner
a5c2ad0c3d
gh-105922: Refactor PyRun_InteractiveOneObjectEx() ( #105925 )
...
Refactor PyRun_InteractiveOneObjectEx(), _PyRun_SimpleFileObject()
and PyRun_SimpleStringFlags():
* Keep a strong reference to the __main__ module while using its
dictionary (PyModule_GetDict()). Use PyImport_AddModule() with
Py_XNewRef().
* Declare variables closer to where they are defined.
* Rename variables to use name longer than 1 character.
* Add pyrun_one_parse_ast() sub-function.
2023-06-20 00:55:23 +02:00
Irit Katriel
33f0a8578b
gh-105481: generate _specializations and _specialized_instructions from bytecodes.c ( #105913 )
2023-06-19 23:47:04 +01:00
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