Mutare.Sandbox.ProjectEvaluation (mutare v0.4.1)

Copy Markdown View Source

Preserve evidence of failures while evaluating the sandbox's mix.exs files.

Selection precedes project evaluation, so required library code and project/0 can fail with a mutation active, before configuration or application startup. Wrapping the whole project source covers both inline and externally required project definitions, independently of the compiler-options hook. The selector and watcher bootstrap stays outside this wrapper so its own failures cannot produce project evidence.

The wrapper prints a marker for escaping errors, exits, and throws, then re-raises them with their original class, reason, and stacktrace. On success, the wrapper returns the source's value and adds no output. Mutare.Sandbox.Command.Output requires the marker and an exception header, even when deep calls lose all project frames.