Problem
The build step (make build) already implements incremental compilation:
modules whose source has not changed are skipped via SHA256-based stamps
in .mbt/stamps/. This saves significant time on large projects.
The link step (make link) has no equivalent mechanism — it always re-runs
the full linkedit, even when none of the assembled object files have changed
since the last successful link.
Desired Behavior
make link should detect when nothing has changed since the last successful
link and skip the linkedit with an informational message, e.g.:
[mvslink] No changes detected, skipping link step.
The check should also cover changes to the link configuration in
project.toml (entry point, include list, additional libraries, etc.).
A --force flag on mvslink.py should bypass the check unconditionally.
Notes
The main open design question is how to determine whether object files
(NCALIB members) have changed, given that they reside on MVS — not on
the host. The right approach is intentionally left open here.
Related
Problem
The build step (
make build) already implements incremental compilation:modules whose source has not changed are skipped via SHA256-based stamps
in
.mbt/stamps/. This saves significant time on large projects.The link step (
make link) has no equivalent mechanism — it always re-runsthe full linkedit, even when none of the assembled object files have changed
since the last successful link.
Desired Behavior
make linkshould detect when nothing has changed since the last successfullink and skip the linkedit with an informational message, e.g.:
The check should also cover changes to the link configuration in
project.toml(entry point, include list, additional libraries, etc.).A
--forceflag onmvslink.pyshould bypass the check unconditionally.Notes
The main open design question is how to determine whether object files
(NCALIB members) have changed, given that they reside on MVS — not on
the host. The right approach is intentionally left open here.
Related
.sstamps