Skip to content

Update malachite to 0.11 - #8604

Merged
youknowone merged 1 commit into
RustPython:mainfrom
youknowone:malachite-0.11
Aug 28, 2026
Merged

Update malachite to 0.11#8604
youknowone merged 1 commit into
RustPython:mainfrom
youknowone:malachite-0.11

Conversation

@youknowone

@youknowone youknowone commented Aug 28, 2026

Copy link
Copy Markdown
Member

malachite-bigint 0.11.0 was published on 2026-08-28, while the workspace
pinned 0.10.0.

pymath requires malachite-bigint = "0" — every 0.x, deliberately, since
"malachite upgrades minor version a lot". A fresh resolve therefore picks 0.11
for pymath and leaves the workspace on 0.10, and cargo treats those as
incompatible, so both end up in the graph:

error[E0308]: mismatched types
   --> crates/stdlib/src/math.rs:110:45
    |
110 |   pymath::math::log_bigint(i.as_bigint(), base)
    |                            ^^^^^^^^^^^^^ expected `malachite_bigint::bigint::BigInt`, found `BigInt`
    |
note: there are multiple different versions of crate `malachite_bigint` in the dependency graph

The committed Cargo.lock hides this for the workspace itself. The example
projects carry no lockfile — example_projects/.gitignore has */Cargo.lock
so they resolve fresh on every run, which is why Test example projects is the
only job that broke, and why it broke on a commit that touched none of this.

malachite-q and malachite-base move with malachite-bigint. Bumping
malachite-bigint on its own splits malachite-nz the same way and fails in
rustpython-common instead. With all three moved, no source change is needed.

Nothing changes in pymath: its "0" requirement covers 0.11, so both sides
unify there once the workspace does.

Tests

CI clippy for the workspace and for the wasm package, the workspace test
command, and both example projects — frozen_stdlib, the one that fails on
main, now builds and runs.

Summary by CodeRabbit

  • Chores
    • Updated internal mathematical library components to newer versions for improved compatibility and maintenance.

`malachite-bigint` 0.11.0 released while the workspace pinned 0.10.0. `pymath`
requires `malachite-bigint = "0"`, so a fresh resolve picks 0.11 for it and
leaves the workspace on 0.10, putting two incompatible copies of `BigInt` in
one graph. `crates/stdlib/src/math.rs` then fails to compile, which is what the
example projects do -- they carry no lockfile and resolve fresh on every run.

`malachite-q` and `malachite-base` move with it; bumping `malachite-bigint`
alone splits `malachite-nz` the same way. No source change is needed.

Assisted-by: Claude
@coderabbitai

coderabbitai Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro Plus

Run ID: 20e651da-7665-4ebf-b819-66ae924d1c03

📥 Commits

Reviewing files that changed from the base of the PR and between b0b4d2f and 8d95b4f.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (1)
  • Cargo.toml

Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.


📝 Walkthrough

Walkthrough

The workspace updates malachite-bigint, malachite-q, and malachite-base from version 0.10.0 to 0.11.0.

Changes

Malachite dependency update

Layer / File(s) Summary
Update workspace dependency versions
Cargo.toml
The workspace declarations for malachite-bigint, malachite-q, and malachite-base now use version 0.11.0.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to 8d95b

This localized dependency update aligns the workspace and lockfile on malachite 0.11; no actionable merge-blocking risk remains after normal checks and review.

Suggested reviewers: joshuamegnauth54, shaharnaveh

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely identifies the main change: updating the Malachite dependencies from version 0.10 to 0.11.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@youknowone
youknowone merged commit 86e7ede into RustPython:main Aug 28, 2026
28 checks passed
@youknowone
youknowone deleted the malachite-0.11 branch August 28, 2026 16:12
@ShaharNaveh ShaharNaveh mentioned this pull request Aug 29, 2026
3 tasks
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.

1 participant