Switch over to emscripten-releases for 'latest' (#250)

This makes emsdk [install|activate] latest get the latest fastcomp release from emscripten-releases, replacing our usage of the old mozilla build infrastructure.

This is only for "latest", so there should be no change to older releases.

This does remove non-release old stuff from the mozilla infrastructure, like "nightly" builds (that I don't think were even working?). After this PR, only old releases should be used from there.

Context: we've asked that people test the emscripten-releases builds for 1.38.33, and fixed a few issues people found. There are no open showstoppers, so this is us moving to the next step, serving latest builds from the new infrastructure.
This commit is contained in:
Alon Zakai
2019-05-29 10:38:43 -07:00
committed by GitHub
parent 76a5ae0b82
commit 3595b073f3
3 changed files with 10 additions and 168 deletions

View File

@@ -13,22 +13,20 @@ RUN cd /root/ \
&& echo "test latest" \
&& /root/emsdk/emsdk install latest \
&& /root/emsdk/emsdk activate latest \
&& python -c "import os ; assert 'fastcomp' in open(os.path.expanduser('~/.emscripten')).read()" \
&& python -c "import os ; assert 'upstream' not in open(os.path.expanduser('~/.emscripten')).read()" \
&& source /root/emsdk/emsdk_env.sh --build=Release \
&& emcc hello_world.cpp \
&& emcc hello_world.cpp -s WASM=0 \
&& emcc --clear-cache \
&& echo "test latest-releases-upstream" \
&& python2 /root/emsdk/emsdk install latest-releases-upstream \
&& /root/emsdk/emsdk activate latest-releases-upstream \
&& python2 /root/emsdk/emsdk install latest-upstream \
&& /root/emsdk/emsdk activate latest-upstream \
&& source /root/emsdk/emsdk_env.sh --build=Release \
&& emcc hello_world.cpp \
&& python -c "import os ; assert open(os.path.expanduser('~/.emscripten')).read().count('LLVM_ROOT') == 1" \
&& python -c "import os ; assert 'upstream' in open(os.path.expanduser('~/.emscripten')).read()" \
&& echo "test latest-releases-fastcomp" \
&& python3 /root/emsdk/emsdk install latest-releases-fastcomp \
&& /root/emsdk/emsdk activate latest-releases-fastcomp \
&& source /root/emsdk/emsdk_env.sh --build=Release \
&& emcc hello_world.cpp \
&& python -c "import os ; assert 'fastcomp' not in open(os.path.expanduser('~/.emscripten')).read()" \
&& echo "test tot-upstream" \
&& /root/emsdk/emsdk install tot-upstream \
&& /root/emsdk/emsdk activate tot-upstream \

72
emsdk
View File

@@ -1660,52 +1660,6 @@ def is_os_64bit(): # http://stackoverflow.com/questions/2208828/detect-64bit-os-
return platform.machine().endswith('64')
def find_latest_32bit_sdk():
for sdk in reversed(sdks): # Newest SDK is always at the end of the list.
if not hasattr(sdk, 'bitness') or sdk.bitness == 32: # If no 'bitness' field, it means the SDK is universal.
if 'nightly' not in sdk.version:
return sdk
return None
def find_latest_64bit_sdk():
for sdk in reversed(sdks): # Newest SDK is always at the end of the list.
if not hasattr(sdk, 'bitness') or sdk.bitness == 64: # If no 'bitness' field, it means the SDK is universal.
if 'nightly' not in sdk.version:
return sdk
return None
def find_latest_sdk():
if is_os_64bit():
return find_latest_64bit_sdk()
else:
return find_latest_32bit_sdk()
def find_latest_nightly_32bit_sdk():
for sdk in reversed(sdks): # Newest SDK is always at the end of the list.
if not hasattr(sdk, 'bitness') or sdk.bitness == 32: # If no 'bitness' field, it means the SDK is universal.
if 'nightly' in sdk.version:
return sdk
return None
def find_latest_nightly_64bit_sdk():
for sdk in reversed(sdks): # Newest SDK is always at the end of the list.
if not hasattr(sdk, 'bitness') or sdk.bitness == 64: # If no 'bitness' field, it means the SDK is universal.
if 'nightly' in sdk.version:
return sdk
return None
def find_latest_nightly_sdk():
if is_os_64bit():
return find_latest_nightly_64bit_sdk()
else:
return find_latest_nightly_32bit_sdk()
def find_latest_releases_sdk(which):
releases_info = load_releases_info()
latest = releases_info['latest']
@@ -2470,31 +2424,15 @@ def main():
sys.argv = [x for x in sys.argv if not len(x) == 0]
# Replace meta-packages with the real package names.
if (cmd == 'update' or cmd == 'install' or cmd == 'activate'):
if cmd in ('update', 'install', 'activate'):
for i in range(2, len(sys.argv)):
if sys.argv[i] == 'latest' or sys.argv[i] == 'sdk-latest':
sys.argv[i] = str(find_latest_sdk())
elif sys.argv[i] == 'latest-32bit' or sys.argv[i] == 'sdk-latest-32bit':
sys.argv[i] = str(find_latest_32bit_sdk())
elif sys.argv[i] == 'latest-64bit' or sys.argv[i] == 'sdk-latest-64bit':
sys.argv[i] = str(find_latest_64bit_sdk())
elif sys.argv[i] == 'sdk-nightly-latest':
sys.argv[i] = str(find_latest_nightly_sdk())
elif sys.argv[i] == 'sdk-nightly-latest-32bit':
sys.argv[i] = str(find_latest_nightly_32bit_sdk())
elif sys.argv[i] == 'sdk-nightly-latest-64bit':
sys.argv[i] = str(find_latest_nightly_64bit_sdk())
elif sys.argv[i] == 'latest-upstream' or sys.argv[i] == 'latest-clang-upstream':
sys.argv[i] = str(find_latest_waterfall_sdk('upstream'))
elif sys.argv[i] == 'latest-fastcomp':
sys.argv[i] = str(find_latest_waterfall_sdk('fastcomp'))
elif sys.argv[i] == 'latest-releases-upstream':
sys.argv[i] = str(find_latest_releases_sdk('upstream'))
elif sys.argv[i] == 'latest-releases-fastcomp':
if sys.argv[i] in ('latest', 'sdk-latest', 'latest-64bit', 'sdk-latest-64bit', 'latest-fastcomp', 'latest-releases-fastcomp'):
sys.argv[i] = str(find_latest_releases_sdk('fastcomp'))
elif sys.argv[i] in ('latest-upstream', 'latest-clang-upstream', 'latest-releases-upstream'):
sys.argv[i] = str(find_latest_releases_sdk('upstream'))
elif sys.argv[i] == 'tot-upstream':
sys.argv[i] = str(find_tot_sdk('upstream'))
elif sys.argv[i] == 'tot-fastcomp':
elif sys.argv[i] in ('tot-fastcomp', 'sdk-nightly-latest'):
sys.argv[i] = str(find_tot_sdk('fastcomp'))
if cmd == 'list':

View File

@@ -1,94 +0,0 @@
{
"repositories": {
"java": null,
"gcc": {
"remote": "https://chromium.googlesource.com/chromiumos/third_party/gcc.git",
"subject": "[GCC] Fix compile time error introduced by PR64111 (GCC FSF).",
"hash": "b6125c702850488ac3bfb1079ae5c9db89989406",
"name": "Caroline Tice",
"email": "cmtice@google.com"
},
"llvm": {
"remote": "https://github.com/llvm/llvm-project.git",
"subject": "[COFF] Remove finalizeContents virtual method from Chunk, NFC",
"hash": "11c141eb68531eec30af8ff8f82b8159de99e555",
"name": "Reid Kleckner",
"email": "rnk@google.com"
},
"emscripten": {
"remote": "https://github.com/emscripten-core/emscripten.git",
"subject": "Add assertions for duplicate names from parameterization (#8665)",
"hash": "f6df93be62459edaecf38e3986a96118be8ace94",
"name": "Guanzhong Chen",
"email": "gzchen@google.com"
},
"nodejs": null,
"llvm-test-suite": {
"remote": "https://llvm.googlesource.com/test-suite.git",
"subject": "Document how to use the 'vs' mode in compare.py",
"hash": "c79e9b9f75512e75c3241b08ec78f78d8fc710af",
"name": "Amara Emerson",
"email": "aemerson@apple.com"
},
"host-toolchain": {
"remote": "https://chromium.googlesource.com/v8/v8.git",
"subject": "Revert \"Reland \"[torque] move class tests to unittests\"\"",
"hash": "0ef1982ff57d1b5db66d4e4354193f4aee543d13",
"name": "Francis McCabe",
"email": "fgm@chromium.org"
},
"waterfall": {
"remote": "/b/swarming/w/ir/cache/git/chromium.googlesource.com-external-github.com-webassembly-waterfall",
"subject": "Print reason for clobbering build (#528)",
"hash": "02d964670cedc2e43f38151e8fbbc69a167187d8",
"name": "Derek Schuff",
"email": "dschuff@chromium.org"
},
"fastcomp-clang": {
"remote": "https://github.com/emscripten-core/emscripten-fastcomp-clang.git",
"subject": "1.38.32",
"hash": "ca75f5e8a424747b1e368ad6e94a4b4740dd28af",
"name": "Alon Zakai",
"email": "azakai@google.com"
},
"binaryen": {
"remote": "https://chromium.googlesource.com/external/github.com/WebAssembly/binaryen.git",
"subject": "Inlining: exposed inlining thresholds as command-line parameters. (#2125)",
"hash": "5644d15b87577478659d7cbeb9bb0555cc233631",
"name": "Wouter van Oortmerssen",
"email": "aardappel@gmail.com"
},
"fastcomp": {
"remote": "https://github.com/emscripten-core/emscripten-fastcomp.git",
"subject": "1.38.32",
"hash": "2be857f52bb377de8cf7369acfc42a3b36bbd94d",
"name": "Alon Zakai",
"email": "azakai@google.com"
},
"v8": {
"remote": "https://chromium.googlesource.com/v8/v8.git",
"subject": "Revert \"Reland \"[torque] move class tests to unittests\"\"",
"hash": "0ef1982ff57d1b5db66d4e4354193f4aee543d13",
"name": "Francis McCabe",
"email": "fgm@chromium.org"
},
"cmake": null,
"wabt": {
"remote": "https://chromium.googlesource.com/external/github.com/WebAssembly/wabt.git",
"subject": "[wasm-objdump] Fix crash on invalid reloc sections (#1084)",
"hash": "a3a7a93f1f417c6c258e6b5d507adb004fc8b688",
"name": "Sam Clegg",
"email": "sbc@chromium.org"
},
"wasi-sysroot": {
"remote": "https://github.com/CraneStation/wasi-sysroot.git",
"subject": "Don't declare popen and pclose.",
"hash": "eee6ee7566e26f2535eb6088c8494a112ff423b9",
"name": "Dan Gohman",
"email": "sunfish@mozilla.com"
},
"gnuwin32": null
},
"build": "6480",
"scheduler": null
}