summaryrefslogtreecommitdiffstats
path: root/Include/code.h
Commit message (Collapse)AuthorAgeFilesLines
* Add support for weak references to code objects. This will be used by an ↵Collin Winter2010-03-181-0/+1
| | | | | | optimization in the incoming Python 3 JIT. Patch by Reid Kleckner!
* Issue #6042:Jeffrey Yasskin2009-05-231-9/+6
| | | | | | | | | | | | | | | 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.
* Issue 5954, PyFrame_GetLineNumber:Jeffrey Yasskin2009-05-081-0/+3
| | | | | | | | | | | | | | 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.
* PyCode_NewEmpty:Jeffrey Yasskin2009-05-081-0/+5
| | | | | | | | 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.
* Patch #2477: Added from __future__ import unicode_literalsChristian Heimes2008-03-261-0/+1
| | | | The new PyParser_*Ex() functions are based on Neal's suggestion and initial patch. The new __future__ feature makes all '' and r'' unicode strings. b'' and br'' stay (byte) strings.
* Backport of the print function, using a __future__ import.Eric Smith2008-03-181-1/+2
| | | | | | | | This work is substantially Anthony Baxter's, from issue 1633807. I just freshened it, made a few minor tweaks, and added the test cases. I also created issue 2412, which is to check for 2to3's behavior with the print function. I also added myself to ACKS.
* #1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and ↵Christian Heimes2007-12-191-2/+2
| | | | Py_REFCNT. Macros for b/w compatibility are available.
* PEP 3123: Provide forward compatibility with Python 3.0, while keepingMartin v. Löwis2007-07-211-2/+2
| | | | | backwards compatibility. Add Py_Refcnt, Py_Type, Py_Size, and PyVarObject_HEAD_INIT.
* with and as are now keywords. There are some generated files I can't recreate.Neal Norwitz2006-09-061-0/+2
|
* Move peephole optimizer to separate file. (Forgot .h in previous checkin.)Jeremy Hylton2006-08-211-0/+3
|
* Merge from rjones-funccall branch.Richard Jones2006-05-231-0/+1
| | | | | | Applied patch zombie-frames-2.diff from sf patch 876206 with updates for Python 2.5 and also modified to retain the free_list to avoid the 67% slow-down in pybench recursion test. 5% speed up in function call pybench.
* Refactor: Move code that uses co_lnotab from ceval to codeobjectJeremy Hylton2006-04-181-0/+15
|
* Don't abbreviate ABS, use long name ABSOLUTE.Neal Norwitz2006-04-031-1/+1
|
* from __future__ import with_statement addon for 'with', mostly written byThomas Wouters2006-02-281-0/+6
| | | | Neal.
* SF patch #1438387, PEP 328: relative and absolute imports.Thomas Wouters2006-02-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | - IMPORT_NAME takes an extra argument from the stack: the relativeness of the import. Only passed to __import__ when it's not -1. - __import__() takes an optional 5th argument for the same thing; it __defaults to -1 (old semantics: try relative, then absolute) - 'from . import name' imports name (be it module or regular attribute) from the current module's *package*. Likewise, 'from .module import name' will import name from a sibling to the current module. - Importing from outside a package is not allowed; 'from . import sys' in a toplevel module will not work, nor will 'from .. import sys' in a (single-level) package. - 'from __future__ import absolute_import' will turn on the new semantics for import and from-import: imports will be absolute, except for from-import with dots. Includes tests for regular imports and importhooks, parser changes and a NEWS item, but no compiler-package changes or documentation changes.
* Per discussion on python-dev, remove CO_GENERATOR_ALLOWED. Leave comment ↵Neal Norwitz2006-02-251-1/+4
| | | | about not removing yet.
* Generators have been permanent for a while. This comment is no longer ↵Neal Norwitz2006-02-191-6/+1
| | | | applicable.
* Use the newer names for APIs after the AST mergeNeal Norwitz2005-10-211-3/+3
|
* Merge ast-branch to headJeremy Hylton2005-10-201-0/+73
This change implements a new bytecode compiler, based on a transformation of the parse tree to an abstract syntax defined in Parser/Python.asdl. The compiler implementation is not complete, but it is in stable enough shape to run the entire test suite excepting two disabled tests.