Skip to content

Move the pin to Rust 1.98 - #26

Open
tamnd wants to merge 2 commits into
mainfrom
chore/rust-1.98
Open

Move the pin to Rust 1.98#26
tamnd wants to merge 2 commits into
mainfrom
chore/rust-1.98

Conversation

@tamnd

@tamnd tamnd commented Aug 21, 2026

Copy link
Copy Markdown
Owner

Closes #25. Follows tamnd/zu#516, which moves the row in toolchains.toml this repository copies.

The pin itself is two lines, the channel and rust-version. No workflow here names a version, since the clippy and test jobs read the toolchain file.

The first commit is what makes the second one green. 1.98 ships clippy::chunks_exact_to_as_chunks, which fires four times in this tree, so the pin bump would be a red CI without it. It is a good lint rather than a style note: chunks_exact(8) returns a slice whose length the compiler does not know, so each of those lines carried a try_into().expect("eight bytes") to get an array back out. as_chunks::<8>() puts the width in the type and both the conversion and its panic disappear. Three sites are the widths in Bytes::extend, the copy out of an engine column into the buffer behind a typed array; the fourth is the flat edge list, where a pair becomes a pair in the type.

as_chunks returns the remainder that chunks_exact dropped, and both call sites still want it dropped. extend copies whole elements, so a partial one is a caller handing over something that is not this column. The edge list refuses an odd length by name before that line, so the tail is provably empty.

Dependencies were checked against the registry the same day and are all on their newest series: napi 3.12.1, napi-derive 3.6.3, napi-build 2.4.1, arrow 59.2.0.

Verified on 1.98.0 locally: cargo fmt --check, cargo clippy --all-features -- -D warnings clean, npm run build:debug, and npm test at 363 tests, 354 passing, 9 skipped, none failing.

tamnd added 2 commits August 21, 2026 18:13
1.98 adds `clippy::chunks_exact_to_as_chunks`, and it fires four times
here. It is a good lint rather than a style note: `chunks_exact(8)`
hands back a slice whose length the compiler does not know, so every
one of these lines carried a `try_into().expect("eight bytes")` in the
middle of it to get an array back out. `as_chunks::<8>()` puts the
width in the type and the conversion and its panic go away.

Three of them are the widths in `Bytes::extend`, which is the copy out
of a column the engine filled into the buffer a typed array is made
from. The fourth is the flat edge list, where a pair is now a pair in
the type and `edge[0]` and `edge[1]` stop being indexes into something
that could be any length.

A remainder is the one thing that changes shape: `as_chunks` returns
it rather than dropping it. Both call sites want it dropped, and both
already do the right thing. `extend` is copying a column of whole
elements, so a partial one is a caller handing over something that is
not this column at all, which is what `chunks_exact` also ignored. The
edge list refuses an odd length by name before it gets here, so the
tail is provably empty.

The suite is unchanged at 363 tests, 354 passing and 9 skipped, and
the typed array round trips are what cover `extend` in both
directions.
The compiler is not chosen here. tamnd/zu's toolchains.toml holds one
version for the nine repositories with Rust in them, and the toolchain
file here is a copy of that row, so this follows tamnd/zu#515 rather
than deciding anything.

Two sites, the channel and rust-version. No workflow in this
repository names a version: the clippy and test jobs read the
toolchain file, which is the arrangement that keeps a bump from having
to find every job that hardcoded a number.

The libraries need nothing. napi 3.12.1, napi-derive 3.6.3, napi-build
2.4.1 and arrow 59.2.0 were checked against the registry on the same
day and are all current.

Verified on 1.98.0: `cargo fmt --check`, `cargo clippy --all-features
-D warnings` clean now that the chunk sizes moved into the type, and
`npm test` at 363 tests with nothing failing.
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.

Move the pin to Rust 1.98

1 participant