Skip to content

2026.9.29.4: a program shipped through artifacts links with its own closure's line, and ${mcpp.bin_dir} is the declaring member's product directory, in a workspace plan - #741

Merged
Sunrisepeak merged 2 commits into
mainfrom
fix/artifact-links-own-closure
Sep 29, 2026
Merged

Sunrisepeak merged 2 commits into
mainfrom
fix/artifact-links-own-closure

Conversation

@speak-agent

@speak-agent speak-agent commented Sep 29, 2026 •

Copy link
Copy Markdown
Member

The validation project's post-release build of 2026.9.29.3 stopped at the link
of obj/gpp_updater/Updater.exe with undefined references to Qt and bit7z
symbols: the libraries are stated by the updater package's build program, and
the program was linked with the plan's line, which pools the dependencies'
link flags and not a member's.

  • In a workspace plan each program shipped through artifacts has a link group
    of its own closure (LinkGroup::linkOnly): the closure's link line and runtime
    contract, and no placement, since the members that ship the program place it
    and its runtime files.
  • e2e 838 states it with a library the helper's build program links
    (mcpp::link_lib); it fails on 2026.9.29.3 with "undefined reference" at
    obj/helper/helper and passes here.
  • Version 2026.9.29.4; design document section 17.1.

Refs #734.

  • ${mcpp.bin_dir} in an action a workspace member's build program declares is that member's product directory (e2e 838 A4). The validation project's cross-verification against this pull request found it at mcpp pack: its build script stages ${mcpp.bin_dir}/.pdb.

…losure's line in a workspace plan

The validation project's post-release build of 2026.9.29.3 stopped at the link
of obj/gpp_updater/Updater.exe with undefined references to Qt and bit7z
symbols: the libraries are stated by the updater package's build program, and
the program was linked with the plan's line, which pools the dependencies'
link flags and not a member's.

- In a workspace plan each program shipped through artifacts has a link group
  of its own closure (LinkGroup::linkOnly): the closure's link line and runtime
  contract, and no placement, since the members that ship the program place it
  and its runtime files.
- e2e 838 states it with a library the helper's build program links
  (mcpp::link_lib); it fails on 2026.9.29.3 with "undefined reference" at
  obj/helper/helper and passes here.
- Version 2026.9.29.4; design document section 17.1.
…res is that member's product directory

The validation project's cross-verification against this pull request stopped
at mcpp pack: its build script stages ${mcpp.bin_dir}/<target>.pdb, and the
placeholder expanded to the plan's bin/, where a member's binaries are not.
e2e 838 A4 states it; docs/30 (both languages) state the expansion.
@speak-agent speak-agent changed the title 2026.9.29.4: a program shipped through artifacts links with its own closure's line in a workspace plan 2026.9.29.4: a program shipped through artifacts links with its own closure's line, and ${mcpp.bin_dir} is the declaring member's product directory, in a workspace plan Sep 29, 2026
@Sunrisepeak
Sunrisepeak merged commit 832f623 into main Sep 29, 2026
43 of 45 checks passed
Sunrisepeak added a commit to mcpplibs/mcpp-index that referenced this pull request Sep 29, 2026
…9.29.4 (#489)

2026.9.29.4 (mcpp-community/mcpp#741) links a program a workspace member ships
through artifacts with its own closure's line and expands ${mcpp.bin_dir} in an
action a member's build program declares to that member's product directory. It
changes no descriptor grammar; min_mcpp is unchanged.

The full sweep with 2026.9.29.4 (run 36548558591) passed on every platform.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants