ludic/selfhost
Orkuncakilkaya bca8f126fc Networking N2–N6, and a fully C-free toolchain
Implement the rest of NETWORKING-DESIGN.md (N2–N6) and eliminate every
`.c` file from the repo. clang remains only the LLVM-IR assembler; no C
is compiled anywhere.

Networking (selfhost/emit_net.ludic + parser/emit changes):
- N2 @Sync: per-model serialize/apply + by-kind dispatchers; POD-scalar
  compile error and empty-participation warning; selective replication.
- N3 @Owned: @L_owner array + owner/set_owner/is_owner; owners snapshot.
- N4 @ToServer/@ToClients remote events: framed net_send + net_pump re-emit.
- N5 @Server/@Predicted role guards + drivable sim (tick_fixed/tick_render,
  entry-owns-the-loop).
- Built-in loopback transport so multiplayer runs with zero foreign code;
  extern fn net_send/net_poll still overrides it for a real socket.
- N6 blessed runtime (examples/net_rt.ludic) + end-to-end demo (net_demo).
- Fix: llty("entity") is now i32 (entities are i32 handles), so let e = self().

C elimination:
- Networking + foreign-mod-ABI tests rewritten as self-contained pure-Ludic
  programs (examples/net_*, world_*, mod_events, scoped); tests/ removed.
- Reflection ABI exposed to Ludic as world_* builtins (Ludic-to-Ludic modding).
- Formatter rewritten C→Ludic: tools/ludic-tools/fmt.ludic.
- Language server rewritten C→Ludic: tools/ludic-tools/lsp.ludic (lexer, index
  parser, cross-file workspace resolver, JSON, all LSP handlers).
- Obsolete migrate_*.c codemods deleted; ludic_syntax.h kept as vocabulary data.

Suites: ./test.sh 44/44, ./tools/test-tools.sh 28/28 (LSP 42/42), fixpoint holds.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-29 15:08:23 +03:00
..
golden Baseline: Ludic compiler + toolchain, Phase 1 syntax fixes complete 2026-08-27 15:15:35 +03:00
tests Phase 7k: bytes(n) / words(n) allocators (retire mem_alloc) 2026-08-28 02:26:15 +03:00
ast.ludic Networking N2–N6, and a fully C-free toolchain 2026-08-29 15:08:23 +03:00
bootstrap-cfree.sh Networking N2–N6, and a fully C-free toolchain 2026-08-29 15:08:23 +03:00
bootstrap.sh Baseline: Ludic compiler + toolchain, Phase 1 syntax fixes complete 2026-08-27 15:15:35 +03:00
buf.ludic Phase 8b: modern names for the raw-memory and OS/IO primitives 2026-08-28 02:55:24 +03:00
build.sh Networking N2–N6, and a fully C-free toolchain 2026-08-29 15:08:23 +03:00
compile.sh Baseline: Ludic compiler + toolchain, Phase 1 syntax fixes complete 2026-08-27 15:15:35 +03:00
emit_addr.ludic Phase 8a: finish typed indexing — fixeds/ptrs buffers (retire peekf/pokef/peekp/pokep/str_len) 2026-08-28 02:49:40 +03:00
emit_core.ludic Networking N2–N6, and a fully C-free toolchain 2026-08-29 15:08:23 +03:00
emit_decl.ludic Networking N2–N6, and a fully C-free toolchain 2026-08-29 15:08:23 +03:00
emit_ecs.ludic Networking N2–N6, and a fully C-free toolchain 2026-08-29 15:08:23 +03:00
emit_expr.ludic Networking N2–N6, and a fully C-free toolchain 2026-08-29 15:08:23 +03:00
emit_game.ludic Networking N2–N6, and a fully C-free toolchain 2026-08-29 15:08:23 +03:00
emit_head.ludic Networking N2–N6, and a fully C-free toolchain 2026-08-29 15:08:23 +03:00
emit_intrin.ludic Phase 8b: modern names for the raw-memory and OS/IO primitives 2026-08-28 02:55:24 +03:00
emit_intrin2.ludic Phase 8b: modern names for the raw-memory and OS/IO primitives 2026-08-28 02:55:24 +03:00
emit_machine.ludic Networking N2–N6, and a fully C-free toolchain 2026-08-29 15:08:23 +03:00
emit_math.ludic Phase 7g: the compiler builds its IR with interpolation, not + 2026-08-28 01:30:37 +03:00
emit_net.ludic Networking N2–N6, and a fully C-free toolchain 2026-08-29 15:08:23 +03:00
emit_new.ludic Phase 7g: the compiler builds its IR with interpolation, not + 2026-08-28 01:30:37 +03:00
emit_query.ludic Phase 7g: the compiler builds its IR with interpolation, not + 2026-08-28 01:30:37 +03:00
emit_save.ludic Networking N2–N6, and a fully C-free toolchain 2026-08-29 15:08:23 +03:00
emit_spawn.ludic Networking N2–N6, and a fully C-free toolchain 2026-08-29 15:08:23 +03:00
emit_stmt.ludic Networking N2–N6, and a fully C-free toolchain 2026-08-29 15:08:23 +03:00
emit_ui.ludic Phase 7i: byte indexing p[i] / p[i] = v (retire peek8/poke8) 2026-08-28 02:01:59 +03:00
game-build.sh Baseline: Ludic compiler + toolchain, Phase 1 syntax fixes complete 2026-08-27 15:15:35 +03:00
io.ludic Phase 7k: bytes(n) / words(n) allocators (retire mem_alloc) 2026-08-28 02:26:15 +03:00
lex.ludic Phase 7k: bytes(n) / words(n) allocators (retire mem_alloc) 2026-08-28 02:26:15 +03:00
ludicc.seed.ll Networking N2–N6, and a fully C-free toolchain 2026-08-29 15:08:23 +03:00
main.ludic Phase 8b: modern names for the raw-memory and OS/IO primitives 2026-08-28 02:55:24 +03:00
parse.ludic Networking N2–N6, and a fully C-free toolchain 2026-08-29 15:08:23 +03:00
parse_game.ludic Networking N2–N6, and a fully C-free toolchain 2026-08-29 15:08:23 +03:00
reseed.sh Networking N2–N6, and a fully C-free toolchain 2026-08-29 15:08:23 +03:00
str.ludic Phase 7k: bytes(n) / words(n) allocators (retire mem_alloc) 2026-08-28 02:26:15 +03:00
test.sh Baseline: Ludic compiler + toolchain, Phase 1 syntax fixes complete 2026-08-27 15:15:35 +03:00