• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ponder-lab / Hybridize-Functions-Refactoring / #2408 / 1
81%
main: 83%

Build:
Build:
LAST BUILD BRANCH: dependabot/github_actions/actions/setup-python-7
DEFAULT BRANCH: main
Ran 10 Jul 2026 01:50AM UTC
Files 32
Run time 1s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

10 Jul 2026 01:45AM UTC coverage: 81.23% (+0.7%) from 80.547%
#2408.1

push

github

web-flow
Make the parameter-flow numpy precondition per-dimension shape-aware (#750)

* Make the parameter-flow numpy precondition shape-aware (two-color taint)

The conservative call-site taint (#746) declined any function reaching numpy through a parameter, including functions that apply numpy only to a tensor's *shape* — a false positive for the common `get_shape_list`/`einsum_via_matmul` idiom, whose numpy operates on static shape dimensions and does not crash.

The scan now tracks two taint colors. A *value* taint marks the tensor value itself, over which numpy always raises under tracing; a *shape* taint marks a value derived from a tensor's shape (`.shape`/`.shape.as_list()`, `tf.shape`/`size`/`rank`), over which numpy is graph-compatible for static shapes. numpy over a value-tainted argument is a sink (decline); over a shape-tainted argument it is permitted. Call sites are tainted conservatively (following comprehension element-through-container flow, so `TUDataset.cat` is still caught), but the result is colored SHAPE when the callee is a pure shape extractor — its value taint is consumed solely by shape operations and never escapes (`get_shape_list`) — recovering `DenseLayer3d.call`/`DenseLayer3dProj.call` as hybridizable.

This is precision-favoring on the shape axis: numpy over a shape-derived value is treated as safe, sound when the consumed dimensions are static (as across the corpus). Replaces the earlier shape-staticness sanitizer, which was corpus-neutral and could not recover the interprocedural case. `testNumpyOnShapeThroughHelper` pins the recovery; the five true crashers and `cat` still decline (full suite green, 565).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01He1ULx8nRoHzGicMryry1A

* Align shape-laundering docs with the precision-favoring implementation

Reword the `shape`-read documentation on `SHAPE_MEMBER_NAME` and
`appliesNumpyToParameters`: the scan permits numpy over an... (continued)

2073 of 2552 relevant lines covered (81.23%)

0.81 hits per line

Source Files on job #2408.1
  • Tree
  • List 32
  • Changed 3
  • Source Changed 3
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 2408
  • 0ce87ac5 on github
  • Prev Job for on gh-readonly-queue/main/pr-750-06947bae34502b32c05c0d81b53bf303595bc8c8 (##2382.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc