From d4973846c0f38d8d6dcd4bba9d5d096dec94a073 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Sat, 24 Feb 2024 14:24:29 -0800 Subject: [PATCH] Bump tree-sitter, wasmtime (#8306) Fixes https://github.com/zed-industries/zed/issues/8296#issuecomment-1961957369 Release Notes: - Fixed a crash that would happen when loading an extension that added a grammar that was generated using a very old version of Tree-sitter ([#8296](https://github.com/zed-industries/zed/issues/8296)). --------- Co-authored-by: Conrad Co-authored-by: Marshall --- Cargo.lock | 184 ++++++++++++------------ Cargo.toml | 9 +- crates/extension/src/extension_store.rs | 4 - 3 files changed, 93 insertions(+), 104 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e8f4e225ce..8add9877f4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2495,16 +2495,18 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.103.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "0.105.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29a6391a9172a93f413370fa561c6bca786e06c89cf85f23f02f6345b1c8ee34" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.103.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "0.105.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "409c6cbb326604a53ec47eb6341fc85128f24c81012a014b4c728ed24f6e9350" dependencies = [ "bumpalo", "cranelift-bforest", @@ -2523,29 +2525,33 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.103.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "0.105.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fff55e100130995b9ad9ac6b03a24ed5da3c1a1261dcdeb8a7a0292656994fb3" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.103.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "0.105.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1446e2eb395fc7b3019a36dccb7eccea923f6caf581b903c8e7e751b6d214a7" [[package]] name = "cranelift-control" -version = "0.103.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "0.105.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24076ecf69cbf8b9e1e532ae8e7ac01d850a1c2e127058a26eb3245f9d5b89d1" dependencies = [ "arbitrary", ] [[package]] name = "cranelift-entity" -version = "0.103.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "0.105.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f40df95180ad317c60459bb90dd87803d35e538f4c54376d8b26c851f6f0a1b" dependencies = [ "serde", "serde_derive", @@ -2553,8 +2559,9 @@ dependencies = [ [[package]] name = "cranelift-frontend" -version = "0.103.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "0.105.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c3974cc665b699b626742775dae1c1cdea5170f5028ab1f3eb61a7a9a6e2979" dependencies = [ "cranelift-codegen", "log", @@ -2564,13 +2571,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.103.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "0.105.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99543f92b9c361f3c54a29e945adb5b9ef1318feaa5944453cabbfcb3c495919" [[package]] name = "cranelift-native" -version = "0.103.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "0.105.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c0d84dc7d9b3f73ad565eacc4ab36525c407ef5150893b4b94d5f5f904eb48a" dependencies = [ "cranelift-codegen", "libc", @@ -2579,8 +2588,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.103.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "0.105.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53781039219944d59c6d3ec57e6cae31a1a33db71573a945d84ba6d875d0a743" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -4977,7 +4987,7 @@ dependencies = [ "tree-sitter-embedded-template", "tree-sitter-heex", "tree-sitter-html", - "tree-sitter-json 0.20.0", + "tree-sitter-json 0.20.2", "tree-sitter-markdown", "tree-sitter-python", "tree-sitter-ruby", @@ -5089,7 +5099,7 @@ dependencies = [ "tree-sitter-hcl", "tree-sitter-heex", "tree-sitter-html", - "tree-sitter-json 0.20.0", + "tree-sitter-json 0.20.2", "tree-sitter-lua", "tree-sitter-markdown", "tree-sitter-nix", @@ -7538,14 +7548,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.9.5" +version = "1.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" +checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.3.8", - "regex-syntax 0.7.5", + "regex-automata 0.4.5", + "regex-syntax 0.8.2", ] [[package]] @@ -7562,11 +7572,6 @@ name = "regex-automata" version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax 0.7.5", -] [[package]] name = "regex-automata" @@ -7591,12 +7596,6 @@ version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" -[[package]] -name = "regex-syntax" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" - [[package]] name = "regex-syntax" version = "0.8.2" @@ -8444,7 +8443,7 @@ dependencies = [ "tree-sitter", "tree-sitter-cpp", "tree-sitter-elixir", - "tree-sitter-json 0.20.0", + "tree-sitter-json 0.20.2", "tree-sitter-lua", "tree-sitter-php", "tree-sitter-ruby", @@ -10265,8 +10264,8 @@ dependencies = [ [[package]] name = "tree-sitter" -version = "0.20.10" -source = "git+https://github.com/tree-sitter/tree-sitter?rev=1d8975319c2d5de1bf710e7e21db25b0eee4bc66#1d8975319c2d5de1bf710e7e21db25b0eee4bc66" +version = "0.20.100" +source = "git+https://github.com/tree-sitter/tree-sitter?rev=da7063ba18381fd7dd3c7fc8e1bc43b129818569#da7063ba18381fd7dd3c7fc8e1bc43b129818569" dependencies = [ "cc", "regex", @@ -10497,8 +10496,8 @@ dependencies = [ [[package]] name = "tree-sitter-json" -version = "0.20.0" -source = "git+https://github.com/tree-sitter/tree-sitter-json?rev=40a81c01a40ac48744e0c8ccabbaba1920441199#40a81c01a40ac48744e0c8ccabbaba1920441199" +version = "0.20.2" +source = "git+https://github.com/tree-sitter/tree-sitter-json?rev=3b129203f4b72d532f58e72c5310c0a7db3b8e6d#3b129203f4b72d532f58e72c5310c0a7db3b8e6d" dependencies = [ "cc", "tree-sitter", @@ -11258,38 +11257,42 @@ checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" [[package]] name = "wasm-encoder" -version = "0.38.1" +version = "0.41.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad2b51884de9c7f4fe2fd1043fccb8dcad4b1e29558146ee57a144d15779f3f" +checksum = "972f97a5d8318f908dded23594188a90bcd09365986b1163e66d70170e5287ae" dependencies = [ "leb128", ] [[package]] name = "wasmparser" -version = "0.118.1" +version = "0.121.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ee9723b928e735d53000dec9eae7b07a60e490c85ab54abb66659fc61bfcd9" +checksum = "9dbe55c8f9d0dbd25d9447a5a889ff90c0cc3feaa7395310d3d826b2c703eaab" dependencies = [ + "bitflags 2.4.1", "indexmap 2.0.0", "semver", ] [[package]] name = "wasmtime" -version = "16.0.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "18.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b06f80b13fdeba0ea5267813d0f06af822309f7125fc8db6094bcd485f0a4ae7" dependencies = [ "anyhow", "bincode", "bumpalo", "cfg-if 1.0.0", + "gimli", "indexmap 2.0.0", "libc", "log", "object", "once_cell", "paste", + "rustix 0.38.30", "serde", "serde_derive", "serde_json", @@ -11297,23 +11300,25 @@ dependencies = [ "wasmparser", "wasmtime-cranelift", "wasmtime-environ", - "wasmtime-jit", + "wasmtime-jit-icache-coherence", "wasmtime-runtime", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "wasmtime-asm-macros" -version = "16.0.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "18.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d7395b475c6f858c7edfce375f00d8282a32fbf5d1ebc93eddfac5c2458a52" dependencies = [ "cfg-if 1.0.0", ] [[package]] name = "wasmtime-c-api-impl" -version = "16.0.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "18.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c09ac0c18464f8ef0b554c12defc94e3fc082b62309a3da229de60d47cf75a" dependencies = [ "anyhow", "log", @@ -11325,8 +11330,9 @@ dependencies = [ [[package]] name = "wasmtime-c-api-macros" -version = "0.0.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "18.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "864c4a337294fe690f02b39f2b3f45414447d9321d0ed24d3dc7696bf291e789" dependencies = [ "proc-macro2", "quote", @@ -11334,8 +11340,9 @@ dependencies = [ [[package]] name = "wasmtime-cranelift" -version = "16.0.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "18.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "974d9455611e26c97d31705e19545de58fa8867416592bd93b7a54a7fc37cedb" dependencies = [ "anyhow", "cfg-if 1.0.0", @@ -11358,8 +11365,9 @@ dependencies = [ [[package]] name = "wasmtime-cranelift-shared" -version = "16.0.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "18.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40667ba458634db703aea3bd960e80bc9352c21d5e765b69f43e3b0c964eb611" dependencies = [ "anyhow", "cranelift-codegen", @@ -11373,10 +11381,12 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "16.0.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "18.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8da991421528c2767053cb0cfa70b5d28279100dbcf70ed7f74b51abe1656ef" dependencies = [ "anyhow", + "bincode", "cranelift-entity", "gimli", "indexmap 2.0.0", @@ -11390,41 +11400,22 @@ dependencies = [ "wasmtime-types", ] -[[package]] -name = "wasmtime-jit" -version = "16.0.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" -dependencies = [ - "anyhow", - "bincode", - "cfg-if 1.0.0", - "gimli", - "log", - "object", - "rustix 0.38.30", - "serde", - "serde_derive", - "target-lexicon", - "wasmtime-environ", - "wasmtime-jit-icache-coherence", - "wasmtime-runtime", - "windows-sys 0.48.0", -] - [[package]] name = "wasmtime-jit-icache-coherence" -version = "16.0.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "18.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3346431a41fbb0c5af0081c2322361b00289f2902e54ee7b115e9b2ad32b156b" dependencies = [ "cfg-if 1.0.0", "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "wasmtime-runtime" -version = "16.0.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "18.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a489353aa297b46a66cde8da48cab8e1e967e7f4b0ae3d9889a0550bf274810b" dependencies = [ "anyhow", "cc", @@ -11444,13 +11435,14 @@ dependencies = [ "wasmtime-environ", "wasmtime-versioned-export-macros", "wasmtime-wmemcheck", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "wasmtime-types" -version = "16.0.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "18.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12c56e31fd7fa707fbd7720b2b29ac42ccfb092fe9d85c98f1d3988f9a1d4558" dependencies = [ "cranelift-entity", "serde", @@ -11461,8 +11453,9 @@ dependencies = [ [[package]] name = "wasmtime-versioned-export-macros" -version = "16.0.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "18.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b0300976c36a9427d184e3ecf7c121c2cb3f030844faf9fcb767821e9d4c382" dependencies = [ "proc-macro2", "quote", @@ -11471,8 +11464,9 @@ dependencies = [ [[package]] name = "wasmtime-wmemcheck" -version = "16.0.0" -source = "git+https://github.com/bytecodealliance/wasmtime?rev=v16.0.0#6613acd1e4817957a4a7745125ef063b43c273a7" +version = "18.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdf5b8da6ebf7549dad0cd32ca4a3a0461449ef4feec9d0d8450d8da9f51f9b" [[package]] name = "wayland-backend" diff --git a/Cargo.toml b/Cargo.toml index 3a0dc0728e..b6ade364ed 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -240,7 +240,7 @@ tiktoken-rs = "0.5.7" time = { version = "0.3", features = ["serde", "serde-well-known", "formatting"] } toml = "0.8" tower-http = "0.4.4" -tree-sitter = { version = "0.20", features = ["wasm"] } +tree-sitter = { version = ">= 0.20.100", features = ["wasm"] } tree-sitter-astro = { git = "https://github.com/virchau13/tree-sitter-astro.git", rev = "e924787e12e8a03194f36a113290ac11d6dc10f3" } tree-sitter-bash = { git = "https://github.com/tree-sitter/tree-sitter-bash", rev = "7331995b19b8f8aba2d5e26deb51d2195c18bc94" } tree-sitter-c = "0.20.1" @@ -264,7 +264,7 @@ tree-sitter-haskell = { git = "https://github.com/tree-sitter/tree-sitter-haskel tree-sitter-hcl = { git = "https://github.com/MichaHoffmann/tree-sitter-hcl", rev = "v1.1.0" } tree-sitter-heex = { git = "https://github.com/phoenixframework/tree-sitter-heex", rev = "2e1348c3cf2c9323e87c2744796cf3f3868aa82a" } tree-sitter-html = "0.19.0" -tree-sitter-json = { git = "https://github.com/tree-sitter/tree-sitter-json", rev = "40a81c01a40ac48744e0c8ccabbaba1920441199" } +tree-sitter-json = { git = "https://github.com/tree-sitter/tree-sitter-json", rev = "3b129203f4b72d532f58e72c5310c0a7db3b8e6d" } tree-sitter-lua = "0.0.14" tree-sitter-markdown = { git = "https://github.com/MDeiml/tree-sitter-markdown", rev = "330ecab87a3e3a7211ac69bbadc19eabecdb1cca" } tree-sitter-nix = { git = "https://github.com/nix-community/tree-sitter-nix", rev = "66e3e9ce9180ae08fc57372061006ef83f0abde7" } @@ -289,13 +289,12 @@ tree-sitter-zig = { git = "https://github.com/maxxnino/tree-sitter-zig", rev = " unindent = "0.1.7" url = "2.2" uuid = { version = "1.1.2", features = ["v4"] } -wasmtime = "16" +wasmtime = "18.0.1" which = "6.0.0" sys-locale = "0.3.1" [patch.crates-io] -tree-sitter = { git = "https://github.com/tree-sitter/tree-sitter", rev = "1d8975319c2d5de1bf710e7e21db25b0eee4bc66" } -wasmtime = { git = "https://github.com/bytecodealliance/wasmtime", rev = "v16.0.0" } +tree-sitter = { git = "https://github.com/tree-sitter/tree-sitter", rev = "da7063ba18381fd7dd3c7fc8e1bc43b129818569" } # Workaround for a broken nightly build of gpui: See #7644 and revisit once 0.5.3 is released. pathfinder_simd = { git = "https://github.com/servo/pathfinder.git", rev = "e4fcda0d5259d0acf902aee6de7d2501f2bd6629" } diff --git a/crates/extension/src/extension_store.rs b/crates/extension/src/extension_store.rs index d8434ea895..0339e7b3a7 100644 --- a/crates/extension/src/extension_store.rs +++ b/crates/extension/src/extension_store.rs @@ -415,10 +415,6 @@ impl ExtensionStore { })); for language_name in &languages_to_add { - if language_name.as_ref() == "Swift" { - continue; - } - let language = manifest.languages.get(language_name.as_ref()).unwrap(); let mut language_path = self.extensions_dir.clone(); language_path.extend([language.extension.as_ref(), language.path.as_path()]);