Skip to content

DRAFT: Try 2^63-1 mantissa range refactoring on asan branch#6292

Draft
ximinez wants to merge 10 commits intopratik/Fix_asan_lsan_flagged_issuesfrom
ximinez/number_asan
Draft

DRAFT: Try 2^63-1 mantissa range refactoring on asan branch#6292
ximinez wants to merge 10 commits intopratik/Fix_asan_lsan_flagged_issuesfrom
ximinez/number_asan

Conversation

@ximinez
Copy link
Collaborator

@ximinez ximinez commented Jan 29, 2026

High Level Overview of Change

Combines #6150 and #6275.

Context of Change

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Refactor (non-breaking change that only restructures code)
  • Performance (increase or change in throughput and/or latency)
  • Tests (you added tests for code that already exists, or your new feature included in this PR)
  • Documentation update
  • Chore (no impact to binary, e.g. .gitignore, formatting, dropping support for older tooling)
  • Release

API Impact

  • Public API: New feature (new methods and/or new fields)
  • Public API: Breaking change (in general, breaking changes should only impact the next api_version)
  • libxrpl change (any change that may affect libxrpl or dependents of libxrpl)
  • Peer protocol change (must be backward compatible or bump the peer protocol version)

- That makes minMantissa 2^63/10+1.
- Simplifies many of the existing operations, and removes the need for
  the accessors (mantissa() & exponent()) to do any math.
- Simplify shiftExponent().
- Clean up to_string() to prevent integers from including "e0".
- Fix root() and root2() computations by ensuring the mantissas have
  a consistent length.
- Steal changes from @pratik's #6150 to avoid UB
@ximinez ximinez added the DraftRunCI Normally CI does not run on draft PRs. This opts in. label Jan 29, 2026
@codecov
Copy link

codecov bot commented Jan 29, 2026

Codecov Report

❌ Patch coverage is 98.17073% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 79.9%. Comparing base (bbb03e1) to head (e762b0c).

Files with missing lines Patch % Lines
src/libxrpl/basics/Number.cpp 98.5% 2 Missing ⚠️
include/xrpl/basics/Number.h 96.3% 1 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@                         Coverage Diff                         @@
##           pratik/Fix_asan_lsan_flagged_issues   #6292   +/-   ##
===================================================================
  Coverage                                 79.9%   79.9%           
===================================================================
  Files                                      840     839    -1     
  Lines                                    65567   65583   +16     
  Branches                                  7268    7271    +3     
===================================================================
+ Hits                                     52365   52380   +15     
- Misses                                   13202   13203    +1     
Files with missing lines Coverage Δ
include/xrpl/protocol/Protocol.h 100.0% <ø> (ø)
include/xrpl/protocol/STAmount.h 95.6% <100.0%> (+0.1%) ⬆️
include/xrpl/protocol/SystemParameters.h 100.0% <ø> (ø)
include/xrpl/protocol/detail/ledger_entries.macro 100.0% <ø> (ø)
include/xrpl/basics/Number.h 98.0% <96.3%> (-0.7%) ⬇️
src/libxrpl/basics/Number.cpp 98.4% <98.5%> (-0.4%) ⬇️

... and 432 files with indirect coverage changes

Impacted file tree graph

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

…es' into ximinez/number_asan

* XRPLF/pratik/Fix_asan_lsan_flagged_issues:
  fixed asan escape macro before return type
  added comments and haltonerror=false
  remove suppressions
  fix memory leak in LocalValue
  run parallel tests
  Don't copy the Json::StaticString
  fixes to static variable destruction issue.
  fix: Deletes expired NFToken offers from ledger (5707)
  chore: Add .zed editor config directory to .gitignore (6317)
  clang-format updates
  ssl context cleanup.
  docs: Update API changelog, add APIv2+APIv3 version documentation (6308)
  fix: Restore config changes that broke standalone mode (6301)
  chore: Add upper-case match for ARM64 in CompilationEnv (6315)
  ci: Update hashes of XRPLF/actions (6316)
  chore: Format all cmake files without comments (6294)
  chore: Add cmake-format pre-commit hook (6279)
  chore: Remove unnecessary `boost::system` requirement from conanfile (6290)
  chore: Set ColumnLimit to 120 in clang-format (6288)
  run tests in serial
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DraftRunCI Normally CI does not run on draft PRs. This opts in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant