Item 12 asked five questions. All five come back clean, and the answer is feasible with no obstacle that argues for porting the compiler. The one that mattered most was signals, and it turned out to be a non-question: OCaml 5.2 on Linux/amd64 installs no signal handlers at all -- fifteen swept at four moments, every one SIG_DFL, and a plain ocamlopt executable behaves the same, so embedding changes nothing. OCaml 5 checks the stack limit explicitly instead of arming a guard page, so the SIGSEGV the break loop wants was never taken. The break loop can have it outright and Stack_overflow still works. That is measured on one platform only, and the entry says so: macOS/arm64 is the one claim here that must be re-run rather than trusted. The rest: -output-complete-obj links with dune uninvolved and the existing C stubs intact, no symbol collides across the four .c files and libasmrun, the game keeps the main thread while a C-created listener calls into OCaml after caml_c_thread_register, and a compaction left an 8 MiB arena byte-for-byte untouched. Startup is 0.6ms and the compiler adds 4.14MB -- which makes the merged dev build smaller than today's daemon alone, and there is one of it rather than two. Written as item 14 with the numbers, the three ways the GC assumption would break, what the spike does not cover, and the order the real work goes in. The backend is left exactly where item 13 put it.
Description
Languages
OCaml
67.2%
Emacs Lisp
15.2%
C
10.4%
HTML
2.9%
Standard ML
2.8%
Other
1.5%