feat: add script for fetching LLVM asset list

This commit is contained in:
Amin Yahyaabadi 2024-09-07 01:59:25 -07:00
parent a91fdcafff
commit f918fcc1fc
No known key found for this signature in database
GPG Key ID: F52AF77F636088F0
14 changed files with 2251 additions and 4 deletions

2
.gitignore vendored
View File

@ -20,3 +20,5 @@ exe/
coverage
.turbo
/src/llvm/assets/

View File

@ -11,7 +11,9 @@ ignorePaths:
- "**/node_modules/"
- .vscode/extensions.json
- patches/*.patch
- "**/github_brechtsanders_winlibs_mingw.json"
- "**/github_*.json"
- "**/llvm_org_releases.json"
words:
- aarch
- aminya

File diff suppressed because one or more lines are too long

1
dist/legacy/llvm_org_releases.json vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
dist/modern/llvm_org_releases.json vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -76,6 +76,7 @@
"@types/cross-spawn": "^6.0.6",
"@types/escape-quotes": "~1.0.0",
"@types/eslint": "^8.56.12",
"@types/he": "^1.2.3",
"@types/iarna__toml": "~2.0.5",
"@types/jest": "^29.5.12",
"@types/memoizee": "^0.4.11",
@ -100,6 +101,7 @@
"eslint-config-atomic": "^1.22.1",
"exec-powershell": "workspace:*",
"execa": "^7.2.0",
"he": "^1.2.0",
"is-url-online": "^1.5.0",
"jest": "^29.7.0",
"lefthook": "^1.7.15",

View File

@ -79,6 +79,9 @@ importers:
'@types/eslint':
specifier: ^8.56.12
version: 8.56.12
'@types/he':
specifier: ^1.2.3
version: 1.2.3
'@types/iarna__toml':
specifier: ~2.0.5
version: 2.0.5
@ -151,6 +154,9 @@ importers:
execa:
specifier: ^7.2.0
version: 7.2.0
he:
specifier: ^1.2.0
version: 1.2.0
is-url-online:
specifier: ^1.5.0
version: 1.5.0
@ -1689,6 +1695,9 @@ packages:
'@types/graceful-fs@4.1.9':
resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
'@types/he@1.2.3':
resolution: {integrity: sha512-q67/qwlxblDzEDvzHhVkwc1gzVWxaNxeyHUBF4xElrvjL11O+Ytze+1fGpBHlr/H9myiBUaUXNnNPmBHxxfAcA==}
'@types/iarna__toml@2.0.5':
resolution: {integrity: sha512-I55y+SxI0ayM4MBU6yfGJGmi4wRll6wtSeKiFYAZj+Z5Q1DVbMgBSVDYY+xQZbjIlLs/pN4fidnvR8faDrmxPg==}
@ -6884,6 +6893,8 @@ snapshots:
dependencies:
'@types/node': 12.20.55
'@types/he@1.2.3': {}
'@types/iarna__toml@2.0.5':
dependencies:
'@types/node': 12.20.55

128
src/llvm/assets-list.ts Normal file
View File

