Skip to content

Commit

Permalink
Merge pull request #625 from gskorokhod/better-rules-api
Browse files Browse the repository at this point in the history
refactor: better resolve_rules API
  • Loading branch information
ozgurakgun authored Feb 3, 2025
2 parents 464f5ad + 9b3451e commit bb4f554
Show file tree
Hide file tree
Showing 93 changed files with 3,926 additions and 5,365 deletions.
2 changes: 1 addition & 1 deletion conjure_oxide/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ pub use conjure_core::model::Model;
pub use conjure_core::parse::{get_example_model, get_example_model_by_path, model_from_json};
pub use conjure_core::rule_engine;
pub use conjure_core::rule_engine::{
get_rule_by_name, get_rule_set_by_name, get_rule_sets, get_rule_sets_for_solver_family,
get_all_rule_sets, get_rule_by_name, get_rule_set_by_name, get_rule_sets_for_solver_family,
get_rules, register_rule, register_rule_set, ApplicationError, ApplicationResult, Reduction,
Rule, RuleSet,
};
Expand Down
23 changes: 9 additions & 14 deletions conjure_oxide/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,8 @@ use serde_json::to_string_pretty;

use conjure_core::context::Context;
use conjure_oxide::find_conjure::conjure_executable;
use conjure_oxide::model_from_json;
use conjure_oxide::rule_engine::{
get_rule_priorities, get_rules_vec, resolve_rule_sets, rewrite_model,
};
use conjure_oxide::rule_engine::{resolve_rule_sets, rewrite_model};
use conjure_oxide::{get_rules, model_from_json};

use conjure_oxide::utils::conjure::{get_minion_solutions, minion_solutions_to_json};
use conjure_oxide::SolverFamily;
Expand Down Expand Up @@ -218,15 +216,12 @@ pub fn main() -> AnyhowResult<()> {
pretty_rule_sets
);

let rule_priorities = get_rule_priorities(&rule_sets)?;
let rules_vec = get_rules_vec(&rule_priorities);

tracing::info!(target: "file",
"Rules and priorities: {}",
rules_vec.iter()
.map(|rule| format!("{}: {}", rule.name, rule_priorities.get(rule).unwrap_or(&0)))
.collect::<Vec<_>>()
.join(", "));
let rules = get_rules(&rule_sets)?.into_iter().collect::<Vec<_>>();
tracing::info!(
target: "file",
"Rules: {}",
rules.iter().map(|rd| format!("{}", rd)).collect::<Vec<_>>().join("\n")
);

tracing::info!(target: "file", "Input file: {}", cli.input_file.display());
let input_file: &str = cli.input_file.to_str().ok_or(anyhow!(
Expand Down Expand Up @@ -257,7 +252,7 @@ pub fn main() -> AnyhowResult<()> {
let context = Context::new_ptr(
target_family,
extra_rule_sets.clone(),
rules_vec.clone(),
rules,
rule_sets.clone(),
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,11 @@
]
},
"rule_name": "introduce_abseq",
"rule_set": [
[
"Minion",
4400
]
],
"transformed _expression": {
"rule_priority": 4400,
"rule_set": {
"name": "Minion"
},
"transformed_expression": {
"FlatAbsEq": [
{
"Literal": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,13 +74,11 @@
]
},
"rule_name": "introduce_weighted_sumleq_sumgeq",
"rule_set": [
[
"Minion",
4600
]
],
"transformed _expression": {
"rule_priority": 4600,
"rule_set": {
"name": "Minion"
},
"transformed_expression": {
"And": [
[
{
Expand Down Expand Up @@ -175,13 +173,11 @@
]
},
"rule_name": "introduce_abseq",
"rule_set": [
[
"Minion",
4400
]
],
"transformed _expression": {
"rule_priority": 4400,
"rule_set": {
"name": "Minion"
},
"transformed_expression": {
"FlatAbsEq": [
{
"Reference": {
Expand Down Expand Up @@ -234,13 +230,11 @@
]
},
"rule_name": "introduce_abseq",
"rule_set": [
[
"Minion",
4400
]
],
"transformed _expression": {
"rule_priority": 4400,
"rule_set": {
"name": "Minion"
},
"transformed_expression": {
"FlatAbsEq": [
{
"Reference": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,11 @@
]
},
"rule_name": "partial_evaluator",
"rule_set": [
[
"Base",
9000
]
],
"transformed _expression": {
"rule_priority": 9000,
"rule_set": {
"name": "Base"
},
"transformed_expression": {
"Abs": [
{
"Atomic": [
Expand Down Expand Up @@ -89,13 +87,11 @@
]
},
"rule_name": "partial_evaluator",
"rule_set": [
[
"Base",
9000
]
],
"transformed _expression": {
"rule_priority": 9000,
"rule_set": {
"name": "Base"
},
"transformed_expression": {
"Abs": [
{
"Atomic": [
Expand Down Expand Up @@ -192,13 +188,11 @@
]
},
"rule_name": "introduce_weighted_sumleq_sumgeq",
"rule_set": [
[
"Minion",
4600
]
],
"transformed _expression": {
"rule_priority": 4600,
"rule_set": {
"name": "Minion"
},
"transformed_expression": {
"And": [
[
{
Expand Down Expand Up @@ -293,13 +287,11 @@
]
},
"rule_name": "introduce_abseq",
"rule_set": [
[
"Minion",
4400
]
],
"transformed _expression": {
"rule_priority": 4400,
"rule_set": {
"name": "Minion"
},
"transformed_expression": {
"FlatAbsEq": [
{
"Reference": {
Expand Down Expand Up @@ -352,13 +344,11 @@
]
},
"rule_name": "introduce_abseq",
"rule_set": [
[
"Minion",
4400
]
],
"transformed _expression": {
"rule_priority": 4400,
"rule_set": {
"name": "Minion"
},
"transformed_expression": {
"FlatAbsEq": [
{
"Reference": {
Expand Down
Loading

0 comments on commit bb4f554

Please sign in to comment.