Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | GH-103082: Implementation of PEP 669: Low Impact Monitoring for CPython ↵ | Mark Shannon | 2023-04-12 | 1 | -69/+38 |
| | | | | | | | | | | (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 | ||||
* | gh-101865: Deprecate `co_lnotab` from code objects as per PEP 626 (#101866) | Nikita Sobolev | 2023-04-03 | 1 | -0/+5 |
| | | | Co-authored-by: Oleg Iarygin <oleg@arhadthedev.net> | ||||
* | gh-102381: don't call watcher callback with dead object (#102382) | Carl Meyer | 2023-03-07 | 1 | -1/+37 |
| | | | Co-authored-by: T. Wouters <thomas@python.org> | ||||
* | gh-101101: Unstable C API tier (PEP 689) (GH-101102) | Petr Viktorin | 2023-02-28 | 1 | -4/+5 |
| | |||||
* | gh-101907: Stop using `_Py_OPCODE` and `_Py_OPARG` macros (GH-101912) | Steve Dower | 2023-02-20 | 1 | -10/+10 |
| | | | | | | * gh-101907: Removes use of non-standard C++ extension from Include/cpython/code.h * Make cases_generator correct on Windows | ||||
* | GH-100117: Make `co_lines` more efficient (GH-100447) | Brandt Bucher | 2023-01-10 | 1 | -32/+18 |
| | |||||
* | GH-100719: Remove the `co_nplaincellvars` field from code objects. (GH-100721) | Mark Shannon | 2023-01-04 | 1 | -10/+4 |
| | |||||
* | gh-94155: Reduce hash collisions for code objects (#100183) | Dennis Sweeney | 2022-12-23 | 1 | -20/+33 |
| | | | | | | | * Uses a better hashing algorithm to get better dispersion and remove commutativity. * Incorporates `co_firstlineno`, `Py_SIZE(co)`, and bytecode instructions. * This is now the entire set of criteria used in `code_richcompare`, except for `_PyCode_ConstantKey` (which would incorporate the types of `co_consts` rather than just their values). | ||||
* | GH-100000: Cleanup and polish various watchers code (GH-99998) | Itamar Ostricher | 2022-12-14 | 1 | -4/+11 |
| | | | | | | * Initialize `type_watchers` array to `NULL`s * Optimize code watchers notification * Optimize func watchers notification | ||||
* | GH-100222: Redefine _Py_CODEUNIT as a union to clarify structure of code ↵ | Mark Shannon | 2022-12-14 | 1 | -5/+6 |
| | | | | unit. (GH-100223) | ||||
* | GH-98522: Add version number to code objects. (GH-98525) | Mark Shannon | 2022-12-09 | 1 | -2/+4 |
| | | | | | | * Add version number to code object for better versioning of functions. * Improves specialization for closures and list comprehensions. | ||||
* | GH-91054: Add code object watchers API (GH-99859) | Itamar Ostricher | 2022-12-02 | 1 | -0/+63 |
| | | | | | | * Add API to allow extensions to set callback function on creation and destruction of PyCodeObject Co-authored-by: Ye11ow-Flash <janshah@cs.stonybrook.edu> | ||||
* | gh-99845: Clean up _PyObject_VAR_SIZE() usage (#99847) | Victor Stinner | 2022-11-29 | 1 | -6/+4 |
| | | | | | | * code_sizeof() now uses an unsigned type (size_t) to compute the result. * Fix _PyObject_ComputedDictPointer(): cast _PyObject_VAR_SIZE() to Py_ssize_t, rather than long: it's a different type on 64-bit Windows. * Clarify that _PyObject_VAR_SIZE() uses an unsigned type (size_t). | ||||
* | gh-99300: Use Py_NewRef() in Objects/ directory (#99332) | Victor Stinner | 2022-11-10 | 1 | -34/+17 |
| | | | | Replace Py_INCREF() and Py_XINCREF() with Py_NewRef() and Py_XNewRef() in C files of the Objects/ directory. | ||||
* | GH-96421: Insert shim frame on entry to interpreter (GH-96319) | Mark Shannon | 2022-11-10 | 1 | -0/+75 |
| | | | | | | * 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. | ||||
* | GH-98686: Quicken everything (GH-98687) | Brandt Bucher | 2022-11-02 | 1 | -10/+6 |
| | |||||
* | gh-95756: Free and NULL-out code caches when needed (GH-98181) | Ken Jin | 2022-10-11 | 1 | -0/+1 |
| | |||||
* | gh-95756: Lazily created cached co_* attrs (GH-97791) | Ken Jin | 2022-10-11 | 1 | -10/+67 |
| | |||||
* | GH-97779: Ensure that *all* frame objects are backed by "complete" frames ↵ | Brandt Bucher | 2022-10-04 | 1 | -3/+19 |
| | | | | (GH-97845) | ||||
* | gh-94808: `_PyLineTable_StartsLine` was not used (GH-96609) | Nikita Sobolev | 2022-10-03 | 1 | -27/+0 |
| | |||||
* | GH-96187: Prevent _PyCode_GetExtra to return garbage for negative indexes ↵ | Pablo Galindo Salgado | 2022-08-23 | 1 | -1/+1 |
| | | | | (GH-96188) | ||||
* | gh-94936: C getters: co_varnames, co_cellvars, co_freevars (#95008) | Ken Jin | 2022-08-04 | 1 | -0/+18 |
| | |||||
* | GH-95150: Use position and exception tables for code hashing and equality ↵ | Brandt Bucher | 2022-08-01 | 1 | -1/+18 |
| | | | | (GH-95509) | ||||
* | GH-95113: Don't use EXTENDED_ARG_QUICK in unquickened code (GH-95121) | Brandt Bucher | 2022-07-22 | 1 | -1/+1 |
| | |||||
* | Fix PyCode_Addr2Location when addrq < 0 (GH-95091) | Ken Jin | 2022-07-21 | 1 | -0/+1 |
| | |||||
* | GH-94262: Don't create frame objects for frames that aren't yet complete. ↵ | Mark Shannon | 2022-07-01 | 1 | -6/+5 |
| | | | | (GH-94371) | ||||
* | gh-88116: Avoid undefined behavior when decoding varints in code objects ↵ | Pablo Galindo Salgado | 2022-06-28 | 1 | -8/+8 |
| | | | | (#94375) | ||||
* | gh-93382: Sync up `co_code` changes with 3.11 (GH-94227) | Ken Jin | 2022-06-25 | 1 | -1/+1 |
| | | | Sync up co_code changes with 3.11 commit 852b4d4bcd12b0b6839a015a262ce976b134f6f3. | ||||
* | GH-93249: relax overly strict assertion on bounds->ar_start (GH-93961) | Irit Katriel | 2022-06-20 | 1 | -1/+6 |
| | |||||
* | GH-93516: Speedup line number checks when tracing. (GH-93763) | Mark Shannon | 2022-06-20 | 1 | -0/+56 |
| | | | | * Use a lookup table to reduce overhead of getting line numbers during tracing. | ||||
* | GH-93897: Store frame size in code object and de-opt if insufficient space ↵ | Mark Shannon | 2022-06-20 | 1 | -0/+2 |
| | | | | on thread frame stack. (GH-93908) | ||||
* | GH-93516: Store offset of first traceable instruction in code object (GH-93769) | Mark Shannon | 2022-06-14 | 1 | -0/+6 |
| | |||||
* | gh-93728: fix memory leak in deepfrozen code objects (GH-93729) | Kumar Aditya | 2022-06-12 | 1 | -0/+1 |
| | |||||
* | gh-93382: Cache result of `PyCode_GetCode` in codeobject (GH-93383) | Ken Jin | 2022-06-04 | 1 | -0/+7 |
| | | | | Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com> Co-authored-by: Dennis Sweeney <36520290+sweeneyde@users.noreply.github.com> | ||||
* | GH-92955: fix memory leak in code object lines and positions iterators ↵ | Kumar Aditya | 2022-05-19 | 1 | -4/+4 |
| | | | | (gh-92956) | ||||
* | gh-92031: Deoptimize Static Code at Finalization (GH-92039) | Dennis Sweeney | 2022-05-03 | 1 | -10/+17 |
| | |||||
* | gh-92154: Expose PyCode_GetCode in the C API (GH-92168) | Ken Jin | 2022-05-03 | 1 | -0/+5 |
| | |||||
* | gh-91719: Add pycore_opcode.h internal header file (#91906) | Victor Stinner | 2022-04-26 | 1 | -0/+1 |
| | | | | | | | | | | | Move the following API from Include/opcode.h (public C API) to a new Include/internal/pycore_opcode.h header file (internal C API): * EXTRA_CASES * _PyOpcode_Caches * _PyOpcode_Deopt * _PyOpcode_Jump * _PyOpcode_OpName * _PyOpcode_RelativeJump | ||||
* | GH-88116: Document that PyCodeNew is dangerous, and make PyCode_NewEmpty ↵ | Mark Shannon | 2022-04-21 | 1 | -1/+15 |
| | | | | less dangerous. (GH-91790) | ||||
* | GH-88116: Use a compact format to represent end line and column offsets. ↵ | Mark Shannon | 2022-04-21 | 1 | -169/+318 |
| | | | | | | | | | | | | (GH-91666) * Stores all location info in linetable to conform to PEP 626. * Remove column table from code objects. * Remove end-line table from code objects. * Document new location table format | ||||
* | bpo-35134: Remove the Include/code.h header file (GH-32385) | Victor Stinner | 2022-04-07 | 1 | -1/+0 |
| | | | | | | Remove the Include/code.h header file. C extensions should only include the main <Python.h> header file. Python.h includes directly Include/cpython/code.h instead. | ||||
* | bpo-46841: Use a `bytes` object for `_co_code_adaptive` (GH-32205) | Brandt Bucher | 2022-04-01 | 1 | -2/+2 |
| | |||||
* | bpo-46841: Avoid unnecessary allocations in code object comparisons (GH-32222) | Brandt Bucher | 2022-04-01 | 1 | -13/+13 |
| | |||||
* | bpo-46841: Quicken code in-place (GH-31888) | Brandt Bucher | 2022-03-21 | 1 | -112/+101 |
| | | | | | | | | | | | | | | | | | | | * Moves the bytecode to the end of the corresponding PyCodeObject, and quickens it in-place. * Removes the almost-always-unused co_varnames, co_freevars, and co_cellvars member caches * _PyOpcode_Deopt is a new mapping from all opcodes to their un-quickened forms. * _PyOpcode_InlineCacheEntries is renamed to _PyOpcode_Caches * _Py_IncrementCountAndMaybeQuicken is renamed to _PyCode_Warmup * _Py_Quicken is renamed to _PyCode_Quicken * _co_quickened is renamed to _co_code_adaptive (and is now a read-only memoryview). * Do not emit unused nonzero opargs anymore in the compiler. | ||||
* | bpo-46841: Use inline caching for calls (GH-31709) | Brandt Bucher | 2022-03-07 | 1 | -4/+1 |
| | |||||
* | Propagate errors (however unlikely) from _Py_Deepfreeze_Init() (GH-31596) | Kumar Aditya | 2022-02-26 | 1 | -5/+11 |
| | |||||
* | bpo-45316: Move private PyCode C API to internal C API (GH-31576) | Victor Stinner | 2022-02-25 | 1 | -9/+9 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename private functions (no exported), add an underscore prefix: * PyLineTable_InitAddressRange() => _PyLineTable_InitAddressRange() * PyLineTable_NextAddressRange() => _PyLineTable_NextAddressRange() * PyLineTable_PreviousAddressRange() => _PyLineTable_PreviousAddressRange() Move private functions to the internal C API: * _PyCode_Addr2EndLine() * _PyCode_Addr2EndOffset() * _PyCode_Addr2Offset() * _PyCode_InitAddressRange() * _PyCode_InitEndAddressRange( * _PyLineTable_InitAddressRange() * _PyLineTable_NextAddressRange() * _PyLineTable_PreviousAddressRange() No longer export the following internal functions: * _PyCode_GetVarnames() * _PyCode_GetCellvars() * _PyCode_GetFreevars() * _Py_GetSpecializationStats() Add "extern" to pycore_code.h functions to identify them more easiliy (they are still not exported). | ||||
* | Add (undocumented) _co_quickened attribute for code object. (GH-31552) | Mark Shannon | 2022-02-24 | 1 | -2/+13 |
| | |||||
* | bpo-46765: Replace Locally Cached Strings with Statically Initialized ↵ | Eric Snow | 2022-02-22 | 1 | -6/+1 |
| | | | | | Objects (gh-31366) https://bugs.python.org/issue46765 | ||||
* | bpo-46745: Fix typo in PositionsIterator (#31322) | Robert-André Mauchin | 2022-02-16 | 1 | -1/+1 |
| | | | Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com> |