Make it simpler to handle micro-architectures so that the same dependency can target multiple microarchitectures for the same arch. For instance both binname-linux-armv5 and binname-linux-armv6.
Considerations
Systems
Currently a system is "os/arch". I think we will need to expand this to "os/arch[/microarch]" with unspecified microarch defaulting to go's default when unspecified. So linux/arm/v5 will download binname-linux-armv5 while both linux/arm and linux/arm/v6 will download binname-linux-armv6.
Multiple types of microarchitecture.
Go defines microarchitecture with different variables depending on the GOARCH. Those vars are currently:
| var |
arches |
values |
default |
| GO386 |
386 |
softfloat, sse2 |
sse2 |
| GOARM |
arm |
5, 6, 7 |
6 |
| GOAMD64 |
amd64 |
v1, v2, v3, v4 |
v1 |
| GOMIPS |
mips, mipsle |
hardfloat, softfloat |
hardfloat |
| GOPPC64 |
ppc64 |
power8, power9 |
power8 |
Because no arch has more than one var, we may be able to have one template var for all archs. Something like {{ .microArch }}. We should also populate {{ .go386 }}, {{ .goarm }}, etc.
This assumes there will never by a single GOARCH that can have multiple microarchs. I think that's a safe assumption. If this changes, we may need to make a breaking change.
add-by-*
No more details...just need to remember to consider dependency add-by-urls and dependency add-by-github-release.
Make it simpler to handle micro-architectures so that the same dependency can target multiple microarchitectures for the same arch. For instance both
binname-linux-armv5andbinname-linux-armv6.Considerations
Systems
Currently a system is "os/arch". I think we will need to expand this to "os/arch[/microarch]" with unspecified microarch defaulting to go's default when unspecified. So
linux/arm/v5will downloadbinname-linux-armv5while bothlinux/armandlinux/arm/v6will downloadbinname-linux-armv6.Multiple types of microarchitecture.
Go defines microarchitecture with different variables depending on the GOARCH. Those vars are currently:
Because no arch has more than one var, we may be able to have one template var for all archs. Something like
{{ .microArch }}. We should also populate{{ .go386 }},{{ .goarm }}, etc.This assumes there will never by a single GOARCH that can have multiple microarchs. I think that's a safe assumption. If this changes, we may need to make a breaking change.
add-by-*No more details...just need to remember to consider
dependency add-by-urlsanddependency add-by-github-release.