Skip to content

feat: skip link step when no object files have changed (incremental linking) #32

@mgrossmann

Description

@mgrossmann

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions