Skip to content
This repository was archived by the owner on Mar 5, 2025. It is now read-only.

Commit

Permalink
Reenabled isCompatibleBinaryLibrary
Browse files Browse the repository at this point in the history
  • Loading branch information
PaulKlint committed Nov 3, 2024
1 parent f9e4b8a commit 88964f5
Showing 1 changed file with 20 additions and 21 deletions.
41 changes: 20 additions & 21 deletions src/org/rascalmpl/core/library/lang/rascalcore/check/Import.rsc
Original file line number Diff line number Diff line change
Expand Up @@ -201,27 +201,26 @@ str getModuleFromLogical(loc l){

// Is what library module lib provides compatible with all uses in the modules libUsers?
tuple[bool, ModuleStatus] isCompatibleBinaryLibrary(TModel lib, set[str] libUsers, ModuleStatus ms){
return <true, ms>;

// libName = lib.modelName;
// libProvides = domain(lib.logical2physical);
// libProvidesModules = { getModuleFromLogical(l) | l <- libProvides };
// usersRequire = {};
// for(m <- libUsers){
// <found, tm, ms> = getTModelForModule(m, ms);
// if(found){
// usersRequire += domain(tm.logical2physical);
// }
// }
// usersRequireFromLib = { l | l <- usersRequire, getModuleFromLogical(l) in libProvidesModules };

// if(usersRequireFromLib <= libProvides){
// println("isCompatibleBinaryLibrary <libName>: satisfied");
// return <true, ms>;
// } else {
// println("isCompatibleBinaryLibrary, <libName> unsatisfied: <usersRequireFromLib - libProvides>");
// return <false, ms>;
// }

libName = lib.modelName;
libProvides = domain(lib.logical2physical);
libProvidesModules = { getModuleFromLogical(l) | l <- libProvides };
usersRequire = {};
for(m <- libUsers){
<found, tm, ms> = getTModelForModule(m, ms);
if(found){
usersRequire += domain(tm.logical2physical);
}
}
usersRequireFromLib = { l | l <- usersRequire, getModuleFromLogical(l) in libProvidesModules };

if(usersRequireFromLib <= libProvides){
println("isCompatibleBinaryLibrary <libName>: satisfied");
return <true, ms>;
} else {
println("isCompatibleBinaryLibrary, <libName> unsatisfied: <usersRequireFromLib - libProvides>");
return <false, ms>;
}
}

tuple[bool, ModuleStatus] importsAndExtendsAreBinaryCompatible(TModel tm, set[str] importsAndExtends, ModuleStatus ms){
Expand Down

0 comments on commit 88964f5

Please sign in to comment.