Skip to content

TypedPython: region allocation for unbounded virtual objects (SPEC N-12, split from #143) #268

Closed

Description

@b-re-w

Split from #143 (leader decision). Virtual objects whose count is unbounded live in a region tied to one activation of a compiled function and are freed together; real objects are never placed in a region; a failed region allocation raises MemoryError where CPython would.

Done when: unbounded virtual objects that die inside a compiled function (for example a compiled caller doing check(make(d)) whose tree never leaves it) are allocated in a region, the verifier proves region lifetimes, and the N-12 differential and mutation tests pass for region objects.

Activity

  1. b-re-w commented on Oct 25, 2026

    @b-re-w
    MemberAuthor

    Completion criterion changed (leader, 2026-10-25): binary-trees as written cannot build its tree in a region. make(d) returns the tree to main, which stays interpreted, so the tree escapes and must be real objects; on free-threaded 3.15t real objects are also reachable from other threads via gc.get_objects(), and SPEC N-12 never places real objects in a region. The criterion is now region allocation for unbounded virtual objects that end inside a compiled function (e.g. check(make(d)) in a compiled caller); the binary-trees benchmark criterion is dropped.

  2. added a commit that references this issue on Oct 25, 2026
  3. b-re-w commented on Oct 25, 2026

    @b-re-w
    MemberAuthor

    Landed in develop via the PR from feat/tp-region.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions