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

stillwater-sc / universal / 34732657399
86%
master: 84%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 13 Sep 2026 02:55AM UTC
Jobs 1
Files 646
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

13 Sep 2026 02:16AM UTC coverage: 85.666%. Remained the same
34732657399

push

github

web-flow
refactor(bfloat16): split bfloat16 into core / manipulators / iostream (#1334) (#1445)

First type of Phase 2 group 5a (#1444). bfloat16 gets a core.hpp that pulls none
of the five I/O-family headers, so a compute kernel does not pay for text
formatting it never calls.

    core.hpp          44,559 lines / 247 headers / 0 I/O-family
    bfloat16.hpp      63,751 lines / 341 headers / 5 I/O-family  (was 93,035 / 377 / 5)

The umbrella keeps its name and still includes every layer, so no caller changes.

What moved:

- parse(), to_binary() and to_native() build strings through a stringstream and
  are now in manipulators.hpp. parse() was already declared in bfloat16_fwd.hpp.
- operator<< and operator>> are now in iostream.hpp. The dependency runs
  iostream -> manipulators here (operator>> hands its token to parse), and
  manipulators does not include iostream back, so there is no cycle.
- assign(const std::string&) stays in the core: it walks a "0b...." pattern with
  plain std::string operations. Its seven std::cerr diagnostics became
  fprintf(stderr, ...), the Phase 0 idiom, which is what lets the core drop
  <iostream>.
- BFLOAT_ENABLE_LITERALS and BFLOAT_THROW_ARITHMETIC_EXCEPTION now default in
  bfloat16_impl.hpp beside the code they govern, so the core-only path gets the
  same defaults the umbrella used to supply (#1436).

Two incidental finds, both include hygiene rather than layering:

- bfloat16_impl.hpp included <regex> and used none of it. Removing it is most of
  the umbrella's 93,035 -> 63,751 drop; the split itself accounts for the rest.
- attributes.hpp used std::setw without <iomanip> and reached type_tag and
  operator<< through the umbrella's include order. It now names them.

isinteger() called sw::universal::floor(bfloat16), which lives in mathlib and so
is not in the core -- an undefined-inline warning and a link error waiting for
the first core-only caller. That overload is bfloat16(std::floor(float(x))) and
bfloat16 -> float is... (continued)

54 of 62 new or added lines in 3 files covered. (87.1%)

43193 of 50420 relevant lines covered (85.67%)

7175452.24 hits per line

Uncovered Changes

Lines Coverage ∆ File
7
85.38
-2.17% include/sw/universal/number/bfloat16/bfloat16_impl.hpp
1
90.91
include/sw/universal/number/bfloat16/iostream.hpp
Jobs
ID Job ID Ran Files Coverage
1 34732657399.1 13 Sep 2026 02:55AM UTC 646
85.67
GitHub Action Run
Source Files on build 34732657399
  • Tree
  • List 646
  • Changed 3
  • Source Changed 3
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #34732657399
  • 1ec5fe02 on github
  • Prev Build on main (#34122569409)
  • Next Build on main (#34733638818)
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