haskelujah_runtime/
lib.rs1pub mod eval_chirho;
5pub mod ffi_chirho;
6pub mod gc_chirho;
7pub mod heap_chirho;
8pub mod prim_chirho;
9pub mod stack_chirho;
10pub mod value_chirho;
11
12pub use eval_chirho::{ArgSourceChirho, CodeChirho, EvalErrorChirho, MachineChirho};
13pub use ffi_chirho::{
14 FfiCallConvChirho, FfiErrorChirho, FfiSafetyChirho, FfiTypeChirho, FfiValueChirho,
15 ForeignImportChirho, ForeignTableChirho,
16};
17pub use gc_chirho::{
18 GcConfigChirho, GcStateChirho, GcStatsChirho, extract_roots_from_stack_chirho,
19 extract_roots_from_values_chirho,
20};
21pub use heap_chirho::HeapChirho;
22pub use prim_chirho::{PrimErrorChirho, apply_prim_binop_chirho};
23pub use stack_chirho::{FrameChirho, PrimOpKindChirho, StackChirho};
24pub use value_chirho::{
25 ClosureChirho, CodePtrChirho, DataConTagChirho, HeapAddrChirho, InfoTableChirho, InfoTagChirho,
26 ValueChirho,
27};
28
29#[derive(Debug, Clone, Copy, PartialEq, Eq)]
30pub enum ExecutionModeChirho {
31 BatchChirho,
32 ScriptChirho,
33 ReplChirho,
34}
35
36#[derive(Debug, Clone, PartialEq, Eq)]
37pub struct RuntimePlanChirho {
38 pub execution_mode_chirho: ExecutionModeChirho,
39 pub entry_module_chirho: String,
40 pub incremental_session_chirho: bool,
41}
42
43impl RuntimePlanChirho {
44 pub fn for_module_chirho(
45 execution_mode_chirho: ExecutionModeChirho,
46 entry_module_chirho: impl Into<String>,
47 ) -> Self {
48 let incremental_session_chirho = matches!(
49 execution_mode_chirho,
50 ExecutionModeChirho::ScriptChirho | ExecutionModeChirho::ReplChirho
51 );
52
53 Self {
54 execution_mode_chirho,
55 entry_module_chirho: entry_module_chirho.into(),
56 incremental_session_chirho,
57 }
58 }
59}