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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 13 Sep 2026 01:50PM UTC
Jobs 1
Files 655
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 01:18PM UTC coverage: 85.706% (+0.03%) from 85.679%
34759494934

push

github

web-flow
refactor(efloat): split efloat into core / manipulators / iostream (#1334) (#1459)

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

Second type of Phase 2 group 5b (#1455).

    core.hpp      73,401 lines / 353 headers / 0 I/O-family
    efloat.hpp    87,959 lines / 447 headers / 5 I/O-family  (was 107,436 / 475 / 5)

Zero I/O-family headers is met. Under-45,000 lines is not, and reporting the
number rather than moving the bar: utility/decimal_to_binary.hpp is 57,369
lines on its own (already 0 I/O). parse() needs it to turn a decimal literal
into limbs, and parse() is core because assign(const std::string&) is built on
it. Same substrate that set dfloat's and hfloat's ceiling (#1446, #1447).

efloat's own code was nearly clean. What held the I/O in was includes.

- <regex> was included and never used: the only mentions were two comments,
  one of them a stale claim that parse() used it. <regex> is 78,114
  preprocessed lines and pulls <sstream>, <istream> and <ostream> by itself.
  Dropping it is most of the umbrella's 19,477-line fall -- every efloat user
  gets that, not only core users. <map> was unused too.
- <iostream>, <iomanip>, <sstream> in the impl served two stream operators, one
  std::cerr and one stringstream.
- native/ieee754.hpp -> native/ieee754_core.hpp plus native/manipulators_core.hpp:
  convert_ieee754 needs checkNaN, scale(Real) and fractionBits(Real), and those
  three live in the I/O-free halves. The umbrella keeps including ieee754.hpp.

Moves:

- to_binary(efloat) builds its text with a stringstream -> manipulators.hpp.
- operator<< and operator>> -> iostream.hpp, which includes only core.hpp:
  operator<< formats through to_string() and operator>> hands its token to
  parse(), and both stay in the core. to_string() concatenates a std::string
  and only takes a std::streamsize, which is <ios>, not a stream.
- EFLOAT_ENABLE_LITERALS and EFLOAT_THROW_ARITHMETIC_EXCEPTION default in
  efloat_impl.hp... (continued)

21 of 38 new or added lines in 2 files covered. (55.26%)

27 existing lines in 1 file now uncovered.

43285 of 50504 relevant lines covered (85.71%)

7163445.08 hits per line

Uncovered Changes

Lines Coverage ∆ File
17
52.78
-47.22% include/sw/universal/number/efloat/manipulators.hpp

Coverage Regressions

Lines Coverage ∆ File
27
95.96
3.25% include/sw/universal/number/einteger/einteger_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 34759494934.1 13 Sep 2026 01:50PM UTC 655
85.71
GitHub Action Run
Source Files on build 34759494934
  • Tree
  • List 655
  • Changed 6
  • Source Changed 5
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #34759494934
  • bf88d2fa on github
  • Prev Build on main (#34757333587)
  • Next Build on main (#34759491821)
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