Irit Katriel
0b243c2f66
gh-105481 : opcode.h is no longer generated during the build (#108080)
2023-08-17 17:07:58 +01:00
Irit Katriel
caa41a4f1d
gh-105481 : split opcode_ids.h out of opcode.h so that it can be generated separately (#107866)
2023-08-11 17:42:01 +01:00
Brandt Bucher
ea72c6fe3b
GH-107596 : Specialize str[int] ( GH-107597 )
2023-08-08 13:42:43 -07:00
Irit Katriel
dd693d6320
gh-105481 : simplify definition of pseudo ops in Lib/opcode.py (#107561)
2023-08-02 18:16:57 +01:00
Irit Katriel
6ef8f8ca88
gh-105481 : the ENABLE_SPECIALIZATION flag does not need to be generated by the build script, or exposed in opcode.py (#107534)
2023-08-01 17:05:00 +00:00
Mark Shannon
0c90e75610
GH-100288 : Specialize LOAD_ATTR for simple class attributes. (#105990)
...
* Add two more specializations of LOAD_ATTR.
2023-07-10 11:40:35 +01:00
Brandt Bucher
7b2d94d875
GH-106008 : Make implicit boolean conversions explicit ( GH-106003 )
2023-06-29 13:49:54 -07:00
hms
8bff940ad6
gh-105775 : Convert LOAD_CLOSURE to a pseudo-op (#106059)
...
This enables super-instruction formation,
removal of checks for uninitialized variables,
and frees up an instruction.
2023-06-29 09:34:00 -07:00
Mark Shannon
04492cbc9a
GH-91095 : Specialize calls to normal Python classes. ( GH-99331 )
2023-06-22 09:48:19 +01:00
Irit Katriel
33f0a8578b
gh-105481 : generate _specializations and _specialized_instructions from bytecodes.c (#105913)
2023-06-19 23:47:04 +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
Mark Shannon
1d857da7f0
GH-77273 : Better bytecodes for f-strings ( GH-6132 )
2023-06-14 16:15:08 +01: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
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
Mark Shannon
0689340366
GH-105229 : Replace some superinstructions with single instruction equivalent. ( GH-105230 )
2023-06-05 11:07:04 +01:00
Mark Shannon
4bfa01b9d9
GH-104584 : Plugin optimizer API ( GH-105100 )
2023-06-02 11:46:18 +01:00
Carl Meyer
f40890b124
gh-103865 : add monitoring support to LOAD_SUPER_ATTR (#103866)
2023-05-16 10:29:00 -06:00
Jelle Zijlstra
24d8b88420
gh-103763 : Implement PEP 695 (#103764)
...
This implements PEP 695, Type Parameter Syntax. It adds support for:
- Generic functions (def func[T](): ...)
- Generic classes (class X[T](): ...)
- Type aliases (type X = ...)
- New scoping when the new syntax is used within a class body
- Compiler and interpreter changes to support the new syntax and scoping rules
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
Co-authored-by: Eric Traut <eric@traut.com>
Co-authored-by: Larry Hastings <larry@hastings.org>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-05-15 20:36:23 -07:00
Carl Meyer
77262458fe
gh-87729 : improve hit rate of LOAD_SUPER_ATTR specialization (#104270)
2023-05-11 08:08:13 -06:00
Carl Meyer
c3b595e73e
gh-97933 : (PEP 709) inline list/dict/set comprehensions (#101441)
...
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
2023-05-09 11:02:14 -06:00
Carl Meyer
ef25febcf2
gh-87729 : specialize LOAD_SUPER_ATTR_METHOD (#103809)
2023-04-25 17:45:51 +00:00
Carl Meyer
0dc8b50d33
gh-87729 : add LOAD_SUPER_ATTR instruction for faster super() (#103497)
...
This speeds up `super()` (by around 85%, for a simple one-level
`super().meth()` microbenchmark) by avoiding allocation of a new
single-use `super()` object on each use.
2023-04-24 22:22:14 +00:00
Mark Shannon
411b169281
GH-103082 : Implementation of PEP 669: Low Impact Monitoring for CPython ( 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
2023-04-12 12:04:55 +01:00
Brandt Bucher
0444ae2487
GH-100982 : Break up COMPARE_AND_BRANCH ( GH-102801 )
2023-03-23 15:25:09 -07:00
Irit Katriel
3468c768ce
gh-102859 : Remove JUMP_IF_FALSE_OR_POP and JUMP_IF_TRUE_OR_POP (#102870)
2023-03-22 18:10:48 +00:00
Irit Katriel
81e3aa835c
gh-101799 : implement PREP_RERAISE_STAR as an intrinsic function (#101800)
2023-02-14 11:54:13 +00:00
Mark Shannon
160f2fe2b9
GH-87849 : Simplify stack effect of SEND and specialize it for generators and coroutines. ( GH-101788 )
2023-02-13 11:24:55 +00:00
penguin_wwy
753fc8a5d6
gh-101632 : Add the new RETURN_CONST opcode (#101633)
2023-02-07 22:32:21 +00:00
Irit Katriel
e9ccfe4a63
gh-100712 : make it possible to disable specialization (for debugging) (#100713)
2023-01-19 18:14:55 +00:00
Mark Shannon
7b14c2ef19
GH-100982 : Add COMPARE_AND_BRANCH
instruction ( GH-100983 )
2023-01-16 12:35:21 +00:00
Mark Shannon
78068126a1
GH-99005 : More intrinsics ( GH-100774 )
...
* Remove UNARY_POSITIVE, LIST_TO_TUPLE and ASYNC_GEN_WRAP, replacing them with intrinsics.
2023-01-06 14:47:57 +00:00
Mark Shannon
28187141cc
GH-99005 : Add CALL_INTRINSIC_1
instruction ( GH-100771 )
...
* Remove PRINT_EXPR instruction
* Remove STOPITERATION_ERROR instruction
* Remove IMPORT_STAR instruction
2023-01-05 16:05:51 +00:00
Mark Shannon
f20c553a45
GH-100288 : Remove LOAD_ATTR_METHOD_WITH_DICT instruction. ( GH-100753 )
2023-01-05 12:20:09 +00:00
Ken Jin
36d358348d
Revert " gh-100288 : Specialise LOAD_ATTR_METHOD for managed dictionaries ( GH-100289 )" (#100468)
...
This reverts commit c3c7848a48
.
2022-12-24 01:48:43 +08:00
Ken Jin
c3c7848a48
gh-100288 : Specialise LOAD_ATTR_METHOD for managed dictionaries ( GH-100289 )
2022-12-24 00:26:42 +08:00
Ken Jin
748c6c0921
GH-100110 : Specialize FOR_ITER for tuples ( GH-100109 )
...
* Specialize FOR_ITER for tuples
2022-12-09 10:27:01 +00:00
Brandt Bucher
8555dee5ae
GH-98686 : Get rid of BINARY_OP_GENERIC and COMPARE_OP_GENERIC ( GH-99399 )
2022-11-17 11:36:57 -08:00
Mark Shannon
1e197e63e2
GH-96421 : Insert shim frame on entry to interpreter ( GH-96319 )
...
* Adds EXIT_INTERPRETER instruction to exit PyEval_EvalDefault()
* Simplifies RETURN_VALUE, YIELD_VALUE and RETURN_GENERATOR instructions as they no longer need to check for entry frames.
2022-11-10 12:34:57 +00:00
Brandt Bucher
c7f5708714
GH-98686 : Get rid of "adaptive" and "quick" instructions ( GH-99182 )
2022-11-09 10:50:09 -08:00
Mark Shannon
4a1c58d504
GH-96793 : Specialize FOR_ITER for generators. ( GH-98772 )
2022-11-07 14:49:51 +00:00
Mark Shannon
f4adb97506
GH-96793 : Implement PEP 479 in bytecode. ( GH-99006 )
...
* Handle converting StopIteration to RuntimeError in bytecode.
* Add custom instruction for converting StopIteration into RuntimeError.
2022-11-03 11:38:51 +00:00
Brandt Bucher
276d77724f
GH-98686 : Quicken everything ( GH-98687 )
2022-11-02 10:42:57 -07:00
Mark Shannon
22863df7ca
GH-96793 : Change FOR_ITER
to not pop the iterator on exhaustion. ( GH-96801 )
...
Change FOR_ITER to have the same stack effect regardless of whether it branches or not.
Performance is unchanged as FOR_ITER (and specialized forms jump over the cleanup code).
2022-10-27 11:55:03 +01:00
Victor Stinner
1863302d61
gh-97669 : Create Tools/build/ directory (#97963)
...
Create Tools/build/ directory. Move the following scripts from
Tools/scripts/ to Tools/build/:
* check_extension_modules.py
* deepfreeze.py
* freeze_modules.py
* generate_global_objects.py
* generate_levenshtein_examples.py
* generate_opcode_h.py
* generate_re_casefix.py
* generate_sre_constants.py
* generate_stdlib_module_names.py
* generate_token.py
* parse_html5_entities.py
* smelly.py
* stable_abi.py
* umarshal.py
* update_file.py
* verify_ensurepip_wheels.py
Update references to these scripts.
2022-10-17 12:01:00 +02:00
Irit Katriel
4c72517cad
gh-93554 : Conditional jump opcodes only jump forward ( GH-96318 )
2022-09-01 21:36:47 +01:00
Brandt Bucher
5bfb3c372b
GH-90997 : Wrap yield from/await in a virtual try/except StopIteration ( GH-96010 )
2022-08-19 12:33:44 -07:00
Ken Jin
7276ca25f5
GH-93911 : Specialize LOAD_ATTR
for custom __getattribute__
( GH-93988 )
2022-08-17 12:37:07 +01:00
Irit Katriel
c57aad777a
gh-94216 : add pseudo instructions to the dis/opcodes modules ( GH-94241 )
2022-07-01 15:33:35 +01:00
Mark Shannon
c0453a40fa
GH-94163 : Add BINARY_SLICE and STORE_SLICE instructions. ( GH-94168 )
2022-06-27 12:24:23 +01:00
Dennis Sweeney
5fcfdd87c9
GH-91432 : Specialize FOR_ITER ( GH-91713 )
...
* Adds FOR_ITER_LIST and FOR_ITER_RANGE specializations.
* Adds _PyLong_AssignValue() internal function to avoid temporary boxing of ints.
2022-06-21 11:19:26 +01:00