]> Repositorios git - scryer-prolog.git/commitdiff
call project_attributes from top-level (#846)
authorMark Thom <[email protected]>
Thu, 4 Mar 2021 23:05:01 +0000 (16:05 -0700)
committerMark Thom <[email protected]>
Thu, 4 Mar 2021 23:05:06 +0000 (16:05 -0700)
src/machine/attributed_variables.rs
src/machine/machine_state_impl.rs
src/machine/mod.rs
src/machine/project_attributes.pl
src/toplevel.pl

index aee385f093f01735db8e75fc533ba360062d4d44..cbb7f8cefe3a5cbb4de2780232ee1d3bf1a362eb 100644 (file)
@@ -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,
         }
     }
 
index b1d8dde7c3c300f35ae1cd9add52046fadd0d412..ca80d23e8bb53d1e52e64fb01fafadb94ee6f766 100644 (file)
@@ -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,
index 3deee1bb5972791494e2e1b47f549cda18a8dff2..ad95a9001d9abcbbfcf05534f26f0ebb2286a635 100644 (file)
@@ -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) {
index cee4f1ce56cf794ed4d32d03b6231f059e58dd69..15fe148deeac9b80e19d963605436d4879336481 100644 (file)
@@ -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),
index 5c3063cbb16b1c95ad5a8f6184dc043965c4acd1..c3fe190dab77a158d88d014585c98489624c1d9e 100644 (file)
@@ -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),