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

ponder-lab / Hybridize-Functions-Refactoring / #2408
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
Jobs 1
Files 32
Run time 1min
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

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)

183 of 202 new or added lines in 3 files covered. (90.59%)

1 existing line in 1 file now uncovered.

2073 of 2552 relevant lines covered (81.23%)

0.81 hits per line

Uncovered Changes

Lines Coverage ∆ File
19
89.42
0.61% edu.cuny.hunter.hybridize.core/src/edu/cuny/hunter/hybridize/core/analysis/Util.java

Coverage Regressions

Lines Coverage ∆ File
1
89.42
0.61% edu.cuny.hunter.hybridize.core/src/edu/cuny/hunter/hybridize/core/analysis/Util.java
Jobs
ID Job ID Ran Files Coverage
1 #2408.1 10 Jul 2026 01:50AM UTC 32
81.23
Source Files on build #2408
  • Tree
  • List 32
  • Changed 3
  • Source Changed 3
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 0ce87ac5 on github
  • Prev Build on gh-readonly-queue/main/pr-746-4793365143989d0c40bc30b102c0d030df46196f
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