Conversation
acecchini
force-pushed
the
codex/static-tree-containers
branch
from
September 8, 2026 10:00
96987b7 to
2513af4
Compare
acecchini
marked this pull request as ready for review
September 8, 2026 10:11
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The nominal static Tree stub rejected ordinary lists, dictionaries and leaves. A shared static-only model now accepts existing typed containers while retaining leaf information, including nested NumPy dtypes. Both optree and JAX use it without changing runtime traversal or structure binding.
The implementation follows counterexample-driven prototypes for mutable variance and self-iterating strings. Consumer fixtures cover mixed nesting, named tuples, empty inputs, None, arrays, and fourteen deliberate wrong-leaf calls per checker. A registered custom JAX node uses the existing conditional-alias pattern with its concrete static class; a runtime regression rejects an incorrect leaf dtype. The optree default-registry boundary is documented explicitly.
Validation: all four engines pass on Python 3.10–3.14 and maintained floor lanes. Exact beartype 0.23.0rc0 tree tests pass on both Python endpoints: 108 each. Locked dev tox: 1,044 passed, five expected platform/backend skips, 91.24% coverage. Hooks pass.
The plan/evidence is
plans/2026-09-08-static-tree-containers.md. This PR is stacked on checker harness #17, independent of Like typing #19. User validation is required before merge.Integration record: this reviewed head is preserved in main through PR #31, merge commit df81f00. The owner approved merging this work. This dependent PR is closed as integrated; its commits were not squashed or discarded.