Expand description
The phase graph: what has to happen to each input file, in what order, and where the result goes.
Design: spec/04-driver-and-cli.md section 4.2.
The plan is computed before anything runs and is a plain data structure with no side
effects, which is what makes -### possible and what makes this testable without a file
system. Nothing in here reads a file or spawns a process. Executing the plan is M3, when
there is something for the phases to do.
Structs§
- Archive
Job - The archive step, when there is one.
- Input
- One input file, with the
-xsetting that was in effect where it appeared. - Job
- Everything that has to happen to one input file.
- LinkJob
- The link step, when there is one.
- Plan
- The whole plan for one invocation.
- Plan
Error - Why a command line could not be turned into a plan.
Enums§
- Input
Kind - What an input file is, which decides where in the pipeline it enters.
- Output
- Where the result of a job goes.
- Phase
- A step in the compilation of one input.
- Role
- What one entry of the input list was written as.
- XError
- Why an input or an
-xargument was rejected.
Constants§
- STDIN
- What an input written on the command line is when it means standard input rather than a file.
Functions§
- last_
phase - The last phase that runs, given what the user asked to be emitted.
- source_
name - What a file reads as in a message, in a line marker and in
__FILE__.