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

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

Build:
Build:
LAST BUILD BRANCH: fasttakum
DEFAULT BRANCH: master
Ran 13 Sep 2026 06:13PM UTC
Jobs 1
Files 663
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 05:34PM UTC coverage: 85.69% (-0.02%) from 85.71%
34771989878

push

github

web-flow
refactor(blockdecimal): split into core / manipulators / iostream (#1334) (#1475)

The last substrate split in the epic (#1473): dfixpnt's storage type, and the only
thing standing between dfixpnt and a 0-I/O core.

    blockdecimal.hpp   36,812 lines / 191 headers / 0 I/O-family  (was 53,499 / 250 / 5)

Both criteria are met: 0 I/O-family headers, and under 45,000 lines.

The split -- the shape blockdigit got in Phase N

- blockdecimal.hpp included <sstream>, <iostream> and <iomanip> itself. It is
  now the core: <iosfwd>, <cstdio>, <string>, <type_traits>.
- The two division-by-zero diagnostics in operator/= and operator%= are now
  fprintf(stderr, ...), behind the same !std::is_constant_evaluated() guard.
- operator<< and operator>> were hidden-friend DEFINITIONS in the class. They
  are now friend template declarations -- operator>> writes the private sign
  -- with the definitions in the new internal/blockdecimal/iostream.hpp. The
  bodies are verbatim except that the class's ndigits is spelled N, the
  template parameter it equals.
- type_tag and to_binary (stringstream builders) move to the new
  internal/blockdecimal/manipulators.hpp.
- to_string() concatenates and stays in the core.

As with blockdigit, blockdecimal.hpp is the core and callers that print include
the text headers. One test needed them: internal/blockdigit/api/api.cpp tags,
prints and streams a blockdecimal<8>. dfixpnt needs neither -- its type_tag
names the limb type, not the blockdecimal.

Verification

- blockdecimal.hpp, iostream.hpp, manipulators.hpp and exceptions.hpp each
  compile standalone, 0 errors and 0 warnings, gcc 13.3 and clang.
- 14 targets on both compilers: bd_api, bd_constexpr, the four blockdigit
  targets and the eight dfixpnt targets. 13 PASS; bd_constexpr is
  static_assert-only and prints nothing, on main too.
- Differential against main, from a worktree, over BCD<1>, <4>, <8>, <16>,
  BID<3>, <9>, <18> and DPD<3>, <7>, <16>: every value in range (and t... (continued)

16 of 18 new or added lines in 3 files covered. (88.89%)

10 existing lines in 1 file now uncovered.

43277 of 50504 relevant lines covered (85.69%)

7163386.34 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
89.04
-0.55% include/sw/universal/internal/blockdecimal/blockdecimal.hpp

Coverage Regressions

Lines Coverage ∆ File
10
93.06
-0.65% include/sw/universal/number/cfloat/cfloat_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 34771989878.1 13 Sep 2026 06:13PM UTC 663
85.69
GitHub Action Run
Source Files on build 34771989878
  • Tree
  • List 663
  • Changed 3
  • Source Changed 2
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #34771989878
  • b84cd794 on github
  • Prev Build on main (#34764211315)
  • Next Build on main (#34773573505)
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