Skip to main content

whisker_dev_server/hotpatch/
mod.rs

1//! Tier 1 (subsecond) hot-reload pipeline.
2//!
3//! See `docs/hot-reload-plan.md` for the architecture. The modules
4//! land one per task ID:
5//!
6//! - [`symbol_table`] (I4g-1): parse ELF / Mach-O symbol tables
7//! - `jump_table`     (I4g-2): diff old vs new symbol tables
8//! - `cache`          (I4g-3): hold the original module's parsed table
9//! - `wrapper`        (I4g-4): rustc + linker hijack
10//! - `thin_build`     (I4g-5): partial rebuild driver
11//! - `Patcher`        (I4g-6): the integrated `Change → JumpTable` API
12
13pub mod android_ndk;
14pub mod cache;
15pub mod jump_table;
16pub mod link_plan;
17pub mod patcher;
18pub mod runner;
19pub mod shim_paths;
20pub mod stub_object;
21pub mod symbol_table;
22pub mod thin_build;
23pub mod validate;
24pub mod wrapper;
25
26pub use cache::HotpatchModuleCache;
27pub use jump_table::{build_jump_table, DiffReport, PatchPlan};
28pub use link_plan::{build_link_plan, linker_os_for_host, LinkPlan, LinkerOs};
29pub use patcher::Patcher;
30pub use runner::{run_link_plan, run_obj_plan, thin_rebuild_obj};
31pub use shim_paths::{expected_shim_paths, resolve_shim_paths, ShimPaths};
32pub use stub_object::{
33    build_stub_for_needed, compute_needed_symbols, compute_needed_symbols_multi,
34    create_undefined_symbol_stub,
35};
36pub use symbol_table::{parse_symbol_table, SymbolInfo, SymbolTable};
37pub use thin_build::{build_obj_plan, library_filename, object_filename, ObjBuildPlan};
38pub use validate::{ensure_target_supported, extract_target_triple, validate_environment};
39pub use wrapper::{
40    default_cache_dir, default_linker_cache_dir, load_captured_args, load_captured_linker_args,
41    resolve_host_linker, run_fat_build, CapturedLinkerInvocation, CapturedRustcInvocation,
42    LinkerCaptureConfig,
43};