summaryrefslogtreecommitdiffstats
path: root/Objects/codeobject.c
Commit message (Collapse)AuthorAgeFilesLines
* bpo-32176: Set CO_NOFREE in the code object constructor (GH-4675)Nick Coghlan2017-12-031-1/+9
| | | | | | | | 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.
* replace custom table with pyctype (#3456)Benjamin Peterson2017-09-081-12/+1
|
* bpo-31393: Fix the use of PyUnicode_READY(). (#3451)Serhiy Storchaka2017-09-081-1/+5
|
* update all_name_chars comment after 9020ac7cce97dddad51b285fffc31fe4ddf60898 ↵Benjamin Peterson2017-09-081-2/+1
| | | | (#3452)
* optimize all_name_chars (#3442)Benjamin Peterson2017-09-081-14/+14
| | | Remove redundant PyUnicode_Check call. Use a static table for checking chars.
* bpo-30789: Use a single memory block for co_extra. (#2555)Serhiy Storchaka2017-07-041-39/+15
| | | | | | * bpo-30789: Use a single memory block for co_extra. * Address review comments.
* bpo-30704, bpo-30604: Fix memleak in code_dealloc() (#2455)Victor Stinner2017-06-281-1/+2
| | | Free also co_extra->ce_extras, not only co_extra.
* bpo-30604: clean up co_extra support (#2144)Dino Viehland2017-06-211-12/+18
| | | bpo-30604: port fix from 3.6 dropping binary compatibility tweaks
* bpo-12414: Update code_sizeof() to take in account co_extra memory. (#1168)Dong-hee Na2017-04-201-2/+6
|
* bpo-29683 - Fixes to _PyCode_SetExtra when co_extra->ce->extras is (#376)Brian Coleman2017-03-021-10/+14
| | | | | | | | 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.
* Issue #29337: Fixed possible BytesWarning when compare the code objects.Serhiy Storchaka2017-01-241-3/+3
|\ | | | | | | Warnings could be emitted at compile time.
| * Issue #29337: Fixed possible BytesWarning when compare the code objects.Serhiy Storchaka2017-01-241-3/+3
| |\ | | | | | | | | | Warnings could be emitted at compile time.
| | * Issue #29337: Fixed possible BytesWarning when compare the code objects.Serhiy Storchaka2017-01-241-3/+3
| | | | | | | | | | | | Warnings could be emitted at compile time.
* | | Issue #18896: Python function can now have more than 255 parameters.Serhiy Storchaka2016-12-161-7/+13
| | | | | | | | | | | | collections.namedtuple() now supports tuples with more than 255 elements.
* | | Issue #19569: Compiler warnings are now emitted if use most of deprecatedSerhiy Storchaka2016-11-201-3/+2
|/ / | | | | | | functions.
* | Merge 3.5 (issue #27942)Yury Selivanov2016-11-091-0/+2
|\ \ | |/
| * ssue #27942: Fix memory leak in codeobject.cYury Selivanov2016-11-091-0/+2
| |
* | Issue #28350: String constants with null character no longer interned.Serhiy Storchaka2016-10-041-8/+8
|\ \ | |/
| * Issue #28350: String constants with null character no longer interned.Serhiy Storchaka2016-10-041-8/+8
| |
* | Issue #27942: String constants now interned recursively in tuples and ↵Serhiy Storchaka2016-09-301-7/+45
|\ \ | |/ | | | | frozensets.
| * Issue #27942: String constants now interned recursively in tuples and ↵Serhiy Storchaka2016-09-301-7/+45
| | | | | | | | frozensets.
| * Issue #27895: Spelling fixes (Contributed by Ville Skyttä).Martin Panter2016-09-071-1/+1
| |
* | Make PyCodeObject.co_extra even more private to force users through the ↵Brett Cannon2016-09-071-23/+31
| | | | | | | | proper API.
* | Change error return value to be more consistent with the rest of PythonBrett Cannon2016-09-071-5/+5
| |
* | use a the bool type for a boolean variableBenjamin Peterson2016-09-071-2/+4
| |
* | Add the co_extra field and accompanying APIs to code objects.Brett Cannon2016-09-071-0/+91
| | | | | | | | This completes PEP 523.
* | Issue #27895: Spelling fixes (Contributed by Ville Skyttä).Raymond Hettinger2016-08-301-1/+1
| |
* | Issue #15984: Merge PyUnicode doc from 3.5Martin Panter2016-04-151-1/+1
|\ \ | |/
| * Correct “an” → “a” with “Unicode”, “user”, “UTF”, etcMartin Panter2016-04-151-1/+1
| | | | | | | | This affects documentation, code comments, and a debugging messages.
| * code_richcompare() now uses the constants typesVictor Stinner2016-01-221-1/+138
| | | | | | | | | | | | | | | | | | 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.
* | code_richcompare() now uses the constants typesVictor Stinner2016-01-221-1/+138
| | | | | | | | | | | | | | | | | | 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.
* | co_lnotab supports negative line number deltaVictor Stinner2016-01-201-4/+7
|/ | | | | | | | | | | | | | | | | | | | | 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
* Issue #25421: __sizeof__ methods of builtin types now use dynamic basic size.Serhiy Storchaka2015-12-191-1/+1
| | | | | This allows sys.getsize() to work correctly with their subclasses with __slots__ defined.
* Issue #18874: PyCode_New() now ensures that the filename is a ready UnicodeVictor Stinner2013-10-101-0/+5
| | | | | string. This change does nothing is most cases, but it is useful on Windows in some cases.
* Issue #15456: Fix code __sizeof__ after #12399 change.Martin v. Löwis2012-07-261-1/+17
| | | | Patch by Serhiy Storchaka.
* Make PyUnicode_Copy() private => _PyUnicode_Copy()Victor Stinner2011-12-121-1/+1
| | | | | | Undocument the function. Make also decode_utf8_errors() as private (static).
* Reuse PyUnicode_Copy() in validate_and_copy_tuple()Victor Stinner2011-10-111-3/+1
|
* Implement PEP 393.Martin v. Löwis2011-09-281-6/+9
|
* Replace Py_NotImplemented returns with the macro form Py_RETURN_NOTIMPLEMENTED.Brian Curtin2011-08-111-2/+1
| | | | The macro was introduced in #12724.
* map cells to arg slots at code creation time (closes #12399)Benjamin Peterson2011-06-261-29/+65
| | | | This removes nested loops in PyEval_EvalCodeEx.
* Remove arbitrary string length limitsVictor Stinner2011-01-051-2/+2
| | | | | PyUnicode_FromFormat() and PyErr_Format() allocates a buffer of the needed size, it is no more a fixed-buffer of 500 bytes.
* Issue #9566: use Py_ssize_t instead of intVictor Stinner2011-01-041-2/+3
|
* make hashes always the size of pointers; introduce Py_hash_t #9778Benjamin Peterson2010-10-171-2/+2
|
* Remove unused label.Georg Brandl2010-10-151-4/+0
|
* Use locale encoding if Py_FileSystemDefaultEncoding is not setVictor Stinner2010-10-151-13/+0
| | | | | | | | * PyUnicode_EncodeFSDefault(), PyUnicode_DecodeFSDefaultAndSize() and PyUnicode_DecodeFSDefault() use the locale encoding instead of UTF-8 if Py_FileSystemDefaultEncoding is NULL * redecode_filenames() functions and _Py_code_object_list (issue #9630) are no more needed: remove them
* Issue #9630: Redecode filenames when setting the filesystem encodingVictor Stinner2010-09-291-0/+17
| | | | | | | | | | | | | | Redecode the filenames of: - all modules: __file__ and __path__ attributes - all code objects: co_filename attribute - sys.path - sys.meta_path - sys.executable - sys.path_importer_cache (keys) Keep weak references to all code objects until initfsencoding() is called, to be able to redecode co_filename attribute of all code objects.
* Recorded merge of revisions 81029 via svnmerge fromAntoine Pitrou2010-05-091-453/+453
| | | | | | | | | | svn+ssh://pythondev@svn.python.org/python/trunk ........ r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines Untabify C files. Will watch buildbots. ........
* code_repr(): use %U to format the filenameVictor Stinner2010-05-071-8/+12
| | | | Avoid useless unicode decoding/recoding of the filename.
* Merged revisions 79060 via svnmerge fromCollin Winter2010-03-181-1/+4
| | | | | | | | | | | | svn+ssh://pythondev@svn.python.org/python/trunk ........ r79060 | collin.winter | 2010-03-18 14:54:01 -0700 (Thu, 18 Mar 2010) | 4 lines Add support for weak references to code objects. This will be used by an optimization in the incoming Python 3 JIT. Patch by Reid Kleckner! ........
* Merged revisions 72487-72488,72879 via svnmerge fromAlexandre Vassalotti2009-07-211-133/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | svn+ssh://pythondev@svn.python.org/python/trunk ........ r72487 | jeffrey.yasskin | 2009-05-08 17:51:06 -0400 (Fri, 08 May 2009) | 7 lines PyCode_NewEmpty: Most uses of PyCode_New found by http://www.google.com/codesearch?q=PyCode_New are trying to build an empty code object, usually to put it in a dummy frame object. This patch adds a PyCode_NewEmpty wrapper which lets the user specify just the filename, function name, and first line number, instead of also requiring lots of code internals. ........ r72488 | jeffrey.yasskin | 2009-05-08 18:23:21 -0400 (Fri, 08 May 2009) | 13 lines Issue 5954, PyFrame_GetLineNumber: Most uses of PyCode_Addr2Line (http://www.google.com/codesearch?q=PyCode_Addr2Line) are just trying to get the line number of a specified frame, but there's no way to do that directly. Forcing people to go through the code object makes them know more about the guts of the interpreter than they should need. The remaining uses of PyCode_Addr2Line seem to be getting the line from a traceback (for example, http://www.google.com/codesearch/p?hl=en#u_9_nDrchrw/pygame-1.7.1release/src/base.c&q=PyCode_Addr2Line), which is replaced by the tb_lineno field. So we may be able to deprecate PyCode_Addr2Line entirely for external use. ........ r72879 | jeffrey.yasskin | 2009-05-23 19:23:01 -0400 (Sat, 23 May 2009) | 14 lines Issue #6042: lnotab-based tracing is very complicated and isn't documented very well. There were at least 3 comment blocks purporting to document co_lnotab, and none did a very good job. This patch unifies them into Objects/lnotab_notes.txt which tries to completely capture the current state of affairs. I also discovered that we've attached 2 layers of patches to the basic tracing scheme. The first layer avoids jumping to instructions that don't start a line, to avoid problems in if statements and while loops. The second layer discovered that jumps backward do need to trace at instructions that don't start a line, so it added extra lnotab entries for 'while' and 'for' loops, and added a special case for backward jumps within the same line. I replaced these patches by just treating forward and backward jumps differently. ........