Expand description
Typed runtime IR for Yulang.
Runtime IR is intentionally not a second type inference engine. It accepts
the principal types and local evidence produced by the infer pipeline, then
builds a runtime tree where every expression has a VM-facing type witness. Polymorphic
variables that appear in a principal type are kept as forall parameters;
observation-only variables are erased before validation.
Re-exports§
pub use diagnostic::RuntimeError;pub use diagnostic::RuntimeResult;pub use diagnostic::TypeSource;pub use host::HostRunOutput;pub use host::eval_root_with_basic_host;pub use host::eval_roots_with_basic_host;pub use hygiene::format_hygiene_expr;pub use hygiene::format_hygiene_module;pub use invariant::RuntimeStage;pub use invariant::check_runtime_invariants;pub use invariant::check_strict_runtime_value_types;pub use ir::Binding;pub use ir::EffectIdRef;pub use ir::EffectIdVar;pub use ir::Expr;pub use ir::ExprKind;pub use ir::HandleArm;pub use ir::HandleEffect;pub use ir::JoinEvidence;pub use ir::MatchArm;pub use ir::Module;pub use ir::Pattern;pub use ir::RecordExprField;pub use ir::RecordPatternField;pub use ir::RecordSpreadExpr;pub use ir::RecordSpreadPattern;pub use ir::ResumeBinding;pub use ir::Root;pub use ir::Stmt;pub use ir::Type;pub use ir::TypeInstantiation;pub use ir::TypeSubstitution;pub use lower::CoreShapeProfile;pub use lower::DerivedExpectedEvidenceProfile;pub use lower::ExpectedAdapterEvidenceProfile;pub use lower::ExpectedArgEvidenceProfile;pub use lower::ObservedAdapterEvidence;pub use lower::ObservedAdapterEvidenceKind;pub use lower::RuntimeAdapterEvent;pub use lower::RuntimeAdapterEventKind;pub use lower::RuntimeAdapterProfile;pub use lower::RuntimeApplyAdapterPhase;pub use lower::RuntimeLowerOutput;pub use lower::RuntimeLowerProfile;pub use lower::lower_core_program;pub use lower::lower_core_program_profiled;pub use lower::lower_principal_module;pub use monomorphize::DemandEvidenceProfile;pub use monomorphize::DemandQueueProfile;pub use monomorphize::MonomorphizePassProfile;pub use monomorphize::MonomorphizeProfile;pub use monomorphize::MonomorphizeProgress;pub use monomorphize::SubstitutionSpecializeInferenceCount;pub use monomorphize::SubstitutionSpecializeMissingVarCount;pub use monomorphize::SubstitutionSpecializeProfile;pub use monomorphize::SubstitutionSpecializeRewriteContextCount;pub use monomorphize::SubstitutionSpecializeRewriteExprKindTiming;pub use monomorphize::SubstitutionSpecializeRewritePhaseTiming;pub use monomorphize::SubstitutionSpecializeSkipCount;pub use monomorphize::SubstitutionSpecializeTargetInferences;pub use monomorphize::SubstitutionSpecializeTargetRewrites;pub use monomorphize::SubstitutionSpecializeTargetSkips;pub use monomorphize::monomorphize_module;pub use monomorphize::monomorphize_module_profiled;pub use refine::refine_module_types;pub use validate::validate_module;pub use vm::VmError;pub use vm::VmModule;pub use vm::VmRequest;pub use vm::VmResult;pub use vm::VmValue;pub use vm::compile_vm_module;