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

vbpf / prevail / 22071284931
88%

Build:
DEFAULT BRANCH: main
Ran 16 Feb 2026 05:06PM UTC
Jobs 2
Files 74
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

16 Feb 2026 04:55PM UTC coverage: 87.121% (+0.7%) from 86.375%
22071284931

push

github

web-flow
Replace Number backend: boost's cpp_int → __int128 (#1007)

Backport the i128 representation from the Rust port. Number is an
intermediate representation for eBPF verification where all inputs
and outputs are ≤64-bit; i128 provides headroom for widening
arithmetic without the overhead of arbitrary-precision integers.

This commit has been verified to produce the same invariants as its parent on the test data.

Key changes to src/arith/num_big.hpp:
- Use __int128 on GCC/Clang, boost::multiprecision::int128_t on MSVC
- All arithmetic operators use checked helpers (__builtin_*_overflow
  on GCC/Clang, manual pre-checks on MSVC) to prevent signed overflow UB
- Simplify sign_extend/zero_extend: direct bit arithmetic replaces
  template dispatch over fixed widths
- fill_ones computed in unsigned space to avoid shift UB
- Custom decimal parser accumulates in UInt128 to handle kInt128Min
- Width assertions tightened to eBPF domain bounds (≤64/65)
 Consequential simplifications:
- Weight = Number (was already the case), so convert_NtoW_overflow
  was a passthrough returning false — inlined at all ~18 call sites
  in zone_domain.cpp, removing dead overflow branches
- eval_expression_overflow → eval_expression, returns Weight directly
- Remove dead SafeI64 overload and num_safeint.hpp include
- Custom int128_to_string in printing.cpp (no std::to_string for __int128)
- Add missing transitive includes (<algorithm>, <cassert>) previously
  provided by boost headers

Also: remove unused stats infrastructure, rename_classes.py, and
miscellaneous cleanup (docs ASCII arrows, splitdbm simplifications).

Signed-off-by: Elazar Gershuni <elazarg@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

139 of 166 new or added lines in 5 files covered. (83.73%)

1 existing line in 1 file now uncovered.

9389 of 10777 relevant lines covered (87.12%)

3125522.35 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
91.67
0.36% src/crab/zone_domain.cpp
9
51.23
1.02% src/printing.cpp
17
84.33
2.73% src/arith/num_big.hpp

Uncovered Existing Lines

Lines Coverage ∆ File
1
97.01
-0.49% src/crab/ebpf_checker.cpp
Jobs
ID Job ID Ran Files Coverage
1 run-Debug - 22071284931.1 16 Feb 2026 05:49PM UTC 74
84.97
GitHub Action Run
2 run-Release - 22071284931.2 16 Feb 2026 05:06PM UTC 74
86.24
GitHub Action Run
Source Files on build 22071284931
  • Tree
  • List 74
  • Changed 26
  • Source Changed 0
  • Coverage Changed 26
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 36ee4284 on github
  • Prev Build on main (#22047546723)
  • Next Build on main (#22081081213)
  • Delete
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