Compiler dumps
Advanced users can ask pop check to print intermediate compiler forms with --dump:
pop check source.pop --dump hirpop check source.pop --dump mirpop check source.pop --dump llThe dump kinds are:
| Kind | Shows |
|---|---|
hir |
resolved, typed high-level program structure |
mir |
lowered and verified operations used by execution engines |
ll |
LLVM IR generated for native compilation |
The option may be repeated when more than one representation is useful:
pop check source.pop --dump hir --dump mirDumps are compiler diagnostics, not stable serialization formats. Their layout may change between Pop releases, and a later version’s tools should not consume a previous version’s textual dump as an API.
When checking fails, the compiler reports diagnostics instead of publishing a misleading partial representation. Fix the earliest source error before relying on a dump produced from later stages.
HIR is usually the best place to study type/name resolution, generic arguments, enum identities, and typed source concepts. MIR is better for specialized concrete functions, typed string/table operations, fixed-pack tuple projection, checked conversions, control-flow joins, loop edges, and runtime interaction. LLVM IR is the lowest and most target-specific of the three.
