[issue16956] Allow signed line number deltas in the code object's line number table

2013-01-13 Thread Mark Shannon
New submission from Mark Shannon: The restriction that line numbers must be monotonically increasing w.r.t bytecode offset in the co_lnotab array prevents a number of beneficial transformations in the bytecode compiler. This patch allows negative line number deltas and uses this capability to

[issue16956] Allow signed line number deltas in the code object's line number table

2013-01-13 Thread Mark Shannon
Changes by Mark Shannon : -- keywords: +patch Added file: http://bugs.python.org/file28718/dd04caae6647.diff ___ Python tracker ___ __

[issue16956] Allow signed line number deltas in the code object's line number table

2013-01-14 Thread Antoine Pitrou
Antoine Pitrou added the comment: How does this interact with pdb? -- nosy: +georg.brandl, haypo, pitrou stage: -> patch review type: -> enhancement versions: +Python 3.4 ___ Python tracker __

[issue16956] Allow signed line number deltas in the code object's line number table

2013-01-15 Thread Mark Shannon
Mark Shannon added the comment: The interaction between bdb/pdb and the line number table is via the frame.f_lineno attribute. Allowing signed offsets changes the one-to-one line muber => bytecode offset relation into a one-to-many relation. Reading frame.f_lineno is not an issue as each byte

[issue16956] Allow signed line number deltas in the code object's line number table

2013-02-09 Thread Xavier de Gaye
Changes by Xavier de Gaye : -- nosy: +xdegaye ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.pytho

[issue16956] Allow signed line number deltas in the code object's line number table

2013-02-09 Thread Xavier de Gaye
Xavier de Gaye added the comment: > How does this interact with pdb? Also, the findlinestarts() function from the dis module computes line numbers from lnotab. This function is used by pdb when displaying the lines of a traceback. -- ___ Python track

[issue16956] Allow signed line number deltas in the code object's line number table

2013-02-09 Thread Antoine Pitrou
Antoine Pitrou added the comment: Your patch doesn't seem to work properly: a "while" loop doesn't generate negative line offsets. The reason seems to be that compiler_set_lineno() prevents it. (also, if I re-add the `assert(d_lineno >= 0);` in assemble_lnotab(), I don't get any crash) --

[issue16956] Allow signed line number deltas in the code object's line number table

2016-01-20 Thread STINNER Victor
STINNER Victor added the comment: Good news: this issue has been fixed in issue #26107. -- resolution: -> fixed status: open -> closed superseder: -> PEP 511: code.co_lnotab: use signed line number delta to support moving instructions in an optimizer _