From 07e5b2a85df57308460a0bb580b0475d4ca4214d Mon Sep 17 00:00:00 2001 From: Antonin Delpeuch Date: Thu, 2 Oct 2025 10:42:57 +0200 Subject: [PATCH] Upgrade tree-sitter to 0.25, MSRV 1.76 Doing this upgrade would be very useful to unvendor more parsers, because tree-sitter 0.25 supports ABIs 13, 14 and 15 at the same time, whereas 0.24 supports ABIs 13 and 14 only. A lot of the crates.io versions of the parsers are using ABI 15, which is blocking their unvendoring. This comes to the cost of bumping MSRV from 1.75 to 1.76, which seems acceptable to me. This is still far behind the version in Debian stable, 1.85. --- Cargo.lock | 49 ++++++++++++++++++++++++++++++++------------- Cargo.toml | 6 +++--- rust-toolchain.toml | 2 +- 3 files changed, 39 insertions(+), 18 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5935aee26..aa5c08ba7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -129,10 +129,11 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "cc" -version = "1.2.7" +version = "1.2.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a012a0df96dd6d06ba9a1b29d6402d1a5d77c6befd2566afdc26e10603dc93d7" +checksum = "e1354349954c6fc9cb0deab020f27f783cf0b604e8bb754dc4658ecf0d29c35f" dependencies = [ + "find-msvc-tools", "shlex", ] @@ -365,6 +366,12 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "find-msvc-tools" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ced73b1dacfc750a6db6c0a0c3a3853c8b41997e2e2c563dc90804ae6867959" + [[package]] name = "fixedbitset" version = "0.4.2" @@ -692,9 +699,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.79" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] @@ -820,18 +827,28 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "serde" -version = "1.0.197" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.197" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -840,13 +857,16 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ + "indexmap", "itoa", + "memchr", "ryu", "serde", + "serde_core", ] [[package]] @@ -933,9 +953,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.55" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "002a1b3dbf967edfafc32655d0f377ab0bb7b994aa1d32c8cc7e9b8bf3ebb8f0" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", @@ -989,13 +1009,14 @@ dependencies = [ [[package]] name = "tree-sitter" -version = "0.24.5" +version = "0.25.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ac95b18f0f727aaaa012bd5179a1916706ee3ed071920fdbda738750b0c0bf5" +checksum = "78f873475d258561b06f1c595d93308a7ed124d9977cb26b148c2084a4a3cc87" dependencies = [ "cc", "regex", "regex-syntax", + "serde_json", "streaming-iterator", "tree-sitter-language", ] diff --git a/Cargo.toml b/Cargo.toml index 641643d05..f26e59d64 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,10 +15,10 @@ edition = "2021" # https://releases.rs/ is a useful website to see when different Rust # versions were released. # -# For reference, Debian stable is on 1.63 (see +# For reference, Debian stable is on 1.85 (see # https://tracker.debian.org/pkg/rustc) but Debian doesn't currently # package difftastic. Other distros are somewhat newer. -rust-version = "1.75.0" +rust-version = "1.76.0" include = [ "/build.rs", "/src/", @@ -72,7 +72,7 @@ streaming-iterator = "0.1.9" encoding_rs = "0.8.35" # tree-sitter itself. -tree-sitter = "0.24.0" +tree-sitter = "0.25.9" tree-sitter-language = "0.1.3" # tree-sitter parsers that are available on crates.io. diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 198f7078f..9eba63074 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "1.75.0" +channel = "1.76.0" components = ["rustfmt"] profile = "minimal"