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

JuliaLang / julia / 1360
93%

Build:
DEFAULT BRANCH: master
Ran 04 Nov 2026 12:46AM UTC
Jobs 3
Files 386
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 Nov 2026 06:43PM UTC coverage: 89.507% (+0.7%) from 88.793%
1360

push

buildkite

web-flow
codegen: Don't box singleton constants entering an unboxed union phi (#64561)

* codegen: Don't box singleton constants entering an unboxed union phi

Since #55045, an incoming phi value that is a constant gets a box pointer
even when the union stores its type unboxed. For a singleton such as
`Base._InitialValue()` or `nothing`, the phi then carries a pointer to the
boxed instance, and since a non-null box pointer marks the value as boxed,
the loop selects the boxed tag and reloads through the box. This is the
accumulator of every `foldl` over a filtered or `enumerate` generator,
e.g. `sum(v^2 for v in x if isodd(v))`, which got 10-20% slower.

Use a null box pointer for these constants again, as before #55045, when
the union has a stack slot and no inline roots, which is the layout the old
code handled. A union whose data pointer is the box pointer (inline roots
without a slot) still gets the boxed constant, and so does a constant that is
itself boxed, such as `Union{}` (inferred as `Type{Union{}}`), whose tindex
carries the boxed bit.

Assisted-by: Claude Code (Opus 5.5)

* fixup! codegen: Don't box singleton constants entering an unboxed union phi

* fixup! codegen: Don't box singleton constants entering an unboxed union phi

Accept `TypeofBottom` in the `emit_unionmove` constant assertion. Now that
`Union{}` is an unboxed ghost, a constant `Union{}` entering a union phi
reaches `emit_unionmove`, where `deserves_stack(TypeofBottom)` is false
because it is a kind, although `for_each_uniontype_small` gives it a slot.
Nothing needs to be stored for it, which is what release builds already do.

Assisted-by: Claude Code (Opus 5.5)

---------

Co-authored-by: Jameson Nash <vtjnash@gmail.com>

95807 of 107038 relevant lines covered (89.51%)

358.07 hits per line

Coverage Regressions

Lines Coverage ∆ File
19
95.01
0.43% base/toml/parser.jl
10
92.75
66.12% stdlib/REPL/src/History/display.jl
10
94.99
0.09% base/hashing.jl
8
92.72
-0.01% base/gmp.jl
3
87.36
-0.26% base/stream.jl
3
93.08
10.19% base/strings/search.jl
2
95.93
0.03% stdlib/Markdown/src/Common/block.jl
2
90.77
-0.6% base/threadingconstructs.jl
2
97.06
0.09% base/special/pow.jl
1
89.02
-0.11% base/multidimensional.jl
1
88.92
-0.15% base/special/trig.jl
1
85.79
-0.04% base/loading.jl
Jobs
ID Job ID Ran Files Coverage
1360 linux - 1360 04 Nov 2026 12:49AM UTC 386
88.99
1360 windows - 1360 04 Nov 2026 12:46AM UTC 385
87.63
1360 macos - 1360 04 Nov 2026 05:00AM UTC 386
88.94
Source Files on build 1360
  • Tree
  • List 386
  • Changed 29
  • Source Changed 15
  • Coverage Changed 25
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • ef7c8674 on github
  • Prev Build on master (#1339)
  • Next Build on master (#1392)
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