Skip to content

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

Closed
@sobolevn

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

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