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]

Reply via email to