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

ponder-lab / Hybridize-Functions-Refactoring / #3196
86%
main: 88%

Build:
Build:
LAST BUILD BRANCH: 9ad4fea94e0e87f5a5887fdaa82ed29d38add636
DEFAULT BRANCH: main
Ran 29 Sep 2026 11:58AM UTC
Jobs 1
Files 44
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

29 Sep 2026 11:50AM UTC coverage: 86.425% (+0.6%) from 85.841%
#3196

push

github

web-flow
Narrow a broader supplied input signature, and report a disagreeing one (#985)

* Narrow a broader supplied input signature, and report a disagreeing one

When inference is on and a hybrid function already has an
`input_signature`, the supplied signature is compared with the inferred
one. Until now every relation was only reported. Under the closed-world
assumption the reachable call sites are all the callers, and the
inferred signature is their join, which changes the reasoning:

- A supplied signature strictly BROADER than the inferred one is now
  narrowed to it (P5). Every reachable caller already conforms to the
  inferred signature, so the narrowing preserves behavior. It is
  declined when the signature is given by name, since the binding may
  be shared with other decorators, and when it would change a shape the
  function reads statically at trace time, since that changes the
  traced program. A supplied dtype the tool did not read never reaches
  this path, because the parser declines to model such a signature; a
  defensive check keeps that so.
- A supplied signature strictly TIGHTER than the inferred one, or
  INCOMPARABLE with it, means some reachable call already violates it,
  so rewriting it would repair the program rather than refactor it. It
  is now a failing precondition, with a warning per parameter saying
  what the violating call does: a shape mismatch raises, and a dtype
  mismatch raises for a tensor argument and is silently cast for a
  non-tensor one. The argument kind comes from the origins of the values
  the reachable call sites pass.

Three failure codes are new: 26 for a disagreeing signature, 27 for a
narrowing that would change a statically read shape, and 28 for a
signature shared by name.

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

* Decline narrowing a signature the program exports

A SavedModel written by `tf.saved_model.save`, o... (continued)

379 of 409 new or added lines in 4 files covered. (92.67%)

4049 of 4685 relevant lines covered (86.42%)

0.86 hits per line

Uncovered Changes

Lines Coverage ∆ File
26
92.08
-0.42% edu.cuny.hunter.hybridize.core/src/edu/cuny/hunter/hybridize/core/analysis/Function.java
4
97.24
edu.cuny.hunter.hybridize.core/src/edu/cuny/hunter/hybridize/core/analysis/ExportAnalysis.java
Jobs
ID Job ID Ran Files Coverage
1 #3196.1 29 Sep 2026 11:58AM UTC 44
86.42
Source Files on build #3196
  • Tree
  • List 44
  • Changed 5
  • Source Changed 5
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 0cd54fcb on github
  • Prev Build on gh-readonly-queue/main/pr-986-4da4534a10d4324f77ae28a52d86338979868d9d
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