Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Oct 19, 2025

This PR contains the following updates:

Package Type Update Change
bigdecimal workspace.dependencies patch 0.4.8 -> 0.4.9

Release Notes

akubera/bigdecimal-rs (bigdecimal)

v0.4.9

Compare Source

Changes
  • Add methods BigDecimal::{powi, powi_with_context} for raising a decimal to a i64 power

    • the powi uses Default Context
  • Add methods BigDecimal::mul_with_context for efficient multiplication to fixed precision

    • uses precision and rounding-mode in the Context
  • Add method BigDecimal::decimal_digit_count, returning number of decimal digits (i.e. precision) of the number

  • Add method BigDecimal::order_of_magnitude, returning position of most significant digit of this decimal

  • Add method BigDecimal::is_one_quickcheck, returning Option<bool> indicating if the value is 1.0 if it can be calculated without allocating, or None if too large

    • Replaced is_one in multiplication methods when used for optimizations
      • Should test if that actually speeds it up
    • Eg value 1.00000000000000000000000000000000000000000 is stored internally as
      [4870020673419870208, 16114848830623546549, 293] E -41 and it's hard to tell this is equivalent to 1
  • Add optimizations to inverse

    • small powers of ten will simply flip their scale 1/10e-5 -> 10e5
    • convert to f64 to make initial guess when before iterative algorithm
  • Add Context::invert(&self, BigDecimalRef), equivalent to BigDecimal::inverse_with_context(&self, &ctx)

    • Still has a bug where rounding ignores sign, affecting floor/ceiling modes

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@codspeed-hq
Copy link

codspeed-hq bot commented Oct 19, 2025

CodSpeed Performance Report

Merging #8956 will degrade performances by 6.23%

Comparing renovate/bigdecimal-0.x-lockfile (10a8e1a) with main (16b31bd)

Summary

⚡ 1 improvement
❌ 5 regressions
✅ 100 untouched
⏩ 73 skipped1

⚠️ Please fix the performance issues or acknowledge them on CodSpeed.

Benchmarks breakdown

Benchmark BASE HEAD Change
sort_case_insensitive[500000] 417.1 ms 427.9 ms -2.52%
sort_case_sensitive[500000] 327.1 ms 337.9 ms -3.19%
sort_long_line[160000] 2 ms 1.8 ms +9.87%
sort_ascii_c_locale 27.6 ms 29.4 ms -6.23%
sort_ascii_utf8_locale 55.6 ms 59.2 ms -6.19%
sort_numeric 21.8 ms 22.8 ms -4.52%

Footnotes

  1. 73 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@github-actions
Copy link

GNU testsuite comparison:

Skipping an intermittent issue tests/tail/overlay-headers (passes in this run but fails in the 'main' branch)
Skipping an intermittent issue tests/timeout/timeout (passes in this run but fails in the 'main' branch)

@cakebaker cakebaker merged commit 967e40e into main Oct 20, 2025
120 of 121 checks passed
@cakebaker cakebaker deleted the renovate/bigdecimal-0.x-lockfile branch October 20, 2025 05:28
@sylvestre
Copy link
Contributor

@cakebaker why did you merge it? it regressed performance a bit much

@cakebaker
Copy link
Contributor

cakebaker commented Oct 20, 2025

@sylvestre I merged it because all the other checks passed and the performance regression is outside of our control.

@sylvestre
Copy link
Contributor

@cakebaker well, we should report a bug upstream :)
maybe they aren't aware
see zip-rs/zip2#231 as example

@cakebaker
Copy link
Contributor

cakebaker commented Oct 20, 2025

@sylvestre the difficulty is in what to report :| Just reporting that some sort benches take a few milliseconds longer than before is not that helpful imo.

@sylvestre
Copy link
Contributor

@akubera we noticed some regressions with this update
not a big deal but you might be interested!

@cakebaker
Copy link
Contributor

@sylvestre thanks, sometimes I overthink things :|

@sylvestre
Copy link
Contributor

@cakebaker no worries, we all do ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants