Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 36 additions & 19 deletions docs/interpreter-compatibility.json
Original file line number Diff line number Diff line change
Expand Up @@ -237,8 +237,8 @@
{
"id": "class-construction",
"status": "partial",
"scope": "Explicit classes-source/1: user classes, bounded C3 MRO, owned __new__/__init__, conditional runtime-type initialization, descriptors, bound methods, lexical __class__ cells and explicit/zero-argument super.",
"gaps": "Metaclasses, builtin instance subclassing and broader type/reflection remain separate construction stages.",
"scope": "Explicit classes-source/1: user classes, bounded C3 MRO, owned __new__/__init__, conditional runtime-type initialization, descriptors, bound methods, lexical __class__ cells and explicit/zero-argument super. Finite metaclasses adopt type-derived inheritance, selection/conflicts, __new__/__init__/__call__, descriptor binding and class-cell propagation with ordinary dictionary namespaces.",
"gaps": "Builtin instance layouts, custom namespace preparation, further metaclass special slots, callable factories and additional class keywords remain separate.",
"reference_version": "3.14.7",
"targets": [
"node",
Expand All @@ -254,7 +254,9 @@
],
"evidence": [
"tests/fixtures/interpreter/construction.json:new-subclass-init",
"tests/fixtures/interpreter/construction.json:super-diamond"
"tests/fixtures/interpreter/construction.json:super-diamond",
"tests/fixtures/interpreter/construction.json:metaclass-new-init",
"tests/fixtures/interpreter/construction.json:dynamic-winning-metaclass"
]
},
{
Expand Down Expand Up @@ -1087,9 +1089,9 @@
},
{
"id": "dict",
"status": "deferred",
"scope": "Not installed; resolving this builtin name raises Python NameError.",
"gaps": "No implementation/API support credit from the negative availability probe.",
"status": "partial",
"scope": "No-argument dict() in classes-source/1; dictionary literals and existing owned operations retain their separate contracts.",
"gaps": "Populated dictionary construction and broader dictionary methods remain deferred.",
"reference_version": "3.14.7",
"targets": [
"node",
Expand All @@ -1101,7 +1103,9 @@
"probes": [
"builtin-dict"
],
"evidence": []
"evidence": [
"tests/fixtures/interpreter/construction.json:type-primitives"
]
},
{
"id": "dir",
Expand Down Expand Up @@ -1443,8 +1447,8 @@
{
"id": "isinstance",
"status": "partial",
"scope": "isinstance(x, str/adopted exception class/user class).",
"gaps": "Tuple/union classinfo and unadopted builtin families.",
"scope": "Adopted type relationships, canonical native identities, bool/int and exception ancestry, nested class-info tuples with short-circuit/error order in classes-source/1.",
"gaps": "Unions and custom instance/subclass checks remain deferred; tuple nesting is bounded.",
"reference_version": "3.14.7",
"targets": [
"node",
Expand All @@ -1456,13 +1460,16 @@
"probes": [
"builtin-isinstance"
],
"evidence": []
"evidence": [
"tests/fixtures/interpreter/construction.json:relation-builtin-ancestry",
"tests/fixtures/interpreter/construction.json:relation-nested-tuples"
]
},
{
"id": "issubclass",
"status": "partial",
"scope": "issubclass(user_class, user_class/object).",
"gaps": "Full builtin, tuple/union classinfo.",
"scope": "Adopted type relationships, canonical native identities, bool/int and exception ancestry, nested class-info tuples with short-circuit/error order in classes-source/1.",
"gaps": "Unions and custom instance/subclass checks remain deferred; tuple nesting is bounded.",
"reference_version": "3.14.7",
"targets": [
"node",
Expand All @@ -1474,7 +1481,10 @@
"probes": [
"builtin-issubclass"
],
"evidence": []
"evidence": [
"tests/fixtures/interpreter/construction.json:relation-builtin-ancestry",
"tests/fixtures/interpreter/construction.json:relation-nested-tuples"
]
},
{
"id": "iter",
Expand Down Expand Up @@ -1656,8 +1666,8 @@
{
"id": "object",
"status": "partial",
"scope": "object() and root base in classes-source/1.",
"gaps": "Default displays, identity hashing, __new__ and richer object APIs.",
"scope": "Root object identity, no-argument construction and finite object.__new__/__init__ for ordinary user instances in classes-source/1.",
"gaps": "Default displays, builtin instance allocation and broader reflection remain separately gated.",
"reference_version": "3.14.7",
"targets": [
"node",
Expand All @@ -1670,7 +1680,10 @@
"probes": [
"builtin-object"
],
"evidence": []
"evidence": [
"tests/fixtures/interpreter/construction.json:object-new-direct",
"tests/fixtures/interpreter/construction.json:object-init-overrides"
]
},
{
"id": "oct",
Expand Down Expand Up @@ -2029,8 +2042,8 @@
{
"id": "type",
"status": "partial",
"scope": "type(user_instance), one argument; classes-source/1.",
"gaps": "Full one-argument and three-argument type construction.",
"scope": "Canonical type identities for adopted values and three-argument type construction with tuple bases and a bounded string-key dictionary namespace; finite type.__new__/__init__/__call__ and metaclass selection.",
"gaps": "Custom namespace mappings, callable factories, builtin instance subclasses and further metaclass special slots remain gated.",
"reference_version": "3.14.7",
"targets": [
"node",
Expand All @@ -2042,7 +2055,11 @@
"probes": [
"builtin-type"
],
"evidence": []
"evidence": [
"tests/fixtures/interpreter/construction.json:type-primitives",
"tests/fixtures/interpreter/construction.json:dynamic-type",
"tests/fixtures/interpreter/construction.json:metaclass-new-init"
]
},
{
"id": "vars",
Expand Down
12 changes: 6 additions & 6 deletions docs/interpreter-compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ issue families; availability alone never certifies an entire type or module.
| ordinary-control | supported | if/elif/else, while/for over adopted values, loop else/break/continue, return and finally control transfer. Generator, context-manager, match and async control are separate rows. |
| function-binding | partial | def, recursion, positional-only/ordinary/keyword-only parameters; literal and definition-time computed/mutable defaults and lexical closures. Global/nonlocal writes and deletion share the defining module and lexical cells. Variadic positional/keyword parameters pack fresh owned values. Positional starred calls consume owned iterables. Keyword call expansion admits owned dictionaries and keys/getitem mappings with ordered duplicate checks. Construction-hint forms and annotations remain deferred; signatures and error-message comparisons are scoped by interpreter-function-binding.md. |
| ordinary-syntax-gaps | partial | Assertions and assignment expressions in both source profiles, with owned truth callbacks and lexical scope writes. Lambda functions use ordinary parameters/defaults and lexical cells. Tuple/list/starred assignments, loop targets, and starred sequence/dictionary displays use owned iteration/mapping phases. Construction hints remain with their sequence task; assertion message formatting and comprehensions retain separate gates. |
| class-construction | partial | Explicit classes-source/1: user classes, bounded C3 MRO, owned __new__/__init__, conditional runtime-type initialization, descriptors, bound methods, lexical __class__ cells and explicit/zero-argument super. Metaclasses, builtin instance subclassing and broader reflection retain their separate construction stages. |
| class-construction | partial | Explicit classes-source/1: user classes, bounded C3 MRO, owned __new__/__init__, conditional runtime-type initialization, descriptors, bound methods, lexical __class__ cells and explicit/zero-argument super. Finite metaclasses adopt type-derived inheritance, selection/conflicts, __new__/__init__/__call__, descriptor binding and class-cell propagation with ordinary dictionary namespaces. Builtin instance layouts, custom namespace preparation, further metaclass special slots, callable factories and additional class keywords remain separate. |
| private-names | supported | Lexical private-name mangling in admitted class bodies, nested code, parameters/imports and metadata. No additional syntax beyond the explicit source profile. |
| descriptors-decorators | partial | Functions, properties, static/class methods, custom get/set/delete/name-notification descriptors and decorators in classes-source/1. Descriptor-valued setter/deleter/name-notification hooks and unrestricted reflection remain refused. |
| call-length-truth | supported | Type-level __call__/__len__/__bool__, callable(), len(), bool(), not and control tests in classes-source/1, including adopted descriptor binding and optional truth fallback. Length uses the explicit signed-64-bit contract; later protocols remain separate. |
Expand Down Expand Up @@ -103,7 +103,7 @@ issue families; availability alone never certifies an entire type or module.
| compile | deferred | Not installed; resolving this builtin name raises Python NameError. | No implementation/API support credit from the negative availability probe. |
| complex | partial | Owned immutable Cartesian values, literal/text/real/complex construction, real/imag keywords and attributes, finite basic arithmetic, equality/truth/hash and bounded integer powers. Owned conversion and index fallback callbacks run in ordinary VM frames under classes-source/1. | General powers, non-finite arithmetic/recovery families, numeric methods, formatting and builtin subclasses remain later boundaries. |
| delattr | partial | Positional reflection on adopted class attributes and descriptors. | Custom hooks and broader reflection remain separate. |
| dict | deferred | Not installed; resolving this builtin name raises Python NameError. | No implementation/API support credit from the negative availability probe. |
| dict | partial | No-argument dict() in classes-source/1; dictionary literals and existing owned operations retain their separate contracts. | Populated dictionary construction and broader dictionary methods remain deferred. |
| dir | deferred | Not installed; resolving this builtin name raises Python NameError. | No implementation/API support credit from the negative availability probe. |
| divmod | partial | Positional-only primitive int/float quotient and remainder with owned tuple results and Python sign/zero rules. | General user arithmetic/reflected slots remain INT-OBJECT-01. |
| enumerate | deferred | Not installed; resolving this builtin name raises Python NameError. | No implementation/API support credit from the negative availability probe. |
Expand All @@ -122,8 +122,8 @@ issue families; availability alone never certifies an entire type or module.
| id | deferred | Not installed; resolving this builtin name raises Python NameError. | No implementation/API support credit from the negative availability probe. |
| input | host-restricted | Not installed; availability probe only, never invoked. | Interactive/process/filesystem behavior needs an explicit target capability contract. |
| int | partial | Real primitive and Unicode text construction with exact signatures, base/underscore rules and bounded input/result work in both source profiles. Owned conversion and index fallback callbacks run in ordinary VM frames under classes-source/1. | Bytes (int/float), builtin subclasses, numeric methods and formatting remain later value/object stages. |
| isinstance | partial | isinstance(x, str/adopted exception class/user class). | Tuple/union classinfo and unadopted builtin families. |
| issubclass | partial | issubclass(user_class, user_class/object). | Full builtin, tuple/union classinfo. |
| isinstance | partial | Adopted type relationships, canonical native identities, bool/int and exception ancestry, nested class-info tuples with short-circuit/error order in classes-source/1. | Unions and custom instance/subclass checks remain deferred; tuple nesting is bounded. |
| issubclass | partial | Adopted type relationships, canonical native identities, bool/int and exception ancestry, nested class-info tuples with short-circuit/error order in classes-source/1. | Unions and custom instance/subclass checks remain deferred; tuple nesting is bounded. |
| iter | partial | Primitive iter(value); classes-source adds user __iter__, indexed fallback and iter(callable, sentinel). | Generator/async protocols and broader sequence APIs remain separate. |
| len | partial | len(admitted containers/str or classes-profile __len__). | Unadopted value families and builtin subclasses remain deferred; user index results are validated through owned conversion. |
| list | partial | Zero or one positional adopted iterable; primitives in both profiles, owned user iteration in classes-source/1 without user length hints. Lists are fresh shallow containers. | User length hints, methods, builtin subclassing and broader reflection remain separate stages. |
Expand All @@ -133,7 +133,7 @@ issue families; availability alone never certifies an entire type or module.
| memoryview | partial | One-dimensional unsigned-byte views over owned bytes/bytearray, strided aliases, scalar writes, readonly/cached hashing, release, finite metadata and conversion methods. | Native buffers, other formats/dimensions/casts, slice mutation, context management and overflowing nested strides remain deferred. |
| min | deferred | Not installed; resolving this builtin name raises Python NameError. | No implementation/API support credit from the negative availability probe. |
| next | partial | Primitive next(iterator); classes-source adds user __next__ and next(iterator, default). | Generator/async protocols and iterator reflection remain separate. |
| object | partial | object() and root base in classes-source/1. | Default displays, identity hashing, __new__ and richer object APIs. |
| object | partial | Root object identity, no-argument construction and finite object.__new__/__init__ for ordinary user instances in classes-source/1. | Default displays, builtin instance allocation and broader reflection remain separately gated. |
| oct | supported | Primitive numeric signatures in both source profiles and owned type-level callbacks in classes-source/1; see interpreter-numeric.md for the finite contract. | |
| open | host-restricted | Not installed; availability probe only, never invoked. | Interactive/process/filesystem behavior needs an explicit target capability contract. |
| ord | supported | One-character Unicode strings, including non-BMP code points and lone surrogate values; positional-only argument. One-byte bytes/bytearray arguments are also adopted. | |
Expand All @@ -153,7 +153,7 @@ issue families; availability alone never certifies an entire type or module.
| sum | deferred | Not installed; resolving this builtin name raises Python NameError. | No implementation/API support credit from the negative availability probe. |
| super | partial | Explicit bound/unbound and zero-argument super with lexical class cells, current C3 lookup, descriptors and proxy metadata in classes-source/1. | Builtin instance layouts, custom __class__ hooks and proxy reinitialization remain separate. |
| tuple | partial | Zero or one positional adopted iterable; primitives in both profiles, owned user iteration in classes-source/1 without user length hints. Existing tuple identity and shallow elements are preserved. | User length hints, methods, builtin subclassing and broader reflection remain separate stages. |
| type | partial | type(user_instance), one argument; classes-source/1. | Full one-argument and three-argument type construction. |
| type | partial | Canonical type identities for adopted values and three-argument type construction with tuple bases and a bounded string-key dictionary namespace; finite type.__new__/__init__/__call__ and metaclass selection. | Custom namespace mappings, callable factories, builtin instance subclasses and further metaclass special slots remain gated. |
| vars | deferred | Not installed; resolving this builtin name raises Python NameError. | No implementation/API support credit from the negative availability probe. |
| zip | deferred | Not installed; resolving this builtin name raises Python NameError. | No implementation/API support credit from the negative availability probe. |
| __import__ | deferred | Not installed; resolving this builtin name raises Python NameError. | No implementation/API support credit from the negative availability probe. |
Expand Down
Loading
Loading