You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(plan): stages one and two landed, and three judgements they corrected
Records what implementation established, including where it contradicted the
design.
* link-flag reaches the consumer. The doc ruled it private by analogy with
include-dir; the code refutes the analogy. linkUsage.ldflags is a copy of
buildConfig.ldflags and propagateLinkFlags pushes every dependency ldflag
to the consumer, so a private link flag is not a policy the engine can
express. include-dir is private because a compile interface HAS a
declarative public counterpart; link flags do not, so the computed form
must behave like its declarative twin. C4 is rewritten accordingly.
* exports does not imply hidden visibility. The narrowing is link-time on all
three formats, so implying a compile-time effect gives one key two, and the
second changes how the library's own TUs see each other -- a separate
decision. C3 is retired because it asserted exactly that coupling.
* Section 4.3's open question is answered. manifest_emit builds
[[runtime.artifacts]] from doc.legs plus one interface entry and does NOT
carry the author's declared artifacts; role is a free string in the parser
and the white list is an effect of its readers. So stage three is a new
path through the packer -- carry a declared file into the artifact -- not
a new role value. Staging is unchanged; its rationale is.
0 commit comments