Runtime panic terminates the process
Platform spec ADR
Runtime panic terminates the process
Spec standingStandard
- Contracts and edge cases MUST rules for panic divergence, syscall parameters, and backend neutrality.
- Design model Panic termination, syscall ownership, and runtime-mediated IO boundaries.
- Examples Panic from lowering, syscall_write status codes, and corelib IO scenarios.
- FAQ and troubleshooting Panic vs Option, syscall return codes, and fiber/blocking IO issues.
- Flow and algorithm Panic emission, syscall_write chunking, and blocking IO on fibers.
- Verification and traceability panic_io implementation paths, e2e runtime cases, and IO contract cross-tests.
0 revisions (git unavailable at build; counts may be empty)
No commits recorded for this path.
| Section id | Required | Found |
|---|---|---|
what-this-feature-specifies | yes | yes |
implementation-anchors | yes | yes |
Full tree: run pnpm verify:platform-spec-layout (writes src/generated/platform-spec-layout-report.json).
Context
Section titled “Context”Language Option covers expected errors. Unrecoverable faults and some IO failures need a distinct path that does not conflate with Result channel semantics.
Decision
Section titled “Decision”| Mechanism | Use |
|---|---|
Option / Result | Expected failures (language-meta + corelib) |
panic / panic_str | Unrecoverable faults, hard IO faults in v1 streams, allocation failures |
| Unwind | No Beskid stack unwinding across panics |
| Outcome | Runtime panics terminate the process (trap / abort) |
| Builtin kind | AbiReturnKind::Never in BUILTIN_SPECS |
Consequences
Section titled “Consequences”Corelib must not catch panics for ordinary control flow. Fiber Detach panics still abort unless future domain recovery is specified.
Verification anchors
Section titled “Verification anchors”beskid_runtime::builtins::panic_io; e2e runtime cases.