Skip to content

co_lnotab must be removed in 3.12 according to PEP 626 #101865

Description

@sobolevn

The co_lnotab attribute will be deprecated in 3.10 and removed in 3.12.

https://peps.python.org/pep-0626/#backwards-compatibility

It was documented as deprecated in 3.10 and to-be-removed in 3.12: https://docs.python.org/3/whatsnew/3.10.html#pep-626-precise-line-numbers-for-debugging-and-other-tools

Original issue: #86412

Right now CPython does not use co_lnotab in its source code.
But, there are two mentions of it:

  1. In gdb:

    cpython/Misc/gdbinit

    Lines 60 to 61 in 6ef6915

    set $__sz = ((PyVarObject *)$__co->co_lnotab)->ob_size/2
    set $__p = (unsigned char *)((PyBytesObject *)$__co->co_lnotab)->ob_sval
    And I have no idea how it works! Some weird mix of C and some kind of a DSL / scripting language
  2. In clinic.test:
    co_lnotab: PyBytesObject(c_default="(PyBytesObject *)self->co_lnotab") = None
    But, this is just a string-based test. So, I think it can stay there

If that's fine - I would like to do the honours.

CC @markshannon

Linked PRs

Activity

  1. added
    type-featureA feature request or enhancement
    interpreter-core(Objects, Python, Grammar, and Parser dirs)
    3.12only security fixes
    on Feb 13, 2023
  2. self-assigned this
    on Feb 13, 2023
  3. added a commit that references this issue on Feb 13, 2023
  4. markshannon commented on Feb 21, 2023

    @markshannon
    Member

    I don't get any warning when using co_lnotab in 3.11, so I don't think we can remove it yet.
    Don't assume everyone has read PEP 626.

    We should at least warn when using it for a couple of versions, before removing it.

    It isn't causing us any problems either, so there is not rush to remove it. It can wait for 3.14 or so.

  5. sobolevn commented on Feb 21, 2023

    @sobolevn
    MemberAuthor

    Ok then, so DeprecationWarning it is! 👍

  6. added 2 commits that reference this issue on Feb 21, 2023
  7. changed the title [-]`co_lnotab` must be removed in 3.12 according to PEP626[/-] [+]`co_lnotab` must be removed in 3.12 according to PEP 626[/+] on Mar 18, 2023
  8. added a commit that references this issue on Apr 3, 2023
  9. added a commit that references this issue on Apr 8, 2023
  10. added a commit that references this issue on Apr 11, 2023
  11. added 5 commits that reference this issue on Nov 4, 2024
  12. added a commit that references this issue on Dec 8, 2024
  13. added a commit that references this issue on Jan 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

3.12only security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)type-featureA feature request or enhancement

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions