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

ponder-lab / Hybridize-Functions-Refactoring / #2662
84%

Build:
DEFAULT BRANCH: main
Ran 01 Aug 2026 12:41PM UTC
Jobs 1
Files 37
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

01 Aug 2026 12:31PM UTC coverage: 83.539% (+0.06%) from 83.476%
#2662

push

github

web-flow
Add a symbolic-iteration safety precondition (#831)

* Add a symbolic-iteration safety precondition

Iterating a tensor parameter with a Python loop works eagerly, since the elements are tensors, but raises `OperatorNotAllowedInGraphError` under `tf.function` tracing once the parameter is symbolic, even with AutoGraph converting the loop (runtime-verified on TensorFlow 2.9.3). MusicTransformer's `EventSeq.from_array` is the live case: through Ariadne 0.52.36 its barren verdict accidentally shielded the conversion, and 0.52.76's element-typing improvement removed the shield without adding the guard, which the 0.52.76 verification audit surfaced (#830).

`TensorIterationAnalysis` scans each body: parameter value numbers seed a forward def-use taint, and an `EachElementGetInstruction` whose iterated object is tainted and tensor-typed fires `HAS_TENSOR_PARAMETER_ITERATION` (code 20), the sixth safety failure in the family. The tensor-typed gate keeps ordinary collection parameters out, and the parameter-derived anchor keeps AutoGraph-supported in-body `tf.range` loops convertible. `alwaysCheckTensorIteration` mirrors the sibling knobs end-to-end.

`testTensorParameterIterationBlocksHybridization` pins the `from_array` distillation declining and the `tf.range` control converting; the fixture runs to completion eagerly, which is exactly the shape that made the hazard invisible without tracing.

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

* Address review: emit the functions.csv column; exempt tf.range by producer

The per-function `tensor parameter iteration` column never landed: the earlier edit's replace patterns silently missed the formatter-wrapped header and value sites, so the settings column existed with no per-function attribute to audit against. It is now emitted in position.

The `tf.range` exemption is keyed on the iterated value's producer rather than taint prove... (continued)

55 of 63 new or added lines in 4 files covered. (87.3%)

2974 of 3560 relevant lines covered (83.54%)

0.84 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
91.99
-0.21% edu.cuny.hunter.hybridize.core/src/edu/cuny/hunter/hybridize/core/analysis/Function.java
2
94.74
edu.cuny.hunter.hybridize.core/src/edu/cuny/hunter/hybridize/core/analysis/TensorIterationAnalysis.java
2
70.0
-0.16% edu.cuny.hunter.hybridize.core/src/edu/cuny/hunter/hybridize/core/refactorings/HybridizeFunctionRefactoringProcessor.java
Jobs
ID Job ID Ran Files Coverage
1 #2662.1 01 Aug 2026 12:41PM UTC 37
83.54
Source Files on build #2662
  • Tree
  • List 37
  • Changed 3
  • Source Changed 3
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 86751c09 on github
  • Prev Build on main
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