[DataOriented] Fastcache, perf, pruning#705
Open
hughperkins wants to merge 127 commits into
Open
GitHub Actions / PR change report
succeeded
Jun 29, 2026 in 0s
PR change report
Per-file totals + per-function breakdown of code-line additions and removals.
Details
PR change report (d32e8fc92)
Per-file totals + per-function breakdown of code-line additions and removals.
Code lines exclude blank lines, comment-only lines, and Python multi-line strings.
| File | LoC | Added | Removed |
|---|---|---|---|
tests/python/test_data_oriented_ndarray.py |
569 | +317 | -23 |
tests/python/test_data_oriented_qd_func_dataclass.py |
0 | +209 | |
python/quadrants/lang/_fast_caching/args_hasher.py |
168 | +109 | -35 |
python/quadrants/lang/_fast_caching/src_hasher.py |
96 | +95 | -17 |
python/quadrants/lang/ast/ast_transformers/call_transformer.py |
317 | +90 | -3 |
python/quadrants/lang/_pruning.py |
125 | +75 | -1 |
tests/python/quadrants/lang/fast_caching/test_src_ll_cache.py |
422 | +71 | -3 |
python/quadrants/lang/kernel.py |
649 | +53 | -17 |
python/quadrants/lang/ast/ast_transformers/function_def_transformer.py |
536 | +33 | -6 |
python/quadrants/lang/ast/ast_transformer.py |
1328 | +29 | -4 |
python/quadrants/lang/_template_mapper.py |
100 | +16 | -13 |
python/quadrants/lang/kernel_impl.py |
182 | +15 | -7 |
python/quadrants/lang/_template_mapper_hotpath.py |
247 | +14 | -17 |
tests/python/test_template_typing.py |
75 | +10 | -4 |
python/quadrants/lang/_quadrants_callable.py |
49 | +10 | -1 |
tests/python/quadrants/lang/fast_caching/test_src_hasher.py |
203 | +5 | -5 |
tests/python/quadrants/lang/fast_caching/test_fastcache_field_warnings.py |
120 | +1 | -1 |
python/quadrants/lang/ast/ast_transformer_utils.py |
341 | +1 | |
tests/python/quadrants/lang/ast/test_function_def_transformer.py |
89 | +1 |
Total: 19 file(s) changed, +1154 -157 code lines.
Per-function breakdown
tests/python/test_data_oriented_ndarray.py 569 +317 -23
New:
test_data_oriented_nested_primitive_via_qd_func_distinguishes_cache_key() 0 +41
test_data_oriented_polymorphic_attribute_set_across_instances() 0 +36
test_data_oriented_qd_func_chain_propagation_distinguishes_cache_key() 0 +36
test_data_oriented_kernel_read_primitive_distinguishes_cache_key() 0 +33
test_data_oriented_kernel_unused_opaque_member_does_not_affect_cache() 0 +33
test_data_oriented_kernel_unread_primitive_does_not_affect_cache() 0 +31
test_data_oriented_kernel_read_opaque_member_fails_fastcache() 0 +29
test_data_oriented_polymorphic_attr_across_instances() 0 +21
test_data_oriented_with_cyclic_attr_graph() 0 +20
test_data_oriented_with_pydantic_like_child() 0 +17
test_is_data_oriented_safe_on_pydantic_like_metaclass() 0 +8
Existing:
test_data_oriented_ndarray_wrapper() 15 +12 -10
Deleted:
test_data_oriented_attribute_cycle_does_not_recurse_infinitely() 20 -13
tests/python/test_data_oriented_qd_func_dataclass.py 0 +209
New:
test_data_oriented_method_calls_qd_func_with_two_dataclass_members() 0 +25
test_data_oriented_method_qd_func_chain_with_nested_dataclass_member() 0 +25
test_data_oriented_method_calls_qd_func_with_dataclass_member() 0 +23
test_data_oriented_method_calls_qd_func_with_nested_dataclass_kwarg() 0 +22
test_data_oriented_method_calls_qd_func_with_nested_dataclass_member() 0 +22
test_data_oriented_method_qd_func_chain_with_dataclass_member() 0 +22
test_baseline_typed_dataclass_kernel_arg_calls_qd_func() 0 +19
test_data_oriented_method_calls_qd_func_with_keyword_dataclass_member() 0 +19
test_data_oriented_stable_members_method_calls_qd_func_with_dataclass_member() 0 +19
<module>() 0 +4
# note: per-function +/- differs from file totals by added_drift=+9 removed_drift=+0
python/quadrants/lang/_fast_caching/args_hasher.py 168 +109 -35
New:
_fail_unknown_type() 0 +9
_FailFastcache::__new__() 0 +4
_child_flat() 0 +4
_is_path_used() 0 +4
reset_unknown_type_warn_state() 0 +2
Existing:
stringify_obj_type() 61 +36 -20
dataclass_to_repr() 32 +27 -10
hash_args() 23 +16 -4
<module>() 6 +5 -1
python/quadrants/lang/_fast_caching/src_hasher.py 96 +95 -17
New:
persist_l1_and_set_l2_key() 0 +37
make_source_config_key() 0 +16
load_pruning_info() 0 +15
store_pruning_info() 0 +15
make_full_cache_key() 0 +2
Existing:
compute_narrow_args_hash() 28 +4 -17
<module>() 1 +2
python/quadrants/lang/ast/ast_transformers/call_transformer.py 317 +90 -3
Existing:
CallTransformer::_expand_Call_dataclass_args() 38 +44 -2
CallTransformer::_expand_Call_dataclass_kwargs() 47 +37
CallTransformer::build_Call() 100 +9 -1
python/quadrants/lang/_pruning.py 125 +75 -1
New:
Pruning::fold_struct_nd_paths() 0 +16
Pruning::_propagate_chain_paths() 0 +15
_flatten_arg_node() 0 +10
Pruning::fold_kernel_arg_chain_paths() 0 +5
Pruning::mark_kernel_arg_chain_used() 0 +3
Existing:
Pruning::record_after_call() 46 +20
Pruning::__init__() 6 +3
<module>() 4 +2 -1
tests/python/quadrants/lang/fast_caching/test_src_ll_cache.py 422 +71 -3
New:
test_src_ll_cache_needs_grad_distinguishes_args_hash() 0 +34
test_src_ll_cache_hit_predeclare_struct_ndarrays_pruned() 0 +32
Existing:
test_src_ll_cache_arg_warnings() 23 +3 -3
python/quadrants/lang/kernel.py 649 +53 -17
New:
Kernel::_maybe_persist_l1_and_set_l2_key() 0 +17
Existing:
Kernel::_try_load_fastcache() 37 +29 -15
Kernel::materialize() 77 +5 -1
Kernel::launch_kernel() 156 +2 -1
python/quadrants/lang/ast/ast_transformers/function_def_transformer.py 536 +33 -6
Existing:
FunctionDefTransformer::_predeclare_struct_ndarrays() 61 +32 -6
FunctionDefTransformer::_transform_func_arg() 90 +1
python/quadrants/lang/ast/ast_transformer.py 1328 +29 -4
New:
<module>() 0 +1
Existing:
ASTTransformer::_promote_ndarray_if_declared() 7 +15 -4
ASTTransformer::build_Attribute() 82 +9
ASTTransformer::build_Name() 19 +4
python/quadrants/lang/_template_mapper.py 100 +16 -13
New:
_classify_disposition() 0 +5
Existing:
TemplateMapper::lookup() 40 +8 -6
<module>() 1 +3 -1
Deleted:
_classify_for_args_hash() 7 -6
python/quadrants/lang/kernel_impl.py 182 +15 -7
Existing:
data_oriented() 22 +15 -7
python/quadrants/lang/_template_mapper_hotpath.py 247 +14 -17
Existing:
_struct_nd_paths_for() 19 +6 -8
_build_struct_nd_paths() 23 +6 -6
_extract_arg() 55 +2
<module>() 4 -3
Deleted:
_drop_instance_paths() 2 -2
tests/python/test_template_typing.py 75 +10 -4
Existing:
test_template_raise_on_data_oriented_floats() 23 +10 -4
python/quadrants/lang/_quadrants_callable.py 49 +10 -1
New:
QuadrantsCallable::__set_name__() 0 +2
Existing:
QuadrantsCallable::__get__() 5 +7 -1
QuadrantsCallable::__init__() 13 +1
tests/python/quadrants/lang/fast_caching/test_src_hasher.py 203 +5 -5
Existing:
test_src_hasher_create_cache_key_vary_config() 15 +3 -3
src_hasher_vary_kernel_func_child() 6 +1 -1
test_src_hasher_store_validate() 50 +1 -1
tests/python/quadrants/lang/fast_caching/test_fastcache_field_warnings.py 120 +1 -1
Existing:
test_fastcache_field_warnings_warn_struct_template_field() 13 +1 -1
python/quadrants/lang/ast/ast_transformer_utils.py 341 +1
Existing:
ASTTransformerFuncContext::__init__() 66 +1
tests/python/quadrants/lang/ast/test_function_def_transformer.py 89 +1
Existing:
test_process_func_arg() 24 +1
Notes:
* The number columns (without a + or - sign) are code-line counts in the BASE (pre-PR) version: file size before this PR (0 for newly-added files), function body size before this PR (0 for new functions; original body size for deleted functions).
* +<n> / -<n> are code lines added / removed by this PR.
* Code lines exclude blank lines, comment-only lines, and Python multi-line strings.
Loading