Result: 4c and E11-5 done: emit calls emit_expr/emit_stmt/emit_stmt_block_* directly (host trait lost 4 callbacks, Flow struct and Rust expr/stmt/block_* deleted); tools/emit_tables.nika holds names_outside, names_borrowing, borrowing_structs_beside, view_slots Files: assets/badges/self-hosted.svg crates/nikaia-std/src/tools/emit_core_args.nika crates/nikaia-std/src/tools/emit_core_calls.nika crates/nikaia-std/src/tools/emit_core_flow.nika crates/nikaia-std/src/tools/emit_core_leaves.nika crates/nikaia-std/src/tools/emit_core_match.nika crates/nikaia-std/src/tools/emit_core_places.nika crates/nikaia-std/src/tools/emit_core_reads.nika crates/nikaia-std/src/tools/emit_fold.nika crates/nikaia-std/src/tools/emit_function_body.nika crates/nikaia-std/src/tools/emit_grammar.nika crates/nikaia-std/src/tools/emit_host.nika crates/nikaia-std/src/tools/emit_stmt.nika crates/nikaia-std/src/tools/lowered.rs crates/nikaia-std/src/tools/lowered/emit_core_args.rs crates/nikaia-std/src/tools/lowered/emit_core_calls.rs crates/nikaia-std/src/tools/lowered/emit_core_flow.rs crates/nikaia-std/src/tools/lowered/emit_core_leaves.rs crates/nikaia-std/src/tools/lowered/emit_core_match.rs crates/nikaia-std/src/tools/lowered/emit_core_places.rs crates/nikaia-std/src/tools/lowered/emit_core_reads.rs crates/nikaia-std/src/tools/lowered/emit_fold.rs crates/nikaia-std/src/tools/lowered/emit_function_body.rs crates/nikaia-std/src/tools/lowered/emit_grammar.rs crates/nikaia-std/src/tools/lowered/emit_host.rs crates/nikaia-std/src/tools/lowered/emit_stmt.rs crates/nikaia/src/emit/host.rs crates/nikaia/src/emit/mod.rs docs/selfhosting-plan.md scripts/self_hosting.py crates/nikaia-std/src/tools/emit_tables.nika crates/nikaia-std/src/tools/lowered/emit_tables.rs Commit: Emit: Nikaia calls the expression and statement writers directly, the host callbacks go; the view tables move to emit_tables.nika Fixes: #855 Part: #583 Tests: guard set + emit:: + sysroot 37 passed; clippy clean; tests/compiler –both-settings 96 passed, 5 failed (agent_script, batch_frontmatter, literal_to_string_refused, to_string_of_a_view_fills_a_string, to_string_owned) - all from #851’s uncommitted check_core_method change (check_core_call_on_owned), not emit Gate: red tests/compiler (5, #851’s in-flight check change), rest green Deviation: rs2nika draft not used (small pure AST code, written by hand); one commit for both steps (mod.rs carries both); template_hole_tables, fold_callees, read_view_slots, tethered_types stay in Rust (read Parsed caches / the ledger) Found: none Needs: #851 to land or fix its check_core_method change; lowered/check_core_method.rs left unstaged Changelog: Emit: the host callbacks into Rust are gone and the view tables are written in Nikaia Pushed: 7e657b37594ee26e5fee820b6ffe835db6413569