manuzhang opened a new pull request, #6690:
URL: https://github.com/apache/datafusion-comet/pull/6690
## Which issue does this PR close?
No issue filed. Found while verifying the 1.1.0 RC: the source release does
not build on Rust 1.94.0, the `rust-version` it declares.
## Rationale for this change
`native/Cargo.toml` declares `rust-version = "1.94.0"`, but the locked
dependencies need a newer compiler. `iceberg` 0.10.1 (the pinned iceberg-rust
revision) requires 1.95, and the `aws-*` crates require 1.94.1. On rustc 1.94.0
the build stops before compiling anything:
```
error: rustc 1.94.0 is not supported by the following packages:
[email protected] requires rustc 1.94.1
...
[email protected] requires rustc 1.95
[email protected] requires rustc 1.95
```
Nothing caught the drift: CI always installs the latest stable, and the
member crates do not inherit the workspace `rust-version`, so cargo never
checks it. `branch-1.1` declares the same 1.94.0.
A 1.95 floor also unblocks the change the memory pools were waiting for.
Rust 1.99 deprecates `AtomicUsize::fetch_update`, and its replacements `update`
and `try_update` are stable since 1.95. The pools kept `fetch_update` behind
`#[allow(deprecated)]` only because the old floor was below 1.95, as the
comments on them said.
## What changes are included in this PR?
- `native/Cargo.toml`: `rust-version` 1.94.0 → 1.95.0. The comment said
Comet uses DataFusion's minimum; it now says the value is the highest minimum
among the dependencies (iceberg-rust's 1.95, above DataFusion's 1.94).
- `spark_memory.rs` and `unified_pool.rs`: `fetch_update` becomes `update`
where the closure always succeeds (it returns the previous value, so the
`Some(..)` and `.unwrap()` go away) and `try_update` where it can fail (same
`Result<prev, prev>` as before). The `#[allow(deprecated)]` attributes and
their comments are removed.
- `mersenne.rs`: a comment said the MSRV was 1.88; it now refers to the
workspace `rust-version`, like the other comments.
## How are these changes tested?
No new tests. The swap keeps behavior identical and is covered by the
existing memory pool tests.
- `cargo +1.95.0 check --all-targets --workspace` passes, so 1.95 is a real
floor for the workspace and everything it locks. On `main`, `cargo +1.94.0
check` fails with the error above.
- Clippy's `incompatible_msrv` lint, run with `msrv = "1.95.0"`, reports
nothing. With `msrv = "1.94.0"` it flags exactly the four new
`update`/`try_update` calls.
- `cargo clippy --all-targets --workspace -- -D warnings` (the CI lint
command) passes on a 1.96 nightly. CI runs it on the latest stable.
- `cargo test -p datafusion-comet memory_pool` on the same nightly: 27
passed, including the `spark_memory` repay tests and the `unified_pool` grow,
shrink and concurrency tests.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]