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

stillwater-sc / universal / 33203652937
87%
master: 84%

Build:
Build:
LAST BUILD BRANCH: docs/issue-1692-level-index-design
DEFAULT BRANCH: master
Ran 28 Aug 2026 08:03PM UTC
Jobs 1
Files 643
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

28 Aug 2026 07:23PM UTC coverage: 85.666% (-0.02%) from 85.682%
33203652937

push

github

web-flow
refactor(microfloat): split the block formats into core / manipulators / iostream (#1334) (#1433)

* refactor(microfloat): split the block formats into core / manipulators / iostream (#1334)

Phase 2 group 5 of the header layering: the MX / NVFP / ZFP block formats and the two
element types they are built from.

                  umbrella before        core after
    microfloat    61,980 lines / 5 I/O   44,567 / 0
    e8m0          61,160 / 4             43,857 / 0
    mxfloat       73,781 / 5             56,069 / 0
    nvblock       73,165 / 5             55,588 / 0
    zfpblock      77,971 / 5             55,705 / 0

Dependency order drove the work, as it did for the cascades. mxfloat and nvblock included
the UMBRELLAS of their element and scale types -- microfloat and e8m0 -- so those two had
to be layered first. The block cores now take microfloat/core.hpp and e8m0/core.hpp, and
the block iostream.hpp layers take the corresponding stream headers. That is what lets a
block-format core reach zero instead of inheriting five I/O headers through its element
type.

This group was cheaper than the cascades for two reasons worth recording. There are ZERO
cout/cerr sites across all five impls, so no fprintf conversions and none of the discarded
`if constexpr` / std::cout declaration trap that dd hit. And zfpblock needed almost
nothing: its text already lived in manipulators.hpp, it defines no stream operator, and its
<iomanip> was a dead include that nothing in the file used -- so it gets a core.hpp and an
umbrella rewrite but no iostream.hpp.

One real break, found by building the consumers: static/block/mxfloat/api/api.cpp needs
to_binary(e8m0). Pointing mxblock_impl.hpp at e8m0/core.hpp meant mxfloat's manipulators
layer had to take e8m0/manipulators.hpp alongside microfloat's, because the block streams
both its scale and its elements.

Closed 20 IWYU gaps across the five subtrees: <iomanip> for std::setw in three
attributes.hpp, <string> in five except... (continued)

32 of 32 new or added lines in 4 files covered. (100.0%)

8 existing lines in 1 file now uncovered.

43192 of 50419 relevant lines covered (85.67%)

7175647.8 hits per line

Coverage Regressions

Lines Coverage ∆ File
8
93.06
-0.52% include/sw/universal/number/cfloat/cfloat_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 33203652937.1 28 Aug 2026 08:03PM UTC 643
85.67
GitHub Action Run
Source Files on build 33203652937
  • Tree
  • List 643
  • Changed 13
  • Source Changed 12
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #33203652937
  • 74b38fc4 on github
  • Prev Build on main (#33187650692)
  • Next Build on main (#33209881311)
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