diff --git a/binaryen-tags.txt b/binaryen-tags.txt index d71264f..6940258 100644 --- a/binaryen-tags.txt +++ b/binaryen-tags.txt @@ -21,4 +21,6 @@ 1.37.7 1.37.8 1.37.9 -1.37.10 \ No newline at end of file +1.37.10 +1.37.11 +1.37.12 \ No newline at end of file diff --git a/emscripten-tags.txt b/emscripten-tags.txt index d6f8542..8b83bba 100644 --- a/emscripten-tags.txt +++ b/emscripten-tags.txt @@ -95,4 +95,5 @@ 1.37.8 1.37.9 1.37.10 -1.37.11 \ No newline at end of file +1.37.11 +1.37.12 \ No newline at end of file diff --git a/emsdk b/emsdk index 617e03c..e32b2bf 100755 --- a/emsdk +++ b/emsdk @@ -1524,12 +1524,40 @@ def remove_suffix(s, suffix): if s.endswith(suffix): return s[:len(s)-len(suffix)] else: return s +def try_int(a): + try: + return int(a) + except: + return None + +def sort_by_version(a, b): + a = re.split('[\\._\\-]', a) + b = re.split('[\\._\\-]', b) + for i in range(min(len(a), len(b))): + a_int = try_int(a[i]) + b_int = try_int(b[i]) + if a_int != None and b_int != None: + if a_int < b_int: + return -1 + if b_int > a_int: + return 1 + else: + if a[i] < b[i]: + return -1 + if b[i] > a[i]: + return 1 + return 0 + # filename should be one of: 'llvm-nightlies-32bit.txt', 'llvm-nightlies-64bit.txt', 'llvm-precompiled-tags-32bit.txt', 'llvm-precompiled-tags-64bit.txt', 'emscripten-nightlies.txt' def load_file_index_list(filename): try: items = open(sdk_path(filename), 'r').read().split('\n') items = map(lambda x: remove_suffix(remove_suffix(remove_prefix(remove_prefix(x, 'emscripten-llvm-e'), 'emscripten-nightly-'), '.tar.gz'), '.zip').strip(), items) items = filter(lambda x: 'latest' not in x and len(x) > 0, items) + + # Sort versions from oldest to newest (the default sort would be lexicographic, i.e. '1.37.1 < 1.37.10 < 1.37.2') + items = sorted(items, cmp=sort_by_version)[::-1] + return items except: return []