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
Brett Cannon
3788b85628
Change error return value to be more consistent with the rest of Python
2016-09-07 12:51:08 -07:00
Benjamin Peterson
1bf494b0ec
use a the bool type for a boolean variable
2016-09-07 11:28:35 -07:00
Brett Cannon
5c4de2863b
Add the co_extra field and accompanying APIs to code objects.
...
This completes PEP 523.
2016-09-07 11:16:41 -07:00
Raymond Hettinger
15f44ab043
Issue #27895 : Spelling fixes (Contributed by Ville Skyttä).
2016-08-30 10:47:49 -07:00
Martin Panter
cda80940ed
Issue #15984 : Merge PyUnicode doc from 3.5
2016-04-15 02:27:11 +00:00
Martin Panter
6245cb3c01
Correct “an” → “a” with “Unicode”, “user”, “UTF”, etc
...
This affects documentation, code comments, and a debugging messages.
2016-04-15 02:14:19 +00:00
Victor Stinner
efb2413ce8
code_richcompare() now uses the constants types
...
Issue #25843 : When compiling code, don't merge constants if they are equal but
have a different types. For example, "f1, f2 = lambda: 1, lambda: 1.0" is now
correctly compiled to two different functions: f1() returns 1 (int) and f2()
returns 1.0 (int), even if 1 and 1.0 are equal.
Add a new _PyCode_ConstantKey() private function.
2016-01-22 12:33:12 +01:00
Victor Stinner
f3914eb16d
co_lnotab supports negative line number delta
...
Issue #26107 : The format of the co_lnotab attribute of code objects changes to
support negative line number delta.
Changes:
* assemble_lnotab(): if line number delta is less than -128 or greater than
127, emit multiple (offset_delta, lineno_delta) in co_lnotab
* update functions decoding co_lnotab to use signed 8-bit integers
- dis.findlinestarts()
- PyCode_Addr2Line()
- _PyCode_CheckLineNumber()
- frame_setlineno()
* update lnotab_notes.txt
* increase importlib MAGIC_NUMBER to 3361
* document the change in What's New in Python 3.6
* cleanup also PyCode_Optimize() to use better variable names
2016-01-20 12:16:21 +01:00