Extend and embed
Maelys System integration
Understand which low-level mechanics come from Maelys System and which lifecycle duties remain in Executor.The dependency direction is strictly:
maelys-executor -> libmaelys-sysMaelys System never includes Executor headers or process-domain types. Executor's public header does not expose Maelys System types. Executor ABI 10 therefore remains independent of System's concrete layouts; the dependency appears only at build and final static link time.
Extracted mechanics
| Executor need | Maelys System contract |
|---|---|
| monotonic and wall timestamps | maelys_sys_monotonic_ms, maelys_sys_wall_ms |
| owned descriptor cleanup | maelys_sys_fd_close |
| child I/O construction | maelys_sys_pipe_cloexec, maelys_sys_socketpair_cloexec |
| mediated-channel request write | maelys_sys_socket_send_nosigpipe |
| mediator shutdown notification | maelys_sys_wakeup_* |
make system-integration-check inspects the unresolved symbols of
libmaelys_executor.a and fails unless every contract above is genuinely
consumed. Normal execution, mediated networking and shutdown tests then link a
single pinned libmaelys_sys.a and exercise the composition.
Deliberately retained by Executor
posix_spawnfile actions and descriptor layout;- process-group ownership,
waitpidand signals; - graceful/forced bounded shutdown and terminal status mapping;
- backend prepare/artifact/spawn/wait/stop/release operations;
- Bubblewrap, Seatbelt, filesystem/network enforcement and receipts.
These operations carry execution-domain meaning and do not satisfy the Maelys System admission rule requiring a domain-free primitive needed by two real consumers.
The dependency is pinned to the exact commit in adapter/MAELYS_SYSTEM_PIN.
The build refuses a different checkout, a modified public contract, or a
non-ABI-1 header. Installed SDK archives contain both static libraries and both
pkg-config files; maelys-executor.pc declares maelys-sys as a private
dependency for static consumers.