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

ponder-lab / Hybridize-Functions-Refactoring / #2319
80%

Build:
DEFAULT BRANCH: main
Ran 03 Jul 2026 03:14PM 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

03 Jul 2026 03:06PM UTC coverage: 79.588% (+0.07%) from 79.52%
#2319

push

github

web-flow
Subtract only build-exclusive writes in the lazy-`build` exemption (#729)

* Subtract only build-exclusive writes in the lazy-`build` exemption

The #720 exemption subtracted reachable `build` nodes' transitive mod contributions by pointer key, so a key written by `build` and by a method on the recurring call path was subtracted entirely, masking the recurring write. NLPGNN's `GraphConvolution` initializes `self.cached_result = None` in `build` and re-assigns it in `message_function` on every message-passing invocation; on the 0.52.16 regeneration (Ariadne's receiver-keyed trampolines changed which `build` nodes are reachable), the shared key was masked and `GCNLayer.call`/`predict` wrongly hybridized.

Subtraction is now write-level: per-node direct (non-transitive) mod sets partition reachable writers into `build` and non-`build` sides, and a key is subtracted only when every direct writer is a `build` method. Direct mods are memoized per node (`directModCache`, cleared with the other caches) since per-function closure walks revisit the same nodes; the Python mod visitor requires the pipeline's own `AstHeapModel`, passed directly rather than wrapped.

`testPythonSideEffects69` pins the collision shape (a sublayer whose `build` initializes and whose `call` re-assigns the same attribute; red without the fix); 66 (build-only exemption) and 67 (recurring-only control) hold. Corpus-verified on NLPGNN with the 0.52.16 product: exactly `GCNLayer.call`/`predict` return to `side-effects=true`, with `GATLayer`'s legitimate recoveries and the issue 720/722 fixes untouched.

Full suite green: 586 tests, 0 failures, 11 skipped.

Closes #728.

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

* Make the direct-mod cache concurrent (Copilot review)

`directModCache` is shared across functions that may be processed in parallel; `ConcurrentHashMap` with an atomic `computeIfAbsent` covers b... (continued)

18 of 19 new or added lines in 1 file covered. (94.74%)

1700 of 2136 relevant lines covered (79.59%)

0.8 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
94.48
-0.03% edu.cuny.hunter.hybridize.core/src/edu/cuny/hunter/hybridize/core/analysis/Function.java
Jobs
ID Job ID Ran Files Coverage
1 #2319.1 03 Jul 2026 03:14PM UTC 32
79.59
Source Files on build #2319
  • Tree
  • List 32
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 7bd6f5f2 on github
  • Prev Build on gh-readonly-queue/main/pr-727-27c998e17c4c555f193479a573fb66579de908e4
  • Next Build on main
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc