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

ponder-lab / Hybridize-Functions-Refactoring / #3894
90%

Build:
DEFAULT BRANCH: main
Ran 27 Oct 2026 12:11PM UTC
Jobs 1
Files 52
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

27 Oct 2026 11:43AM UTC coverage: 89.531% (+0.02%) from 89.515%
#3894

push

github

web-flow
Refuse to de-hybridize a function that calls a graph-only API (#1180)

* Build against the engine snapshot carrying ponder-lab/ML#1091

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NTnpjPjJj2aZy1ZkUD1eAn

* Refuse a function that reshapes with a shape that may be a scalar

Eagerly, `tf.reshape(t, -1)` works, but graph shape inference requires a
rank-1 shape operand, so the converted function raises on its first trace
(#1170). The new RESHAPES_WITH_SCALAR_SHAPE precondition refuses the
conversion when a reachable call to `tf.reshape`, as the engine names it,
has a shape operand the engine reports may be rank 0. An operand of
unknown rank still converts.

The check walks the call graph the way the eager-only-call check does,
through a walk moved out of `EagerOnlyCallAnalysis` into
`Util.reachesInstruction`, which both now share.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NTnpjPjJj2aZy1ZkUD1eAn

* Give each unknown-rank reshape witness its own cause

A computed int waits on wala/ML#1149 and `len` on wala/ML#1104. A
starred argument is of unknown rank by design, so it carries no TODO.
Also rewrap two comments that broke mid-sentence.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NTnpjPjJj2aZy1ZkUD1eAn

* Refuse to de-hybridize a function that calls a graph-only API

A hybrid function that calls `tf.gradients`, `tf.keras.backend.gradients`,
or an optimizer's `get_gradients` or `get_updates` breaks when its
decorator is removed: eagerly, the call raises or returns `None`
gradients (issue 1171). Keep it hybrid with HAS_GRAPH_ONLY_CALLS,
whichever hybrid-to-eager rule would have converted it.

The engine names the APIs a call invokes (`TensorFlowApis`); which of
them are graph-only is HFR's policy, kept in `GraphOnlyCallAnalysis`.
The walk is the shared `Util.reachesInstruction`.... (continued)

29 of 31 new or added lines in 4 files covered. (93.55%)

5918 of 6610 relevant lines covered (89.53%)

0.9 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
92.87
-0.04% edu.cuny.hunter.hybridize.core/src/edu/cuny/hunter/hybridize/core/analysis/Function.java
Jobs
ID Job ID Ran Files Coverage
1 #3894.1 27 Oct 2026 12:11PM UTC 52
89.53
Source Files on build #3894
  • Tree
  • List 52
  • Changed 3
  • Source Changed 3
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • d9997c3e on github
  • Prev Build on gh-readonly-queue/main/pr-1186-5abd689fdf8b352c4dcb8fe6be3ce91212f72388
  • Next 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