Skip to content

Commit 2cec528

Browse files
committed
Refactor
1 parent b58040d commit 2cec528

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

mypyc/codegen/emitmodule.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -261,9 +261,9 @@ def compile_scc_to_ir(
261261
# Switch to lower abstraction level IR.
262262
lower_ir(fn, compiler_options)
263263
# Calculate implicit module dependencies (needed for librt)
264-
capsule_deps = find_implicit_capsule_dependencies(fn)
265-
if capsule_deps is not None:
266-
module.implicit_imports.update(capsule_deps)
264+
capsules = find_implicit_capsule_dependencies(fn)
265+
if capsules is not None:
266+
module.capsules.update(capsules)
267267
# Perform optimizations.
268268
do_copy_propagation(fn, compiler_options)
269269
do_flag_elimination(fn, compiler_options)
@@ -609,7 +609,7 @@ def generate_c_for_modules(self) -> list[tuple[str, str]]:
609609
ext_declarations.emit_line("#include <CPy.h>")
610610
if self.compiler_options.depends_on_librt_internal:
611611
ext_declarations.emit_line("#include <librt_internal.h>")
612-
if any("librt.base64" in mod.implicit_imports for mod in self.modules.values()):
612+
if any("librt.base64" in mod.capsules for mod in self.modules.values()):
613613
ext_declarations.emit_line("#include <librt_base64.h>")
614614

615615
declarations = Emitter(self.context)
@@ -1041,7 +1041,7 @@ def emit_module_exec_func(
10411041
emitter.emit_line("if (import_librt_internal() < 0) {")
10421042
emitter.emit_line("return -1;")
10431043
emitter.emit_line("}")
1044-
if "librt.base64" in module.implicit_imports:
1044+
if "librt.base64" in module.capsules:
10451045
emitter.emit_line("if (import_librt_base64() < 0) {")
10461046
emitter.emit_line("return -1;")
10471047
emitter.emit_line("}")

mypyc/ir/module_ir.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ def __init__(
3030
# These are only visible in the module that defined them, so no need
3131
# to serialize.
3232
self.type_var_names = type_var_names
33-
self.implicit_imports: set[str] = set()
33+
# Capsules needed by the module, specified via module names such as "librt.base64"
34+
self.capsules: set[str] = set()
3435

3536
def serialize(self) -> JsonDict:
3637
return {
@@ -39,7 +40,7 @@ def serialize(self) -> JsonDict:
3940
"functions": [f.serialize() for f in self.functions],
4041
"classes": [c.serialize() for c in self.classes],
4142
"final_names": [(k, t.serialize()) for k, t in self.final_names],
42-
"implicit_imports": list(self.implicit_imports),
43+
"capsules": sorted(self.capsules),
4344
}
4445

4546
@classmethod
@@ -52,7 +53,7 @@ def deserialize(cls, data: JsonDict, ctx: DeserMaps) -> ModuleIR:
5253
[(k, deserialize_type(t, ctx)) for k, t in data["final_names"]],
5354
[],
5455
)
55-
module.implicit_imports = set(data["implicit_imports"])
56+
module.capsules = set(data["capsules"])
5657
return module
5758

5859

0 commit comments

Comments
 (0)