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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 13 Sep 2026 02:40PM UTC
Jobs 1
Files 656
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:02PM UTC coverage: 85.67% (-0.04%) from 85.706%
34761513466

push

github

web-flow
refactor(elreal): split elreal into core / manipulators / iostream (#1334) (#1465)

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

Fourth and last type of Phase 2 group 5b (#1455).

    core.hpp     94,744 lines / 413 headers / 1 I/O-family (<ostream>)
    elreal.hpp  116,357 lines / 524 headers / 5 I/O-family  (was 142,929 / 705 / 5)

THE CORE REACHES 1 OF 5, NOT 0, AND NO HEADER SPLIT CAN FIX IT. Reporting the
number rather than moving the bar: ZBCL nodes are std::shared_ptr and the thunks
std::function, and libstdc++ 13's <memory> itself includes <ostream> -- 53,429
lines, before a line of Universal. <iostream>, <sstream>, <iomanip> and <istream>
are all gone. This is the same kind of floor <complex> sets for every mathlib
(it pulls <sstream>): a property of the standard library, not of the layering.
Getting under it means replacing shared_ptr in the co-list, which is a design
change, not a layering one. The line count is set by the same things: <memory>,
<functional> and integer's core (the 256-bit block exponent) are 80,677 lines
together.

elreal's own code was already clean

Its text was already confined to manipulators.hpp and block_manipulators.hpp.
What put all five I/O-family headers into every elreal translation unit was the
types it is built from, reached by their UMBRELLAS:

- block.hpp included integer/integer.hpp for exp_t, the integer<256> exponent
  (#1061) -> integer/core.hpp.
- round.hpp included dd.hpp, qd.hpp and cfloat.hpp for round_to's targets ->
  their cores. round_to only converts into those types; it never formats them.

All four have had cores since group 4; this is the substrate-first rule paying
out. Two consequences the build found:

- block_manipulators.hpp streams the integer<256> exponent (`s << b.exp`), and
  operator<< for integer is in integer's text layer. It used to arrive with the
  integer umbrella through block.hpp; block_manipulators.hpp now includes
  integer/iostream.hpp its... (continued)

7 of 7 new or added lines in 1 file covered. (100.0%)

18 existing lines in 2 files now uncovered.

43267 of 50504 relevant lines covered (85.67%)

7163467.01 hits per line

Coverage Regressions

Lines Coverage ∆ File
10
31.43
-3.57% include/sw/universal/verification/test_suite_randoms.hpp
8
93.06
-0.52% include/sw/universal/number/cfloat/cfloat_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 34761513466.1 13 Sep 2026 02:40PM UTC 656
85.67
GitHub Action Run
Source Files on build 34761513466
  • Tree
  • List 656
  • Changed 6
  • Source Changed 4
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #34761513466
  • 42d2539c on github
  • Prev Build on main (#34759498803)
  • Next Build on main (#34764198303)
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