From a6e416f13d7463e68c4c016263807549538b5826 Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Fri, 17 Feb 2023 19:20:28 -0700 Subject: [PATCH] compile '$atts' and '$project_atts' modules using loader.pl --- src/loader.pl | 2 +- src/machine/mod.rs | 33 +++++++++++-------------------- src/machine/project_attributes.pl | 5 ----- 3 files changed, 13 insertions(+), 27 deletions(-) diff --git a/src/loader.pl b/src/loader.pl index fe3d6fe2..1faba9e3 100644 --- a/src/loader.pl +++ b/src/loader.pl @@ -620,7 +620,7 @@ strip_module(Goal, M, G) :- strip_subst_module(Goal, M1, M2, G) :- '$strip_module'(Goal, M2, G), - ( var(M2) -> + ( var(M2), \+ functor(Goal, (:), 2) -> M2 = M1 ; true ). diff --git a/src/machine/mod.rs b/src/machine/mod.rs index 480f5a15..cad80661 100644 --- a/src/machine/mod.rs +++ b/src/machine/mod.rs @@ -255,31 +255,22 @@ impl Machine { let mut path_buf = current_dir(); path_buf.push("machine/attributed_variables.pl"); - bootstrapping_compile( - Stream::from_static_string( - include_str!("attributed_variables.pl"), - &mut self.machine_st.arena, - ), - self, - ListingSource::from_file_and_path( - atom!("attributed_variables"), - path_buf, - ), - ) - .unwrap(); + let stream = Stream::from_static_string( + include_str!("attributed_variables.pl"), + &mut self.machine_st.arena, + ); + + self.load_file(path_buf.to_str().unwrap(), stream); let mut path_buf = current_dir(); path_buf.push("machine/project_attributes.pl"); - bootstrapping_compile( - Stream::from_static_string( - include_str!("project_attributes.pl"), - &mut self.machine_st.arena, - ), - self, - ListingSource::from_file_and_path(atom!("project_attributes"), path_buf), - ) - .unwrap(); + let stream = Stream::from_static_string( + include_str!("project_attributes.pl"), + &mut self.machine_st.arena, + ); + + self.load_file(path_buf.to_str().unwrap(), stream); if let Some(module) = self.indices.modules.get(&atom!("$atts")) { if let Some(code_index) = module.code_dir.get(&(atom!("driver"), 2)) { diff --git a/src/machine/project_attributes.pl b/src/machine/project_attributes.pl index b2f75007..66d6adb5 100644 --- a/src/machine/project_attributes.pl +++ b/src/machine/project_attributes.pl @@ -25,11 +25,6 @@ call_project_attributes([Module|Modules], QueryVars, AttrVars) :- ), call_project_attributes(Modules, QueryVars, AttrVars). -call_attribute_goals([], _, _). -call_attribute_goals([Module|Modules], GoalCaller, AttrVars) :- - call(GoalCaller, AttrVars, Module, Goals), - call_attribute_goals(Modules, GoalCaller, AttrVars). - '$print_attribute_goals_exception'(Module, E) :- ( E = error(evaluation_error((Module:attribute_goals)/3), attribute_goals/3) ; E = error(existence_error(procedure, attribute_goals/3), attribute_goals/3) -- 2.54.0