Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

100% accurate classification of target host triples (i.e. linux-unknown-aarch64-musl) #756

Merged
merged 13 commits into from
Jan 2, 2024

Conversation

coolaj86
Copy link
Member

@coolaj86 coolaj86 commented Nov 14, 2023

This is a "Trust me bro" PR. There are too many changes to test them all exhaustively, but I've tested as exhaustively as I can - especially with the lint-xyz files - and it's been in prod where 1 bug and 1 backwards-compat issue have been discovered.

Any other issues will just have to be fixed.

Summary 🚀

https://next.webinstall.dev/ can reliably detect, classify, sort, and match all known user agent strings, build asset names, and version identifiers.

Tasks

In tandem with https://github.com/webinstall/webi-build-classifier.

  • Sort builds by triplet
  • User-Agent to canonical triplet
  • Canonical triplet to acceptable triplets
  • Return matches, sorted by version and extension
  • cold-boot cache (don't factor in stale time)
  • warm lazy refresh (always return existing data, update in bg)
  • hourly random refreshes
  • [enhancement] Prompt for Rosetta on fresh M1 macs #609

ARM Notes

the h stands for hard float. the l stands for little endian. - https://archlinuxarm.org/forum/viewtopic.php?t=5374

# Ubuntu RPi
uname -srm
Linux 5.4.0-1098-raspi aarch64
# RPi 3 Legacy
uname -srm
# Linux 6.1.21-v7+ armv7l

cat /etc/issue
# Raspbian GNU/Linux 11 \n \l
dpkg --print-architecture
# arm64

sudo dpkg --add-architecture armhf
dpkg --print-foreign-architectures
# armhf

# fetch armhf stuff
sudo apt update
sudo apt-get install libc6:armhf

Notes

Re: #755, more particularly #755 (comment)

Matches

  • 117 terms for OS, Arch, Vendor, Libc, and Extension in a total of
  • 819 permutations
  • across 33,000+ assets, of which 26,470 are builds across 84 binary-release packages

Processes with

  • 0 unknown terms
  • 0 miscategorized builds

Cache Fetch Time

The recorded times are from a 16-core instance. It was also tested on an M1 Max, which was a little faster (possibly due to single-thread time).

Somewhere around 2-cores and 20 simultaneous requests the speed seems to be more dependent on network response time than the test conditions.

1 request at a time

________________________________________________________
Executed in   69.92 secs    fish           external
   usr time   12.47 secs    1.42 millis   12.47 secs
   sys time    4.79 secs    0.48 millis    4.79 secs

5 requests at a time

________________________________________________________
Executed in   18.53 secs    fish           external
   usr time   10.83 secs   21.97 millis   10.80 secs
   sys time    4.55 secs    4.59 millis    4.55 secs

10 requests at a time

________________________________________________________
Executed in   12.85 secs    fish           external
   usr time    9.80 secs    0.00 millis    9.80 secs
   sys time    4.38 secs    1.85 millis    4.38 secs

20 requests at a time

________________________________________________________
Executed in    9.99 secs    fish           external
   usr time    7.89 secs    1.46 millis    7.89 secs
   sys time    4.25 secs    0.52 millis    4.25 secs

25 requests at a time (1-core)

________________________________________________________
Executed in   14.68 secs    fish           external
   usr time    4.61 secs  923.00 micros    4.60 secs
   sys time    3.80 secs  326.00 micros    3.80 secs

25 requests at a time (2-core)

________________________________________________________
Executed in   10.56 secs    fish           external
   usr time    5.39 secs    0.00 millis    5.39 secs
   sys time    3.65 secs    2.08 millis    3.65 secs

25 requests at a time (2x 1/2-core)

________________________________________________________
Executed in    8.71 secs    fish           external
   usr time    5.11 secs    0.00 millis    5.11 secs
   sys time    3.83 secs    1.38 millis    3.83 secs

25 requests at a time (2x 1/4-core)

________________________________________________________
Executed in    8.92 secs    fish           external
   usr time    5.55 secs    2.19 millis    5.55 secs
   sys time    3.97 secs    0.00 millis    3.97 secs

25 requests at a time (16-core)

________________________________________________________
Executed in    9.24 secs    fish           external
   usr time    8.64 secs    1.46 millis    8.64 secs
   sys time    4.26 secs    0.52 millis    4.26 secs

100 requests at a time

________________________________________________________
Executed in   10.56 secs    fish           external
   usr time    7.55 secs  996.00 micros    7.55 secs
   sys time    3.25 secs  342.00 micros    3.25 secs

@coolaj86
Copy link
Member Author

coolaj86 commented Nov 14, 2023

For Reference

All 115 patterns of classifiable terms for OS, Arch, Vendor, Libc, Channel, and Extension:

10 12 32 386 5 6 64 8 Alpine Darwin Linux MacOS NAME VER Windows WindowsX86 aarch64 aix all alpine amd64 amd64v2 android androideabi app apple arm arm32 arm6 arm64 arm7 armel armhf armv5 armv6 armv6hf armv6kz armv6l armv7 armv7a armv7l beta bit darwin debug dev dmg dragonfly exe freebsd freebsd12 git gnu gnueabihf i386 i686 ia32 illumos linux linux32 linux64 loong64 m1 mac mac32 mac64 macOS macos macos10 mips mips64 mips64el mips64le mips64r6 mips64r6el mipsel mipsle mipsr6 mipsr6el msi msvc musl musleabihf netbsd openbsd osx osx10 osx64 pc pkg plan9 powerpc powerpc64le ppc64 ppc64el ppc64le riscv64 s390x sh solaris solaris11 stable static universal unknown v1 v2 v6 v7 win win32 win64 windows x64 x86

All 659 target host triple permutations, for reference:

(that's across 26,470 installable bundles, after discarding 6,500+ non-build / anomalous files / packages)

{NAME}
{NAME}-aarch64-apple-darwin
{NAME}-aarch64-pc-windows-msvc
{NAME}-aarch64-unknown-linux-gnu
{NAME}-aarch64-unknown-linux-musl
{NAME}-alpine-aarch64
{NAME}-alpine-x86_64
{NAME}-android-arm64
{NAME}-armv7-unknown-linux-gnueabihf
{NAME}-armv7-unknown-linux-musleabihf
{NAME}-darwin
{NAME}-darwin-386
{NAME}-darwin-aarch64
{NAME}-darwin-amd64
{NAME}-darwin-arm64
{NAME}-darwin-x64
{NAME}-darwin-x86_64
{NAME}-dragonfly-amd64
{NAME}-dragonfly-amd64-{VER}
{NAME}-freebsd-386
{NAME}-freebsd-386-{VER}
{NAME}-freebsd-amd64
{NAME}-freebsd-amd64-{VER}
{NAME}-freebsd-arm
{NAME}-freebsd-arm-{VER}
{NAME}-freebsd-arm64-{VER}
{NAME}-freebsd-x64
{NAME}-illumos-amd64
{NAME}-illumos-amd64-{VER}
{NAME}-linux-386
{NAME}-linux-386-{VER}
{NAME}-linux-aarch64
{NAME}-linux-aarch64-{VER}
{NAME}-linux-amd64
{NAME}-linux-amd64-{VER}
{NAME}-linux-arm
{NAME}-linux-arm-{VER}
{NAME}-linux-arm64
{NAME}-linux-arm64-{VER}
{NAME}-linux-armel
{NAME}-linux-armhf
{NAME}-linux-armv7a-{VER}
{NAME}-linux-i386
{NAME}-linux-ia32
{NAME}-linux-loong64-{VER}
{NAME}-linux-mips
{NAME}-linux-mips-{VER}
{NAME}-linux-mips64
{NAME}-linux-mips64-{VER}
{NAME}-linux-mips64el
{NAME}-linux-mips64le
{NAME}-linux-mips64le-{VER}
{NAME}-linux-mips64r6
{NAME}-linux-mips64r6el
{NAME}-linux-mipsel
{NAME}-linux-mipsle
{NAME}-linux-mipsle-{VER}
{NAME}-linux-mipsr6
{NAME}-linux-mipsr6el
{NAME}-linux-powerpc
{NAME}-linux-powerpc-{VER}
{NAME}-linux-powerpc64le-{VER}
{NAME}-linux-ppc64
{NAME}-linux-ppc64-{VER}
{NAME}-linux-ppc64el
{NAME}-linux-ppc64le
{NAME}-linux-ppc64le-{VER}
{NAME}-linux-riscv64
{NAME}-linux-riscv64-{VER}
{NAME}-linux-s390x
{NAME}-linux-s390x-{VER}
{NAME}-linux-x64
{NAME}-linux-x86
{NAME}-linux-x86-{VER}
{NAME}-linux-x86_64
{NAME}-linux-x86_64-static
{NAME}-linux-x86_64-{VER}
{NAME}-linux32
{NAME}-linux64
{NAME}-macos-aarch64-{VER}
{NAME}-macos-amd64
{NAME}-macos-amd64-{VER}
{NAME}-macos-arm64
{NAME}-macos-arm64-{VER}
{NAME}-macos-universal-{VER}
{NAME}-macos-x86_64-{VER}
{NAME}-netbsd-386
{NAME}-netbsd-386-{VER}
{NAME}-netbsd-amd64
{NAME}-netbsd-amd64-{VER}
{NAME}-netbsd-arm
{NAME}-netbsd-arm-{VER}
{NAME}-netbsd-arm64-{VER}
{NAME}-openbsd-386
{NAME}-openbsd-386-{VER}
{NAME}-openbsd-amd64
{NAME}-openbsd-amd64-{VER}
{NAME}-openbsd-arm
{NAME}-openbsd-arm-{VER}
{NAME}-openbsd-arm64
{NAME}-openbsd-arm64-{VER}
{NAME}-osx-amd64
{NAME}-osx-x86
{NAME}-osx-x86_64
{NAME}-solaris-amd64
{NAME}-solaris-amd64-{VER}
{NAME}-solaris11-32
{NAME}-solaris11-64
{NAME}-win-aarch64
{NAME}-win-x64
{NAME}-win32-ia32
{NAME}-win32-x64
{NAME}-win32.exe
{NAME}-win64.exe
{NAME}-windows-386
{NAME}-windows-386-{VER}
{NAME}-windows-aarch64-{VER}
{NAME}-windows-amd64
{NAME}-windows-amd64-{VER}
{NAME}-windows-amd64.exe
{NAME}-windows-arm-{VER}
{NAME}-windows-arm64-{VER}
{NAME}-windows-i386.exe
{NAME}-windows-x86-{VER}
{NAME}-windows-x86_64-{VER}
{NAME}-x86_64-apple-darwin
{NAME}-x86_64-pc-windows-msvc
{NAME}-x86_64-pc-windows-msvc.exe
{NAME}-x86_64-unknown-linux-gnu
{NAME}-x86_64-unknown-linux-musl
{NAME}-{VER}
{NAME}-{VER}-32-bit
{NAME}-{VER}-64-bit
{NAME}-{VER}-aarch64-apple-darwin
{NAME}-{VER}-aarch64-linux-android
{NAME}-{VER}-aarch64-linux-gnu
{NAME}-{VER}-aarch64-pc-windows-msvc
{NAME}-{VER}-aarch64-unknown-linux-gnu
{NAME}-{VER}-aarch64-unknown-linux-musl
{NAME}-{VER}-alpine-x86_64
{NAME}-{VER}-arm-linux-gnueabihf
{NAME}-{VER}-arm-linux-gnueabihf-debug
{NAME}-{VER}-arm-unknown-linux-gnueabihf
{NAME}-{VER}-arm-unknown-linux-musleabihf
{NAME}-{VER}-arm64-apple-darwin
{NAME}-{VER}-arm64-apple-darwin.dmg
{NAME}-{VER}-arm64-macOS
{NAME}-{VER}-arm64-macOS.pkg
{NAME}-{VER}-armv7-linux-androideabi
{NAME}-{VER}-armv7-unknown-linux-gnueabihf
{NAME}-{VER}-armv7-unknown-linux-musleabihf
{NAME}-{VER}-darwin-10.12-amd64
{NAME}-{VER}-darwin-10.12-arm64
{NAME}-{VER}-darwin-amd64
{NAME}-{VER}-darwin-amd64_v2
{NAME}-{VER}-darwin-arm64
{NAME}-{VER}-darwin-x86_64
{NAME}-{VER}-darwin_amd64
{NAME}-{VER}-darwin_arm64
{NAME}-{VER}-freebsd-386
{NAME}-{VER}-freebsd-amd64
{NAME}-{VER}-freebsd-arm
{NAME}-{VER}-freebsd-arm-v6
{NAME}-{VER}-freebsd-arm-v7
{NAME}-{VER}-freebsd12-amd64
{NAME}-{VER}-freebsd_amd64
{NAME}-{VER}-i686-apple-darwin
{NAME}-{VER}-i686-pc-windows-gnu
{NAME}-{VER}-i686-pc-windows-msvc
{NAME}-{VER}-i686-unknown-linux-gnu
{NAME}-{VER}-i686-unknown-linux-musl
{NAME}-{VER}-linux-386
{NAME}-{VER}-linux-aarch64
{NAME}-{VER}-linux-aarch64.sh
{NAME}-{VER}-linux-amd64
{NAME}-{VER}-linux-amd64_v1
{NAME}-{VER}-linux-arm
{NAME}-{VER}-linux-arm-5
{NAME}-{VER}-linux-arm-6
{NAME}-{VER}-linux-arm-v6
{NAME}-{VER}-linux-arm-v7
{NAME}-{VER}-linux-arm32
{NAME}-{VER}-linux-arm64
{NAME}-{VER}-linux-armv5
{NAME}-{VER}-linux-armv6
{NAME}-{VER}-linux-armv7
{NAME}-{VER}-linux-ia32
{NAME}-{VER}-linux-linux-musl-x64
{NAME}-{VER}-linux-mips
{NAME}-{VER}-linux-mipsle
{NAME}-{VER}-linux-musl-x64
{NAME}-{VER}-linux-x64
{NAME}-{VER}-linux-x64-{NAME}
{NAME}-{VER}-linux-x86_64
{NAME}-{VER}-linux-x86_64.sh
{NAME}-{VER}-linux-{NAME}
{NAME}-{VER}-linux_amd64
{NAME}-{VER}-linux_arm64
{NAME}-{VER}-linux_armv5
{NAME}-{VER}-linux_armv6
{NAME}-{VER}-linux_armv7
{NAME}-{VER}-linux_loong64
{NAME}-{VER}-linux_ppc64le
{NAME}-{VER}-linux_s390x
{NAME}-{VER}-macOS
{NAME}-{VER}-macOS.pkg
{NAME}-{VER}-macos-amd64
{NAME}-{VER}-macos-arm64
{NAME}-{VER}-macos-universal
{NAME}-{VER}-macos-universal.dmg
{NAME}-{VER}-macos-x64
{NAME}-{VER}-macos10.10-universal
{NAME}-{VER}-macos10.10-universal.dmg
{NAME}-{VER}-netbsd-386
{NAME}-{VER}-netbsd-amd64
{NAME}-{VER}-netbsd-arm
{NAME}-{VER}-netbsd-arm-v6
{NAME}-{VER}-netbsd-arm-v7
{NAME}-{VER}-openbsd-386
{NAME}-{VER}-openbsd-amd64
{NAME}-{VER}-openbsd_amd64
{NAME}-{VER}-osx-amd64
{NAME}-{VER}-osx-arm64
{NAME}-{VER}-osx-x64
{NAME}-{VER}-osx-{NAME}
{NAME}-{VER}-osx.dmg
{NAME}-{VER}-osx64
{NAME}-{VER}-plan9-386
{NAME}-{VER}-plan9-amd64
{NAME}-{VER}-powerpc64le-unknown-linux-gnu
{NAME}-{VER}-riscv64-linux-gnu
{NAME}-{VER}-s390x-unknown-linux-gnu
{NAME}-{VER}-solaris-amd64
{NAME}-{VER}-win-arm32
{NAME}-{VER}-win-arm64
{NAME}-{VER}-win-x64
{NAME}-{VER}-win-x64.msi
{NAME}-{VER}-win-x86
{NAME}-{VER}-win-x86.msi
{NAME}-{VER}-win64
{NAME}-{VER}-windows
{NAME}-{VER}-windows-386
{NAME}-{VER}-windows-amd64
{NAME}-{VER}-windows-amd64.debug
{NAME}-{VER}-windows-arm64
{NAME}-{VER}-windows-arm64.msi
{NAME}-{VER}-windows-i386
{NAME}-{VER}-windows-i386.msi
{NAME}-{VER}-windows-ia32
{NAME}-{VER}-windows-x64
{NAME}-{VER}-windows-x86_64
{NAME}-{VER}-windows-x86_64.msi
{NAME}-{VER}-windows_amd64
{NAME}-{VER}-windows_arm64
{NAME}-{VER}-windows_armv5
{NAME}-{VER}-windows_armv6
{NAME}-{VER}-windows_armv7
{NAME}-{VER}-windows{NAME}386.exe
{NAME}-{VER}-windows{NAME}amd64.exe
{NAME}-{VER}-x86_64-apple-darwin
{NAME}-{VER}-x86_64-apple-darwin.dmg
{NAME}-{VER}-x86_64-linux
{NAME}-{VER}-x86_64-linux-gnu
{NAME}-{VER}-x86_64-macOS
{NAME}-{VER}-x86_64-macOS.pkg
{NAME}-{VER}-x86_64-osx
{NAME}-{VER}-x86_64-pc-windows-gnu
{NAME}-{VER}-x86_64-pc-windows-gnu.exe
{NAME}-{VER}-x86_64-pc-windows-msvc
{NAME}-{VER}-x86_64-pc-windows-msvc.exe
{NAME}-{VER}-x86_64-unknown-freebsd
{NAME}-{VER}-x86_64-unknown-linux-gnu
{NAME}-{VER}-x86_64-unknown-linux-musl
{NAME}-{VER}-x86_64-unknown-netbsd
{NAME}-{VER}.app
{NAME}-{VER}.darwin.x86_64
{NAME}-{VER}.linux.aarch64
{NAME}-{VER}.linux.armv6hf
{NAME}-{VER}.linux.x86_64
{NAME}-{VER}.x86_64-apple-darwin
{NAME}-{VER}.x86_64-pc-windows-msvc
{NAME}-{VER}.x86_64-unknown-linux-gnu
{NAME}.app
{NAME}.dmg
{NAME}.git
{NAME}.{VER}-.x86_64-apple-darwin
{NAME}.{VER}-.x86_64-pc-windows-msvc
{NAME}.{VER}-.x86_64-unknown-linux-gnu
{NAME}/{VER}/{NAME}
{NAME}Alpine
{NAME}Linux
{NAME}MacOS
{NAME}Windows
{NAME}WindowsX86
{NAME}_Darwin_all
{NAME}_Darwin_amd64
{NAME}_Darwin_arm64
{NAME}_Darwin_x86_64
{NAME}_Linux_amd64
{NAME}_Linux_arm
{NAME}_Linux_arm64
{NAME}_Linux_armv7
{NAME}_Linux_i386
{NAME}_Linux_ppc64
{NAME}_Linux_ppc64le
{NAME}_Linux_s390x
{NAME}_Linux_x86_64
{NAME}_Windows_amd64
{NAME}_Windows_arm
{NAME}_Windows_arm64
{NAME}_Windows_armv7
{NAME}_Windows_i386
{NAME}_Windows_x86_64
{NAME}_aix_ppc64_{VER}
{NAME}_darwin_amd64
{NAME}_darwin_amd64_{VER}
{NAME}_darwin_arm64
{NAME}_darwin_arm64_{VER}
{NAME}_dragonfly_amd64_{VER}
{NAME}_freebsd_386
{NAME}_freebsd_386_{VER}
{NAME}_freebsd_amd64
{NAME}_freebsd_amd64_{VER}
{NAME}_freebsd_arm
{NAME}_freebsd_arm64_{VER}
{NAME}_freebsd_arm7
{NAME}_freebsd_arm_{VER}
{NAME}_linux_386
{NAME}_linux_386_{VER}
{NAME}_linux_amd64
{NAME}_linux_amd64_{VER}
{NAME}_linux_arm
{NAME}_linux_arm64
{NAME}_linux_arm64_{VER}
{NAME}_linux_arm7
{NAME}_linux_arm_{VER}
{NAME}_linux_mips
{NAME}_linux_mips64
{NAME}_linux_mips64_{VER}
{NAME}_linux_mips64le
{NAME}_linux_mips64le_{VER}
{NAME}_linux_mips_{VER}
{NAME}_linux_mipsle
{NAME}_linux_mipsle_{VER}
{NAME}_linux_ppc64
{NAME}_linux_ppc64_{VER}
{NAME}_linux_ppc64le
{NAME}_linux_ppc64le_{VER}
{NAME}_linux_riscv64_{VER}
{NAME}_linux_s390x
{NAME}_linux_s390x_{VER}
{NAME}_linux_{VER}-beta
{NAME}_linux_{VER}-dev
{NAME}_linux_{VER}-stable
{NAME}_mac_amd64
{NAME}_macos_{VER}-beta
{NAME}_macos_{VER}-dev
{NAME}_macos_{VER}-stable
{NAME}_netbsd_386
{NAME}_netbsd_386_{VER}
{NAME}_netbsd_amd64
{NAME}_netbsd_amd64_{VER}
{NAME}_netbsd_arm
{NAME}_netbsd_arm64_{VER}
{NAME}_netbsd_arm_{VER}
{NAME}_openbsd_386
{NAME}_openbsd_386_{VER}
{NAME}_openbsd_amd64
{NAME}_openbsd_amd64_{VER}
{NAME}_openbsd_arm64_{VER}
{NAME}_openbsd_arm_{VER}
{NAME}_openbsd_mips64_{VER}
{NAME}_solaris_amd64_{VER}
{NAME}_windows_386
{NAME}_windows_386.exe
{NAME}_windows_386_{VER}
{NAME}_windows_amd64
{NAME}_windows_amd64.exe
{NAME}_windows_amd64_{VER}
{NAME}_windows_arm64_{VER}
{NAME}_windows_arm_{VER}
{NAME}_windows_{VER}-beta
{NAME}_windows_{VER}-dev
{NAME}_windows_{VER}-stable
{NAME}_{VER}_Darwin_arm64
{NAME}_{VER}_Darwin_x86_64
{NAME}_{VER}_Linux_arm64
{NAME}_{VER}_Linux_armv6
{NAME}_{VER}_Linux_armv7
{NAME}_{VER}_Linux_i386
{NAME}_{VER}_Linux_x86_64
{NAME}_{VER}_Windows_arm64
{NAME}_{VER}_Windows_armv6
{NAME}_{VER}_Windows_armv7
{NAME}_{VER}_Windows_i386
{NAME}_{VER}_Windows_x86_64
{NAME}_{VER}_darwin-universal
{NAME}_{VER}_darwin_386
{NAME}_{VER}_darwin_aarch64
{NAME}_{VER}_darwin_all
{NAME}_{VER}_darwin_amd64
{NAME}_{VER}_darwin_amd64v2
{NAME}_{VER}_darwin_arm64
{NAME}_{VER}_darwin_x86-64
{NAME}_{VER}_darwin_x86_64
{NAME}_{VER}_dragonfly-amd64
{NAME}_{VER}_freebsd-amd64
{NAME}_{VER}_freebsd_386
{NAME}_{VER}_freebsd_aarch64
{NAME}_{VER}_freebsd_amd64
{NAME}_{VER}_freebsd_amd64v2
{NAME}_{VER}_freebsd_arm
{NAME}_{VER}_freebsd_arm64
{NAME}_{VER}_freebsd_armv6
{NAME}_{VER}_freebsd_armv7
{NAME}_{VER}_freebsd_i386
{NAME}_{VER}_freebsd_x86-64
{NAME}_{VER}_freebsd_x86_64
{NAME}_{VER}_linux-amd64
{NAME}_{VER}_linux-arm
{NAME}_{VER}_linux-arm64
{NAME}_{VER}_linux_386
{NAME}_{VER}_linux_aarch64
{NAME}_{VER}_linux_amd64
{NAME}_{VER}_linux_amd64v2
{NAME}_{VER}_linux_arm
{NAME}_{VER}_linux_arm64
{NAME}_{VER}_linux_armhf
{NAME}_{VER}_linux_armv5
{NAME}_{VER}_linux_armv6
{NAME}_{VER}_linux_armv7
{NAME}_{VER}_linux_i386
{NAME}_{VER}_linux_mips
{NAME}_{VER}_linux_mips64
{NAME}_{VER}_linux_mips64le
{NAME}_{VER}_linux_mipsle
{NAME}_{VER}_linux_ppc64le
{NAME}_{VER}_linux_riscv64
{NAME}_{VER}_linux_s390x
{NAME}_{VER}_linux_x86-64
{NAME}_{VER}_linux_x86_64
{NAME}_{VER}_macOS_386
{NAME}_{VER}_macOS_amd64
{NAME}_{VER}_macOS_arm64
{NAME}_{VER}_mac_amd64
{NAME}_{VER}_mac_arm64
{NAME}_{VER}_netbsd-amd64
{NAME}_{VER}_netbsd_386
{NAME}_{VER}_netbsd_amd64
{NAME}_{VER}_netbsd_arm
{NAME}_{VER}_openbsd-amd64
{NAME}_{VER}_openbsd_386
{NAME}_{VER}_openbsd_amd64
{NAME}_{VER}_openbsd_arm64
{NAME}_{VER}_openbsd_armv6
{NAME}_{VER}_solaris-amd64
{NAME}_{VER}_solaris_amd64
{NAME}_{VER}_windows-amd64
{NAME}_{VER}_windows-arm64
{NAME}_{VER}_windows_386
{NAME}_{VER}_windows_386.exe
{NAME}_{VER}_windows_386.msi
{NAME}_{VER}_windows_amd64
{NAME}_{VER}_windows_amd64.exe
{NAME}_{VER}_windows_amd64.msi
{NAME}_{VER}_windows_amd64v2
{NAME}_{VER}_windows_arm64
{NAME}_{VER}_windows_armhf
{NAME}_{VER}_windows_armv5
{NAME}_{VER}_windows_armv6
{NAME}_{VER}_windows_armv7
{NAME}_{VER}_windows_i386
{NAME}_{VER}_windows_x86-64
{NAME}_{VER}_windows_x86_64
{NAME}_{VER}{NAME}_{VER}_darwin_amd64
{NAME}_{VER}{NAME}_{VER}_freebsd_386
{NAME}_{VER}{NAME}_{VER}_freebsd_amd64
{NAME}_{VER}{NAME}_{VER}_freebsd_arm
{NAME}_{VER}{NAME}_{VER}_linux_386
{NAME}_{VER}{NAME}_{VER}_linux_amd64
{NAME}_{VER}{NAME}_{VER}_linux_arm
{NAME}_{VER}{NAME}_{VER}_openbsd_386
{NAME}_{VER}{NAME}_{VER}_openbsd_amd64
{NAME}_{VER}{NAME}_{VER}_solaris_amd64
{NAME}_{VER}{NAME}_{VER}_windows_386
{NAME}_{VER}{NAME}_{VER}_windows_amd64
{NAME}{NAME}-{VER}.dmg
{NAME}{VER}.aix-ppc64
{NAME}{VER}.darwin-386-osx10.6
{NAME}{VER}.darwin-386-osx10.6.pkg
{NAME}{VER}.darwin-386-osx10.8
{NAME}{VER}.darwin-386-osx10.8.pkg
{NAME}{VER}.darwin-amd64
{NAME}{VER}.darwin-amd64-osx10.6
{NAME}{VER}.darwin-amd64-osx10.6.pkg
{NAME}{VER}.darwin-amd64-osx10.8
{NAME}{VER}.darwin-amd64-osx10.8.pkg
{NAME}{VER}.darwin-amd64.pkg
{NAME}{VER}.darwin-arm64
{NAME}{VER}.darwin-arm64.pkg
{NAME}{VER}.dragonfly-amd64
{NAME}{VER}.freebsd-386
{NAME}{VER}.freebsd-amd64
{NAME}{VER}.freebsd-arm
{NAME}{VER}.freebsd-arm64
{NAME}{VER}.freebsd-riscv64
{NAME}{VER}.illumos-amd64
{NAME}{VER}.linux-386
{NAME}{VER}.linux-amd64
{NAME}{VER}.linux-arm
{NAME}{VER}.linux-arm6
{NAME}{VER}.linux-arm64
{NAME}{VER}.linux-armv6l
{NAME}{VER}.linux-loong64
{NAME}{VER}.linux-mips
{NAME}{VER}.linux-mips64
{NAME}{VER}.linux-mips64le
{NAME}{VER}.linux-mipsle
{NAME}{VER}.linux-ppc64
{NAME}{VER}.linux-ppc64le
{NAME}{VER}.linux-riscv64
{NAME}{VER}.linux-s390x
{NAME}{VER}.netbsd-386
{NAME}{VER}.netbsd-amd64
{NAME}{VER}.netbsd-arm
{NAME}{VER}.netbsd-arm64
{NAME}{VER}.openbsd-386
{NAME}{VER}.openbsd-amd64
{NAME}{VER}.openbsd-arm
{NAME}{VER}.openbsd-arm64
{NAME}{VER}.plan9-386
{NAME}{VER}.plan9-amd64
{NAME}{VER}.plan9-arm
{NAME}{VER}.solaris-amd64
{NAME}{VER}.windows-386
{NAME}{VER}.windows-386.msi
{NAME}{VER}.windows-amd64
{NAME}{VER}.windows-amd64.msi
{NAME}{VER}.windows-arm
{NAME}{VER}.windows-arm.msi
{NAME}{VER}.windows-arm64
{NAME}{VER}.windows-arm64.msi
{VER}/{NAME}-freebsd-x86_64-{VER}
{VER}/{NAME}-linux-aarch64-{VER}
{VER}/{NAME}-linux-armv6kz-{VER}
{VER}/{NAME}-linux-armv7a-{VER}
{VER}/{NAME}-linux-i386-{VER}
{VER}/{NAME}-linux-powerpc-{VER}
{VER}/{NAME}-linux-powerpc64le-{VER}
{VER}/{NAME}-linux-riscv64-{VER}
{VER}/{NAME}-linux-x86-{VER}
{VER}/{NAME}-linux-x86_64-{VER}
{VER}/{NAME}-macos-aarch64-{VER}
{VER}/{NAME}-macos-x86_64-{VER}
{VER}/{NAME}-win64-{VER}
{VER}/{NAME}-windows-aarch64-{VER}
{VER}/{NAME}-windows-i386-{VER}
{VER}/{NAME}-windows-x86-{VER}
{VER}/{NAME}-windows-x86_64-{VER}
{VER}/{NAME}-{VER}-aix-ppc64
{VER}/{NAME}-{VER}-darwin-arm64
{VER}/{NAME}-{VER}-darwin-x64
{VER}/{NAME}-{VER}-darwin-x64.pkg
{VER}/{NAME}-{VER}-linux-arm64
{VER}/{NAME}-{VER}-linux-armv6l
{VER}/{NAME}-{VER}-linux-armv7l
{VER}/{NAME}-{VER}-linux-loong64
{VER}/{NAME}-{VER}-linux-ppc64le
{VER}/{NAME}-{VER}-linux-riscv64
{VER}/{NAME}-{VER}-linux-s390x
{VER}/{NAME}-{VER}-linux-x64
{VER}/{NAME}-{VER}-linux-x64-musl
{VER}/{NAME}-{VER}-linux-x86
{VER}/{NAME}-{VER}-win-arm64
{VER}/{NAME}-{VER}-win-x64
{VER}/{NAME}-{VER}-win-x86
{VER}/{NAME}-{VER}-x64.msi
{VER}/{NAME}-{VER}-x86.msi
{VER}/{NAME}_linux32
{VER}/{NAME}_linux64
{VER}/{NAME}_mac32
{VER}/{NAME}_mac64
{VER}/{NAME}_mac64_m1
{VER}/{NAME}_mac_arm64
{VER}/{NAME}_win32
{VER}/{NAME}_win32_debug

@coolaj86 coolaj86 changed the base branch from main to ref-release-cleanup November 14, 2023 19:10
@coolaj86 coolaj86 force-pushed the list-releases branch 3 times, most recently from 0f951de to ac72c9a Compare November 14, 2023 20:29
Base automatically changed from ref-release-cleanup to main November 14, 2023 20:58
@coolaj86
Copy link
Member Author

coolaj86 commented Nov 16, 2023

Update

  • Permutations
  • Canonical Arches
  • Canonical OSes
  • Canonical Libcs

Canonical Arches

25 distinct architectures

ANYARCH
aarch64
armel
armhf
armv6
armv7
armv7a
loong64
mips
mips64
mips64el
mips64r6
mips64r6el
mipsel
mipsr6
mipsr6el
ppc
ppc64
ppc64le
riscv64
s390x
wasm32
x86
x86_64
x86_64_v2
x86_64_v3

Canonical OSes

13 distinct OSes
(plan9 is conceptual, wasi is a js target)

ANYOS
aix
android
darwin
dragonfly
freebsd
illumos
linux
netbsd
openbsd
plan9
posix_2017
solaris
wasi
windows

Canonical Libcs

5 distinct libcs

gnu
bionic # android
msvc
musl # not truly static
none # static

Permunations

Down to 85 distinct permutations:

ANYARCH-unknown-ANYOS-none      # i.e. vimscript
ANYARCH-unknown-posix_2017-none # i.e. sh (posix shell command language)
aarch64-apple-darwin-none
aarch64-pc-windows-msvc
aarch64-pc-windows-none
aarch64-unknown-android-bionic
aarch64-unknown-freebsd-none
aarch64-unknown-linux-gnu
aarch64-unknown-linux-none
aarch64-unknown-netbsd-none
aarch64-unknown-openbsd-none
armel-pc-windows-none
armel-unknown-linux-none
armhf-pc-windows-none
armhf-unknown-freebsd-none
armhf-unknown-linux-gnu
armhf-unknown-linux-none
armhf-unknown-netbsd-none
armhf-unknown-openbsd-none
armv6-pc-windows-none
armv6-unknown-freebsd-none
armv6-unknown-linux-gnu
armv6-unknown-linux-none
armv6-unknown-netbsd-none
armv6-unknown-openbsd-none
armv6-unknown-plan9-none
armv7-pc-windows-none
armv7-unknown-android-bionic
armv7-unknown-freebsd-none
armv7-unknown-linux-gnu
armv7-unknown-linux-none
armv7-unknown-netbsd-none
armv7a-unknown-linux-none
loong64-unknown-linux-gnu
loong64-unknown-linux-none
mips-unknown-linux-none
mips64-unknown-linux-none
mips64-unknown-openbsd-none
mips64el-unknown-linux-none
mips64r6-unknown-linux-none
mips64r6el-unknown-linux-none
mipsel-unknown-linux-none
mipsr6-unknown-linux-none
mipsr6el-unknown-linux-none
ppc-unknown-linux-none
ppc64-unknown-aix-none
ppc64-unknown-linux-none
ppc64le-unknown-linux-gnu
ppc64le-unknown-linux-none
riscv64-unknown-freebsd-none
riscv64-unknown-linux-gnu
riscv64-unknown-linux-none
s390x-unknown-linux-gnu
s390x-unknown-linux-none
wasm32-unknown-wasi-none
x86-apple-darwin-none
x86-pc-windows-msvc
x86-pc-windows-none
x86-unknown-freebsd-none
x86-unknown-linux-gnu
x86-unknown-linux-none
x86-unknown-netbsd-none
x86-unknown-openbsd-none
x86-unknown-plan9-none
x86-unknown-solaris-none
x86-unknown-windows-none
x86_64-apple-darwin-none
x86_64-pc-windows-msvc
x86_64-pc-windows-none
x86_64-unknown-darwin-none
x86_64-unknown-dragonfly-none
x86_64-unknown-freebsd-none
x86_64-unknown-illumos-none
x86_64-unknown-linux-gnu
x86_64-unknown-linux-musl
x86_64-unknown-linux-none
x86_64-unknown-netbsd-none
x86_64-unknown-openbsd-none
x86_64-unknown-plan9-none
x86_64-unknown-solaris-none
x86_64-unknown-windows-none
x86_64_v2-apple-darwin-none
x86_64_v2-pc-windows-none
x86_64_v2-unknown-freebsd-none
x86_64_v2-unknown-linux-none

@coolaj86 coolaj86 requested a review from jojobyte December 12, 2023 10:44
@coolaj86 coolaj86 force-pushed the list-releases branch 6 times, most recently from 6e3eb1d to 51ede48 Compare December 31, 2023 08:54
Base automatically changed from fix-various to main January 2, 2024 19:29
@coolaj86 coolaj86 merged commit 11e1bf9 into main Jan 2, 2024
3 checks passed
@coolaj86 coolaj86 deleted the list-releases branch January 2, 2024 23:01
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.

3 participants