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

JuliaLang / julia / 1473
77%

Build:
DEFAULT BRANCH: master
Ran 15 Mar 2026 11:36AM UTC
Jobs 3
Files 350
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

15 Mar 2026 04:25AM UTC coverage: 76.875% (-0.01%) from 76.886%
1473

push

buildkite

web-flow
inference: Cache tombstoned const-prop results to prevent non-termination (#61264)

When a const-prop frame encounters a cycle and gets poisoned,
`finishinfer!` marks the result as tombstoned and sets `cache_mode =
CACHE_MODE_NULL`, which prevents `promotecache!` from pushing the result
to the local inference cache.
Meanwhile, `constprop_cache_lookup` (added in #57545) skips tombstoned
entries entirely. This combination means the same const-prop is
re-attempted on every cycle iteration, causing inference to never
terminate when `aggressive_constant_propagation = true`.

Fix this by:
- In `const_prop_call`, explicitly pushing tombstoned results to the
inference cache after a successful but limited `typeinf`, and returning
`nothing` to fall back to the regular inference result.
- In `constprop_cache_lookup`, no longer skipping tombstoned entries so
they can be found on subsequent lookups, preventing re-attempts.
- In `const_prop_call` cache-hit path, checking `inf_result.tombstone`
and returning `nothing` (same as the existing cycle-hit handling).
- Removing the now-unnecessary tombstone check from
`OverlayCodeCache.get`, where the subsequent `overridden_by_const` and
`isdefined` checks already filter out such entries.

Note that #57545 added `tombstone && continue` to `cache_lookup` to
prevent `LimitedAccuracy` results from propagating to callers via
`const_prop_result`. This change removes that skip but achieves the same
protection by explicitly checking `inf_result.tombstone` in
`const_prop_call` and returning `nothing` instead of using the result.

Fixes #61257

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

12 of 14 new or added lines in 3 files covered. (85.71%)

89 existing lines in 8 files now uncovered.

63673 of 82827 relevant lines covered (76.87%)

23446802.16 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
2
71.11
-0.86% Compiler/src/inferenceresult.jl

Uncovered Existing Lines

Lines Coverage ∆ File
1
88.14
-0.52% base/cmd.jl
1
84.24
-0.61% base/toml/printer.jl
1
92.64
-0.43% stdlib/Random/src/generation.jl
8
67.11
-5.37% base/ryu/fixed.jl
9
77.53
-0.37% base/loading.jl
12
11.02
2.32% stdlib/InteractiveUtils/src/editless.jl
18
60.49
-8.78% base/strings/annotated_io.jl
39
83.55
0.78% base/precompilation.jl
Jobs
ID Job ID Ran Files Coverage
1473 windows-coverage - 1473 15 Mar 2026 02:58PM UTC 317
74.99
1473 linux-coverage - 1473 15 Mar 2026 02:18PM UTC 349
75.55
1473 macos-coverage - 1473 15 Mar 2026 11:36AM UTC 350
75.06
Source Files on build 1473
  • Tree
  • List 350
  • Changed 27
  • Source Changed 5
  • Coverage Changed 27
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • b4aba010 on github
  • Prev Build on master (#1471)
  • Next Build on master (#1474)
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