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

stillwater-sc / universal / 25665656693
84%
master: 84%

Build:
Build:
LAST BUILD BRANCH: ci/issue-1009-ccache-save-gating
DEFAULT BRANCH: master
Ran 11 May 2026 11:17AM UTC
Jobs 1
Files 648
Run time 2min
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

11 May 2026 10:50AM UTC coverage: 83.953% (+0.009%) from 83.944%
25665656693

push

github

web-flow
feat(erational): partial constexpr support (API surface) (#827)

* feat(erational): partial constexpr support (API surface)

Promote the erational type's user-facing surface to constexpr where
C++20's transient-allocation rule and edecimal's own constexpr
boundary permit.  erational is composed of two edecimal members
(numerator and denominator), each carrying a std::vector<uint8_t>
digit storage.  Mirrors the partial-constexpr playbook from PR #820
(unum), #821 (valid), #824 (edecimal), #825 (efloat), #826 (einteger).

Promoted (this PR)

  * default constructor: constexpr / noexcept; uses
    std::is_constant_evaluated() to keep parallel invariants -- at
    constant evaluation, numerator/denominator stay default-constructed
    empty edecimals (recognized as zero by edecimal::iszero); at
    runtime setzero() restores the historical "0/1" representation
    that arithmetic and the existing comparison operators rely on
  * defaulted copy / move ctor + assignment operators marked constexpr
    (rely on edecimal's now-constexpr defaulted copy/move from #824)
  * selectors marked constexpr: iszero, isneg, ispos, isinf, isnan,
    sign, top, bottom -- delegate to constexpr-clean edecimal
    selectors or read trivial bool members
  * sign-only modifiers marked constexpr: setsign, setneg, setpos

Constexpr-callable surface today (gcc + clang, C++20)

  * Default ctor + selectors at constant evaluation
  * Sign modifier round-trips at constant evaluation
  * Copy / copy-assignment at constant evaluation

Limited at constant evaluation today (heap-escape + composite boundary)

  * Native-type ctors and operator=        - chain to convert_signed/
                                             unsigned/ieee754 -> edecimal
                                             heap operations
  * Arithmetic operators (+= -= *= /=)     - chain through edecimal
                                             arithmetic which is
                                             non... (continued)

12 of 16 new or added lines in 1 file covered. (75.0%)

7 existing lines in 2 files now uncovered.

45891 of 54663 relevant lines covered (83.95%)

6481426.02 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
65.31
0.54% include/sw/universal/number/erational/erational_impl.hpp

Coverage Regressions

Lines Coverage ∆ File
4
89.24
-1.13% include/sw/universal/number/posito/posito_impl.hpp
3
81.25
0.0% include/sw/universal/number/posit1/specialized/posit_16_1.hpp
Jobs
ID Job ID Ran Files Coverage
1 25665656693.1 11 May 2026 11:17AM UTC 648
83.95
GitHub Action Run
Source Files on build 25665656693
  • Tree
  • List 648
  • Changed 4
  • Source Changed 1
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25665656693
  • c6088b5b on github
  • Prev Build on main (#25646959884)
  • Next Build on main (#25692904661)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc