API reference
python:irx:irx.analysis.CompilationSession
class CompilationSession
CompilationSession(root: ParsedModule, resolver: ImportResolver, modules: dict[ModuleKey, ParsedModule] = dict(), graph: dict[ModuleKey, set[ModuleKey]] = dict(), load_order: list[ModuleKey] = list(), diagnostics: DiagnosticBag = DiagnosticBag(), visible_bindings: dict[ModuleKey, dict[str, SemanticBinding]] = dict(), native_features: dict[str, NativeFeature] = dict(), native_bindings: dict[int, tuple[str, ...]] = dict(), native_table_io: dict[int, TableIOOperation] = dict(), lowering_declarations: frozenset[int] | None = None, runtime_exception_types: dict[str, ResolvedExceptionType] = dict(), _resolution_cache: dict[tuple[ModuleKey, str], ParsedModule | None] = dict(), _probe_cache: dict[tuple[ModuleKey, str], ParsedModule | None] = dict())
Source: packages/irx/src/irx/analysis/session.py:72
Declared as: python:irx:irx.analysis.session.CompilationSession
Shared state for multi-module analysis and lowering.
Own the loaded module graph and cross-module binding state that analysis and lowering share for one compilation.
Attributes
-
root — Type: ParsedModule
-
resolver — Type: ImportResolver
-
modules — Type: dict[ModuleKey, ParsedModule]
-
graph — Type: dict[ModuleKey, set[ModuleKey]]
-
load_order — Type: list[ModuleKey]
-
diagnostics — Type: DiagnosticBag
-
visible_bindings — Type: dict[ModuleKey, dict[str, SemanticBinding]]
-
native_features — Type: dict[str, NativeFeature]
-
native_bindings — Type: dict[int, tuple[str, Ellipsis]]
-
native_table_io — Type: dict[int, TableIOOperation]
-
lowering_declarations — Type: frozenset[int] | None
-
runtime_exception_types — Type: dict[str, ResolvedExceptionType]
-
_resolution_cache — Type: dict[tuple[ModuleKey, str], ParsedModule | None]
-
_probe_cache — Type: dict[tuple[ModuleKey, str], ParsedModule | None]
Methods
-
__init__ —
-
__post_init__ — Initialize session caches with the root module.
-
expand_graph — Expand the reachable import graph from the root module.
-
module — Return a parsed module by key.
-
ordered_modules — Return parsed modules in stable dependency order.
-
probe_import_specifier — Probe one import request without emitting diagnostics.
-
register_module — Register one parsed module in the session cache.
-
register_native_capabilities — Collect consistent native capabilities only from loaded modules.
-
resolve_import_from_name — Resolve one import-from name to a direct binding or child module.
-
resolve_import_specifier — Resolve one import request through the host resolver.