From 40144ce235e360552c70cafabe230c07d2117da6 Mon Sep 17 00:00:00 2001 From: "Alon Zakai (kripken)" Date: Thu, 23 May 2019 19:54:32 -0700 Subject: [PATCH 1/3] wip --- emscripten-releases-history.txt | 10 ++++++++++ emsdk | 14 ++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 emscripten-releases-history.txt diff --git a/emscripten-releases-history.txt b/emscripten-releases-history.txt new file mode 100644 index 0000000000..63fa57989f --- /dev/null +++ b/emscripten-releases-history.txt @@ -0,0 +1,10 @@ +"92502c924353cd84f33cc519c2c121c8a0721d9e" +"c34dc3ebba733a36767fd75c1348ef1ac726db4b" +"c964ba0138544d215aa3607c16a5c30a8ef8a6cc" +"62c4d736bb0a393dda9e6eec6f998111d9070208" +"d215321ac0e0a0b76b0e7e81c4f87adfe5d106e4" +"870622da9305ce5cb44987ad520827161d69df81" +"5e0c54a15df7dd762acb3162beee7db54c6ae197" +"37ff372e7389d7e2c7eb23736ad53b16f6626a05" +"e74d3b061d851e400ec8dff33b5b3dbc3909c009" +"44c1f80345b3296ff1253dd6c5f4a9ba7aa3b959" \ No newline at end of file diff --git a/emsdk b/emsdk index 8a69afc14a..da71616d1d 100755 --- a/emsdk +++ b/emsdk @@ -41,6 +41,7 @@ emsdk_packages_url = urljoin(emsdk_master_server, 'packages/') emscripten_git_repo = 'https://github.com/kripken/emscripten.git' binaryen_git_repo = 'https://github.com/WebAssembly/binaryen.git' +emscripten_releases_repo = 'https://chromium.googlesource.com/emscripten-releases' # Enable this to do very verbose printing about the different steps that are being run. Useful for debugging. VERBOSE = bool(os.getenv('EMSDK_VERBOSE')) if os.getenv('EMSDK_VERBOSE') is not None else False @@ -632,6 +633,14 @@ def git_repo_version(repo_path): return "" +def git_recent_commits(repo_path, n=10): + returncode, stdout, stderr = run_get_output([GIT(), 'log', '-n', str(n), '--pretty="%H"'], cwd=repo_path) + if returncode == 0: + return stdout.strip() + else: + return "" + + def git_clone(url, dstpath): if VERBOSE: print('git_clone(url=' + url + ', dstpath=' + dstpath + ')') if os.path.isdir(os.path.join(dstpath, '.git')): @@ -1759,6 +1768,11 @@ def fetch_emscripten_tags(): else: print('Done. No tagged Binaryen releases available.') + print('Fetching emscripten-releases repository...') + git_clone_checkout_and_pull(emscripten_releases_repo, sdk_path('releases'), 'master') + recent_releases = git_recent_commits(sdk_path('releases')) + open(sdk_path('emscripten-releases-history.txt'), 'w').write(recent_releases) + # Emscripten Nightlies support has been removed, clear the list of known Nightlies locally. # print('Fetching all precompiled Nightly versions..') # download_file('https://s3.amazonaws.com/mozilla-games/emscripten/packages/llvm/nightly/' + os_name() + '_32bit/index.txt', 'llvm-nightlies-32bit.txt', download_even_if_exists=True) From 662f74015b0dcc46e05009c5c7ce8e7ea9aaac11 Mon Sep 17 00:00:00 2001 From: "Alon Zakai (kripken)" Date: Thu, 23 May 2019 19:55:36 -0700 Subject: [PATCH 2/3] update --- emscripten-releases-history.txt | 20 ++++++++++---------- emsdk | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/emscripten-releases-history.txt b/emscripten-releases-history.txt index 63fa57989f..95377e4a21 100644 --- a/emscripten-releases-history.txt +++ b/emscripten-releases-history.txt @@ -1,10 +1,10 @@ -"92502c924353cd84f33cc519c2c121c8a0721d9e" -"c34dc3ebba733a36767fd75c1348ef1ac726db4b" -"c964ba0138544d215aa3607c16a5c30a8ef8a6cc" -"62c4d736bb0a393dda9e6eec6f998111d9070208" -"d215321ac0e0a0b76b0e7e81c4f87adfe5d106e4" -"870622da9305ce5cb44987ad520827161d69df81" -"5e0c54a15df7dd762acb3162beee7db54c6ae197" -"37ff372e7389d7e2c7eb23736ad53b16f6626a05" -"e74d3b061d851e400ec8dff33b5b3dbc3909c009" -"44c1f80345b3296ff1253dd6c5f4a9ba7aa3b959" \ No newline at end of file +92502c924353cd84f33cc519c2c121c8a0721d9e +c34dc3ebba733a36767fd75c1348ef1ac726db4b +c964ba0138544d215aa3607c16a5c30a8ef8a6cc +62c4d736bb0a393dda9e6eec6f998111d9070208 +d215321ac0e0a0b76b0e7e81c4f87adfe5d106e4 +870622da9305ce5cb44987ad520827161d69df81 +5e0c54a15df7dd762acb3162beee7db54c6ae197 +37ff372e7389d7e2c7eb23736ad53b16f6626a05 +e74d3b061d851e400ec8dff33b5b3dbc3909c009 +44c1f80345b3296ff1253dd6c5f4a9ba7aa3b959 \ No newline at end of file diff --git a/emsdk b/emsdk index da71616d1d..4e979e6c4b 100755 --- a/emsdk +++ b/emsdk @@ -636,7 +636,7 @@ def git_repo_version(repo_path): def git_recent_commits(repo_path, n=10): returncode, stdout, stderr = run_get_output([GIT(), 'log', '-n', str(n), '--pretty="%H"'], cwd=repo_path) if returncode == 0: - return stdout.strip() + return stdout.strip().replace('\r', '').replace('"', '') else: return "" From 3c1c0412afbf744aa066e7cef5fc025072f6cda8 Mon Sep 17 00:00:00 2001 From: "Alon Zakai (kripken)" Date: Fri, 24 May 2019 06:22:40 -0700 Subject: [PATCH 3/3] tot wip --- .gitignore | 1 + emsdk | 36 +++++++++++++++++++++++++++++++----- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 6318bf32e1..547e1cd129 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,4 @@ llvm-tags-32bit.txt llvm-tags-64bit.txt upstream !upstream/lkgr.json +emscripten-releases-tot.txt diff --git a/emsdk b/emsdk index 4e979e6c4b..94b540fc52 100755 --- a/emsdk +++ b/emsdk @@ -97,6 +97,13 @@ def os_name(): raise Exception('unknown OS') +def os_name_for_emscripten_releases(): + if WINDOWS: return 'win' + elif LINUX: return 'linux' + elif OSX: return 'mac' + else: + raise Exception('unknown OS') + def to_unix_path(p): return p.replace('\\', '/') @@ -636,9 +643,9 @@ def git_repo_version(repo_path): def git_recent_commits(repo_path, n=10): returncode, stdout, stderr = run_get_output([GIT(), 'log', '-n', str(n), '--pretty="%H"'], cwd=repo_path) if returncode == 0: - return stdout.strip().replace('\r', '').replace('"', '') + return stdout.strip().replace('\r', '').replace('"', '').split('\n') else: - return "" + return [] def git_clone(url, dstpath): @@ -1699,6 +1706,25 @@ def get_emscripten_release_version(emscripten_releases_hash): return key return emscripten_releases_hash +def get_emscripten_releases_tot(): + git_clone_checkout_and_pull(emscripten_releases_repo, sdk_path('releases'), 'master') + recent_releases = git_recent_commits(sdk_path('releases')) + # The recent releases are the latest hashes in the git repo. There + # may not be a build for the most recent ones yet; find the last + # that does. + for release in recent_releases: + url = "https://storage.googleapis.com/webassembly/emscripten-releases-builds/%s/%s/wasm-binaries.%s" % ( + os_name_for_emscripten_releases(), + release, + 'tbz2' if not WINDOWS else 'zip' + ) + print(url) + try: + u = urlopen(url) + except: + continue + return release + return '' # Finds the best-matching python tool for use. def find_used_python(): @@ -1769,9 +1795,9 @@ def fetch_emscripten_tags(): print('Done. No tagged Binaryen releases available.') print('Fetching emscripten-releases repository...') - git_clone_checkout_and_pull(emscripten_releases_repo, sdk_path('releases'), 'master') - recent_releases = git_recent_commits(sdk_path('releases')) - open(sdk_path('emscripten-releases-history.txt'), 'w').write(recent_releases) + emscripten_releases_tot = get_emscripten_releases_tot() + if emscripten_releases_tot: + open(sdk_path('emscripten-releases-tot.txt'), 'w').write(emscripten_releases_tot) # Emscripten Nightlies support has been removed, clear the list of known Nightlies locally. # print('Fetching all precompiled Nightly versions..')