@ -0,0 +1,128 @@
import { mkdir, readFile, readdir, writeFile } from "fs/promises"
import he from "he"
import { DownloaderHelper } from "node-downloader-helper"
import JsonStringify from "safe-stable-stringify"
import { saveGitHubAssetList } from "../utils/github/fetch-assets.ts"
import { compareVersion } from "../utils/setup/version.ts"
/**
* Generate the list of all releases of a GitHub repository and save it to a json file
*/
async function main() {
// https://github.com/llvm/llvm-project/releases
await saveGitHubAssetList(
"llvm",
"llvm-project",
"./src/llvm/github_llvm_llvm-project.json",
isAssetArchive,
)
// go through https://releases.llvm.org/x.y.z and get all the assets
await fetchLLVMOrgReleases()
}
main().catch((err) => {
console.error(err)
process.exit(1)
})
function isAssetArchive(asset: string): boolean {
return asset.endsWith("tar.xz")
|| asset.endsWith("zip")
|| asset.endsWith("exe")
|| asset.endsWith("tar.gz")
}
async function fetchLLVMOrgReleases() {
const assetHTMLDir = "./src/llvm/assets/"
await fetchIndexFiles(assetHTMLDir)
const assets: Record<string, string[]> = await extractAssetsFromHTML(assetHTMLDir)
// sort the assets by version
const jsonStringify = JsonStringify.configure({
deterministic: compareVersion,
})
// write the assets to a json file
const data = jsonStringify(assets, null, 2)
await writeFile("./src/llvm/llvm_org_releases.json", data)
}
async function fetchIndexFiles(assetHTMLDir: string) {
const promises: Promise<void>[] = []
await mkdir(assetHTMLDir, { recursive: true })
for (let major = 1; major <= 9; major++) {
for (let minor = 0; minor <= 9; minor++) {
for (let patch = 0; patch <= 9; patch++) {
promises.push(fetchIndexFile(major, minor, patch, assetHTMLDir))
}
}
}
await Promise.all(promises)
return assetHTMLDir
}
async function fetchIndexFile(major: number, minor: number, patch: number, assetHTMLDir: string) {
try {
const version = `${major}.${minor}.${patch}`
const dl = new DownloaderHelper(
`https://releases.llvm.org/${version}`,
assetHTMLDir,
{
fileName: `${version}.html`,
override: {
skip: true,
},
},
)
dl.on("start", () => {
console.log(`Downloading ${version}`)
})
dl.on("error", (err) => {
console.error(`Failed to download ${version}.html: ${err}`)
})
await dl.start()
} catch (err) {
console.error(err)
}
}
async function extractAssetsFromHTML(assetHTMLDir: string) {
const assets: Record<string, string[]> = {}
const linkRegex = /href="([^"]+)"/g // match all href in the html
const indexFiles = await readdir(assetHTMLDir)
await Promise.all(indexFiles.map(async (indexFile) => {
const version = indexFile.replace(".html", "")
if (!(version in assets)) {
assets[version] = []
}
// read the html file
const body = await readFile(`${assetHTMLDir}/${indexFile}`, "utf8")
// parse the html via regex
let match: RegExpExecArray | null
// biome-ignore lint/suspicious/noAssignInExpressions: ignore
while ((match = linkRegex.exec(body)) !== null) {
const asset = match[1]
if (isAssetArchive(asset)) {
assets[version].push(he.decode(asset))
}
}
if (assets[version].length === 0) {
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
delete assets[version]
}
}))
return assets
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,574 @@
{
"9.0.0": [
"LLVM-9.0.0-win32.exe",
"LLVM-9.0.0-win64.exe",
"cfe-9.0.0.src.tar.xz",
"clang%2Bllvm-9.0.0-aarch64-linux-gnu.tar.xz",
"clang%2Bllvm-9.0.0-amd64-pc-solaris2.11.tar.xz",
"clang%2Bllvm-9.0.0-amd64-unknown-freebsd11.tar.xz",
"clang%2Bllvm-9.0.0-armv7a-linux-gnueabihf.tar.xz",
"clang%2Bllvm-9.0.0-i386-unknown-freebsd11.tar.xz",
"clang%2Bllvm-9.0.0-powerpc64le-linux-rhel-7.4.tar.xz",
"clang%2Bllvm-9.0.0-powerpc64le-linux-ubuntu-16.04.tar.xz",
"clang%2Bllvm-9.0.0-sparcv9-sun-solaris2.11.tar.xz",
"clang%2Bllvm-9.0.0-x86_64-darwin-apple.tar.xz",
"clang%2Bllvm-9.0.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz",
"clang%2Bllvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz",
"clang%2Bllvm-9.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz",
"clang%2Bllvm-9.0.0-x86_64-linux-sles11.3.tar.xz",
"clang%2Bllvm-9.0.0-x86_64-pc-linux-gnu.tar.xz",
"clang-tools-extra-9.0.0.src.tar.xz",
"clang-tools-extra_doxygen-9.0.0.tar.xz",
"clang_doxygen-9.0.0.tar.xz",
"compiler-rt-9.0.0.src.tar.xz",
"libcxx-9.0.0.src.tar.xz",
"libcxxabi-9.0.0.src.tar.xz",
"libunwind-9.0.0.src.tar.xz",
"lld-9.0.0.src.tar.xz",
"lldb-9.0.0.src.tar.xz",
"llvm-9.0.0.src.tar.xz",
"llvm_doxygen-9.0.0.tar.xz",
"openmp-9.0.0.src.tar.xz",
"polly-9.0.0.src.tar.xz",
"test-suite-9.0.0.src.tar.xz"
],
"8.0.0": [
"LLVM-8.0.0-win32.exe",
"LLVM-8.0.0-win64.exe",
"cfe-8.0.0.src.tar.xz",
"clang%2Bllvm-8.0.0-aarch64-linux-gnu.tar.xz",
"clang%2Bllvm-8.0.0-amd64-unknown-freebsd11.tar.xz",
"clang%2Bllvm-8.0.0-armv7a-linux-gnueabihf.tar.xz",
"clang%2Bllvm-8.0.0-i386-unknown-freebsd11.tar.xz",
"clang%2Bllvm-8.0.0-powerpc64le-unknown-unknown.tar.xz",
"clang%2Bllvm-8.0.0-x86_64-apple-darwin.tar.xz",
"clang%2Bllvm-8.0.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz",
"clang%2Bllvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz",
"clang%2Bllvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz",
"clang%2Bllvm-8.0.0-x86_64-linux-sles11.3.tar.xz",
"clang-tools-extra-8.0.0.src.tar.xz",
"clang-tools-extra_doxygen-8.0.0.tar.xz",
"clang_doxygen-8.0.0.tar.xz",
"compiler-rt-8.0.0.src.tar.xz",
"libcxx-8.0.0.src.tar.xz",
"libcxxabi-8.0.0.src.tar.xz",
"libunwind-8.0.0.src.tar.xz",
"lld-8.0.0.src.tar.xz",
"lldb-8.0.0.src.tar.xz",
"llvm-8.0.0.src.tar.xz",
"llvm_doxygen-8.0.0.tar.xz",
"openmp-8.0.0.src.tar.xz",
"polly-8.0.0.src.tar.xz",
"test-suite-8.0.0.src.tar.xz"
],
"7.0.1": [
"LLVM-7.0.1-win32.exe",
"LLVM-7.0.1-win64.exe",
"cfe-7.0.1.src.tar.xz",
"clang%2Bllvm-7.0.1-aarch64-linux-gnu.tar.xz",
"clang%2Bllvm-7.0.1-amd64-unknown-freebsd11.tar.xz",
"clang%2Bllvm-7.0.1-armv7a-linux-gnueabihf.tar.xz",
"clang%2Bllvm-7.0.1-i386-unknown-freebsd11.tar.xz",
"clang%2Bllvm-7.0.1-powerpc64le-unknown-unknown.tar.xz",
"clang%2Bllvm-7.0.1-x86_64-linux-gnu-ubuntu-14.04.tar.xz",
"clang%2Bllvm-7.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz",
"clang%2Bllvm-7.0.1-x86_64-linux-gnu-ubuntu-18.04.tar.xz",
"clang%2Bllvm-7.0.1-x86_64-linux-sles11.3.tar.xz",
"clang-tools-extra-7.0.1.src.tar.xz",
"compiler-rt-7.0.1.src.tar.xz",
"libcxx-7.0.1.src.tar.xz",
"libcxxabi-7.0.1.src.tar.xz",
"libunwind-7.0.1.src.tar.xz",
"lld-7.0.1.src.tar.xz",
"lldb-7.0.1.src.tar.xz",
"llvm-7.0.1.src.tar.xz",
"openmp-7.0.1.src.tar.xz",
"polly-7.0.1.src.tar.xz",
"test-suite-7.0.1.src.tar.xz"
],
"7.0.0": [
"LLVM-7.0.0-win32.exe",
"LLVM-7.0.0-win64.exe",
"cfe-7.0.0.src.tar.xz",
"clang%2Bllvm-7.0.0-aarch64-linux-gnu.tar.xz",
"clang%2Bllvm-7.0.0-amd64-unknown-freebsd11.tar.xz",
"clang%2Bllvm-7.0.0-armv7a-linux-gnueabihf.tar.xz",
"clang%2Bllvm-7.0.0-i386-unknown-freebsd11.tar.xz",
"clang%2Bllvm-7.0.0-powerpc64le-unknown-unknown.tar.xz",
"clang%2Bllvm-7.0.0-x86_64-apple-darwin.tar.xz",
"clang%2Bllvm-7.0.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz",
"clang%2Bllvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz",
"clang%2Bllvm-7.0.0-x86_64-linux-sles11.3.tar.xz",
"clang%2Bllvm-7.0.0-x86_64-linux-sles12.3.tar.xz",
"clang-tools-extra-7.0.0.src.tar.xz",
"clang-tools-extra_doxygen-7.0.0.tar.xz",
"clang_doxygen-7.0.0.tar.xz",
"compiler-rt-7.0.0.src.tar.xz",
"libcxx-7.0.0.src.tar.xz",
"libcxxabi-7.0.0.src.tar.xz",
"libunwind-7.0.0.src.tar.xz",
"lld-7.0.0.src.tar.xz",
"lldb-7.0.0.src.tar.xz",
"llvm-7.0.0.src.tar.xz",
"llvm_doxygen-7.0.0.tar.xz",
"openmp-7.0.0.src.tar.xz",
"polly-7.0.0.src.tar.xz",
"test-suite-7.0.0.src.tar.xz"
],
"6.0.0": [
"LLVM-6.0.0-win32.exe",
"LLVM-6.0.0-win64.exe",
"cfe-6.0.0.src.tar.xz",
"clang%2Bllvm-6.0.0-aarch64-linux-gnu.tar.xz",
"clang%2Bllvm-6.0.0-amd64-unknown-freebsd-10.tar.xz",
"clang%2Bllvm-6.0.0-armv7a-linux-gnueabihf.tar.xz",
"clang%2Bllvm-6.0.0-i386-unknown-freebsd-10.tar.xz",
"clang%2Bllvm-6.0.0-i686-linux-gnu-Fedora27.tar.xz",
"clang%2Bllvm-6.0.0-mips-linux-gnu.tar.xz",
"clang%2Bllvm-6.0.0-mipsel-linux-gnu.tar.xz",
"clang%2Bllvm-6.0.0-x86_64-apple-darwin.tar.xz",
"clang%2Bllvm-6.0.0-x86_64-linux-gnu-Fedora27.tar.xz",
"clang%2Bllvm-6.0.0-x86_64-linux-gnu-debian8.tar.xz",
"clang%2Bllvm-6.0.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz",
"clang%2Bllvm-6.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz",
"clang%2Bllvm-6.0.0-x86_64-linux-sles11.3.tar.xz",
"clang%2Bllvm-6.0.0-x86_64-linux-sles12.2.tar.xz",
"clang-tools-extra-6.0.0.src.tar.xz",
"clang-tools-extra_doxygen-6.0.0.tar.xz",
"clang_doxygen-6.0.0.tar.xz",
"compiler-rt-6.0.0.src.tar.xz",
"libcxx-6.0.0.src.tar.xz",
"libcxxabi-6.0.0.src.tar.xz",
"libunwind-6.0.0.src.tar.xz",
"lld-6.0.0.src.tar.xz",
"lldb-6.0.0.src.tar.xz",
"llvm-6.0.0.src.tar.xz",
"llvm_doxygen-6.0.0.tar.xz",
"openmp-6.0.0.src.tar.xz",
"polly-6.0.0.src.tar.xz",
"test-suite-6.0.0.src.tar.xz"
],
"5.0.2": [
"LLVM-5.0.2-win32.exe",
"LLVM-5.0.2-win64.exe",
"cfe-5.0.2.src.tar.xz",
"clang%2Bllvm-5.0.2-x86_64-apple-darwin.tar.xz",
"clang%2Bllvm-5.0.2-x86_64-linux-gnu-ubuntu-14.04.tar.xz",
"clang%2Bllvm-5.0.2-x86_64-linux-gnu-ubuntu-16.04.tar.xz",
"clang%2Bllvm-5.0.2-x86_64-linux-sles11.3.tar.xz",
"clang-tools-extra-5.0.2.src.tar.xz",
"compiler-rt-5.0.2.src.tar.xz",
"libcxx-5.0.2.src.tar.xz",
"libcxxabi-5.0.2.src.tar.xz",
"libunwind-5.0.2.src.tar.xz",
"lld-5.0.2.src.tar.xz",
"lldb-5.0.2.src.tar.xz",
"llvm-5.0.0rc2.src.tar.xz",
"llvm-5.0.2.src.tar.xz",
"openmp-5.0.2.src.tar.xz",
"polly-5.0.2.src.tar.xz",
"test-suite-5.0.2.src.tar.xz"
],
"5.0.1": [
"LLVM-5.0.1-win32.exe",
"LLVM-5.0.1-win64.exe",
"cfe-5.0.1.src.tar.xz",
"clang%2Bllvm-5.0.1-aarch64-linux-gnu.tar.xz",
"clang%2Bllvm-5.0.1-amd64-unknown-freebsd10.tar.xz",
"clang%2Bllvm-5.0.1-armv7a-linux-gnueabihf.tar.xz",
"clang%2Bllvm-5.0.1-i386-unknown-freebsd10.tar.xz",
"clang%2Bllvm-5.0.1-i686-linux-gnu-Fedora-27.tar.xz",
"clang%2Bllvm-5.0.1-linux-x86_64-sles11.3.tar.xz",
"clang%2Bllvm-5.0.1-linux-x86_64-sles12.2.tar.xz",
"clang%2Bllvm-5.0.1-mips-linux-gnu.tar.xz",
"clang%2Bllvm-5.0.1-mipsel-linux-gnu.tar.xz",
"clang%2Bllvm-5.0.1-ppc64-linux-gnu-Fedora-27.tar.xz",
"clang%2Bllvm-5.0.1-ppc64le-linux-gnu-Fedora-27.tar.xz",
"clang%2Bllvm-5.0.1-x86_64-apple-darwin.tar.xz",
"clang%2Bllvm-5.0.1-x86_64-linux-gnu-Fedora27.tar.xz",
"clang%2Bllvm-5.0.1-x86_64-linux-gnu-debian8.tar.xz",
"clang%2Bllvm-5.0.1-x86_64-linux-gnu-ubuntu-14.04.tar.xz",
"clang%2Bllvm-5.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz",
"clang-tools-extra-5.0.1.src.tar.xz",
"compiler-rt-5.0.1.src.tar.xz",
"libcxx-5.0.1.src.tar.xz",
"libcxxabi-5.0.1.src.tar.xz",
"libunwind-5.0.1.src.tar.xz",
"lld-5.0.1.src.tar.xz",
"lldb-5.0.1.src.tar.xz",
"llvm-5.0.1.src.tar.xz",
"openmp-5.0.1.src.tar.xz",
"polly-5.0.1.src.tar.xz",
"test-suite-5.0.1.src.tar.xz"
],
"5.0.0": [
"LLVM-5.0.0-win32.exe",
"LLVM-5.0.0-win64.exe",
"cfe-5.0.0.src.tar.xz",
"clang%2Bllvm-5.0.0-aarch64-linux-gnu.tar.xz",
"clang%2Bllvm-5.0.0-amd64-unknown-freebsd10.tar.xz",
"clang%2Bllvm-5.0.0-armv7a-linux-gnueabihf.tar.xz",
"clang%2Bllvm-5.0.0-i386-unknown-freebsd10.tar.xz",
"clang%2Bllvm-5.0.0-linux-x86_64-sles11.3.tar.xz",
"clang%2Bllvm-5.0.0-linux-x86_64-ubuntu14.04.tar.xz",
"clang%2Bllvm-5.0.0-linux-x86_64-ubuntu16.04.tar.xz",
"clang%2Bllvm-5.0.0-mips-linux-gnu.tar.xz",
"clang%2Bllvm-5.0.0-mipsel-linux-gnu.tar.xz",
"clang%2Bllvm-5.0.0-x86_64-apple-darwin.tar.xz",
"clang%2Bllvm-5.0.0-x86_64-linux-gnu-debian8.tar.xz",
"clang-tools-extra-5.0.0.src.tar.xz",
"clang-tools-extra_doxygen-5.0.0.tar.xz",
"clang_doxygen-5.0.0.tar.xz",
"compiler-rt-5.0.0.src.tar.xz",
"libcxx-5.0.0.src.tar.xz",
"libcxxabi-5.0.0.src.tar.xz",
"libunwind-5.0.0.src.tar.xz",
"lld-5.0.0.src.tar.xz",
"lldb-5.0.0.src.tar.xz",
"llvm-5.0.0.src.tar.xz",
"llvm_doxygen-5.0.0.tar.xz",
"openmp-5.0.0.src.tar.xz",
"polly-5.0.0.src.tar.xz",
"test-suite-5.0.0.src.tar.xz"
],
"4.0.1": [
"LLVM-4.0.1-win32.exe",
"LLVM-4.0.1-win64.exe",
"cfe-4.0.1.src.tar.xz",
"clang%2Bllvm-4.0.1-aarch64-linux-gnu.tar.xz",
"clang%2Bllvm-4.0.1-amd64-unknown-freebsd10.tar.xz",
"clang%2Bllvm-4.0.1-armv7a-linux-gnueabihf.tar.xz",
"clang%2Bllvm-4.0.1-i386-unknown-freebsd10.tar.xz",
"clang%2Bllvm-4.0.1-linux-x86_64-sles11.3.tar.xz",
"clang%2Bllvm-4.0.1-mips-linux-gnu.tar.xz",
"clang%2Bllvm-4.0.1-mipsel-linux-gnu.tar.xz",
"clang%2Bllvm-4.0.1-ppc64-linux-gnu-Fedora-25.tar.xz",
"clang%2Bllvm-4.0.1-ppc64le-linux-gnu-Fedora-25.tar.xz",
"clang%2Bllvm-4.0.1-x86_64-apple-darwin.tar.xz",
"clang%2Bllvm-4.0.1-x86_64-linux-gnu-Fedora-25.tar.xz",
"clang%2Bllvm-4.0.1-x86_64-linux-gnu-debian8.tar.xz",
"clang-tools-extra-4.0.1.src.tar.xz",
"compiler-rt-4.0.1.src.tar.xz",
"libcxx-4.0.1.src.tar.xz",
"libcxxabi-4.0.1.src.tar.xz",
"libunwind-4.0.1.src.tar.xz",
"lld-4.0.1.src.tar.xz",
"lldb-4.0.1.src.tar.xz",
"llvm-4.0.1.src.tar.xz",
"openmp-4.0.1.src.tar.xz",
"polly-4.0.1.src.tar.xz",
"test-suite-4.0.1.src.tar.xz"
],
"3.9.1": [
"LLVM-3.9.1-win32.exe",
"LLVM-3.9.1-win64.exe",
"cfe-3.9.1.src.tar.xz",
"clang%2Bllvm-3.9.1-aarch64-linux-gnu.tar.xz",
"clang%2Bllvm-3.9.1-amd64-unknown-freebsd10.tar.xz",
"clang%2Bllvm-3.9.1-armv7a-linux-gnueabihf.tar.xz",
"clang%2Bllvm-3.9.1-i386-unknown-freebsd10.tar.xz",
"clang%2Bllvm-3.9.1-mips-linux-gnu.tar.xz",
"clang%2Bllvm-3.9.1-mipsel-linux-gnu.tar.xz",
"clang%2Bllvm-3.9.1-x86_64-linux-gnu-debian8.tar.xz",
"clang%2Bllvm-3.9.1-x86_64-linux-gnu-ubuntu-14.04.tar.xz",
"clang%2Bllvm-3.9.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz",
"clang-tools-extra-3.9.1.src.tar.xz",
"compiler-rt-3.9.1.src.tar.xz",
"libcxx-3.9.1.src.tar.xz",
"libcxxabi-3.9.1.src.tar.xz",
"libunwind-3.9.1.src.tar.xz",
"lld-3.9.1.src.tar.xz",
"lldb-3.9.1.src.tar.xz",
"llvm-3.9.1.src.tar.xz",
"openmp-3.9.1.src.tar.xz",
"polly-3.9.1.src.tar.xz",
"test-suite-3.9.1.src.tar.xz"
],
"3.9.0": [
"LLVM-3.9.0-win32.exe",
"LLVM-3.9.0-win64.exe",
"cfe-3.9.0.src.tar.xz",
"clang%2Bllvm-3.9.0-aarch64-linux-gnu.tar.xz",
"clang%2Bllvm-3.9.0-amd64-unknown-freebsd10.tar.xz",
"clang%2Bllvm-3.9.0-armv7a-linux-gnueabihf.tar.xz",
"clang%2Bllvm-3.9.0-i386-unknown-freebsd10.tar.xz",
"clang%2Bllvm-3.9.0-i586-opensuse13.2.tar.xz",
"clang%2Bllvm-3.9.0-i686-fedora23.tar.xz",
"clang%2Bllvm-3.9.0-mips-linux-gnu.tar.xz",
"clang%2Bllvm-3.9.0-mipsel-linux-gnu.tar.xz",
"clang%2Bllvm-3.9.0-x86_64-apple-darwin.tar.xz",
"clang%2Bllvm-3.9.0-x86_64-fedora23.tar.xz",
"clang%2Bllvm-3.9.0-x86_64-linux-gnu-debian8.tar.xz",
"clang%2Bllvm-3.9.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz",
"clang%2Bllvm-3.9.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz",
"clang%2Bllvm-3.9.0-x86_64-opensuse13.2.tar.xz",
"clang-tools-extra-3.9.0.src.tar.xz",
"clang-tools-extra_doxygen-3.9.0.tar.xz",
"clang_doxygen-3.9.0.tar.xz",
"compiler-rt-3.9.0.src.tar.xz",
"libcxx-3.9.0.src.tar.xz",
"libcxxabi-3.9.0.src.tar.xz",
"libunwind-3.9.0.src.tar.xz",
"lld-3.9.0.src.tar.xz",
"lldb-3.9.0.src.tar.xz",
"llvm-3.9.0.src.tar.xz",
"llvm_doxygen-3.9.0.tar.xz",
"openmp-3.9.0.src.tar.xz",
"polly-3.9.0.src.tar.xz",
"test-suite-3.9.0.src.tar.xz"
],
"3.8.1": [
"LLVM-3.8.1-win32.exe",
"LLVM-3.8.1-win64.exe",
"cfe-3.8.1.src.tar.xz",
"clang%2Bllvm-3.8.1-aarch64-linux-gnu.tar.xz",
"clang%2Bllvm-3.8.1-armv7a-linux-gnueabihf.tar.xz",
"clang%2Bllvm-3.8.1-i586-opensuse13.2.tar.xz",
"clang%2Bllvm-3.8.1-i686-fedora23.tar.xz",
"clang%2Bllvm-3.8.1-linux-armhf-vivid.tar.xz",
"clang%2Bllvm-3.8.1-linux-x86_64-sles11.3.tar.xz",
"clang%2Bllvm-3.8.1-mips-linux-gnu.tar.xz",
"clang%2Bllvm-3.8.1-mipsel-linux-gnu.tar.xz",
"clang%2Bllvm-3.8.1-x86_64-fedora22.tar.xz",
"clang%2Bllvm-3.8.1-x86_64-linux-gnu-debian8.tar.xz",
"clang%2Bllvm-3.8.1-x86_64-linux-gnu-ubuntu-14.04.tar.xz",
"clang%2Bllvm-3.8.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz",
"clang%2Bllvm-3.8.1-x86_64-opensuse13.2.tar.xz",
"clang-tools-extra-3.8.1.src.tar.xz",
"compiler-rt-3.8.1.src.tar.xz",
"libcxx-3.8.1.src.tar.xz",
"libcxxabi-3.8.1.src.tar.xz",
"libunwind-3.8.1.src.tar.xz",
"lld-3.8.1.src.tar.xz",
"lldb-3.8.1.src.tar.xz",
"llvm-3.8.1.src.tar.xz",
"openmp-3.8.1.src.tar.xz",
"polly-3.8.1.src.tar.xz",
"test-suite-3.8.1.src.tar.xz"
],
"3.8.0": [
"LLVM-3.8.0-win32.exe",
"LLVM-3.8.0-win64.exe",
"cfe-3.8.0.src.tar.xz",
"clang%2Bllvm-3.8.0-aarch64-linux-gnu.tar.xz",
"clang%2Bllvm-3.8.0-amd64-unknown-freebsd10.tar.xz",
"clang%2Bllvm-3.8.0-armv7a-linux-gnueabihf.tar.xz",
"clang%2Bllvm-3.8.0-i386-unknown-freebsd10.tar.xz",
"clang%2Bllvm-3.8.0-i586-opensuse13.2.tar.xz",
"clang%2Bllvm-3.8.0-i686-fedora23.tar.xz",
"clang%2Bllvm-3.8.0-linux-armhf-vivid.tar.xz",
"clang%2Bllvm-3.8.0-linux-x86_64-centos6.tar.xz",
"clang%2Bllvm-3.8.0-mips-linux-gnu.tar.xz",
"clang%2Bllvm-3.8.0-mipsel-linux-gnu.tar.xz",
"clang%2Bllvm-3.8.0-x86_64-apple-darwin.tar.xz",
"clang%2Bllvm-3.8.0-x86_64-fedora23.tar.xz",
"clang%2Bllvm-3.8.0-x86_64-linux-gnu-debian8.tar.xz",
"clang%2Bllvm-3.8.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz",
"clang%2Bllvm-3.8.0-x86_64-linux-gnu-ubuntu-15.10.tar.xz",
"clang%2Bllvm-3.8.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz",
"clang%2Bllvm-3.8.0-x86_64-opensuse13.2.tar.xz",
"clang%2Bllvm-3.8.0-x86_64-sles11.3-linux-gnu.tar.xz",
"clang-tools-extra-3.8.0.src.tar.xz",
"clang-tools-extra_doxygen-3.8.0.tar.xz",
"clang_doxygen-3.8.0.tar.xz",
"compiler-rt-3.8.0.src.tar.xz",
"libcxx-3.8.0.src.tar.xz",
"libcxxabi-3.8.0.src.tar.xz",
"libunwind-3.8.0.src.tar.xz",
"lld-3.8.0.src.tar.xz",
"lldb-3.8.0.src.tar.xz",
"llvm-3.8.0.src.tar.xz",
"llvm_doxygen-3.8.0.tar.xz",
"openmp-3.8.0.src.tar.xz",
"polly-3.8.0.src.tar.xz",
"test-suite-3.8.0.src.tar.xz"
],
"3.7.1": [
"LLVM-3.7.1-win32.exe",
"LLVM-3.7.1-win64.exe",
"cfe-3.7.1.src.tar.xz",
"clang%2Bllvm-3.7.1-aarch64-linux-gnu.tar.xz",
"clang%2Bllvm-3.7.1-amd64-unknown-freebsd10.tar.xz",
"clang%2Bllvm-3.7.1-armv7a-linux-gnueabihf.tar.xz",
"clang%2Bllvm-3.7.1-i386-unknown-freebsd10.tar.xz",
"clang%2Bllvm-3.7.1-i586-opensuse13.2.tar.xz",
"clang%2Bllvm-3.7.1-i686-fedora22.tar.xz",
"clang%2Bllvm-3.7.1-mips-linux-gnu.tar.xz",
"clang%2Bllvm-3.7.1-mipsel-linux-gnu.tar.xz",
"clang%2Bllvm-3.7.1-x86_64-fedora22.tar.xz",
"clang%2Bllvm-3.7.1-x86_64-linux-gnu-debian8.tar.xz",
"clang%2Bllvm-3.7.1-x86_64-linux-gnu-ubuntu-14.04.tar.xz",
"clang%2Bllvm-3.7.1-x86_64-linux-gnu-ubuntu-15.10.tar.xz",
"clang%2Bllvm-3.7.1-x86_64-opensuse13.2.tar.xz",
"clang-tools-extra-3.7.1.src.tar.xz",
"compiler-rt-3.7.1.src.tar.xz",
"libcxx-3.7.1.src.tar.xz",
"libcxxabi-3.7.1.src.tar.xz",
"libunwind-3.7.1.src.tar.xz",
"lld-3.7.1.src.tar.xz",
"lldb-3.7.1.src.tar.xz",
"llvm-3.7.1.src.tar.xz",
"openmp-3.7.1.src.tar.xz",
"polly-3.7.1.src.tar.xz",
"test-suite-3.7.1.src.tar.xz"
],
"3.7.0": [
"LLVM-3.7.0-win32.exe",
"LLVM-3.7.0-win64.exe",
"OpenMP-3.7.0-x86_64-apple-darwin14.4.0.tar.xz",
"OpenMP-3.7.0-x86_64-unknown-linux-gnu.tar.xz",
"cfe-3.7.0.src.tar.xz",
"clang%2Bllvm-3.7.0-aarch64-linux-gnu.tar.xz",
"clang%2Bllvm-3.7.0-amd64-unknown-freebsd10.tar.xz",
"clang%2Bllvm-3.7.0-armv7a-linux-gnueabihf.tar.xz",
"clang%2Bllvm-3.7.0-i386-unknown-freebsd10.tar.xz",
"clang%2Bllvm-3.7.0-i586-opensuse13.2.tar.xz",
"clang%2Bllvm-3.7.0-i686-fedora22.tar.xz",
"clang%2Bllvm-3.7.0-mips-linux-gnu.tar.xz",
"clang%2Bllvm-3.7.0-mipsel-linux-gnu.tar.xz",
"clang%2Bllvm-3.7.0-x86_64-apple-darwin.tar.xz",
"clang%2Bllvm-3.7.0-x86_64-fedora22.tar.xz",
"clang%2Bllvm-3.7.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz",
"clang%2Bllvm-3.7.0-x86_64-opensuse13.2.tar.xz",
"clang-tools-extra-3.7.0.src.tar.xz",
"clang_doxygen-3.7.0.tar.xz",
"compiler-rt-3.7.0.src.tar.xz",
"libcxx-3.7.0.src.tar.xz",
"libcxxabi-3.7.0.src.tar.xz",
"libunwind-3.7.0.src.tar.xz",
"lld-3.7.0.src.tar.xz",
"lldb-3.7.0.src.tar.xz",
"llvm-3.7.0.src.tar.xz",
"llvm_doxygen-3.7.0.tar.xz",
"openmp-3.7.0.src.tar.xz",
"polly-3.7.0.src.tar.xz",
"test-suite-3.7.0.src.tar.xz"
],
"3.6.2": [
"LLVM-3.6.2-win32.exe",
"cfe-3.6.2.src.tar.xz",
"clang%2Bllvm-3.6.2-aarch64-linux-gnu.tar.xz",
"clang%2Bllvm-3.6.2-amd64-unknown-freebsd10.tar.xz",
"clang%2Bllvm-3.6.2-armv7a-linux-gnueabihf.tar.xz",
"clang%2Bllvm-3.6.2-i386-fedora21.tar.xz",
"clang%2Bllvm-3.6.2-i386-unknown-freebsd10.tar.xz",
"clang%2Bllvm-3.6.2-i586-opensuse13.2.tar.xz",
"clang%2Bllvm-3.6.2-mips-linux-gnu.tar.xz",
"clang%2Bllvm-3.6.2-mipsel-linux-gnu.tar.xz",
"clang%2Bllvm-3.6.2-x86_64-apple-darwin.tar.xz",
"clang%2Bllvm-3.6.2-x86_64-fedora21.tar.xz",
"clang%2Bllvm-3.6.2-x86_64-linux-gnu-ubuntu-14.04.tar.xz",
"clang%2Bllvm-3.6.2-x86_64-linux-gnu-ubuntu-15.04.tar.xz",
"clang%2Bllvm-3.6.2-x86_64-opensuse13.2.tar.xz",
"clang-tools-extra-3.6.2.src.tar.xz",
"compiler-rt-3.6.2.src.tar.xz",
"dragonegg-3.6.2.src.tar.xz",
"libcxx-3.6.2.src.tar.xz",
"libcxxabi-3.6.2.src.tar.xz",
"lld-3.6.2.src.tar.xz",
"lldb-3.6.2.src.tar.xz",
"llvm-3.6.2.src.tar.xz",
"openmp-3.6.2.src.tar.xz",
"polly-3.6.2.src.tar.xz",
"test-suite-3.6.2.src.tar.xz"
],
"3.6.1": [
"LLVM-3.6.1-win32.exe",
"cfe-3.6.1.src.tar.xz",
"clang%2Bllvm-3.6.1-aarch64-linux-gnu.tar.xz",
"clang%2Bllvm-3.6.1-amd64-unknown-freebsd10.tar.xz",
"clang%2Bllvm-3.6.1-armv7a-linux-gnueabihf.tar.xz",
"clang%2Bllvm-3.6.1-i386-fedora21.tar.xz",
"clang%2Bllvm-3.6.1-i386-unknown-freebsd10.tar.xz",
"clang%2Bllvm-3.6.1-i586-opensuse13.2.tar.xz",
"clang%2Bllvm-3.6.1-mips-linux-gnu.tar.xz",
"clang%2Bllvm-3.6.1-mipsel-linux-gnu.tar.xz",
"clang%2Bllvm-3.6.1-x86_64-apple-darwin.tar.xz",
"clang%2Bllvm-3.6.1-x86_64-fedora21.tar.xz",
"clang%2Bllvm-3.6.1-x86_64-linux-gnu-ubuntu-14.04.tar.xz",
"clang%2Bllvm-3.6.1-x86_64-linux-gnu-ubuntu-15.04.tar.xz",
"clang%2Bllvm-3.6.1-x86_64-opensuse13.2.tar.xz",
"clang-tools-extra-3.6.1.src.tar.xz",
"compiler-rt-3.6.1.src.tar.xz",
"dragonegg-3.6.1.src.tar.xz",
"libcxx-3.6.1.src.tar.xz",
"libcxxabi-3.6.1.src.tar.xz",
"lld-3.6.1.src.tar.xz",
"lldb-3.6.1.src.tar.xz",
"llvm-3.6.1.src.tar.xz",
"openmp-3.6.1.src.tar.xz",
"polly-3.6.1.src.tar.xz",
"test-suite-3.6.1.src.tar.xz"
],
"3.6.0": [
"LLVM-3.6.0-win32.exe",
"cfe-3.6.0.src.tar.xz",
"clang%2Bllvm-3.6.0-aarch64-linux-gnu.tar.xz",
"clang%2Bllvm-3.6.0-amd64-unknown-freebsd10.tar.xz",
"clang%2Bllvm-3.6.0-armv7a-linux-gnueabihf.tar.xz",
"clang%2Bllvm-3.6.0-i386-unknown-freebsd10.tar.xz",
"clang%2Bllvm-3.6.0-i586-opensuse13.2.tar.xz",
"clang%2Bllvm-3.6.0-i686-fedora21.tar.xz",
"clang%2Bllvm-3.6.0-mips-linux-gnu.tar.xz",
"clang%2Bllvm-3.6.0-mipsel-linux-gnu.tar.xz",
"clang%2Bllvm-3.6.0-x86_64-apple-darwin.tar.xz",
"clang%2Bllvm-3.6.0-x86_64-fedora21.tar.xz",
"clang%2Bllvm-3.6.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz",
"clang%2Bllvm-3.6.0-x86_64-opensuse13.2.tar.xz",
"clang-tools-extra-3.6.0.src.tar.xz",
"compiler-rt-3.6.0.src.tar.xz",
"dragonegg-3.6.0.src.tar.xz",
"libcxx-3.6.0.src.tar.xz",
"libcxxabi-3.6.0.src.tar.xz",
"lld-3.6.0.src.tar.xz",
"lldb-3.6.0.src.tar.xz",
"llvm-3.6.0.src.tar.xz",
"openmp-3.6.0.src.tar.xz",
"polly-3.6.0.src.tar.xz",
"test-suite-3.6.0.src.tar.xz"
],
"3.5.2": [
"LLVM-3.5.2-win32.exe",
"cfe-3.5.2.src.tar.xz",
"clang%2Bllvm-3.5.2-aarch64-linux-gnu.tar.xz",
"clang%2Bllvm-3.5.2-armv7a-linux-gnueabihf.tar.xz",
"clang%2Bllvm-3.5.2-mips-linux-gnu.tar.xz",
"clang%2Bllvm-3.5.2-mipsel-linux-gnu.tar.xz",
"clang%2Bllvm-3.5.2-x86_64-apple-darwin.tar.xz",
"clang%2Bllvm-3.5.2-x86_64-linux-gnu-ubuntu-14.04.tar.xz",
"clang-tools-extra-3.5.2.src.tar.xz",
"compiler-rt-3.5.2.src.tar.xz",
"dragonegg-3.5.2.src.tar.xz",
"libcxx-3.5.2.src.tar.xz",
"libcxxabi-3.5.2.src.tar.xz",
"lld-3.5.2.src.tar.xz",
"lldb-3.5.2.src.tar.xz",
"llvm-3.5.2.src.tar.xz",
"openmp-3.5.2.src.tar.xz",
"polly-3.5.2.src.tar.xz",
"test-suite-3.5.2.src.tar.xz"
],
"3.5.1": [
"cfe-3.5.1.src.tar.xz",
"clang%2Bllvm-3.5.1-aarch64-linux-gnu.tar.xz",
"clang%2Bllvm-3.5.1-armv7a-linux-gnueabihf.tar.xz",
"clang%2Bllvm-3.5.1-i586-opensuse13.1.tar.xz",
"clang%2Bllvm-3.5.1-i686-fedora20.tar.xz",
"clang%2Bllvm-3.5.1-mips-linux-gnu.tar.xz",
"clang%2Bllvm-3.5.1-mipsel-linux-gnu.tar.xz",
"clang%2Bllvm-3.5.1-x86_64-fedora20.tar.xz",
"clang%2Bllvm-3.5.1-x86_64-linux-gnu.tar.xz",
"clang%2Bllvm-3.5.1-x86_64-opensuse13.1.tar.xz",
"clang-tools-extra-3.5.1.src.tar.xz",
"compiler-rt-3.5.1.src.tar.xz",
"dragonegg-3.5.1.src.tar.xz",
"libcxx-3.5.1.src.tar.xz",
"libcxxabi-3.5.1.src.tar.xz",
"lld-3.5.1.src.tar.xz",
"lldb-3.5.1.src.tar.xz",
"llvm-3.5.1.src.tar.xz",
"openmp-3.5.1.src.tar.xz",
"polly-3.5.1.src.tar.xz",
"test-suite-3.5.1.src.tar.xz"
]
}

View File

@ -141,7 +141,7 @@ const UBUNTU_RC: Map<string, string> = new Map()
/**
* The (latest) Ubuntu versions for each LLVM version.
*
* https://github.com/llvm/llvm-project/releases/tag/llvmorg-14.0.1 or https://releases.llvm.org/14.0.1
* https://github.com/llvm/llvm-project/releases/tag/llvmorg-14.0.1 or https://releases.llvm.org/6.0.1
*/
// TODO change based on ubuntu version
const UBUNTU_X64_SUFFIX_MAP: { [key: string]: string } = {