From 1b9db035ba4c856f985dec5adfd001c139dec662 Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Thu, 4 Mar 2021 16:05:01 -0700 Subject: [PATCH] call project_attributes from top-level (#846) --- src/machine/attributed_variables.rs | 4 +--- src/machine/machine_state_impl.rs | 2 +- src/machine/mod.rs | 6 ------ src/machine/project_attributes.pl | 6 ++---- src/toplevel.pl | 1 + 5 files changed, 5 insertions(+), 14 deletions(-) diff --git a/src/machine/attributed_variables.rs b/src/machine/attributed_variables.rs index aee385f0..cbb7f8ce 100644 --- a/src/machine/attributed_variables.rs +++ b/src/machine/attributed_variables.rs @@ -17,11 +17,10 @@ pub(super) struct AttrVarInitializer { pub(super) cp: LocalCodePtr, pub(super) instigating_p: LocalCodePtr, pub(super) verify_attrs_loc: usize, - pub(super) project_attrs_loc: usize, } impl AttrVarInitializer { - pub(super) fn new(verify_attrs_loc: usize, project_attrs_loc: usize) -> Self { + pub(super) fn new(verify_attrs_loc: usize) -> Self { AttrVarInitializer { attribute_goals: vec![], attr_var_queue: vec![], @@ -29,7 +28,6 @@ impl AttrVarInitializer { instigating_p: LocalCodePtr::default(), cp: LocalCodePtr::default(), verify_attrs_loc, - project_attrs_loc, } } diff --git a/src/machine/machine_state_impl.rs b/src/machine/machine_state_impl.rs index b1d8dde7..ca80d23e 100644 --- a/src/machine/machine_state_impl.rs +++ b/src/machine/machine_state_impl.rs @@ -38,7 +38,7 @@ impl MachineState { e: 0, num_of_args: 0, cp: LocalCodePtr::default(), - attr_var_init: AttrVarInitializer::new(0, 0), + attr_var_init: AttrVarInitializer::new(0), fail: false, heap: Heap::new(), mode: MachineMode::Write, diff --git a/src/machine/mod.rs b/src/machine/mod.rs index 3deee1bb..ad95a900 100644 --- a/src/machine/mod.rs +++ b/src/machine/mod.rs @@ -200,12 +200,6 @@ impl Machine { self.machine_st.attr_var_init.verify_attrs_loc = code_index.local().unwrap(); } } - - if let Some(module) = self.indices.modules.get(&clause_name!("$project_atts")) { - if let Some(code_index) = module.code_dir.get(&(clause_name!("driver"), 2)) { - self.machine_st.attr_var_init.project_attrs_loc = code_index.local().unwrap(); - } - } } pub fn run_top_level(&mut self) { diff --git a/src/machine/project_attributes.pl b/src/machine/project_attributes.pl index cee4f1ce..15fe148d 100644 --- a/src/machine/project_attributes.pl +++ b/src/machine/project_attributes.pl @@ -1,11 +1,9 @@ :- module('$project_atts', [copy_term/3]). -driver(QueryVars, AttrVars) :- +project_attributes(QueryVars, AttrVars) :- gather_attr_modules(AttrVars, Modules0), sort(Modules0, Modules), - call_project_attributes(Modules, QueryVars, AttrVars), - call_attribute_goals(Modules, '$project_atts':call_query_var_goals, QueryVars), - call_attribute_goals(Modules, '$project_atts':call_attr_var_goals, AttrVars). + call_project_attributes(Modules, QueryVars, AttrVars). enqueue_goals(Goals0) :- nonvar(Goals0), diff --git a/src/toplevel.pl b/src/toplevel.pl index 5c3063cb..c3fe190d 100644 --- a/src/toplevel.pl +++ b/src/toplevel.pl @@ -266,6 +266,7 @@ trailing_period_is_ambiguous(Value) :- write_eqs_and_read_input(B, VarList) :- term_variables(VarList, Vars0), '$term_attributed_variables'(VarList, AttrVars), + '$project_atts':project_attributes(Vars0, AttrVars), copy_term(AttrVars, AttrVars, AttrGoals), term_variables(AttrGoals, AttrGoalVars), append([Vars0, AttrGoalVars, AttrVars], Vars), -- 2.54.0