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:
12
Dockerfile
12
Dockerfile
@@ -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
72
emsdk
@@ -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':
|
||||
|
||||
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user