--- a/Cargo.lock +++ b/Cargo.lock @@ -30,6 +30,12 @@ ] [[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + +[[package]] name = "annotate-snippets" version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -456,20 +462,15 @@ [[package]] name = "hashbrown" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" dependencies = [ "ahash", + "allocator-api2", ] [[package]] -name = "hashbrown" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" - -[[package]] name = "heck" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -514,9 +515,9 @@ [[package]] name = "indoc" -version = "1.0.9" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" +checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8" [[package]] name = "insta" @@ -550,9 +551,9 @@ [[package]] name = "itertools" -version = "0.10.5" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" dependencies = [ "either", ] @@ -600,7 +601,7 @@ "async-trait", "bincode", "derivative", - "hashbrown 0.13.2", + "hashbrown 0.14.2", "jrsonnet-gcmodule", "jrsonnet-interner", "jrsonnet-macros", @@ -654,7 +655,7 @@ name = "jrsonnet-interner" version = "0.5.0-pre95" dependencies = [ - "hashbrown 0.13.2", + "hashbrown 0.14.2", "jrsonnet-gcmodule", "rustc-hash", "serde", @@ -680,7 +681,7 @@ dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.38", ] [[package]] @@ -700,7 +701,6 @@ version = "0.5.0-pre95" dependencies = [ "anyhow", - "backtrace", "drop_bomb", "indoc", "insta", @@ -801,32 +801,41 @@ [[package]] name = "logos" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf8b031682c67a8e3d5446840f9573eb7fe26efe7ec8d195c9ac4c0647c502f1" +checksum = "c000ca4d908ff18ac99b93a062cb8958d331c3220719c52e77cb19cc6ac5d2c1" dependencies = [ "logos-derive", ] [[package]] -name = "logos-derive" -version = "0.12.1" +name = "logos-codegen" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d849148dbaf9661a6151d1ca82b13bb4c4c128146a88d05253b38d4e2f496c" +checksum = "dc487311295e0002e452025d6b580b77bb17286de87b57138f3b5db711cded68" dependencies = [ "beef", "fnv", "proc-macro2", "quote", "regex-syntax", - "syn 1.0.109", + "syn 2.0.38", +] + +[[package]] +name = "logos-derive" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbfc0d229f1f42d790440136d941afd806bc9e949e2bcb8faa813b0f00d1267e" +dependencies = [ + "logos-codegen", ] [[package]] name = "lsp-server" -version = "0.6.0" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f70570c1c29cf6654029b8fe201a5507c153f0d85be6f234d471d756bc36775a" +checksum = "b52dccdf3302eefab8c8a1273047f0a3c3dca4b527c8458d00c09484c8371928" dependencies = [ "crossbeam-channel", "log", @@ -836,9 +845,9 @@ [[package]] name = "lsp-types" -version = "0.93.2" +version = "0.94.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9be6e9c7e2d18f651974370d7aff703f9513e0df6e464fd795660edc77e6ca51" +checksum = "c66bfd44a06ae10647fe3f8214762e9369fd4248df1350924b4ef9e770a85ea1" dependencies = [ "bitflags 1.3.2", "serde", @@ -1232,18 +1241,18 @@ [[package]] name = "serde" -version = "1.0.171" +version = "1.0.190" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9" +checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.171" +version = "1.0.190" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682" +checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" dependencies = [ "proc-macro2", "quote", @@ -1758,7 +1767,7 @@ version = "0.1.0" dependencies = [ "anyhow", - "indexmap 1.9.3", + "indexmap 2.0.2", "itertools", "proc-macro2", "quote", --- a/Cargo.toml +++ b/Cargo.toml @@ -16,9 +16,54 @@ jrsonnet-types = { path = "./crates/jrsonnet-types", version = "0.5.0-pre95" } jrsonnet-gcmodule = "0.3.6" +ass-stroke = { git = "https://github.com/CertainLach/ass-stroke", version = "0.1.0" } -# <= 1.0.171 due to serde-rs/serde#2538 -serde = { version = ">= 1.0.126, <= 1.0.171" } +serde = "1.0.190" +serde_json = "1.0.107" +serde_yaml_with_quirks = "0.8.24" + +anyhow = "1.0.48" +thiserror = "1.0" +mimallocator = "0.1.3" +indoc = "2.0" +dprint-core = "0.63.2" +insta = "1.15" +tempfile = "3.8" +pathdiff = "0.2.1" +hashbrown = "0.14.2" +static_assertions = "1.1" +rustc-hash = "1.1" +bincode = "1.3" +annotate-snippets = "0.9.1" +async-trait = "0.1.60" +num-bigint = "0.4.3" +derivative = "2.2.0" +strsim = "0.10.0" +structdump = "0.2.0" +proc-macro2 = "1.0" +quote = "1.0" +syn = "2.0" +peg = "0.8.2" +drop_bomb = "0.1.5" +logos = "0.13.0" +miette = "5.5.0" +rowan = "0.15" +text-size = "1.1" +md5 = "0.7.0" +sha1 = "0.10.5" +sha2 = "0.10.6" +sha3 = "0.10.8" +base64 = "0.21.0" +indexmap = "2.0.2" +itertools = "0.11.0" +ungrammar = "1.16.1" +xshell = "0.2.2" + +clap = "4.4" +clap_complete = "4.4" + +lsp-server = "0.7.4" +lsp-types = "0.94.1" #[profile.test] #opt-level = 1 --- a/cmds/jrsonnet-fmt/Cargo.toml +++ b/cmds/jrsonnet-fmt/Cargo.toml @@ -4,11 +4,11 @@ edition = "2021" [dependencies] -dprint-core = "0.63.2" +dprint-core.workspace = true jrsonnet-rowan-parser.workspace = true -insta = "1.15" -indoc = "1.0" -ass-stroke = { git = "https://github.com/CertainLach/ass-stroke.git", version = "0.1.0" } -clap = { version = "4.4.2", features = ["derive"] } -tempfile = "3.8.0" -thiserror = "1.0.48" +insta.workspace = true +indoc.workspace = true +ass-stroke.workspace = true +clap = { workspace = true, features = ["derive"] } +tempfile.workspace = true +thiserror.workspace = true --- a/cmds/jrsonnet-lsp/Cargo.toml +++ b/cmds/jrsonnet-lsp/Cargo.toml @@ -4,10 +4,10 @@ edition = "2021" [dependencies] -anyhow = "1.0.48" +anyhow.workspace = true jrsonnet-evaluator.workspace = true jrsonnet-rowan-parser.workspace = true -lsp-server = "0.6.0" -lsp-types = "0.93.0" -serde = "1.0.130" -serde_json = "1.0.71" +lsp-server.workspace = true +lsp-types.workspace = true +serde.workspace = true +serde_json.workspace = true --- a/cmds/jrsonnet/Cargo.toml +++ b/cmds/jrsonnet/Cargo.toml @@ -8,11 +8,21 @@ edition = "2021" [features] -experimental = ["exp-preserve-order", "exp-destruct", "exp-null-coaelse", "exp-object-iteration", "exp-bigint", "exp-apply"] +experimental = [ + "exp-preserve-order", + "exp-destruct", + "exp-null-coaelse", + "exp-object-iteration", + "exp-bigint", + "exp-apply", +] # Use mimalloc as allocator mimalloc = ["mimallocator"] # Experimental feature, which allows to preserve order of object fields -exp-preserve-order = ["jrsonnet-evaluator/exp-preserve-order", "jrsonnet-cli/exp-preserve-order"] +exp-preserve-order = [ + "jrsonnet-evaluator/exp-preserve-order", + "jrsonnet-cli/exp-preserve-order", +] # Destructuring of locals exp-destruct = ["jrsonnet-evaluator/exp-destruct"] # Iteration over objects yields [key, value] elements @@ -20,7 +30,11 @@ # Bigint type exp-bigint = ["jrsonnet-evaluator/exp-bigint", "jrsonnet-cli/exp-bigint"] # obj?.field, obj?.['field'] -exp-null-coaelse = ["jrsonnet-evaluator/exp-null-coaelse", "jrsonnet-parser/exp-null-coaelse", "jrsonnet-cli/exp-null-coaelse"] +exp-null-coaelse = [ + "jrsonnet-evaluator/exp-null-coaelse", + "jrsonnet-parser/exp-null-coaelse", + "jrsonnet-cli/exp-null-coaelse", +] # --exp-apply exp-apply = [] @@ -35,10 +49,10 @@ jrsonnet-cli.workspace = true jrsonnet-gcmodule.workspace = true -mimallocator = { version = "0.1.3", optional = true } -thiserror = "1.0" -clap = { version = "4.1", features = ["derive"] } -clap_complete = { version = "4.1" } -serde_json = "1.0.104" +mimallocator = { workspace = true, optional = true } +thiserror.workspace = true +clap = { workspace = true, features = ["derive"] } +clap_complete.workspace = true +serde_json.workspace = true serde = { workspace = true, features = ["derive"] } -ass-stroke = { git = "https://github.com/CertainLach/ass-stroke", version = "0.1.0" } +ass-stroke.workspace = true --- a/crates/jrsonnet-cli/Cargo.toml +++ b/crates/jrsonnet-cli/Cargo.toml @@ -28,4 +28,4 @@ jrsonnet-stdlib.workspace = true jrsonnet-gcmodule.workspace = true -clap = { version = "4.1", features = ["derive"] } +clap = { workspace = true, features = ["derive"] } --- a/crates/jrsonnet-evaluator/Cargo.toml +++ b/crates/jrsonnet-evaluator/Cargo.toml @@ -37,25 +37,25 @@ jrsonnet-macros.workspace = true jrsonnet-gcmodule.workspace = true -pathdiff = "0.2.1" -hashbrown = "0.13.2" -static_assertions = "1.1" +pathdiff.workspace = true +hashbrown.workspace = true +static_assertions.workspace = true -rustc-hash = "1.1" +rustc-hash.workspace = true -thiserror = "1.0" +thiserror.workspace = true # Friendly errors -strsim = { version = "0.10.0" } +strsim.workspace = true serde.workspace = true -anyhow = { version = "1.0", optional = true } +anyhow = { workspace = true, optional = true } # Serialized stdlib -bincode = { version = "1.3", optional = true } +bincode = { workspace = true, optional = true } # Explaining traces -annotate-snippets = { version = "0.9.1", features = ["color"], optional = true } +annotate-snippets = { workspace = true, features = ["color"], optional = true } # Async imports -async-trait = { version = "0.1.60", optional = true } +async-trait = { workspace = true, optional = true } # Bigint -num-bigint = { version = "0.4.3", features = ["serde"], optional = true } -derivative = "2.2.0" +num-bigint = { workspace = true, features = ["serde"], optional = true } +derivative.workspace = true --- a/crates/jrsonnet-interner/Cargo.toml +++ b/crates/jrsonnet-interner/Cargo.toml @@ -20,7 +20,7 @@ jrsonnet-gcmodule.workspace = true serde = { workspace = true, optional = true } -structdump = { version = "0.2.0", optional = true } +structdump = { workspace = true, optional = true } -rustc-hash = "1.1" -hashbrown = { version = "0.13.2", features = ["inline-more"] } +rustc-hash.workspace = true +hashbrown = { workspace = true, features = ["inline-more"] } --- a/crates/jrsonnet-macros/Cargo.toml +++ b/crates/jrsonnet-macros/Cargo.toml @@ -11,6 +11,6 @@ proc-macro = true [dependencies] -proc-macro2 = "1.0" -quote = "1.0" -syn = { version = "1.0", features = ["full"] } +proc-macro2.workspace = true +quote.workspace = true +syn = { workspace = true, features = ["full"] } --- a/crates/jrsonnet-macros/src/lib.rs +++ b/crates/jrsonnet-macros/src/lib.rs @@ -17,7 +17,7 @@ { let attrs = attrs .iter() - .filter(|a| a.path.is_ident(&ident)) + .filter(|a| a.path().is_ident(&ident)) .collect::>(); if attrs.len() > 1 { return Err(Error::new( @@ -177,7 +177,7 @@ let cfg_attrs = arg .attrs .iter() - .filter(|a| a.path.is_ident("cfg")) + .filter(|a| a.path().is_ident("cfg")) .cloned() .collect(); --- a/crates/jrsonnet-parser/Cargo.toml +++ b/crates/jrsonnet-parser/Cargo.toml @@ -31,9 +31,9 @@ jrsonnet-interner.workspace = true jrsonnet-gcmodule.workspace = true -static_assertions = "1.1" +static_assertions.workspace = true -peg = "0.8.1" +peg.workspace = true serde = { workspace = true, features = ["derive", "rc"], optional = true } -structdump = { version = "0.2.0", features = ["derive"], optional = true } +structdump = { workspace = true, features = ["derive"], optional = true } --- a/crates/jrsonnet-rowan-parser/Cargo.toml +++ b/crates/jrsonnet-rowan-parser/Cargo.toml @@ -4,18 +4,16 @@ edition = "2021" [dependencies] -anyhow = "1.0" -backtrace = "0.3.63" -drop_bomb = "0.1.5" -indoc = "1.0" -logos = "0.12" -miette = { version = "5.5.0", features = ["fancy"] } -rowan = "0.15" -text-size = "1.1" -thiserror = "1.0" +anyhow.workspace = true +drop_bomb.workspace = true +indoc.workspace = true +logos.workspace = true +miette = { workspace = true, features = ["fancy"] } +rowan.workspace = true +text-size.workspace = true +thiserror.workspace = true [dev-dependencies] -backtrace = "0.3.63" -indoc = "1.0" -insta = "1.15" -anyhow = "1.0" +indoc.workspace = true +insta.workspace = true +anyhow.workspace = true --- a/crates/jrsonnet-stdlib/Cargo.toml +++ b/crates/jrsonnet-stdlib/Cargo.toml @@ -28,27 +28,27 @@ jrsonnet-gcmodule.workspace = true # Used for stdlib AST serialization -bincode = { version = "1.3", optional = true } +bincode = { workspace = true, optional = true } # Used both for stdlib AST serialization and std.parseJson/std.parseYaml serde.workspace = true # std.md5 -md5 = "0.7.0" +md5.workspace = true # std.sha1 -sha1 = "0.10.5" +sha1.workspace = true # std.sha256, std.sha512 -sha2 = "0.10.6" +sha2.workspace = true # std.sha3 -sha3 = "0.10.8" +sha3.workspace = true # std.base64 -base64 = "0.21.0" +base64.workspace = true # std.parseJson -serde_json = "1.0" +serde_json.workspace = true # std.parseYaml, custom library fork is used for C++/golang compatibility -serde_yaml_with_quirks = "0.8.24" +serde_yaml_with_quirks.workspace = true -num-bigint = { version = "0.4.3", optional = true } +num-bigint = { workspace = true, optional = true } [build-dependencies] jrsonnet-parser.workspace = true -structdump = { version = "0.2.0", features = ["derive"] } +structdump = { workspace = true, features = ["derive"] } --- a/crates/jrsonnet-types/Cargo.toml +++ b/crates/jrsonnet-types/Cargo.toml @@ -10,7 +10,7 @@ [dependencies] jrsonnet-gcmodule.workspace = true -peg = "0.8.1" +peg.workspace = true [features] exp-bigint = [] --- a/xtask/Cargo.toml +++ b/xtask/Cargo.toml @@ -4,10 +4,10 @@ edition = "2021" [dependencies] -anyhow = "1.0.57" -indexmap = "1.9.0" -itertools = "0.10.3" -proc-macro2 = "1.0.39" -quote = "1.0.18" -ungrammar = "1.16.1" -xshell = "0.2.2" +anyhow.workspace = true +indexmap.workspace = true +itertools.workspace = true +proc-macro2.workspace = true +quote.workspace = true +ungrammar.workspace = true +xshell.workspace = true