Repository navigation
fix: update code for nightly-2026-01-08 toolchain - #6982
mikedep333 wants to merge 1 commit into
Conversation
Greptile SummaryThis PR adapts the SIMD minhash implementation to the
Confidence Score: 5/5Safe to merge — two-line targeted fix with the necessary toolchain update included. The code change correctly removes the Option-unwrapping layer that no longer applies in the new API, and the toolchain pin is updated in the same commit to keep the dev environment consistent with stable 1.95.0. The logic is unchanged; only the wrapping construct is removed. No files require special attention. Important Files Changed
Reviews (2): Last reviewed commit: "fix(daft-minhash): fix into_remainder() ..." | Re-trigger Greptile |
|
hey @mikedep333, We have no qualms with bumping the toolchain version, as long as all breaking changes are addressed, and CI is updated + passing I dont see any issue. |
Thanks! What would you prefer? Stable Rust release with RUSTC_BOOTSTRAP=1, or a newer nightly? We're testing the former. EDIT: Nevermind, I just bumped the nightly instead because I read that the Rust project doesn't want people using RUSTC_BOOTSTRAP=1 |
febc9d7 to
ee70619
Compare
7eaeb0e to
d86f3e6
Compare
01865fb to
47ab584
Compare
cafc11b to
848e8d3
Compare
|
@universalmind303 I managed to resolve a ton of new clippy errors with the help of Claude Opus. CI is now green. |
There was a problem hiding this comment.
This LGTM overall @mikedep333, but before merging, we should run some integration and performance tests just to make sure that there isn't a regression, just to be safe
848e8d3 to
a264598
Compare
|
I just did an automatice rebase. Apologies, I didn't realize that would invalidate the review. |
Bump rust nightly toolchain from nightly-2025-09-03 to nightly-2026-01-08. This picks up the ArrayChunks::into_remainder() return type change (rust-lang/rust#149127) while staying before the cargo --timings=html removal (rust-lang/cargo#16420), which CI still relies on. Changes to accommodate the new nightly: - Fix into_remainder() call in daft-minhash to match new return type (no longer wrapped in Option) (This enables distributions to build with Rust 1.93 stable and newer when RUSTC_BOOTSTRAP is set.) - Upgrade cargo-llvm-cov from 0.7.1 to 0.8.7 to fix corrupt profraw files due to LLVM profdata format incompatibility Clippy lint fixes for newer nightly: - Fix use_self by replacing self-referential type names with Self across multiple enum/struct definitions - Allow clippy::use_self on snafu-derived Error variants that use Arc<Error> (snafu macro generates code with concrete type names, incompatible with Self): daft-io CachedError, daft-parquet RemoteFetchFailed - Allow clippy::result_large_err in daft-io/src/tos.rs (IO error types are inherently large) - Rename clippy::only_used_in_recursion allow attributes to clippy::self_only_used_in_recursion (lint renamed in newer clippy) - Fix ref_as_ptr by using std::ptr::from_ref - Fix unnecessary_unwrap in daft-sql by using if-let - Fix unchecked_time_subtraction by using checked_sub().unwrap() - Fix useless_vec in daft-io test - Fix derivable_impls on PreviewFormat by using #[derive(Default)] Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
a264598 to
8a7dc31
Compare
|
@mikedep333 sorry for the late reply. I got a chance to run the branch on a distributed TPCH benchmark and here are the results I got:
As you can see, its an overall slowdown of 15%. That seems kind of concerning. Any ideas on how to reduce it? |
|
Hey @srilman , I asked my team, and we don't think there is any way we can try to address this performance regression that isn't very time consuming for us. When you have a need to update Rust for some other reason, then both this MR and we may be of help. Thank you |
## Changes Made Upgrade Rust nightly from 2025-09-03 to 2026-05-27. Based on Rustc performance tracking numbers (https://perf.rust-lang.org/index.html?start=2025-09-03&end=2026-05-27&kind=raw&stat=instructions%3Au), this version should get around the regression in nightly performance that we saw in #6982. Similar to the last attempt: * `daft-minhash`: Change into_remainder() call since it now returns an iterator directly * Addressing a bunch of Clippy fixes * Switch back to unrestricted maturin by changing `--timings=html` to just `--timings` * Tested by running some rough performance numbers on MinHash and ClickBench on AWS to ensure no regression. Will follow up this PR with a deeper breakdown for ClickBench and TPCH
What
Bump rust nightly toolchain from nightly-2025-09-03 to nightly-2026-01-08.
This picks up the ArrayChunks::into_remainder() return type change
(rust-lang/rust#149127) while staying before the cargo --timings=html
removal (rust-lang/cargo#16420), which CI still relies on.
Changes to accommodate the new nightly:
(no longer wrapped in Option) (This enables distributions to build
with Rust 1.93 stable and newer when RUSTC_BOOTSTRAP is set.)
files due to LLVM profdata format incompatibility
Clippy lint fixes for newer nightly:
across multiple enum/struct definitions
Arc (snafu macro generates code with concrete type names,
incompatible with Self): daft-io CachedError, daft-parquet
RemoteFetchFailed
types are inherently large)
clippy::self_only_used_in_recursion (lint renamed in newer clippy)
Why
Iterator::array_chunks().into_remainder()returnsIntoIter<T, N>directly in stable Rust 1.93 and later, notOption<IntoIter<T, N>>as in daft's current target nightly (2025-09-03). The current code does not compile on stable Rust 1.95.0 because of this API difference.We are successfully building daft with stable Rust 1.95.0 (using
RUSTC_BOOTSTRAP=1to accept nightly feature gates) in our internal build system, and this is the one call site that needs updating.Testing
into_remainder()in the codebaseCo-Authored-By: Claude Opus 4.6 noreply@anthropic.com