diff --git a/CHANGELOG.md b/CHANGELOG.md index e4a7a84..3bdf29f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # Changelog +## [v0.20.0] - 2024-11-24 + +### Breaking + +- Sets the MSRV to Rust 1.74.0 + +### Fixes + +- Removes use of `atty` as it is unmaintained and has a low CVE + +### Dependencies + +- Updates dependencies + +### Refactoring + +- Clippy fixes + ## [v0.19.0] - 2023-07-16 ### Breaking diff --git a/Cargo.lock b/Cargo.lock index ccbef9b..e65da1b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -584,7 +584,7 @@ checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "melody_cli" -version = "0.19.0" +version = "0.20.0" dependencies = [ "anyhow", "assert_cmd", @@ -602,7 +602,7 @@ dependencies = [ [[package]] name = "melody_compiler" -version = "0.19.0" +version = "0.20.0" dependencies = [ "arbitrary", "criterion", @@ -615,7 +615,7 @@ dependencies = [ [[package]] name = "melody_wasm" -version = "0.19.0" +version = "0.20.0" dependencies = [ "console_error_panic_hook", "melody_compiler", diff --git a/README.md b/README.md index edcfb5a..f21d48b 100644 --- a/README.md +++ b/README.md @@ -414,7 +414,7 @@ The Melody file extensions are `.mdy` and `.melody` ## Performance -Last measured on v0.19.0 +Last measured on v0.20.0 Measured on an 8 core 2021 MacBook Pro 14-inch, Apple M1 Pro using [criterion](https://github.com/bheisler/criterion.rs): @@ -422,29 +422,29 @@ Measured on an 8 core 2021 MacBook Pro 14-inch, Apple M1 Pro using [criterion](h ``` compiler/normal (8 lines) - time: [4.0579 µs 4.0665 µs 4.0788 µs] - slope [4.0579 µs 4.0788 µs] R^2 [0.9996538 0.9995633] - mean [4.0555 µs 4.0806 µs] std. dev. [11.018 ns 26.342 ns] - median [4.0500 µs 4.0852 µs] med. abs. dev. [5.6889 ns 35.806 ns] + time: [4.3556 µs 4.3674 µs 4.3751 µs] + slope [4.3556 µs 4.3751 µs] R^2 [0.9996144 0.9996931] + mean [4.3377 µs 4.3678 µs] std. dev. [16.019 ns 30.154 ns] + median [4.3270 µs 4.3777 µs] med. abs. dev. [3.1402 ns 41.334 ns] ``` - 1M lines: ``` compiler/long input (1M lines) - time: [400.97 ms 402.31 ms 403.53 ms] - mean [400.97 ms 403.53 ms] std. dev. [773.42 µs 2.9886 ms] - median [401.22 ms 403.39 ms] med. abs. dev. [59.042 µs 3.5129 ms] + time: [470.04 ms 472.35 ms 474.78 ms] + mean [470.04 ms 474.78 ms] std. dev. [2.0458 ms 5.3453 ms] + median [469.54 ms 475.24 ms] med. abs. dev. [734.10 µs 6.8144 ms] ``` - Deeply nested: ``` compiler/deeply nested - time: [5.8085 µs 5.8291 µs 5.8514 µs] - slope [5.8085 µs 5.8514 µs] R^2 [0.9992861 0.9992461] - mean [5.8064 µs 5.8519 µs] std. dev. [21.027 ns 49.152 ns] - median [5.7949 µs 5.8583 µs] med. abs. dev. [3.3348 ns 64.628 ns] + time: [4.2357 µs 4.2561 µs 4.2782 µs] + slope [4.2357 µs 4.2782 µs] R^2 [0.9988854 0.9988087] + mean [4.2474 µs 4.2752 µs] std. dev. [13.698 ns 29.574 ns] + median [4.2426 µs 4.2819 µs] med. abs. dev. [2.7127 ns 43.193 ns] ``` To reproduce, run `cargo bench` or `cargo xtask benchmark` diff --git a/crates/melody_cli/Cargo.toml b/crates/melody_cli/Cargo.toml index 177c396..4ae841b 100644 --- a/crates/melody_cli/Cargo.toml +++ b/crates/melody_cli/Cargo.toml @@ -4,18 +4,21 @@ description = "A CLI wrapping the Melody language compiler" homepage = "https://github.com/yoav-lavi/melody" repository = "https://github.com/yoav-lavi/melody" readme = "README.md" -version = "0.19.0" +version = "0.20.0" edition = "2021" license = "MIT OR Apache-2.0" keywords = ["melody", "melodylang", "language", "cli"] categories = ["command-line-utilities"] +[package.metadata] +msrv = "1.74.0" + [dependencies] clap = { version = "4", features = ["derive"] } colored = "2" thiserror = "2" anyhow = "1" -melody_compiler = { version = "0.19.0", path = "../melody_compiler" } +melody_compiler = { version = "0.20.0", path = "../melody_compiler" } exitcode = "1" clap_complete = "4" regress = "0.10" diff --git a/crates/melody_compiler/Cargo.toml b/crates/melody_compiler/Cargo.toml index 37fc729..c492133 100644 --- a/crates/melody_compiler/Cargo.toml +++ b/crates/melody_compiler/Cargo.toml @@ -4,12 +4,15 @@ description = "The Melody language compiler" homepage = "https://github.com/yoav-lavi/melody" repository = "https://github.com/yoav-lavi/melody" readme = "README.md" -version = "0.19.0" +version = "0.20.0" edition = "2021" license = "MIT OR Apache-2.0" keywords = ["melody", "melodylang", "language", "compiler"] categories = ["compilers"] +[package.metadata] +msrv = "1.74.0" + [features] fuzzer = ["arbitrary"] diff --git a/crates/melody_compiler/README.md b/crates/melody_compiler/README.md index 1d44fd5..a1fad9b 100644 --- a/crates/melody_compiler/README.md +++ b/crates/melody_compiler/README.md @@ -10,7 +10,7 @@ The Melody language compiler ```toml [dependencies] -melody_compiler = "0.19.0" +melody_compiler = "0.20.0" ``` ## Usage diff --git a/crates/melody_wasm/Cargo.toml b/crates/melody_wasm/Cargo.toml index f1df65d..5e40d83 100644 --- a/crates/melody_wasm/Cargo.toml +++ b/crates/melody_wasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "melody_wasm" -version = "0.19.0" +version = "0.20.0" edition = "2021" description = "WASM bindings for the Melody language compiler" license = "MIT OR Apache-2.0" @@ -8,10 +8,13 @@ repository = "https://github.com/yoav-lavi/melody" keywords = ["melody", "melodylang", "language", "wasm"] categories = ["webassembly"] +[package.metadata] +msrv = "1.74.0" + [lib] crate-type = ["cdylib"] [dependencies] wasm-bindgen = "0.2" console_error_panic_hook = "0.1" -melody_compiler = { version = "0.19.0", path = "../melody_compiler", default-features = false } +melody_compiler = { version = "0.20.0", path = "../melody_compiler", default-features = false } diff --git a/flake.nix b/flake.nix index be69244..75ee5be 100644 --- a/flake.nix +++ b/flake.nix @@ -25,7 +25,12 @@ [ nodejs nodePackages.prettier + cargo-msrv + cargo-criterion + wasm-pack rustup + nodePackages.vercel + vsce ] ++ optional (system == systems.aarch64-darwin) [ darwin.apple_sdk.frameworks.Security diff --git a/integrations/babel-plugin-melody/package.json b/integrations/babel-plugin-melody/package.json index d986a48..efab47b 100644 --- a/integrations/babel-plugin-melody/package.json +++ b/integrations/babel-plugin-melody/package.json @@ -1,10 +1,10 @@ { "name": "babel-plugin-melody", - "version": "0.19.0", + "version": "0.20.0", "main": "src/index.js", "license": "(MIT OR Apache-2.0)", "dependencies": { - "melodyc": "^0.19.0" + "melodyc": "^0.20.0" }, "devDependencies": { "@babel/core": "^7.26.0", diff --git a/integrations/babel-plugin-melody/yarn.lock b/integrations/babel-plugin-melody/yarn.lock index 32188f6..8b2c7c1 100644 --- a/integrations/babel-plugin-melody/yarn.lock +++ b/integrations/babel-plugin-melody/yarn.lock @@ -2144,10 +2144,10 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" -melodyc@^0.19.0: - version "0.19.0" - resolved "https://registry.yarnpkg.com/melodyc/-/melodyc-0.19.0.tgz#97c82f1d29b10358c8d19ef7779acd5f57e9768d" - integrity sha512-17fqh+2VsDfdCa+sAtBL3p4LDXFovy3B6lpCwBs6ZRL2anyg3fanTlyMzzFSW2agG1FApr6ePx+f6tWDQtNKow== +melodyc@^0.20.0: + version "0.20.0" + resolved "https://registry.yarnpkg.com/melodyc/-/melodyc-0.20.0.tgz#fe7d2ea6ebe83486c258d50be65c7a7171d725c3" + integrity sha512-7TJ9jek3M4VSr9A40ajePdDpLyiWfozydzZb6mqrcRgiBwCpgUo056dJgIGXQVBTopPIgEO1CG9jOTJjN2ESng== merge-stream@^2.0.0: version "2.0.0" diff --git a/playground/README.md b/playground/README.md index 395e877..f760c5c 100644 --- a/playground/README.md +++ b/playground/README.md @@ -1,3 +1,3 @@ # Melody Playground -To populate the `src/wasm` directory, run `cargo xtask playground-wasm` +To populate the `wasm` directory, run `cargo xtask playground-wasm` diff --git a/playground/index.html b/playground/index.html index 5f6a892..b7b4c3a 100644 --- a/playground/index.html +++ b/playground/index.html @@ -17,7 +17,7 @@

Melody Playground

-
melody_compiler v0.19.0
+
melody_compiler v0.20.0
GitHub anyhow::Result<()> { cmd!(shell, "wasm-pack build --target nodejs").run()?; cmd!( shell, - "sed -i '' 's/\"name\":.*/\"name\": \"melodyc\",/g' ./pkg/package.json" + "sed -i 's/\"name\":.*/\"name\": \"melodyc\",/g' ./pkg/package.json" ) .run()?; cmd!( shell, - "sed -i '' 's/\"description\":.*/\"description\": \"NodeJS bindings for the Melody language compiler\",/g' ./pkg/package.json" + "sed -i 's/\"description\":.*/\"description\": \"NodeJS bindings for the Melody language compiler\",/g' ./pkg/package.json" ) .run()?;