run cargo fmt
This commit is contained in:
@@ -63,21 +63,27 @@ fn add_op_decl_as_module_export<'a, LS: LoadState<'a>>(
|
||||
|
||||
match op_decl.insert_into_op_dir(wam_op_dir) {
|
||||
Some(op_desc) => {
|
||||
payload.retraction_info.push_record(RetractionRecord::ReplacedUserOp(
|
||||
*op_decl,
|
||||
op_desc,
|
||||
));
|
||||
payload
|
||||
.retraction_info
|
||||
.push_record(RetractionRecord::ReplacedUserOp(*op_decl, op_desc));
|
||||
|
||||
payload.module_op_exports.push((*op_decl, Some(op_desc)));
|
||||
}
|
||||
None => {
|
||||
payload.retraction_info.push_record(RetractionRecord::AddedUserOp(*op_decl));
|
||||
payload
|
||||
.retraction_info
|
||||
.push_record(RetractionRecord::AddedUserOp(*op_decl));
|
||||
payload.module_op_exports.push((*op_decl, None));
|
||||
}
|
||||
}
|
||||
|
||||
let compilation_target = payload.compilation_target;
|
||||
add_op_decl(&mut payload.retraction_info, &compilation_target, module_op_dir, op_decl);
|
||||
add_op_decl(
|
||||
&mut payload.retraction_info,
|
||||
&compilation_target,
|
||||
module_op_dir,
|
||||
op_decl,
|
||||
);
|
||||
}
|
||||
|
||||
pub(super) fn add_op_decl(
|
||||
@@ -89,10 +95,7 @@ pub(super) fn add_op_decl(
|
||||
match op_decl.insert_into_op_dir(op_dir) {
|
||||
Some(op_desc) => match &compilation_target {
|
||||
CompilationTarget::User => {
|
||||
retraction_info.push_record(RetractionRecord::ReplacedUserOp(
|
||||
*op_decl,
|
||||
op_desc,
|
||||
));
|
||||
retraction_info.push_record(RetractionRecord::ReplacedUserOp(*op_decl, op_desc));
|
||||
}
|
||||
CompilationTarget::Module(ref module_name) => {
|
||||
retraction_info.push_record(RetractionRecord::ReplacedModuleOp(
|
||||
@@ -107,10 +110,8 @@ pub(super) fn add_op_decl(
|
||||
retraction_info.push_record(RetractionRecord::AddedUserOp(*op_decl));
|
||||
}
|
||||
CompilationTarget::Module(ref module_name) => {
|
||||
retraction_info.push_record(RetractionRecord::AddedModuleOp(
|
||||
*module_name,
|
||||
*op_decl,
|
||||
));
|
||||
retraction_info
|
||||
.push_record(RetractionRecord::AddedModuleOp(*module_name, *op_decl));
|
||||
}
|
||||
},
|
||||
}
|
||||
@@ -160,7 +161,12 @@ pub(super) fn import_module_exports<'a, LS: LoadState<'a>>(
|
||||
}
|
||||
}
|
||||
ModuleExport::OpDecl(ref op_decl) => {
|
||||
add_op_decl(&mut payload.retraction_info, compilation_target, op_dir, op_decl);
|
||||
add_op_decl(
|
||||
&mut payload.retraction_info,
|
||||
compilation_target,
|
||||
op_dir,
|
||||
op_decl,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -209,12 +215,7 @@ fn import_module_exports_into_module<'a, LS: LoadState<'a>>(
|
||||
}
|
||||
}
|
||||
ModuleExport::OpDecl(ref op_decl) => {
|
||||
add_op_decl_as_module_export::<LS>(
|
||||
payload,
|
||||
op_dir,
|
||||
wam_op_dir,
|
||||
op_decl,
|
||||
);
|
||||
add_op_decl_as_module_export::<LS>(payload, op_dir, wam_op_dir, op_decl);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -239,13 +240,18 @@ fn import_qualified_module_exports<'a, LS: LoadState<'a>>(
|
||||
let key = (*name, *arity);
|
||||
|
||||
if let Some(meta_specs) = imported_module.meta_predicates.get(&key) {
|
||||
wam_prelude.indices.meta_predicates.insert(key.clone(), meta_specs.clone());
|
||||
wam_prelude
|
||||
.indices
|
||||
.meta_predicates
|
||||
.insert(key.clone(), meta_specs.clone());
|
||||
}
|
||||
|
||||
if let Some(src_code_index) = imported_module.code_dir.get(&key) {
|
||||
let arena = &mut LS::machine_st(payload).arena;
|
||||
|
||||
let target_code_index = wam_prelude.indices.code_dir
|
||||
let target_code_index = wam_prelude
|
||||
.indices
|
||||
.code_dir
|
||||
.entry(key.clone())
|
||||
.or_insert_with(|| CodeIndex::new(IndexPtr::undefined(), arena))
|
||||
.clone();
|
||||
@@ -325,12 +331,7 @@ fn import_qualified_module_exports_into_module<'a, LS: LoadState<'a>>(
|
||||
}
|
||||
}
|
||||
ModuleExport::OpDecl(ref op_decl) => {
|
||||
add_op_decl_as_module_export::<LS>(
|
||||
payload,
|
||||
op_dir,
|
||||
wam_op_dir,
|
||||
op_decl,
|
||||
);
|
||||
add_op_decl_as_module_export::<LS>(payload, op_dir, wam_op_dir, op_decl);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -378,10 +379,8 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
mut clause_target_poses: Vec<Option<usize>>,
|
||||
is_dynamic: bool,
|
||||
) {
|
||||
let old_compilation_target = mem::replace(
|
||||
&mut self.payload.compilation_target,
|
||||
compilation_target,
|
||||
);
|
||||
let old_compilation_target =
|
||||
mem::replace(&mut self.payload.compilation_target, compilation_target);
|
||||
|
||||
while let Some(target_pos_opt) = clause_target_poses.pop() {
|
||||
match target_pos_opt {
|
||||
@@ -482,7 +481,8 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
|
||||
let old_index_ptr = code_index.replace(IndexPtr::undefined());
|
||||
|
||||
self.payload.retraction_info
|
||||
self.payload
|
||||
.retraction_info
|
||||
.push_record(RetractionRecord::ReplacedModulePredicate(
|
||||
module_name,
|
||||
*key,
|
||||
@@ -491,7 +491,8 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
}
|
||||
|
||||
for (key, skeleton) in removed_module.extensible_predicates.drain(..) {
|
||||
self.payload.retraction_info
|
||||
self.payload
|
||||
.retraction_info
|
||||
.push_record(RetractionRecord::RemovedSkeleton(
|
||||
CompilationTarget::Module(module_name),
|
||||
key,
|
||||
@@ -499,7 +500,10 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
));
|
||||
}
|
||||
|
||||
self.wam_prelude.indices.modules.insert(module_name, removed_module);
|
||||
self.wam_prelude
|
||||
.indices
|
||||
.modules
|
||||
.insert(module_name, removed_module);
|
||||
}
|
||||
|
||||
pub(super) fn remove_module_exports(&mut self, module_name: Atom) {
|
||||
@@ -523,15 +527,17 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
(Some(module_code_index), Some(target_code_index))
|
||||
if module_code_index.get() == target_code_index.get() =>
|
||||
{
|
||||
let old_index_ptr = target_code_index.replace(IndexPtr::undefined());
|
||||
retraction_info.push_record(predicate_retractor(*key, old_index_ptr));
|
||||
let old_index_ptr =
|
||||
target_code_index.replace(IndexPtr::undefined());
|
||||
retraction_info
|
||||
.push_record(predicate_retractor(*key, old_index_ptr));
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
ModuleExport::OpDecl(op_decl) => {
|
||||
let op_dir_value_opt =
|
||||
op_dir.remove(&(op_decl.name, fixity(op_decl.op_desc.get_spec() as u32)));
|
||||
let op_dir_value_opt = op_dir
|
||||
.remove(&(op_decl.name, fixity(op_decl.op_desc.get_spec() as u32)));
|
||||
|
||||
if let Some(op_desc) = op_dir_value_opt {
|
||||
retraction_info.push_record(op_retractor(*op_decl, op_desc));
|
||||
@@ -552,9 +558,7 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
RetractionRecord::ReplacedUserOp,
|
||||
);
|
||||
}
|
||||
CompilationTarget::Module(target_module_name)
|
||||
if target_module_name != module_name =>
|
||||
{
|
||||
CompilationTarget::Module(target_module_name) if target_module_name != module_name => {
|
||||
let predicate_retractor = |key, index_ptr| {
|
||||
RetractionRecord::ReplacedModulePredicate(module_name, key, index_ptr)
|
||||
};
|
||||
@@ -563,7 +567,12 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
RetractionRecord::ReplacedModuleOp(module_name, op_decl, op_desc)
|
||||
};
|
||||
|
||||
if let Some(module) = self.wam_prelude.indices.modules.get_mut(&target_module_name) {
|
||||
if let Some(module) = self
|
||||
.wam_prelude
|
||||
.indices
|
||||
.modules
|
||||
.get_mut(&target_module_name)
|
||||
{
|
||||
remove_module_exports(
|
||||
&removed_module,
|
||||
&mut module.code_dir,
|
||||
@@ -579,7 +588,10 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
CompilationTarget::Module(_) => {}
|
||||
};
|
||||
|
||||
self.wam_prelude.indices.modules.insert(module_name, removed_module);
|
||||
self.wam_prelude
|
||||
.indices
|
||||
.modules
|
||||
.insert(module_name, removed_module);
|
||||
}
|
||||
|
||||
fn get_or_insert_local_code_index(
|
||||
@@ -591,10 +603,12 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
Some(ref mut module) => module
|
||||
.code_dir
|
||||
.entry(key)
|
||||
.or_insert_with(|| CodeIndex::new(
|
||||
IndexPtr::undefined(),
|
||||
&mut LS::machine_st(&mut self.payload).arena,
|
||||
))
|
||||
.or_insert_with(|| {
|
||||
CodeIndex::new(
|
||||
IndexPtr::undefined(),
|
||||
&mut LS::machine_st(&mut self.payload).arena,
|
||||
)
|
||||
})
|
||||
.clone(),
|
||||
None => {
|
||||
self.add_dynamically_generated_module(module_name);
|
||||
@@ -603,10 +617,12 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
Some(ref mut module) => module
|
||||
.code_dir
|
||||
.entry(key)
|
||||
.or_insert_with(|| CodeIndex::new(
|
||||
IndexPtr::undefined(),
|
||||
&mut LS::machine_st(&mut self.payload).arena,
|
||||
))
|
||||
.or_insert_with(|| {
|
||||
CodeIndex::new(
|
||||
IndexPtr::undefined(),
|
||||
&mut LS::machine_st(&mut self.payload).arena,
|
||||
)
|
||||
})
|
||||
.clone(),
|
||||
None => {
|
||||
unreachable!()
|
||||
@@ -771,10 +787,7 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
ClauseType::Named(arity, name, _) => {
|
||||
let payload_compilation_target = self.payload.compilation_target;
|
||||
|
||||
let idx = self.get_or_insert_code_index(
|
||||
(name, arity),
|
||||
payload_compilation_target,
|
||||
);
|
||||
let idx = self.get_or_insert_code_index((name, arity), payload_compilation_target);
|
||||
|
||||
ClauseType::Named(arity, name, idx)
|
||||
}
|
||||
@@ -802,13 +815,11 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
}
|
||||
|
||||
pub(super) fn get_meta_specs(&self, name: Atom, arity: usize) -> Option<&Vec<MetaSpec>> {
|
||||
self.wam_prelude
|
||||
.indices
|
||||
.get_meta_predicate_spec(
|
||||
name,
|
||||
arity,
|
||||
&self.payload.compilation_target,
|
||||
)
|
||||
self.wam_prelude.indices.get_meta_predicate_spec(
|
||||
name,
|
||||
arity,
|
||||
&self.payload.compilation_target,
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn add_meta_predicate_record(
|
||||
@@ -829,19 +840,18 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
.insert(key, meta_specs)
|
||||
{
|
||||
Some(old_meta_specs) => {
|
||||
self.payload.retraction_info
|
||||
.push_record(RetractionRecord::ReplacedMetaPredicate(
|
||||
self.payload.retraction_info.push_record(
|
||||
RetractionRecord::ReplacedMetaPredicate(
|
||||
module_name,
|
||||
key.0,
|
||||
old_meta_specs,
|
||||
));
|
||||
),
|
||||
);
|
||||
}
|
||||
None => {
|
||||
self.payload.retraction_info
|
||||
.push_record(RetractionRecord::AddedMetaPredicate(
|
||||
module_name,
|
||||
key,
|
||||
));
|
||||
self.payload
|
||||
.retraction_info
|
||||
.push_record(RetractionRecord::AddedMetaPredicate(module_name, key));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -868,17 +878,16 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
None => {
|
||||
self.add_dynamically_generated_module(module_name);
|
||||
|
||||
if let Some(module) = self.wam_prelude.indices.modules.get_mut(&module_name) {
|
||||
if let Some(module) = self.wam_prelude.indices.modules.get_mut(&module_name)
|
||||
{
|
||||
module.meta_predicates.insert(key.clone(), meta_specs);
|
||||
} else {
|
||||
unreachable!()
|
||||
}
|
||||
|
||||
self.payload.retraction_info
|
||||
.push_record(RetractionRecord::AddedMetaPredicate(
|
||||
module_name.clone(),
|
||||
key,
|
||||
));
|
||||
self.payload.retraction_info.push_record(
|
||||
RetractionRecord::AddedMetaPredicate(module_name.clone(), key),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -901,10 +910,14 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
&mut module.meta_predicates,
|
||||
);
|
||||
|
||||
self.payload.retraction_info
|
||||
self.payload
|
||||
.retraction_info
|
||||
.push_record(RetractionRecord::AddedModule(module_name.clone()));
|
||||
|
||||
self.wam_prelude.indices.modules.insert(module_name.clone(), module);
|
||||
self.wam_prelude
|
||||
.indices
|
||||
.modules
|
||||
.insert(module_name.clone(), module);
|
||||
}
|
||||
|
||||
fn import_builtins_in_module(
|
||||
@@ -968,9 +981,7 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
|
||||
if is_dynamic {
|
||||
let clause_clause_compilation_target = match compilation_target {
|
||||
CompilationTarget::User => {
|
||||
CompilationTarget::Module(atom!("builtins"))
|
||||
}
|
||||
CompilationTarget::User => CompilationTarget::Module(atom!("builtins")),
|
||||
module => module.clone(),
|
||||
};
|
||||
|
||||
@@ -981,7 +992,8 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
}
|
||||
}
|
||||
|
||||
self.payload.retraction_info
|
||||
self.payload
|
||||
.retraction_info
|
||||
.push_record(RetractionRecord::ReplacedModule(
|
||||
old_module_decl,
|
||||
listing_src.clone(),
|
||||
@@ -1051,7 +1063,12 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
)?;
|
||||
}
|
||||
CompilationTarget::Module(ref defining_module_name) => {
|
||||
match self.wam_prelude.indices.modules.get_mut(defining_module_name) {
|
||||
match self
|
||||
.wam_prelude
|
||||
.indices
|
||||
.modules
|
||||
.get_mut(defining_module_name)
|
||||
{
|
||||
Some(ref mut target_module) => {
|
||||
import_module_exports_into_module::<LS>(
|
||||
&mut self.payload,
|
||||
@@ -1091,17 +1108,20 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
let payload_compilation_target = self.payload.compilation_target;
|
||||
|
||||
let result = match &payload_compilation_target {
|
||||
CompilationTarget::User => {
|
||||
import_qualified_module_exports::<LS>(
|
||||
&mut self.payload,
|
||||
&payload_compilation_target,
|
||||
&module,
|
||||
&exports,
|
||||
&mut self.wam_prelude,
|
||||
)
|
||||
}
|
||||
CompilationTarget::User => import_qualified_module_exports::<LS>(
|
||||
&mut self.payload,
|
||||
&payload_compilation_target,
|
||||
&module,
|
||||
&exports,
|
||||
&mut self.wam_prelude,
|
||||
),
|
||||
CompilationTarget::Module(ref defining_module_name) => {
|
||||
match self.wam_prelude.indices.modules.get_mut(defining_module_name) {
|
||||
match self
|
||||
.wam_prelude
|
||||
.indices
|
||||
.modules
|
||||
.get_mut(defining_module_name)
|
||||
{
|
||||
Some(ref mut target_module) => {
|
||||
import_qualified_module_exports_into_module::<LS>(
|
||||
&mut self.payload,
|
||||
@@ -1113,9 +1133,7 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
&mut self.wam_prelude.indices.op_dir,
|
||||
)
|
||||
}
|
||||
None => {
|
||||
Err(SessionError::ModuleCannotImportSelf(module_name))
|
||||
}
|
||||
None => Err(SessionError::ModuleCannotImportSelf(module_name)),
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -1123,7 +1141,9 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
self.wam_prelude.indices.modules.insert(module_name, module);
|
||||
result
|
||||
} else {
|
||||
Err(SessionError::ExistenceError(ExistenceError::Module(module_name)))
|
||||
Err(SessionError::ExistenceError(ExistenceError::Module(
|
||||
module_name,
|
||||
)))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1136,7 +1156,11 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
let file = File::open(&path_buf)?;
|
||||
|
||||
(
|
||||
Stream::from_file_as_input(filename, file, &mut LS::machine_st(&mut self.payload).arena),
|
||||
Stream::from_file_as_input(
|
||||
filename,
|
||||
file,
|
||||
&mut LS::machine_st(&mut self.payload).arena,
|
||||
),
|
||||
ListingSource::File(filename, path_buf),
|
||||
)
|
||||
}
|
||||
@@ -1145,7 +1169,10 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
if let Some(ref module) = self.wam_prelude.indices.modules.get(&library) {
|
||||
if let ListingSource::DynamicallyGenerated = &module.listing_src {
|
||||
(
|
||||
Stream::from_static_string(*code, &mut LS::machine_st(&mut self.payload).arena),
|
||||
Stream::from_static_string(
|
||||
*code,
|
||||
&mut LS::machine_st(&mut self.payload).arena,
|
||||
),
|
||||
ListingSource::User,
|
||||
)
|
||||
} else {
|
||||
@@ -1153,7 +1180,10 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
}
|
||||
} else {
|
||||
(
|
||||
Stream::from_static_string(*code, &mut LS::machine_st(&mut self.payload).arena),
|
||||
Stream::from_static_string(
|
||||
*code,
|
||||
&mut LS::machine_st(&mut self.payload).arena,
|
||||
),
|
||||
ListingSource::User,
|
||||
)
|
||||
}
|
||||
@@ -1172,9 +1202,10 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
);
|
||||
|
||||
let subloader: Loader<'_, BootstrappingLoadState> = Loader {
|
||||
payload: BootstrappingLoadState(
|
||||
LoadStatePayload::new(self.wam_prelude.code.len(), term_stream)
|
||||
),
|
||||
payload: BootstrappingLoadState(LoadStatePayload::new(
|
||||
self.wam_prelude.code.len(),
|
||||
term_stream,
|
||||
)),
|
||||
wam_prelude: MachinePreludeView {
|
||||
indices: self.wam_prelude.indices,
|
||||
code: self.wam_prelude.code,
|
||||
@@ -1206,7 +1237,11 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
let file = File::open(&path_buf)?;
|
||||
|
||||
(
|
||||
Stream::from_file_as_input(filename, file, &mut LS::machine_st(&mut self.payload).arena),
|
||||
Stream::from_file_as_input(
|
||||
filename,
|
||||
file,
|
||||
&mut LS::machine_st(&mut self.payload).arena,
|
||||
),
|
||||
ListingSource::File(filename, path_buf),
|
||||
)
|
||||
}
|
||||
@@ -1216,7 +1251,10 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
return self.import_qualified_module(library, exports);
|
||||
} else {
|
||||
(
|
||||
Stream::from_static_string(*code, &mut LS::machine_st(&mut self.payload).arena),
|
||||
Stream::from_static_string(
|
||||
*code,
|
||||
&mut LS::machine_st(&mut self.payload).arena,
|
||||
),
|
||||
ListingSource::User,
|
||||
)
|
||||
}
|
||||
@@ -1235,9 +1273,10 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
||||
);
|
||||
|
||||
let subloader: Loader<'_, BootstrappingLoadState> = Loader {
|
||||
payload: BootstrappingLoadState(
|
||||
LoadStatePayload::new(self.wam_prelude.code.len(), term_stream),
|
||||
),
|
||||
payload: BootstrappingLoadState(LoadStatePayload::new(
|
||||
self.wam_prelude.code.len(),
|
||||
term_stream,
|
||||
)),
|
||||
wam_prelude: MachinePreludeView {
|
||||
indices: self.wam_prelude.indices,
|
||||
code: self.wam_prelude.code,
|
||||
|
||||
Reference in New Issue
Block a user