move -mcpu to be part of the target triple #4584
Labels
accepted
This proposal is planned.
breaking
Implementing this issue could cause existing code to no longer compile or have different behavior.
proposal
This issue suggests modifications. If it also has the "accepted" label then it is planned.
standard library
This issue involves writing Zig code for the standard library.
Milestone
This is a follow-up issue from #4550.
std.zig.CrossTarget
has the ability to represent CPU features, as well asstd.Target
.Curently, "parsing" a target triple also wants to know the CPU model name and feature set at the same time, in order to produce a target. So this is a proposal to merge the concepts together. It mainly involves the CLI.
The proposal is to change this (example):
to this:
The main idea here is that
-mcpu
is deleted as a command line parameter, and-target
gains even more expressiveness.This works by replacing
-
with~
, because-
is a field separator in the-target
command line parameter. This would not affect the #3089 CLI which would have-mcpu
to match C compilers. Note that~
means "binary not" in many contexts, which would be a reasonable mnemonic to remember the syntax by.The main area where this would be helpful would be the Zig build system, because
standardTargetOptions
would only need to be concerned with-Dtarget
rather than-Dtarget
and-Dmcpu
. The fact that CPU features are part of bothstd.Target
andstd.zig.CrossTarget
is a strong hint that this data belongs together.As another example,
std.zig.CrossTarget.parse
wants to know the-mcpu
parameter in order to produce a result:zig/lib/std/zig/cross_target.zig
Lines 168 to 219 in 7e6b68a
The text was updated successfully, but these errors were encountered: