From 6d687a383939787d7311ef9d9a471cb26f835625 Mon Sep 17 00:00:00 2001 From: Stefan Ellmauthaler <71695780+ellmau@users.noreply.github.com> Date: Tue, 4 Oct 2022 16:47:46 +0200 Subject: [PATCH] Dependabot/bump (#113) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Bump clap from 3.2.20 to 4.0.7 Bumps [clap](https://github.com/clap-rs/clap) from 3.2.20 to 4.0.7. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v3.2.20...v4.0.7) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump serde from 1.0.144 to 1.0.145 Bumps [serde](https://github.com/serde-rs/serde) from 1.0.144 to 1.0.145. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.144...v1.0.145) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Bump env_logger from 0.9.0 to 0.9.1 Bumps [env_logger](https://github.com/env-logger-rs/env_logger) from 0.9.0 to 0.9.1. - [Release notes](https://github.com/env-logger-rs/env_logger/releases) - [Changelog](https://github.com/env-logger-rs/env_logger/blob/main/CHANGELOG.md) - [Commits](https://github.com/env-logger-rs/env_logger/compare/v0.9.0...v0.9.1) --- updated-dependencies: - dependency-name: env_logger dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Bump roaring from 0.9.0 to 0.10.1 Bumps [roaring](https://github.com/RoaringBitmap/roaring-rs) from 0.9.0 to 0.10.1. - [Release notes](https://github.com/RoaringBitmap/roaring-rs/releases) - [Commits](https://github.com/RoaringBitmap/roaring-rs/compare/v0.9.0...v0.10.1) --- updated-dependencies: - dependency-name: roaring dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * flake.lock: Update Flake lock file updates: • Updated input 'flake-utils': 'github:numtide/flake-utils/7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249' (2022-07-04) → 'github:numtide/flake-utils/c0e246b9b83f637f4681389ecabcb2681b4f3af0' (2022-08-07) • Updated input 'gitignoresrc': 'github:hercules-ci/gitignore.nix/f2ea0f8ff1bce948ccb6b893d15d5ea3efaf1364' (2022-07-21) → 'github:hercules-ci/gitignore.nix/a20de23b925fd8264fd7fad6454652e142fd7f73' (2022-08-14) • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/e43cf1748462c81202a32b26294e9f8eefcc3462' (2022-08-01) → 'github:NixOS/nixpkgs/81a3237b64e67b66901c735654017e75f0c50943' (2022-10-03) • Updated input 'nixpkgs-unstable': 'github:NixOS/nixpkgs/7b9be38c7250b22d829ab6effdee90d5e40c6e5c' (2022-07-30) → 'github:NixOS/nixpkgs/fd54651f5ffb4a36e8463e0c327a78442b26cbe7' (2022-10-03) • Updated input 'rust-overlay': 'github:oxalica/rust-overlay/9055cb4f33f062c0dd33aa7e3c89140da8f70057' (2022-08-02) → 'github:oxalica/rust-overlay/148815c92641976b798efb2805a50991de4bac7f' (2022-10-04) * Update code to use clap version 4 and use then_some(..) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 72 +++++++++++++++------------------------ bin/Cargo.toml | 2 +- bin/src/main.rs | 44 ++++++++++++------------ bin/tests/cli.rs | 6 ++-- flake.lock | 30 ++++++++-------- lib/Cargo.toml | 2 +- lib/src/adf/heuristics.rs | 2 +- lib/src/datatypes/adf.rs | 4 +-- 8 files changed, 72 insertions(+), 90 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6ef44f4..d380517 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11,7 +11,7 @@ dependencies = [ "assert_fs", "clap", "crossbeam-channel", - "env_logger 0.9.0", + "env_logger 0.9.1", "log", "predicates", "serde", @@ -26,7 +26,7 @@ dependencies = [ "biodivine-lib-bdd", "crossbeam-channel", "derivative", - "env_logger 0.9.0", + "env_logger 0.9.1", "lexical-sort", "log", "nom", @@ -148,26 +148,24 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "3.2.20" +version = "4.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b71c3ce99b7611011217b366d923f1d0a7e07a92bb2dbf1e84508c673ca3bd" +checksum = "0a1af219c3e254a8b4649d6ddaef886b2015089f35f2ac5e1db31410c0566ab8" dependencies = [ "atty", "bitflags", "clap_derive", "clap_lex", - "indexmap", "once_cell", "strsim", "termcolor", - "textwrap", ] [[package]] name = "clap_derive" -version = "3.2.18" +version = "4.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65" +checksum = "cd114ae53ce5a0670f43d2f169c1cd26c69b4896b0c121900cf1e4d06d67316c" dependencies = [ "heck", "proc-macro-error", @@ -178,9 +176,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.2.4" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8" dependencies = [ "os_str_bytes", ] @@ -246,9 +244,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" +checksum = "c90bf5f19754d10198ccb95b70664fc925bd1fc090a0fd9a6ebc54acc8cd6272" dependencies = [ "atty", "humantime", @@ -336,12 +334,6 @@ dependencies = [ "walkdir", ] -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" - [[package]] name = "heck" version = "0.4.0" @@ -381,16 +373,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "indexmap" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223" -dependencies = [ - "autocfg", - "hashbrown", -] - [[package]] name = "instant" version = "0.1.12" @@ -577,11 +559,11 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.36" +version = "1.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" +checksum = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b" dependencies = [ - "unicode-xid", + "unicode-ident", ] [[package]] @@ -729,15 +711,15 @@ dependencies = [ [[package]] name = "retain_mut" -version = "0.1.9" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4389f1d5789befaf6029ebd9f7dac4af7f7e3d61b69d4f30e2ac02b57e7712b0" +checksum = "8c31b5c4033f8fdde8700e4657be2c497e7288f01515be52168c631e2e4d4086" [[package]] name = "roaring" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd539cab4e32019956fe7e0cf160bb6d4802f4be2b52c4253d76d3bb0f85a5f7" +checksum = "ef0fb5e826a8bde011ecae6a8539dd333884335c57ff0f003fbe27c25bbe8f71" dependencies = [ "bytemuck", "byteorder", @@ -767,18 +749,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.144" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860" +checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.144" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00" +checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c" dependencies = [ "proc-macro2", "quote", @@ -875,12 +857,6 @@ dependencies = [ "syn", ] -[[package]] -name = "textwrap" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" - [[package]] name = "thread_local" version = "1.1.4" @@ -890,6 +866,12 @@ dependencies = [ "once_cell", ] +[[package]] +name = "unicode-ident" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd" + [[package]] name = "unicode-xid" version = "0.2.2" diff --git a/bin/Cargo.toml b/bin/Cargo.toml index 8d6c27f..337b452 100644 --- a/bin/Cargo.toml +++ b/bin/Cargo.toml @@ -17,7 +17,7 @@ path = "src/main.rs" [dependencies] adf_bdd = { version="0.3.1", path="../lib", default-features = false } -clap = {version = "3.2.20", features = [ "derive", "cargo", "env" ]} +clap = {version = "4.0.7", features = [ "derive", "cargo", "env" ]} log = { version = "0.4", features = [ "max_level_trace", "release_max_level_info" ] } serde = { version = "1.0", features = ["derive","rc"] } serde_json = "1.0" diff --git a/bin/src/main.rs b/bin/src/main.rs index 0b1e7c3..c920e45 100644 --- a/bin/src/main.rs +++ b/bin/src/main.rs @@ -87,70 +87,70 @@ use crossbeam_channel::unbounded; use strum::VariantNames; #[derive(Parser, Debug)] -#[clap(author, version, about)] +#[command(author, version, about)] struct App { /// Input filename - #[clap(parse(from_os_str))] + #[arg(value_parser)] input: PathBuf, /// Sets the verbosity to 'warn', 'info', 'debug' or 'trace' if -v and -q are not use - #[clap(long = "rust_log", env)] + #[arg(long = "rust_log", env)] rust_log: Option, /// Choose the bdd implementation of either 'biodivine', 'naive', or hybrid - #[clap(long = "lib", default_value = "hybrid")] + #[arg(long = "lib", default_value = "hybrid")] implementation: String, /// Sets log verbosity (multiple times means more verbose) - #[clap(short, parse(from_occurrences), group = "verbosity")] + #[arg(short, action = clap::builder::ArgAction::Count, group = "verbosity")] verbose: u8, /// Sets log verbosity to only errors - #[clap(short, group = "verbosity")] + #[arg(short, group = "verbosity")] quiet: bool, /// Sorts variables in an lexicographic manner - #[clap(long = "lx", group = "sorting")] + #[arg(long = "lx", group = "sorting")] sort_lex: bool, /// Sorts variables in an alphanumeric manner - #[clap(long = "an", group = "sorting")] + #[arg(long = "an", group = "sorting")] sort_alphan: bool, /// Compute the grounded model - #[clap(long = "grd")] + #[arg(long = "grd")] grounded: bool, /// Compute the stable models - #[clap(long = "stm")] + #[arg(long = "stm")] stable: bool, /// Compute the stable models with the help of modelcounting using heuristics a - #[clap(long = "stmca")] + #[arg(long = "stmca")] stable_counting_a: bool, /// Compute the stable models with the help of modelcounting using heuristics b - #[clap(long = "stmcb")] + #[arg(long = "stmcb")] stable_counting_b: bool, /// Compute the stable models with a pre-filter (only hybrid lib-mode) - #[clap(long = "stmpre")] + #[arg(long = "stmpre")] stable_pre: bool, /// Compute the stable models with a single-formula rewriting (only hybrid lib-mode) - #[clap(long = "stmrew")] + #[arg(long = "stmrew")] stable_rew: bool, /// Compute the stable models with a single-formula rewriting on internal representation(only hybrid lib-mode) - #[clap(long = "stmrew2")] + #[arg(long = "stmrew2")] stable_rew2: bool, /// Compute the stable models with the nogood-learning based approach - #[clap(long = "stmng")] + #[arg(long = "stmng")] stable_ng: bool, /// Choose which heuristics shall be used by the nogood-learning approach - #[clap(long, possible_values = adf_bdd::adf::heuristics::Heuristic::VARIANTS.iter().filter(|&v| v != &"Custom"))] + #[arg(long, value_parser = clap::builder::PossibleValuesParser::new(adf_bdd::adf::heuristics::Heuristic::VARIANTS.iter().filter(|&v| v != &"Custom").collect::>()))] heu: Option>, /// Compute the two valued models with the nogood-learning based approach - #[clap(long = "twoval")] + #[arg(long = "twoval")] two_val: bool, /// Compute the complete models - #[clap(long = "com")] + #[arg(long = "com")] complete: bool, /// Import an adf- bdd state instead of an adf - #[clap(long)] + #[arg(long)] import: bool, /// Export the adf-bdd state after parsing and BDD instantiation to the given filename - #[clap(long)] + #[arg(long)] export: Option, /// Set if the (counter-)models shall be computed and printed, possible values are 'nai' and 'mem' for naive and memoization repectively (only works in hybrid and naive mode) - #[clap(long)] + #[arg(long)] counter: Option, } diff --git a/bin/tests/cli.rs b/bin/tests/cli.rs index 0dbf211..82e85f7 100644 --- a/bin/tests/cli.rs +++ b/bin/tests/cli.rs @@ -19,9 +19,9 @@ fn arguments() -> Result<(), Box> { cmd = Command::cargo_bin("adf-bdd")?; cmd.arg("-h"); - cmd.assert().success().stdout(predicate::str::contains( - "stefan.ellmauthaler@tu-dresden.de", - )); + cmd.assert() + .success() + .stdout(predicate::str::contains("adf-bdd [OPTIONS] ")); cmd = Command::cargo_bin("adf-bdd")?; cmd.arg("--version"); diff --git a/flake.lock b/flake.lock index 4159f04..18d600a 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "flake-utils": { "locked": { - "lastModified": 1656928814, - "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", "owner": "numtide", "repo": "flake-utils", - "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", "type": "github" }, "original": { @@ -18,11 +18,11 @@ "gitignoresrc": { "flake": false, "locked": { - "lastModified": 1658402513, - "narHash": "sha256-wk38v/mbLsOo6+IDmmH1H0ADR87iq9QTTD1BP9X2Ags=", + "lastModified": 1660459072, + "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", "owner": "hercules-ci", "repo": "gitignore.nix", - "rev": "f2ea0f8ff1bce948ccb6b893d15d5ea3efaf1364", + "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", "type": "github" }, "original": { @@ -33,11 +33,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1659342832, - "narHash": "sha256-ePnxG4hacRd6oZMk+YeCSYMNUnHCe+qPLI0/+VaTu48=", + "lastModified": 1664790708, + "narHash": "sha256-fzxmpOPjzOVIt9KeDN4EDPI13xJn+u0uMxheKCWken8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e43cf1748462c81202a32b26294e9f8eefcc3462", + "rev": "81a3237b64e67b66901c735654017e75f0c50943", "type": "github" }, "original": { @@ -49,11 +49,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1659219666, - "narHash": "sha256-pzYr5fokQPHv7CmUXioOhhzDy/XyWOIXP4LZvv/T7Mk=", + "lastModified": 1664780719, + "narHash": "sha256-Oxe6la5dSqRfJogjtY4sRzJjDDqvroJIVkcGEOT87MA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7b9be38c7250b22d829ab6effdee90d5e40c6e5c", + "rev": "fd54651f5ffb4a36e8463e0c327a78442b26cbe7", "type": "github" }, "original": { @@ -82,11 +82,11 @@ ] }, "locked": { - "lastModified": 1659409092, - "narHash": "sha256-OBY2RCYZeeOA3FTYUb86BPMUBEyKEwpwhpU2QKboRJQ=", + "lastModified": 1664851876, + "narHash": "sha256-v0DBElK+PmU3ID9/uHwtCNHp6uGuWmxj6/elpq4Cqas=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "9055cb4f33f062c0dd33aa7e3c89140da8f70057", + "rev": "148815c92641976b798efb2805a50991de4bac7f", "type": "github" }, "original": { diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 0eccff8..b43e469 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -30,7 +30,7 @@ serde = { version = "1.0", features = ["derive","rc"] } serde_json = "1.0" biodivine-lib-bdd = "0.4.0" derivative = "2.2.0" -roaring = "0.9.0" +roaring = "0.10.1" strum = { version = "0.24", features = ["derive"] } crossbeam-channel = "0.5" rand = {version = "0.8.5", features = ["std_rng"]} diff --git a/lib/src/adf/heuristics.rs b/lib/src/adf/heuristics.rs index 5b43ba5..1fa7fa0 100644 --- a/lib/src/adf/heuristics.rs +++ b/lib/src/adf/heuristics.rs @@ -11,7 +11,7 @@ use strum::{EnumString, EnumVariantNames}; /// Return value for heuristics. pub type RetVal = Option<(Var, Term)>; /// Signature for heuristics functions. -pub type HeuristicFn = dyn Fn(&Adf, &[Term]) -> RetVal; +pub type HeuristicFn = dyn Fn(&Adf, &[Term]) -> RetVal + Sync; pub(crate) fn heu_simple(_adf: &Adf, interpr: &[Term]) -> Option<(Var, Term)> { for (idx, term) in interpr.iter().enumerate() { diff --git a/lib/src/datatypes/adf.rs b/lib/src/datatypes/adf.rs index 555fb43..659e83f 100644 --- a/lib/src/datatypes/adf.rs +++ b/lib/src/datatypes/adf.rs @@ -148,7 +148,7 @@ impl TwoValuedInterpretationsIterator { let indexes = term .iter() .enumerate() - .filter_map(|(idx, &v)| (!v.is_truth_value()).then(|| idx)) + .filter_map(|(idx, &v)| (!v.is_truth_value()).then_some(idx)) .rev() .collect::>(); let current = term @@ -212,7 +212,7 @@ impl ThreeValuedInterpretationsIterator { let indexes = term .iter() .enumerate() - .filter_map(|(idx, &v)| (!v.is_truth_value()).then(|| idx)) + .filter_map(|(idx, &v)| (!v.is_truth_value()).then_some(idx)) .rev() .collect::>(); let current = vec![2; indexes.len()];