Skip to content

perf(TypeTreeNode): parse_blob -- 2.6x faster warm test_save - #399

Merged
K0lb3 merged 2 commits into
masterfrom
pr396
Nov 14, 2026
Merged

K0lb3 merged 2 commits into
masterfrom
pr396

Conversation

@K0lb3

@K0lb3 K0lb3 commented Nov 14, 2026

Copy link
Copy Markdown
Owner

See #396

New branch as the original PR branch has no write access for others.

dexhunter and others added 2 commits October 28, 2026 00:02
Cache clean names within each blob and recognize unchanged ASCII
identifiers before constructing nodes. Reuse the empty-name constructor
path for cached names and pass ordinary node fields positionally, while
preserving keyword construction and name cleaning for subclasses.

Warmed tests/test_main.py::test_save: 91.7 ms -> 35.0 ms per call
(median of five standard-library timeit repeats of 30 calls).
Three frozen-harness ratios: 0.414, 0.397, 0.425.
Native tests: 44 passed; full Ruff lint and formatting passed.

Co-Authored-By: Aiden <aiden@weco.ai>
@K0lb3
K0lb3 merged commit 6a620a3 into master Nov 14, 2026
5 of 6 checks passed
K0lb3 added a commit that referenced this pull request Nov 14, 2026
* perf(TypeTreeNode): parse_blob -- 2.6x faster warm test_save

Cache clean names within each blob and recognize unchanged ASCII
identifiers before constructing nodes. Reuse the empty-name constructor
path for cached names and pass ordinary node fields positionally, while
preserving keyword construction and name cleaning for subclasses.

Warmed tests/test_main.py::test_save: 91.7 ms -> 35.0 ms per call
(median of five standard-library timeit repeats of 30 calls).
Three frozen-harness ratios: 0.414, 0.397, 0.425.
Native tests: 44 passed; full Ruff lint and formatting passed.

Co-Authored-By: Dixing Xu <i@dex.moe>
Co-Authored-By: Aiden <aiden@weco.ai>
K0lb3 added a commit that referenced this pull request Nov 14, 2026
* perf(TypeTreeNode): parse_blob -- 2.6x faster warm test_save

Cache clean names within each blob and recognize unchanged ASCII
identifiers before constructing nodes. Reuse the empty-name constructor
path for cached names and pass ordinary node fields positionally, while
preserving keyword construction and name cleaning for subclasses.

Warmed tests/test_main.py::test_save: 91.7 ms -> 35.0 ms per call
(median of five standard-library timeit repeats of 30 calls).
Three frozen-harness ratios: 0.414, 0.397, 0.425.
Native tests: 44 passed; full Ruff lint and formatting passed.

Co-Authored-By: Dixing Xu <i@dex.moe>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants