This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients Demur Rumed, martius, ned.deily, r.david.murray, serhiy.storchaka, vstinner, yselivanov
Date 2016-11-23.23:57:50
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1479945471.27.0.71643660635.issue28782@psf.upfronthosting.co.za>
In-reply-to
Content
> Another much larger change would be to change f_lasti to -2...

Attached lasti.patch implements this idea. I consider that it makes the C code simpler because getting the next instruction (f_lasti + 2) doesn't require a special case anymore.

My patch keeps f_lasti == -1 at the Python level for backward compatibility.

lasti.patch is only a backward incompatible change at the C level.

--

Between pygen_yf.patch and lasti.patch, I prefer lasti.patch even if 3.6 is at its last beta version before the final version. I prefer to fix the C API. Later it will be much harder to fix it.

--

I read again the wordcode issue #26647:

I wrote on the review of wpy7.patch: "The overall change LGTM, but I'm no more 100% sure that starting f_lasti=-1 is safe."
http://bugs.python.org/review/26647/#msg17

I wrote: "IMHO it's ok to break the C API, but I would prefer to keep the backward compatibility for the Python API (replace any negative number with -1 for the Python API)."
http://bugs.python.org/issue26647#msg262758

Serhiy: "I think we should make yet few related changes: (...) * Change f_lasti, tb_lasti etc to count code units instead of bytes."
http://bugs.python.org/issue26647#msg262758
History
Date User Action Args
2016-11-23 23:57:51vstinnersetrecipients: + vstinner, ned.deily, r.david.murray, serhiy.storchaka, yselivanov, martius, Demur Rumed
2016-11-23 23:57:51vstinnersetmessageid: <1479945471.27.0.71643660635.issue28782@psf.upfronthosting.co.za>
2016-11-23 23:57:51vstinnerlinkissue28782 messages
2016-11-23 23:57:50vstinnercreate