Victor Stinner
384621c42f
bpo-41078: Rename pycore_tupleobject.h to pycore_tuple.h (GH-21056)
2020-06-22 17:27:35 +02:00
Ammar Askar
3b3b83c965
Restrict co_code to be under INT_MAX in codeobject (GH-20628)
2020-06-11 00:31:22 +01:00
Victor Stinner
4a21e57fe5
bpo-40268: Remove unused structmember.h includes (GH-19530)
...
If only offsetof() is needed: include stddef.h instead.
When structmember.h is used, add a comment explaining that
PyMemberDef is used.
2020-04-15 02:35:41 +02:00
Victor Stinner
81a7be3fa2
bpo-40268: Rename _PyInterpreterState_GET_UNSAFE() (GH-19509)
...
Rename _PyInterpreterState_GET_UNSAFE() to _PyInterpreterState_GET()
for consistency with _PyThreadState_GET() and to have a shorter name
(help to fit into 80 columns).
Add also "assert(tstate != NULL);" to the function.
2020-04-14 15:14:01 +02:00
Victor Stinner
4a3fe08353
bpo-40268: Include explicitly pycore_interp.h (GH-19505)
...
pycore_pystate.h no longer includes pycore_interp.h:
it's now included explicitly in files accessing PyInterpreterState.
2020-04-14 14:26:24 +02:00
Victor Stinner
9205520d8c
bpo-40170: PyObject_NEW() becomes an alias to PyObject_New() (GH-19379)
...
The PyObject_NEW() macro becomes an alias to the PyObject_New()
macro, and the PyObject_NEW_VAR() macro becomes an alias to the
PyObject_NewVar() macro, to hide implementation details. They no
longer access directly the PyTypeObject.tp_basicsize member.
Exclude _PyObject_SIZE() and _PyObject_VAR_SIZE() macros from
the limited C API.
Replace PyObject_NEW() with PyObject_New() and replace
PyObject_NEW_VAR() with PyObject_NewVar().
2020-04-08 00:38:15 +02:00
Victor Stinner
58ac700fb0
bpo-39573: Use Py_TYPE() macro in Objects directory (GH-18392)
...
Replace direct access to PyObject.ob_type with Py_TYPE().
2020-02-07 03:04:21 +01:00
Victor Stinner
a278313518
bpo-38631: Avoid Py_FatalError() in PyCode_New() (GH-18215)
...
intern_strings() now raises a SystemError, rather than calling
Py_FatalError().
intern_string_constants() now reports exceptions to the caller,
rather than ignoring silently exceptions.
2020-01-27 23:24:13 +01:00
Anthony Sottile
22424c02e5
Document CodeType.replace (GH-17776)
2020-01-01 06:11:16 +00:00
Steve Dower
c7c01ab1e5
bpo-38922: Raise code.__new__ audit event when code object replace() is called (GH-17394)
2019-11-26 16:27:50 -08:00
Pablo Galindo
4a2edc34a4
bpo-37221: Add PyCode_NewWithPosOnlyArgs to be used internally and set PyCode_New as a compatibility wrapper (GH-13959)
...
Add PyCode_NewEx to be used internally and set PyCode_New as a compatibility wrapper
2019-07-01 12:35:05 +02:00
Victor Stinner
376ce9852e
bpo-26219: Fix compiler warning in _PyCode_InitOpcache() (GH-13997)
...
Fix MSVC warning:
objects\codeobject.c(285): warning C4244: '=':
conversion from 'Py_ssize_t' to 'unsigned char',
possible loss of data
2019-06-12 04:41:16 +02:00
Victor Stinner
ea9f168957
bpo-26219: Fix compiler warning in _PyCode_InitOpcache() (GH-13809)
...
Fix this MSVC warning:
objects\codeobject.c(264): warning C4244: '=':
conversion from 'Py_ssize_t' to 'unsigned char', possible loss of data
2019-06-04 17:08:24 +02:00
Inada Naoki
91234a1636
bpo-26219: per opcode cache for LOAD_GLOBAL (GH-12884)
...
This patch implements per opcode cache mechanism, and use it in
only LOAD_GLOBAL opcode.
Based on Yury's opcache3.patch in bpo-26219.
2019-06-03 21:30:58 +09:00
Pablo Galindo
3b57f50efc
bpo-36842: Pass positional only parameters to code_new audit hook (GH-13707)
2019-06-01 21:18:48 +01:00
Pablo Galindo
cd74e66a8c
bpo-37122: Make co->co_argcount represent the total number of positonal arguments in the code object (GH-13726)
2019-06-01 18:08:04 +01:00
Jeroen Demeyer
530f506ac9
bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464)
...
Automatically replace
tp_print -> tp_vectorcall_offset
tp_compare -> tp_as_async
tp_reserved -> tp_as_async
2019-05-30 19:13:39 -07:00
Victor Stinner
a9f05d69cc
bpo-37032: Add CodeType.replace() method (GH-13542)
2019-05-24 23:57:23 +02:00
Steve Dower
b82e17e626
bpo-36842: Implement PEP 578 (GH-12613)
...
Adds sys.audit, sys.addaudithook, io.open_code, and associated C APIs.
2019-05-23 08:45:22 -07:00
Pablo Galindo
8c77b8cb91
bpo-36540: PEP 570 -- Implementation (GH-12701)
...
This commit contains the implementation of PEP570: Python positional-only parameters.
* Update Grammar/Grammar with new typedarglist and varargslist
* Regenerate grammar files
* Update and regenerate AST related files
* Update code object
* Update marshal.c
* Update compiler and symtable
* Regenerate importlib files
* Update callable objects
* Implement positional-only args logic in ceval.c
* Regenerate frozen data
* Update standard library to account for positional-only args
* Add test file for positional-only args
* Update other test files to account for positional-only args
* Add News entry
* Update inspect module and related tests
2019-04-29 13:36:57 +01:00
Victor Stinner
ec13b9322d
bpo-35081: Add Include/internal/pycore_tupleobject.h (GH-10705)
...
Move _PyTuple_ITEMS() to a new header file:
Include/internal/pycore_tupleobject.h
2018-11-25 23:56:17 +01:00
Victor Stinner
621cebe81b
bpo-35081: Rename internal headers (GH-10275)
...
Rename Include/internal/ headers:
* pycore_hash.h -> pycore_pyhash.h
* pycore_lifecycle.h -> pycore_pylifecycle.h
* pycore_mem.h -> pycore_pymem.h
* pycore_state.h -> pycore_pystate.h
Add missing headers to Makefile.pre.in and PCbuild:
* pycore_condvar.h.
* pycore_hamt.h
* pycore_pyhash.h
2018-11-12 16:53:38 +01:00
Victor Stinner
d17a693fa0
bpo-35199: Add an internal _PyTuple_ITEMS() macro (GH-10434)
...
* _PyTuple_ITEMS() gives access to the tuple->ob_item field and cast the
first argument to PyTupleObject*. This internal macro is only usable if
Py_BUILD_CORE is defined.
* Replace &PyTuple_GET_ITEM(ob, 0) with _PyTuple_ITEMS(ob).
* Replace PyTuple_GET_ITEM(op, 1) with &_PyTuple_ITEMS(ob)[1].
2018-11-09 16:56:48 +01:00
Victor Stinner
27e2d1f219
bpo-35081: Add pycore_ prefix to internal header files (GH-10263)
...
* Rename Include/internal/ header files:
* pyatomic.h -> pycore_atomic.h
* ceval.h -> pycore_ceval.h
* condvar.h -> pycore_condvar.h
* context.h -> pycore_context.h
* pygetopt.h -> pycore_getopt.h
* gil.h -> pycore_gil.h
* hamt.h -> pycore_hamt.h
* hash.h -> pycore_hash.h
* mem.h -> pycore_mem.h
* pystate.h -> pycore_state.h
* warnings.h -> pycore_warnings.h
* PCbuild project, Makefile.pre.in, Modules/Setup: add the
Include/internal/ directory to the search paths of header files.
* Update includes. For example, replace #include "internal/mem.h"
with #include "pycore_mem.h".
2018-11-01 00:52:28 +01:00
Victor Stinner
caba55b3b7
bpo-34301: Add _PyInterpreterState_Get() helper function (GH-8592)
...
sys_setcheckinterval() now uses a local variable to parse arguments,
before writing into interp->check_interval.
2018-08-03 15:33:52 +02:00
Serhiy Storchaka
bd47384e07
bpo-24618: Add a check in the code constructor. (GH-8283)
...
Check that the size of the varnames tuple is enough at least for all arguments.
2018-07-16 09:10:19 +03:00
Serhiy Storchaka
b7e1eff843
bpo-33299: Return an object itself for some types in _PyCode_ConstantKey(). (GH-6513)
2018-04-19 08:28:04 +03:00
Nick Coghlan
078f1814f1
bpo-32176: Set CO_NOFREE in the code object constructor (GH-4675)
...
Previously, CO_NOFREE was set in the compiler, which meant
it could end up being set incorrectly when code objects
were created directly. Setting it in the constructor based
on freevars and cellvars ensures it is always accurate,
regardless of how the code object is defined.
2017-12-03 11:12:20 +10:00
Benjamin Peterson
2b7953d974
replace custom table with pyctype ( #3456 )
2017-09-08 10:35:49 -07:00
Serhiy Storchaka
e3b2b4b8d9
bpo-31393: Fix the use of PyUnicode_READY(). ( #3451 )
2017-09-08 09:58:51 +03:00
Benjamin Peterson
8e0ad46bc8
update all_name_chars comment after 9020ac7cce
( #3452 )
2017-09-07 23:35:53 -07:00
Benjamin Peterson
9020ac7cce
optimize all_name_chars ( #3442 )
...
Remove redundant PyUnicode_Check call. Use a static table for checking chars.
2017-09-07 18:06:23 -07:00
Serhiy Storchaka
378ebb6578
bpo-30789: Use a single memory block for co_extra. ( #2555 )
...
* bpo-30789: Use a single memory block for co_extra.
* Address review comments.
2017-07-04 14:06:16 +02:00
Victor Stinner
23e7944eba
bpo-30704, bpo-30604: Fix memleak in code_dealloc() ( #2455 )
...
Free also co_extra->ce_extras, not only co_extra.
2017-06-28 02:12:00 +02:00
Dino Viehland
f3cffd2b78
bpo-30604: clean up co_extra support ( #2144 )
...
bpo-30604: port fix from 3.6 dropping binary compatibility tweaks
2017-06-21 17:44:36 -04:00
Dong-hee Na
b4dc6af7a7
bpo-12414: Update code_sizeof() to take in account co_extra memory. ( #1168 )
2017-04-20 10:31:17 +03:00
Brian Coleman
6a9122ce69
bpo-29683 - Fixes to _PyCode_SetExtra when co_extra->ce->extras is ( #376 )
...
allocated.
On PyMem_Realloc failure, _PyCode_SetExtra should free co_extra if
co_extra->ce_extras could not be allocated.
On PyMem_Realloc success, _PyCode_SetExtra should set all unused slots in
co_extra->ce_extras to NULL.
2017-03-02 11:32:18 +01:00
Serhiy Storchaka
067cbd02bf
Issue #29337 : Fixed possible BytesWarning when compare the code objects.
...
Warnings could be emitted at compile time.
2017-01-24 20:54:07 +02:00
Serhiy Storchaka
4102d25b7e
Issue #29337 : Fixed possible BytesWarning when compare the code objects.
...
Warnings could be emitted at compile time.
2017-01-24 20:52:43 +02:00
Serhiy Storchaka
713640c4c9
Issue #29337 : Fixed possible BytesWarning when compare the code objects.
...
Warnings could be emitted at compile time.
2017-01-24 20:49:26 +02:00
Serhiy Storchaka
5bb8b9134b
Issue #18896 : Python function can now have more than 255 parameters.
...
collections.namedtuple() now supports tuples with more than 255 elements.
2016-12-16 19:19:02 +02:00
Serhiy Storchaka
460bd0d284
Issue #19569 : Compiler warnings are now emitted if use most of deprecated
...
functions.
2016-11-20 12:16:46 +02:00
Yury Selivanov
6c10650617
Merge 3.5 (issue #27942 )
2016-11-09 09:43:08 -05:00
Yury Selivanov
d2fd3599ab
ssue #27942 : Fix memory leak in codeobject.c
2016-11-09 09:42:14 -05:00
Serhiy Storchaka
e81b0d335b
Issue #28350 : String constants with null character no longer interned.
2016-10-04 18:21:25 +03:00
Serhiy Storchaka
09f3d080fe
Issue #28350 : String constants with null character no longer interned.
2016-10-04 18:17:22 +03:00
Serhiy Storchaka
3738c2d8ae
Issue #27942 : String constants now interned recursively in tuples and frozensets.
2016-09-30 10:23:01 +03:00
Serhiy Storchaka
00a0fc1144
Issue #27942 : String constants now interned recursively in tuples and frozensets.
2016-09-30 10:07:26 +03:00
Martin Panter
0be894b2f6
Issue #27895 : Spelling fixes (Contributed by Ville Skyttä).
2016-09-07 12:03:06 +00:00
Brett Cannon
d0600ed524
Make PyCodeObject.co_extra even more private to force users through the proper API.
2016-09-07 14:30:39 -07:00