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

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

Build:
Build:
LAST BUILD BRANCH: fix/takum-math-saturation
DEFAULT BRANCH: master
Ran 13 Sep 2026 03:29PM UTC
Jobs 1
Files 659
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:58PM UTC coverage: 85.67%. Remained the same
34764201526

push

github

web-flow
refactor(unum2): split unum2 into core / manipulators / iostream (#1334) (#1469)

* refactor(unum2): split unum2 into core / manipulators / iostream (#1334)

Second type of Phase 2 group 5c (#1467).

    core.hpp    60,643 lines / 249 headers / 0 I/O-family
    unum2.hpp   72,571 lines / 301 headers / 4 I/O-family  (was 72,493 / 298 / 4)

Zero I/O-family headers is met. Under-45,000 lines is not, and this time there
is no Universal substrate to name: the standard headers unum2 itself uses --
<bitset>, <vector>, <string>, <cmath>, <algorithm>, <stdexcept>, <new> -- are
59,803 lines on their own. The core is that plus unum2's ~840 lines.

The text lived in class members

unum2 has no free text functions to move. What pulled in the I/O was three
member bodies:

- lattice::get_exact() builds a lattice point's text with an ostringstream;
  lattice::print() writes the lattice to std::cout. Both are now declared in
  the class and defined out-of-line -- get_exact() in manipulators.hpp,
  print() in iostream.hpp.
- unum2's operator<< was an in-class friend DEFINITION: every translation unit
  that saw unum2 compiled a stream operator. It is now a friend template
  declaration, with <iosfwd>, and the body moves verbatim to iostream.hpp --
  the shape blockdigit's operator<< got in Phase N.

iostream.hpp includes manipulators.hpp, because operator<< renders every bound
through get_exact(); manipulators.hpp does not include it back.

The umbrella included only lattice.hpp, which reached everything else. It now
includes core.hpp, manipulators.hpp and iostream.hpp.

One include that was never there

op_matrix.hpp throws std::runtime_error and catches std::bad_alloc with no
<stdexcept> or <new>. It compiled only because lattice.hpp included <iostream>
before it; with that gone, core.hpp stopped compiling. It now includes both.

Verification

- Layer gates, gcc 13.3 and clang, -Wall -Wpedantic: core.hpp alone, core +
  manipulators and core + iostream each compile, ... (continued)

72 of 98 new or added lines in 2 files covered. (73.47%)

43267 of 50504 relevant lines covered (85.67%)

7163354.3 hits per line

Uncovered Changes

Lines Coverage ∆ File
21
72.37
include/sw/universal/number/unum2/iostream.hpp
5
77.27
include/sw/universal/number/unum2/manipulators.hpp
Jobs
ID Job ID Ran Files Coverage
1 34764201526.1 13 Sep 2026 03:29PM UTC 659
85.67
GitHub Action Run
Source Files on build 34764201526
  • Tree
  • List 659
  • Changed 3
  • Source Changed 3
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #34764201526
  • c23bfc37 on github
  • Prev Build on main (#34764198303)
  • Next Build on main (#34764204511)
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