Selaa lähdekoodia

Revert "Update examples collection"

This reverts commit 87d3066428664d8a4983585296d0303862155dff.
Ray 1 kuukausi sitten
vanhempi
commit
df1244688e
100 muutettua tiedostoa jossa 0 lisäystä ja 6398 poistoa
  1. 0 354
      emsdk-cache/emsdk-main/.circleci/config.yml
  2. 0 21
      emsdk-cache/emsdk-main/.dockerignore
  3. 0 24
      emsdk-cache/emsdk-main/.flake8
  4. 0 18
      emsdk-cache/emsdk-main/.github/stale.yml
  5. 0 40
      emsdk-cache/emsdk-main/.github/workflows/create-release.yml
  6. 0 78
      emsdk-cache/emsdk-main/.github/workflows/tag-release.yml
  7. 0 35
      emsdk-cache/emsdk-main/.gitignore
  8. 0 27
      emsdk-cache/emsdk-main/LICENSE
  9. 0 245
      emsdk-cache/emsdk-main/README.md
  10. 0 16
      emsdk-cache/emsdk-main/SECURITY.md
  11. 0 1
      emsdk-cache/emsdk-main/bazel/.bazelrc
  12. 0 1
      emsdk-cache/emsdk-main/bazel/.gitignore
  13. 0 79
      emsdk-cache/emsdk-main/bazel/MODULE.bazel
  14. 0 183
      emsdk-cache/emsdk-main/bazel/MODULE.bazel.lock
  15. 0 90
      emsdk-cache/emsdk-main/bazel/README.md
  16. 0 2
      emsdk-cache/emsdk-main/bazel/bazelrc
  17. 0 93
      emsdk-cache/emsdk-main/bazel/emscripten_build_file.bzl
  18. 0 113
      emsdk-cache/emsdk-main/bazel/emscripten_cache.bzl
  19. 0 99
      emsdk-cache/emsdk-main/bazel/emscripten_deps.bzl
  20. 0 43
      emsdk-cache/emsdk-main/bazel/emscripten_toolchain/BUILD.bazel
  21. 0 16
      emsdk-cache/emsdk-main/bazel/emscripten_toolchain/default_config
  22. 0 5
      emsdk-cache/emsdk-main/bazel/emscripten_toolchain/emar.bat
  23. 0 5
      emsdk-cache/emsdk-main/bazel/emscripten_toolchain/emar.sh
  24. 0 5
      emsdk-cache/emsdk-main/bazel/emscripten_toolchain/emcc.bat
  25. 0 5
      emsdk-cache/emsdk-main/bazel/emscripten_toolchain/emcc.sh
  26. 0 5
      emsdk-cache/emsdk-main/bazel/emscripten_toolchain/emcc_link.bat
  27. 0 5
      emsdk-cache/emsdk-main/bazel/emscripten_toolchain/emcc_link.sh
  28. 0 6
      emsdk-cache/emsdk-main/bazel/emscripten_toolchain/env.bat
  29. 0 5
      emsdk-cache/emsdk-main/bazel/emscripten_toolchain/env.sh
  30. 0 167
      emsdk-cache/emsdk-main/bazel/emscripten_toolchain/link_wrapper.py
  31. 0 1158
      emsdk-cache/emsdk-main/bazel/emscripten_toolchain/toolchain.bzl
  32. 0 56
      emsdk-cache/emsdk-main/bazel/emscripten_toolchain/wasm_binary.py
  33. 0 231
      emsdk-cache/emsdk-main/bazel/emscripten_toolchain/wasm_cc_binary.bzl
  34. 0 6
      emsdk-cache/emsdk-main/bazel/emscripten_toolchain/wasm_rules.bzl
  35. 0 10
      emsdk-cache/emsdk-main/bazel/hello-world/hello-world-simd.cc
  36. 0 6
      emsdk-cache/emsdk-main/bazel/hello-world/hello-world.cc
  37. 0 148
      emsdk-cache/emsdk-main/bazel/remote_emscripten_repository.bzl
  38. 0 805
      emsdk-cache/emsdk-main/bazel/revisions.bzl
  39. 0 1
      emsdk-cache/emsdk-main/bazel/test_external/.bazelrc
  40. 0 4
      emsdk-cache/emsdk-main/bazel/test_external/.gitignore
  41. 0 6
      emsdk-cache/emsdk-main/bazel/test_external/MODULE.bazel
  42. 0 618
      emsdk-cache/emsdk-main/bazel/test_external/MODULE.bazel.lock
  43. 0 2
      emsdk-cache/emsdk-main/bazel/test_external/hello-embind-externs.js
  44. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/hello-embind-interface.js
  45. 0 16
      emsdk-cache/emsdk-main/bazel/test_external/hello-embind.cc
  46. 0 6
      emsdk-cache/emsdk-main/bazel/test_external/hello-world.cc
  47. 0 61
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/BUILD.bazel
  48. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file01.hh
  49. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file02.hh
  50. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file03.hh
  51. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file04.hh
  52. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file05.hh
  53. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file06.hh
  54. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file07.hh
  55. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file08.hh
  56. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file09.hh
  57. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file10.hh
  58. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file11.hh
  59. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file12.hh
  60. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file13.hh
  61. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file14.hh
  62. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file15.hh
  63. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file16.hh
  64. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file17.hh
  65. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file18.hh
  66. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file19.hh
  67. 0 3
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file20.hh
  68. 0 43
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line.cc
  69. 0 5
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file01.cc
  70. 0 5
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file02.cc
  71. 0 5
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file03.cc
  72. 0 5
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file04.cc
  73. 0 5
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file05.cc
  74. 0 5
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file06.cc
  75. 0 5
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file07.cc
  76. 0 5
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file08.cc
  77. 0 5
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file09.cc
  78. 0 5
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file10.cc
  79. 0 5
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file11.cc
  80. 0 5
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file12.cc
  81. 0 5
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file13.cc
  82. 0 5
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file14.cc
  83. 0 5
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file15.cc
  84. 0 5
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file16.cc
  85. 0 5
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file17.cc
  86. 0 5
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file18.cc
  87. 0 5
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file19.cc
  88. 0 5
      emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file20.cc
  89. 0 1
      emsdk-cache/emsdk-main/bazel/test_secondary_lto_cache/.bazelrc
  90. 0 4
      emsdk-cache/emsdk-main/bazel/test_secondary_lto_cache/.gitignore
  91. 0 26
      emsdk-cache/emsdk-main/bazel/test_secondary_lto_cache/MODULE.bazel
  92. 0 632
      emsdk-cache/emsdk-main/bazel/test_secondary_lto_cache/MODULE.bazel.lock
  93. 0 6
      emsdk-cache/emsdk-main/bazel/test_secondary_lto_cache/hello-world.cc
  94. 0 131
      emsdk-cache/emsdk-main/docker/Dockerfile
  95. 0 31
      emsdk-cache/emsdk-main/docker/Makefile
  96. 0 125
      emsdk-cache/emsdk-main/docker/README.md
  97. 0 7
      emsdk-cache/emsdk-main/docker/entrypoint.sh
  98. 0 29
      emsdk-cache/emsdk-main/docker/test_dockerimage.sh
  99. 0 1
      emsdk-cache/emsdk-main/emcmdprompt.bat
  100. 0 279
      emsdk-cache/emsdk-main/emscripten-releases-tags.json

+ 0 - 354
emsdk-cache/emsdk-main/.circleci/config.yml

@@ -1,354 +0,0 @@
-version: 2.1
-
-orbs:
-  win: circleci/[email protected]
-
-executors:
-  ubuntu:
-    docker:
-      - image: buildpack-deps:focal
-  mac_arm64:
-    environment:
-      EMSDK_NOTTY: "1"
-      # Without this, any `brew install` command will result in self-update of
-      # brew itself which takes more than 4 minutes.
-      HOMEBREW_NO_AUTO_UPDATE: "1"
-    macos:
-      xcode: "13.4.1"
-    resource_class: macos.m1.medium.gen1
-  linux_arm64:
-    machine:
-      image: ubuntu-2004:2023.07.1
-    resource_class: arm.medium
-
-commands:
-  setup-macos:
-    steps:
-      - checkout
-      - run:
-          name: Install CMake
-          command: brew install cmake
-  test-macos:
-    steps:
-      - run:
-          name: test.sh
-          command: test/test.sh
-      - run:
-          name: test.py
-          command: |
-            source emsdk_env.sh
-            test/test.py
-  test-bazel-linux:
-    steps:
-      - checkout
-      - run:
-          name: install bazelisk
-          command: |
-            wget https://github.com/bazelbuild/bazelisk/releases/download/v1.25.0/bazelisk-linux-amd64
-            chmod +x bazelisk-linux-amd64
-            mv bazelisk-linux-amd64 /usr/local/bin/bazel
-      - run: test/test_bazel.sh
-  test-bazel-mac:
-    steps:
-      - checkout
-      - run:
-          name: install bazelisk
-          command: |
-            brew install bazelisk
-      - run: test/test_bazel_mac.sh
-  test-bazel-windows:
-    steps:
-      - checkout
-      - run:
-          name: Download Bazelisk
-          shell: powershell.exe
-          command: |
-            $ProgressPreference = "SilentlyContinue"
-            Invoke-WebRequest -Uri https://github.com/bazelbuild/bazelisk/releases/download/v1.10.1/bazelisk-windows-amd64.exe -OutFile ( New-Item -Path "temp\bazel\bazel.exe" -Force )
-      - run:
-          name: Run Tests
-          shell: powershell.exe
-          command: |
-            $env:Path += ";C:\Python27amd64;$pwd\temp\bazel"
-            .\test\test_bazel.ps1
-
-jobs:
-  flake8:
-    executor: ubuntu
-    steps:
-      - checkout
-      - run:
-          name: install pip
-          command: |
-            apt-get update -q
-            apt-get install -q -y python3-pip
-      - run: python3 -m pip install --upgrade pip
-      - run: python3 -m pip install flake8==7.1.1
-      - run: python3 -m flake8 --show-source --statistics --extend-exclude=./scripts
-
-  test-linux:
-    executor: ubuntu
-    environment:
-      EMSDK_NOTTY: "1"
-      # This is needed because the old gcc-7 that is installed on debian/bionic
-      # generates warnings about unused variables when doing C++17
-      # destructuring:
-      # https://github.com/WebAssembly/binaryen/issues/4353
-      CXXFLAGS: "-Wno-unused-variable"
-      # I don't know why circleci VMs pretent to have 36 cores but its a lie.
-      EMSDK_NUM_CORES: "4"
-    steps:
-      - checkout
-      - run:
-          name: Install debian packages
-          command: apt-get update -q && apt-get install -q -y cmake build-essential openjdk-8-jre-headless ksh zsh
-      - run: test/test_node_path.sh
-      - run: test/test.sh
-      - run: test/test_source_env.sh
-      - run:
-          name: test.py
-          command: |
-            source emsdk_env.sh
-            test/test.py
-  test-linux-arm64:
-    executor: linux_arm64
-    steps:
-      - checkout
-      - run:
-          name: Install debian packages
-          command: sudo apt-get update -q && sudo apt-get install -q cmake build-essential openjdk-8-jre-headless
-      - run: test/test.sh
-  test-mac-arm64:
-    executor: mac_arm64
-    steps:
-      - setup-macos
-      - test-macos
-  test-windows:
-    executor:
-      name: win/server-2019
-      shell: bash.exe
-    environment:
-      # We need python installed before we can test anytyhing.
-      # There seems to be undocument copy of python installed here. Hopefully
-      # if this disappears there will be another way of getting a re-installed
-      # version.
-      PYTHON_BIN: "C:\\Python27amd64"
-      PYTHONUNBUFFERED: "1"
-      EMSDK_NOTTY: "1"
-    steps:
-      - checkout
-      - run:
-          name: Add python to bash path
-          command: echo "export PATH=\"$PATH:/c/python27amd64/\"" >> $BASH_ENV
-      - run:
-          name: Install latest
-          shell: cmd.exe
-          command: test\test.bat
-      - run:
-          name: test.py
-          command: |
-            source emsdk_env.sh
-            python test/test.py
-
-      - run:
-          name: flagless (process/shell) test
-          shell: powershell.exe
-          command: |
-            test/test_activation.ps1
-
-      - run:
-          name: --permanent test
-          shell: powershell.exe
-          command: |
-            $env:PERMANENT_FLAG="--permanent"
-            test/test_activation.ps1
-
-      - run:
-          name: --system test
-          shell: powershell.exe
-          command: |
-            $env:SYSTEM_FLAG="--system"
-            test/test_activation.ps1
-
-      - run:
-          name: Process/Shell PATH preservation test
-          shell: powershell.exe
-          command: |
-            test/test_path_preservation.ps1
-
-      - run:
-          name: User PATH preservation test
-          shell: powershell.exe
-          command: |
-            $env:PERMANENT_FLAG="--permanent"
-            test/test_path_preservation.ps1
-
-      - run:
-          name: System PATH preservation test
-          shell: powershell.exe
-          command: |
-            $env:SYSTEM_FLAG="--system"
-            test/test_path_preservation.ps1
-
-  build-docker-image-x64:
-    executor: ubuntu
-    steps:
-      - checkout
-      - run:
-          name: install docker
-          command: |
-            apt-get update -q 
-            apt-get install -q -y ca-certificates curl gnupg lsb-release
-            mkdir -p /etc/apt/keyrings
-            curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
-            echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
-            apt-get update -q
-            apt-get install -q -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
-      - setup_remote_docker
-      # Build the `latest` version of EMSDK as docker image
-      - run:
-          name: build
-          command: make -C ./docker version=latest build
-      - run:
-          name: test
-          command: make -C ./docker version=latest test
-
-  publish-docker-image-x64:
-    executor: ubuntu
-    steps:
-      - checkout
-      - run:
-          name: install docker
-          command: |
-            apt-get update -q 
-            apt-get install -q -y ca-certificates curl gnupg lsb-release
-            mkdir -p /etc/apt/keyrings
-            curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
-            echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
-            apt-get update -q
-            apt-get install -q -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
-      - setup_remote_docker
-      - run:
-          name: build
-          command: make -C ./docker version=${CIRCLE_TAG} build
-      - run:
-          name: test
-          command: make -C ./docker version=${CIRCLE_TAG} test
-      - run:
-          name: push image
-          command: |
-            docker login -u "$DOCKER_USER" -p "$DOCKER_PASS"
-            make -C ./docker version=${CIRCLE_TAG} alias=latest push
-
-  publish-docker-image-arm64:
-    executor: linux_arm64
-    steps:
-      - checkout
-      - run:
-          name: build
-          command: make -C ./docker version=${CIRCLE_TAG} build
-      - run:
-          name: test
-          command: make -C ./docker version=${CIRCLE_TAG} test
-      - run:
-          name: push image
-          command: |
-            docker login -u "$DOCKER_USER" -p "$DOCKER_PASS"
-            make -C ./docker version=${CIRCLE_TAG} alias=${CIRCLE_TAG}-arm64 only_alias=true push
-
-  test-bazel7-linux:
-    executor: ubuntu
-    environment:
-      USE_BAZEL_VERSION: "7.x"
-    steps:
-      - test-bazel-linux
-
-  test-bazel-latest-linux:
-    executor: ubuntu
-    steps:
-      - test-bazel-linux
-
-  test-bazel7-mac-arm64:
-    executor: mac_arm64
-    environment:
-      USE_BAZEL_VERSION: "7.x"
-    steps:
-      - test-bazel-mac
-
-  test-bazel-latest-mac-arm64:
-    executor: mac_arm64
-    steps:
-      - test-bazel-mac
-
-  test-bazel7-windows:
-    executor:
-      name: win/server-2019
-      shell: powershell.exe -ExecutionPolicy Bypass
-    environment:
-      PYTHONUNBUFFERED: "1"
-      EMSDK_NOTTY: "1"
-      # For some reason version resolution with "7.x" does not work on Windows,
-      # so we have to specify a full version.
-      USE_BAZEL_VERSION: "7.6.1"
-    steps:
-      - test-bazel-windows
-
-  test-bazel-latest-windows:
-    executor:
-      name: win/server-2019
-      shell: powershell.exe -ExecutionPolicy Bypass
-    environment:
-      PYTHONUNBUFFERED: "1"
-      EMSDK_NOTTY: "1"
-    steps:
-      - test-bazel-windows
-
-workflows:
-  flake8:
-    jobs:
-      - flake8
-  test-linux:
-    jobs:
-      - test-linux
-  test-linux-arm64:
-    jobs:
-      - test-linux-arm64
-  test-mac-arm64:
-    jobs:
-      - test-mac-arm64
-  test-windows:
-    jobs:
-      - test-windows
-  build-docker-image:
-    jobs:
-      - build-docker-image-x64
-      - publish-docker-image-x64:
-          filters:
-            branches:
-              ignore: /.*/
-            tags:
-              only: /.*/
-      - publish-docker-image-arm64:
-          filters:
-            branches:
-              ignore: /.*/
-            tags:
-              only: /.*/
-  test-bazel7-linux:
-    jobs:
-      - test-bazel7-linux
-  test-bazel-latest-linux:
-    jobs:
-      - test-bazel-latest-linux
-  test-bazel7-mac-arm64:
-    jobs:
-      - test-bazel7-mac-arm64
-  test-bazel-latest-mac-arm64:
-    jobs:
-      - test-bazel-latest-mac-arm64
-  test-bazel7-windows:
-    jobs:
-      - test-bazel7-windows
-  test-bazel-latest-windows:
-    jobs:
-      - test-bazel-latest-windows

+ 0 - 21
emsdk-cache/emsdk-main/.dockerignore

@@ -1,21 +0,0 @@
-# Ignore everything
-*
-
-# Allow the entrypoint/test script inside the Docker container
-!/docker/entrypoint.sh
-!/docker/test_dockerimage.sh
-
-# Allow license file
-!LICENSE
-
-# Allow necessary build files in top-level directory
-!emscripten-releases-tags.json
-!emsdk
-!emsdk.py
-!emsdk_env.sh
-!emsdk_manifest.json
-
-# Allow files required to install legacy versions
-!legacy-binaryen-tags.txt
-!legacy-emscripten-tags.txt
-!llvm-tags-64bit.txt

+ 0 - 24
emsdk-cache/emsdk-main/.flake8

@@ -1,24 +0,0 @@
-[flake8]
-extend-exclude =
-  ./.*,
-  ./binaryen,
-  ./clang,
-  ./crunch,
-  ./downloads,
-  ./emscripten,
-  ./fastcomp-clang,
-  ./fastcomp,
-  ./git,
-  ./gnu,
-  ./llvm,
-  ./node,
-  ./python,
-  ./releases,
-  ./temp,
-  ./upstream,
-
-# E111: Indentation is not a multiple of four
-# E114: Indentation is not a multiple of four (comment)
-extend-ignore = E111, E114
-
-max-line-length = 326

+ 0 - 18
emsdk-cache/emsdk-main/.github/stale.yml

@@ -1,18 +0,0 @@
-# Number of days of inactivity before an issue becomes stale
-daysUntilStale: 365
-# Number of days of inactivity before a stale issue is closed
-daysUntilClose: 30
-# Issues with these labels will never be considered stale
-exemptLabels:
-  - pinned
-  - security
-# Label to use when marking an issue as stale
-staleLabel: wontfix
-# Comment to post when marking an issue as stale. Set to `false` to disable
-markComment: >
-  This issue has been automatically marked as stale because there has been no
-  activity in the past year.  It will be closed automatically if no further
-  activity occurs in the next 30 days.  Feel free to re-open at any time if this
-  issue is still relevant.
-# Comment to post when closing a stale issue. Set to `false` to disable
-closeComment: false

+ 0 - 40
emsdk-cache/emsdk-main/.github/workflows/create-release.yml

@@ -1,40 +0,0 @@
-name: Create Release PR
-
-on:
-  workflow_dispatch:
-    inputs:
-      lto-sha:
-        required: true
-        type: string
-      nonlto-sha:
-        required: true
-        type: string
-
-jobs:
-  create-release-pr:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout repo
-        uses: actions/checkout@v4
-      - name: Run create_release.py
-        run: python3 scripts/create_release.py -r ${{ inputs.lto-sha }} -a ${{ inputs.nonlto-sha }} --gh-action
-      - name: Create PR
-        id: cpr
-        uses: peter-evans/create-pull-request@v6
-        with:
-          token: ${{ secrets.EMSCRIPTEN_BOT_TOKEN }}
-          title: Release ${{ env.RELEASE_VERSION }}
-          commit-message: |
-            Release ${{ env.RELEASE_VERSION }}
-          team-reviewers: release-reviewers
-          labels: release
-          body: |
-            With emscripten-releases revisions:
-              https://chromium.googlesource.com/emscripten-releases/+/${{ inputs.lto-sha }} (LTO)
-              https://chromium.googlesource.com/emscripten-releases/+/${{ inputs.nonlto-sha }} (asserts)
-          branch: release_${{ env.RELEASE_VERSION }}
-          delete-branch: true
-      - name: Enable auto-merge
-        run: gh pr merge --squash --auto "${{ steps.cpr.outputs.pull-request-number }}"
-        env:
-          GH_TOKEN: ${{ secrets.EMSCRIPTEN_BOT_TOKEN }}

+ 0 - 78
emsdk-cache/emsdk-main/.github/workflows/tag-release.yml

@@ -1,78 +0,0 @@
-# When a release commit created by create-release.yml is landed, create the
-# corresponding tag.
-name: Create release tag
-
-on:
-  push:
-    paths:
-      - emscripten-releases-tags.json
-      - .github/workflows/tag-release.yml
-    branches:
-      - main
-  workflow_dispatch:
-
-jobs:
-  tag-release:
-    # Only activate for commits created by the create-release.yml workflow.
-    # The assumption is that when manual changes happen, we want to handle
-    # tagging manually too.
-    name: Check for release commit and create tag
-    # The author is emscripten-bot when triggered from Chromium CI, and github-actions when manually triggered.
-    if: ${{ github.event.head_commit.author.username == 'github-actions[bot]' || github.event.head_commit.author.username == 'emscripten-bot' }}
-    runs-on: ubuntu-latest
-    outputs:
-      is_release: ${{ steps.create-tag.outputs.result }}
-    steps:
-      - name: Match message and create tag
-        id: create-tag
-        uses: actions/github-script@v7
-        with:
-          github-token: ${{ secrets.EMSCRIPTEN_BOT_TOKEN }}
-          # A commit with the message of the form 'Release X.Y.Z' is expected
-          # to have been created by create_release.py and update the latest
-          # release in emscripten-releases-tags.json
-          script: |
-            const message = `${{ github.event.head_commit.message }}`
-            const regex = /Release ([0-9]+.[0-9]+.[0-9]+)/;
-            const match = message.match(regex);
-            let is_release = false;
-            if (match) {
-              const release = match[1];
-              console.log(`Matched release ${release}`);
-              await github.rest.git.createRef({
-                owner: context.repo.owner,
-                repo: context.repo.repo,
-                ref: `refs/tags/${release}`,
-                sha: context.sha
-              });
-              is_release = true;
-            } else {
-              console.log(`Commit message: '${message}' did not match pattern`);
-            }
-            return is_release;
-
-  dispatch-emscripten-tag:
-    name: Dispatch workflow to tag emscripten repo
-    runs-on: ubuntu-latest
-    needs: tag-release
-    if: ${{ needs.tag-release.outputs.is_release == 'true' }}
-    steps:
-      - name: Checkout repo
-        uses: actions/checkout@v4
-      - name: Find emscripten revision
-        # get_emscripten_revision_info.py sets env.EMSCRIPTEN_HASH to the
-        # emscripten hash associated with the latest release in
-        # emscripten-releases-tags.json
-        run: python3 scripts/get_emscripten_revision_info.py
-      - name: Dispatch emscripten workflow
-        uses: actions/github-script@v7
-        with:
-          github-token: ${{ secrets.EMSCRIPTEN_BOT_TOKEN }}
-          script: |
-            await github.rest.actions.createWorkflowDispatch({
-              owner: context.repo.owner,
-              repo: 'emscripten',
-              workflow_id: 'tag-release.yml',
-              ref: 'main',
-              inputs: { 'release-sha': '${{ env.EMSCRIPTEN_HASH }}' }
-            });

+ 0 - 35
emsdk-cache/emsdk-main/.gitignore

@@ -1,35 +0,0 @@
-*.pyc
-__pycache__
-
-# Support for --embedded configs
-/.emscripten
-/.emscripten.old
-/.emscripten_cache
-/.emscripten_cache__last_clear
-/.emscripten_sanity
-/.emscripten_sanity_wasm
-
-# Tags files that get generated at runtime
-/emscripten-releases-tot.txt
-
-# File that get download/extracted by emsdk itself
-/ccache
-/gnu
-/upstream
-/fastcomp
-/fastcomp-clang/
-/llvm
-/ninja
-/releases
-/clang
-/emscripten
-/git
-/node
-/python
-/temp
-/downloads
-/crunch
-/java
-/mingw
-/spidermonkey
-/binaryen

+ 0 - 27
emsdk-cache/emsdk-main/LICENSE

@@ -1,27 +0,0 @@
-Copyright (c) 2018 Emscripten authors (see AUTHORS in Emscripten)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-----------------------------------------------------------------------------
-
-This is the MIT/Expat Licence. For more information see:
-
-1. http://www.opensource.org/licenses/mit-license.php
-
-2. http://en.wikipedia.org/wiki/MIT_License

+ 0 - 245
emsdk-cache/emsdk-main/README.md

@@ -1,245 +0,0 @@
-Emscripten SDK
-==============
-
-[![CircleCI](https://circleci.com/gh/emscripten-core/emsdk/tree/main.svg?style=svg)](https://circleci.com/gh/emscripten-core/emsdk/tree/main)
-
-The Emscripten toolchain is distributed as a standalone Emscripten SDK. The SDK
-provides all the required tools, such as Clang, Python and Node.js along with an
-update mechanism that enables migrating to newer Emscripten versions as they are
-released.
-
-You can also set up Emscripten from source, without the pre-built SDK, see
-"Installing from Source" below.
-
-## Downloads / How do I get the latest Emscripten build?
-
-To get started with Emscripten development, see the [Emscripten website
-documentation](https://emscripten.org/docs/getting_started/downloads.html).
-
-That explains how to use the emsdk to get the latest binary builds (without
-compiling from source). Basically, that amounts to
-
-```
-git pull
-./emsdk install latest
-./emsdk activate latest
-```
-
-## SDK Concepts
-
-The Emscripten SDK is effectively a small package manager for tools that are
-used in conjunction with Emscripten. The following glossary highlights the
-important concepts to help understanding the internals of the SDK:
-
-* **Tool**: The basic unit of software bundled in the SDK. A Tool has a name and
-  a version. For example, 'clang-3.2-32bit' is a Tool that contains the 32-bit
-  version of the Clang v3.2 compiler.
-* **SDK**: A set of tools. For example, 'sdk-1.5.6-32bit' is an SDK consisting
-  of the tools `clang-3.2-32bit`, `node-0.10.17-32bit`, `python-2.7.5.1-32bit`
-  and `emscripten-1.5.6`.
-* **Active Tool/SDK**: Emscripten SDK stores compiler configuration in a file
-  called `.emscripten` within the emsdk directory. This file points to paths
-  for Emscripten, Python, Clang and so on. If the configuration file points to a
-  Tool in a specific directory, then that tool is denoted as being
-  **active**. This mechanism allows switching between different installed
-  tools and SDKs.
-* **emsdk**: This is the name of the manager script that Emscripten SDK is
-  accessed through. Most operations are of the form `emsdk <command>`.
-
-## System Requirements
-
-Using the emsdk pre-compiled packages requires only the minimal set of
-dependencies lists below.  When building from source a wider set of tools
-include git, cmake, and a host compiler are required. See:
-https://emscripten.org/docs/building_from_source/toolchain_what_is_needed.html.
-
-### Mac OS X
-
-- For Intel-based Macs, macOS 10.13 or newer. For ARM64 M1 based Macs, macOS
-  11.0 or newer.
-- `java`: For running closure compiler (optional).  After installing emscripten
-  via emsdk, typing 'emcc --help' should pop up a OS X dialog "Java is not
-  installed. To open java, you need a Java SE 6 runtime. Would you like to
-  install one now?" that will automatically download a Java runtime to the
-  system.
-
-### Linux
-
-- `python`: Version 3.8 or above.
-- `java`: For running closure compiler (optional)
-
-The emsdk pre-compiled binaries are built against Ubuntu/Focal 20.04 LTS and
-therefore depend on system libraries compatible with versions of `glibc` and
-`libstdc++` present in that release.  If your linux distribution is very old
-you may not be able to use the pre-compiled binaries packages.
-
-### Windows
-
-- `java`: For running closure compiler (optional)
-
-## Uninstalling the Emscripten SDK
-
-To remove the Emscripten SDK, simply delete the emsdk directory.
-
-## SDK Maintenance
-
-The following tasks are common with the Emscripten SDK:
-
-### How do I work the emsdk utility?
-
-Run `emsdk help` or just `emsdk` to get information about all available commands.
-
-### How do I check the installation status and version of the SDK and tools?
-
-To get a list of all currently installed tools and SDK versions, and all
-available tools, run `emsdk list`.
-* A line will be printed for each tool/SDK that is available for installation.
-* The text `INSTALLED` will be shown for each tool that has already been
-  installed.
-* If a tool/SDK is currently active, a star * will be shown next to it.
-* If a tool/SDK is currently active, but the terminal your are calling emsdk
-  from does not have `PATH` and environment set up to utilize that tool, a star
-  in parentheses (\*) will be shown next to it. Run `emsdk_env.bat` (Windows) or
-  `source ./emsdk_env.sh` (Linux and OS X) to set up the environment for the
-  calling terminal.
-
-### How do I install a tool/SDK version?
-
-Run the command `emsdk install <tool/sdk name>` to download and install a new
-tool or an SDK version.
-
-### How do I remove a tool or an SDK?
-
-Run the command `emsdk uninstall <tool/sdk name>` to delete the given tool or
-SDK from the local hard drive completely.
-
-### How do I check for updates to the Emscripten SDK?
-
-`emsdk update` will fetch package information for all the new tools and
-SDK versions. After that, run `emsdk install <tool/sdk name>` to install a new
-version.
-
-### How do I install an old Emscripten compiler version?
-
-Emsdk contains a history of old compiler versions that you can use to maintain
-your migration path. Type `emsdk list --old` to get a list of archived tool and
-SDK versions, and `emsdk install <name_of_tool>` to install it.
-
-### I want to build from source!
-
-Some Emsdk Tool and SDK targets refer to packages that are precompiled, and
-no compilation is needed when installing them. Other Emsdk Tools and SDK
-targets come "from source", meaning that they will fetch the source repositories
-using git, and compile the package on demand.
-
-When you run `emsdk list`, it will group the Tools and SDKs under these two
-categories.
-
-To obtain and build latest wasm SDK from source, run
-
-```
-emsdk install sdk-main-64bit
-emsdk activate sdk-main-64bit
-```
-
-You can use this target for example to bootstrap developing patches to LLVM,
-Binaryen or Emscripten. (After initial installation, use `git remote add`
-in the cloned tree to add your own fork to push changes as patches)
-
-If you only intend to contribute to Emscripten repository, and not to LLVM
-or Binaryen, you can also use precompiled versions of them, and only git
-clone the Emscripten repository. For more details, see
-
-https://emscripten.org/docs/contributing/developers_guide.html?highlight=developer#setting-up
-
-### When working on git branches compiled from source, how do I update to a newer compiler version?
-
-Unlike tags and precompiled versions, a few of the SDK packages are based on
-"moving" git branches and compiled from source (e.g. sdk-main,
-sdk-main, emscripten-main, binaryen-main). Because of that, the
-compiled versions will eventually go out of date as new commits are introduced
-to the development branches. To update an old compiled installation of one of
-this branches, simply reissue the "emsdk install" command on that tool/SDK. This
-will `git pull` the latest changes to the branch and issue an incremental
-recompilation of the target in question. This way you can keep calling `emsdk
-install` to keep an Emscripten installation up to date with a given git branch.
-
-Note though that if the previously compiled branch is very old, sometimes CMake
-gets confused and is unable to properly rebuild a project. This has happened in
-the past e.g. when LLVM migrated to requiring a newer CMake version. In cases of
-any odd compilation errors, it is advised to try deleting the intermediate build
-directory to clear the build (e.g. "emsdk/clang/fastcomp/build_xxx/") before
-reissuing `emsdk install`.
-
-### How do I change the currently active SDK version?
-
-You can toggle between different tools and SDK versions by running `emsdk
-activate <tool/sdk name>`. Activating a tool will set up `~/.emscripten` to
-point to that particular tool. On Windows, you can pass the option `--permanent` to
-the `activate` command to register the environment permanently for the current user. Use `--system` to do this for all users.
-
-### How do I track the latest Emscripten development with the SDK?
-
-A common and supported use case of the Emscripten SDK is to enable the workflow
-where you directly interact with the github repositories. This allows you to
-obtain new features and latest fixes immediately as they are pushed to the
-github repository, without having to wait for release to be tagged. You do not
-need a github account or a fork of Emscripten to do this. To switch to using the
-latest git development branch `main`, run the following:
-
-    emsdk install git-1.9.4 # Install git. Skip if the system already has it.
-    emsdk install sdk-main-64bit # Clone+pull the latest emscripten-core/emscripten/main.
-    emsdk activate sdk-main-64bit # Set the main SDK as the currently active one.
-
-### How do I use my own Emscripten github fork with the SDK?
-
-It is also possible to use your own fork of the Emscripten repository via the
-SDK. This is achieved with standard git machinery, so if you are already
-acquainted with working on multiple remotes in a git clone, these steps should
-be familiar to you. This is useful in the case when you want to make your own
-modifications to the Emscripten toolchain, but still keep using the SDK
-environment and tools. To set up your own fork as the currently active
-Emscripten toolchain, first install the `sdk-main` SDK like shown in the
-previous section, and then run the following commands in the emsdk directory:
-
-    cd emscripten/main
-    # Add a git remote link to your own repository.
-    git remote add myremote https://github.com/mygituseraccount/emscripten.git
-    # Obtain the changes in your link.
-    git fetch myremote
-    # Switch the emscripten-main tool to use your fork.
-    git checkout -b mymain --track myremote/main
-
-In this way you can utilize the Emscripten SDK tools while using your own git
-fork. You can switch back and forth between remotes via the `git checkout`
-command as usual.
-
-### How do I use Emscripten SDK with a custom version of python, java, node.js or some other tool?
-
-The provided Emscripten SDK targets are metapackages that refer to a specific
-set of tools that have been tested to work together. For example,
-`sdk-1.35.0-64bit` is an alias to the individual packages `clang-e1.35.0-64bit`,
-`node-4.1.1-64bit`, `python-2.7.5.3-64bit` and `emscripten-1.35.0`. This means
-that if you install this version of the SDK, both python and node.js will be
-installed inside emsdk as well. If you want to use your own/system python or
-node.js instead, you can opt to install emsdk by specifying the individual set
-of packages that you want to use. For example, `emsdk install
-clang-e1.35.0-64bit emscripten-1.35.0` will only install the Emscripten
-LLVM/Clang compiler and the Emscripten frontend without supplying python and
-node.js.
-
-### My installation fails with "fatal error: ld terminated with signal 9 [Killed]"?
-
-This may happen if the system runs out of memory. If you are attempting to build
-one of the packages from source and are running in a virtual OS or may have
-relatively little RAM and disk space available, then the build might fail. Try
-feeding your computer more memory. Another thing to try is to force emsdk
-install to build in a singlethreaded mode, which will require less RAM
-simultaneously. To do this, pass the `-j1` flag to the `emsdk install` command.
-
-### How do I run Emscripten on 32-bit systems or non-x86-64 systems?
-
-Emscripten SDK releases are no longer packaged or maintained for 32-bit systems.
-If you want to run Emscripten on a 32-bit system, you can try manually building
-the compiler. Follow the steps in the above section "Building an Emscripten tag
-or branch from source" to get started.

+ 0 - 16
emsdk-cache/emsdk-main/SECURITY.md

@@ -1,16 +0,0 @@
-# Security Policy
-
-If you have discovered a security vulnerability in this project, please report it
-privately. **Do not disclose it as a public issue.** This gives us time to work with you
-to fix the issue before public exposure, reducing the chance that the exploit will be
-used before a patch is released.
-
-Please submit the report as a [security bug on the Chromium tracker](https://bugs.chromium.org/p/chromium/issues/entry?template=Security%20Bug).
-
-Please provide the following information in your report:
-
-- A description of the vulnerability and its impact
-- How to reproduce the issue
-- Make it clear that it's an Emscripten SDK bug.
-
-We ask that you give us 90 days to work on a fix before public exposure.

+ 0 - 1
emsdk-cache/emsdk-main/bazel/.bazelrc

@@ -1 +0,0 @@
-build --incompatible_enable_cc_toolchain_resolution

+ 0 - 1
emsdk-cache/emsdk-main/bazel/.gitignore

@@ -1 +0,0 @@
-/bazel-*

+ 0 - 79
emsdk-cache/emsdk-main/bazel/MODULE.bazel

@@ -1,79 +0,0 @@
-module(
-    name = "emsdk",
-    version = "4.0.13",
-)
-
-bazel_dep(name = "platforms", version = "0.0.11")
-bazel_dep(name = "bazel_skylib", version = "1.7.1")
-bazel_dep(name = "aspect_rules_js", version = "1.42.0")
-bazel_dep(name = "rules_nodejs", version = "6.3.2")
-bazel_dep(name = "rules_cc", version = "0.1.1")
-bazel_dep(name = "rules_python", version = "1.3.0")
-
-python = use_extension("@rules_python//python/extensions:python.bzl", "python")
-python.toolchain(
-    python_version = "3.13",
-)
-
-node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node")
-node.toolchain(node_version = "20.18.0")
-use_repo(node, "nodejs")
-
-emscripten_deps = use_extension(
-    "//:emscripten_deps.bzl",
-    "emscripten_deps",
-)
-use_repo(emscripten_deps, "emscripten_bin_linux")
-use_repo(emscripten_deps, "emscripten_bin_linux_arm64")
-use_repo(emscripten_deps, "emscripten_bin_mac")
-use_repo(emscripten_deps, "emscripten_bin_mac_arm64")
-use_repo(emscripten_deps, "emscripten_bin_win")
-
-npm = use_extension(
-    "@aspect_rules_js//npm:extensions.bzl",
-    "npm",
-)
-npm.npm_translate_lock(
-    name = "emscripten_npm_linux",
-    data = ["@emscripten_bin_linux//:emscripten/package.json"],
-    npm_package_lock = "@emscripten_bin_linux//:emscripten/package-lock.json",
-)
-npm.npm_translate_lock(
-    name = "emscripten_npm_linux_arm64",
-    data = ["@emscripten_bin_linux_arm64//:emscripten/package.json"],
-    npm_package_lock = "@emscripten_bin_linux_arm64//:emscripten/package-lock.json",
-)
-npm.npm_translate_lock(
-    name = "emscripten_npm_mac",
-    data = ["@emscripten_bin_mac//:emscripten/package.json"],
-    npm_package_lock = "@emscripten_bin_mac//:emscripten/package-lock.json",
-)
-npm.npm_translate_lock(
-    name = "emscripten_npm_mac_arm64",
-    data = ["@emscripten_bin_mac_arm64//:emscripten/package.json"],
-    npm_package_lock = "@emscripten_bin_mac_arm64//:emscripten/package-lock.json",
-)
-npm.npm_translate_lock(
-    name = "emscripten_npm_win",
-    data = ["@emscripten_bin_win//:emscripten/package.json"],
-    npm_package_lock = "@emscripten_bin_win//:emscripten/package-lock.json",
-)
-use_repo(
-    npm,
-    "emscripten_npm_linux",
-    "emscripten_npm_linux_arm64",
-    "emscripten_npm_mac",
-    "emscripten_npm_mac_arm64",
-    "emscripten_npm_win",
-)
-
-emscripten_cache = use_extension("//:emscripten_cache.bzl", "emscripten_cache")
-use_repo(emscripten_cache, "emscripten_cache")
-
-register_toolchains(
-    "//emscripten_toolchain:cc-toolchain-wasm-emscripten_linux",
-    "//emscripten_toolchain:cc-toolchain-wasm-emscripten_linux_arm64",
-    "//emscripten_toolchain:cc-toolchain-wasm-emscripten_mac",
-    "//emscripten_toolchain:cc-toolchain-wasm-emscripten_mac_arm64",
-    "//emscripten_toolchain:cc-toolchain-wasm-emscripten_win",
-)

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 183
emsdk-cache/emsdk-main/bazel/MODULE.bazel.lock


+ 0 - 90
emsdk-cache/emsdk-main/bazel/README.md

@@ -1,90 +0,0 @@
-# Bazel Emscripten toolchain
-
-## Setup Instructions
-
-Support for depending on emsdk with a WORKSPACE file was removed and last available in [emsdk version 4.0.6](https://github.com/emscripten-core/emsdk/tree/24fc909c0da13ef641d5ae75e89b5a97f25e37aa). Now we only support inclusion as a bzlmod module.
-
-In your `MODULE.bazel` file, put:
-```starlark
-emsdk_version = "4.0.6"
-bazel_dep(name = "emsdk", version = emsdk_version)
-git_override(
-    module_name = "emsdk",
-    remote = "https://github.com/emscripten-core/emsdk.git",
-    strip_prefix = "bazel",
-    tag = emsdk_version,
-)
-```
-
-You can use a different version of this SDK by changing it in your `MODULE.bazel` file. The Emscripten version is by default the same as the SDK version, but you can use a different one as well by adding to your `MODULE.bazel`:
-
-```
-emscripten_deps = use_extension(
-    "@emsdk//:emscripten_deps.bzl",
-    "emscripten_deps",
-)
-emscripten_deps.config(version = "4.0.1")
-```
-
-## Building
-
-Put the following line into your `.bazelrc`:
-
-```
-build --incompatible_enable_cc_toolchain_resolution
-```
-
-Then write a new rule wrapping your `cc_binary`.
-
-```starlark
-load("@rules_cc//cc:defs.bzl", "cc_binary")
-load("@emsdk//emscripten_toolchain:wasm_rules.bzl", "wasm_cc_binary")
-
-cc_binary(
-    name = "hello-world",
-    srcs = ["hello-world.cc"],
-)
-
-wasm_cc_binary(
-    name = "hello-world-wasm",
-    cc_target = ":hello-world",
-)
-```
-
-Now you can run `bazel build :hello-world-wasm`. The result of this build will
-be the individual files produced by emscripten. Note that some of these files
-may be empty. This is because bazel has no concept of optional outputs for
-rules.
-
-`wasm_cc_binary` uses transition to use emscripten toolchain on `cc_target`
-and all of its dependencies, and does not require amending `.bazelrc`. This
-is the preferred way, since it also unpacks the resulting tarball.
-
-The Emscripten cache shipped by default does not include LTO, 64-bit or PIC
-builds of the system libraries and ports. If you wish to use these features you
-will need to declare the cache in your `MODULE.bazel` as follows. Note
-that the configuration consists of the same flags that can be passed to
-embuilder. If `targets` is not set, all system libraries and ports will be
-built, i.e., the `ALL` option to embuilder.
-
-```starlark
-emscripten_cache = use_extension(
-    "@emsdk//:emscripten_cache.bzl",
-    "emscripten_cache",
-)
-emscripten_cache.configuration(flags = ["--lto"])
-emscripten_cache.targets(targets = [
-    "crtbegin",
-    "libprintf_long_double-debug",
-    "libstubs-debug",
-    "libnoexit",
-    "libc-debug",
-    "libdlmalloc",
-    "libcompiler_rt",
-    "libc++-noexcept",
-    "libc++abi-debug-noexcept",
-    "libsockets"
-])
-```
-
-See `test_external/` for an example using [embind](https://emscripten.org/docs/porting/connecting_cpp_and_javascript/embind.html).

+ 0 - 2
emsdk-cache/emsdk-main/bazel/bazelrc

@@ -1,2 +0,0 @@
-build:wasm --incompatible_enable_cc_toolchain_resolution
-build:wasm --platforms=@emsdk//:platform_wasm

+ 0 - 93
emsdk-cache/emsdk-main/bazel/emscripten_build_file.bzl

@@ -1,93 +0,0 @@
-"""A templated build file for emscripten repositories"""
-
-EMSCRIPTEN_BUILD_FILE_CONTENT_TEMPLATE = """
-package(default_visibility = ['//visibility:public'])
-
-filegroup(
-    name = "all",
-    srcs = glob(["**"]),
-)
-
-filegroup(
-    name = "includes",
-    srcs = glob([
-        "emscripten/cache/sysroot/include/c++/v1/**",
-        "emscripten/cache/sysroot/include/compat/**",
-        "emscripten/cache/sysroot/include/**",
-        "lib/clang/**/include/**",
-    ]),
-)
-
-filegroup(
-    name = "emcc_common",
-    srcs = [
-        "emscripten/emcc.py",
-        "emscripten/embuilder.py",
-        "emscripten/emscripten-version.txt",
-        "emscripten/cache/sysroot_install.stamp",
-        "emscripten/src/settings.js",
-        "emscripten/src/settings_internal.js",
-    ] + glob(
-        include = [
-            "emscripten/third_party/**",
-            "emscripten/tools/**",
-        ],
-        exclude = [
-            "**/__pycache__/**",
-        ],
-    ),
-)
-
-filegroup(
-    name = "compiler_files",
-    srcs = [
-        "bin/clang{bin_extension}",
-        "bin/clang++{bin_extension}",
-        ":emcc_common",
-        ":includes",
-    ],
-)
-
-filegroup(
-    name = "linker_files",
-    srcs = [
-        "bin/clang{bin_extension}",
-        "bin/llvm-ar{bin_extension}",
-        "bin/llvm-dwarfdump{bin_extension}",
-        "bin/llvm-nm{bin_extension}",
-        "bin/llvm-objcopy{bin_extension}",
-        "bin/wasm-ctor-eval{bin_extension}",
-        "bin/wasm-emscripten-finalize{bin_extension}",
-        "bin/wasm-ld{bin_extension}",
-        "bin/wasm-metadce{bin_extension}",
-        "bin/wasm-opt{bin_extension}",
-        "bin/wasm-split{bin_extension}",
-        "bin/wasm2js{bin_extension}",
-        ":emcc_common",
-    ] + glob(
-        include = [
-            "emscripten/cache/sysroot/lib/**",
-            "emscripten/node_modules/**",
-            "emscripten/src/**",
-        ],
-    ),
-)
-
-filegroup(
-    name = "ar_files",
-    srcs = [
-        "bin/llvm-ar{bin_extension}",
-        "emscripten/emar.py",
-        "emscripten/emscripten-version.txt",
-        "emscripten/src/settings.js",
-        "emscripten/src/settings_internal.js",
-    ] + glob(
-        include = [
-            "emscripten/tools/**",
-        ],
-        exclude = [
-            "**/__pycache__/**",
-        ],
-    ),
-)
-"""

+ 0 - 113
emsdk-cache/emsdk-main/bazel/emscripten_cache.bzl

@@ -1,113 +0,0 @@
-BUILD_FILE_CONTENT_TEMPLATE = """
-package(default_visibility = ['//visibility:public'])
-exports_files(['emscripten_config'])
-"""
-
-EMBUILDER_CONFIG_TEMPLATE = """
-CACHE = '{cache}'
-BINARYEN_ROOT = '{binaryen_root}'
-LLVM_ROOT = '{llvm_root}'
-"""
-
-def get_root_and_script_ext(repository_ctx):
-    if repository_ctx.os.name.startswith("linux"):
-        if "amd64" in repository_ctx.os.arch or "x86_64" in repository_ctx.os.arch:
-            return (repository_ctx.path(Label("@emscripten_bin_linux//:BUILD.bazel")).dirname, "")
-        elif "aarch64" in repository_ctx.os.arch:
-            return (repository_ctx.path(Label("@emscripten_bin_linux_arm64//:BUILD.bazel")).dirname, "")
-        else:
-            fail("Unsupported architecture for Linux")
-    elif repository_ctx.os.name.startswith("mac"):
-        if "amd64" in repository_ctx.os.arch or "x86_64" in repository_ctx.os.arch:
-            return (repository_ctx.path(Label("@emscripten_bin_mac//:BUILD.bazel")).dirname, "")
-        elif "aarch64" in repository_ctx.os.arch:
-            return (repository_ctx.path(Label("@emscripten_bin_mac_arm64//:BUILD.bazel")).dirname, "")
-        else:
-            fail("Unsupported architecture for MacOS")
-    elif repository_ctx.os.name.startswith("windows"):
-        return (repository_ctx.path(Label("@emscripten_bin_win//:BUILD.bazel")).dirname, ".bat")
-    else:
-        fail("Unsupported operating system")
-
-def _emscripten_cache_repository_impl(repository_ctx):
-    # Read the default emscripten configuration file
-    default_config = repository_ctx.read(
-        repository_ctx.path(
-            Label("@emsdk//emscripten_toolchain:default_config"),
-        ),
-    )
-
-    if repository_ctx.attr.targets or repository_ctx.attr.configuration:
-        root, script_ext = get_root_and_script_ext(repository_ctx)
-        llvm_root = root.get_child("bin")
-        cache = repository_ctx.path("cache")
-
-        # Create configuration file
-        embuilder_config_content = EMBUILDER_CONFIG_TEMPLATE.format(
-            cache = cache,
-            binaryen_root = root,
-            llvm_root = llvm_root,
-        )
-        repository_ctx.file("embuilder_config", embuilder_config_content)
-        embuilder_config_path = repository_ctx.path("embuilder_config")
-        embuilder_path = "{}{}".format(root.get_child("emscripten").get_child("embuilder"), script_ext)
-
-        # Prepare the command line
-        if repository_ctx.attr.targets:
-            targets = repository_ctx.attr.targets
-        else:
-            # If no targets are requested, build everything
-            targets = ["ALL"]
-        flags = ["--em-config", embuilder_config_path] + repository_ctx.attr.configuration
-        embuilder_args = [embuilder_path] + flags + ["build"] + targets
-
-        # Run embuilder
-        repository_ctx.report_progress("Building secondary cache")
-        result = repository_ctx.execute(
-            embuilder_args,
-            quiet = True,
-            environment = {
-                "EM_IGNORE_SANITY": "1",
-                "EM_NODE_JS": "empty",
-            },
-        )
-        if result.return_code != 0:
-            fail("Embuilder exited with a non-zero return code")
-
-        # Override Emscripten's cache with the secondary cache
-        default_config += "CACHE = '{}'\n".format(cache)
-
-    # Create the configuration file for the toolchain and export
-    repository_ctx.file("emscripten_config", default_config)
-    repository_ctx.file("BUILD.bazel", BUILD_FILE_CONTENT_TEMPLATE)
-
-_emscripten_cache_repository = repository_rule(
-    implementation = _emscripten_cache_repository_impl,
-    attrs = {
-        "configuration": attr.string_list(),
-        "targets": attr.string_list(),
-    },
-)
-
-def _emscripten_cache_impl(ctx):
-    all_configuration = []
-    all_targets = []
-    for mod in ctx.modules:
-        for configuration in mod.tags.configuration:
-            all_configuration += configuration.flags
-        for targets in mod.tags.targets:
-            all_targets += targets.targets
-
-    _emscripten_cache_repository(
-        name = "emscripten_cache",
-        configuration = all_configuration,
-        targets = all_targets,
-    )
-
-emscripten_cache = module_extension(
-    tag_classes = {
-        "configuration": tag_class(attrs = {"flags": attr.string_list()}),
-        "targets": tag_class(attrs = {"targets": attr.string_list()}),
-    },
-    implementation = _emscripten_cache_impl,
-)

+ 0 - 99
emsdk-cache/emsdk-main/bazel/emscripten_deps.bzl

@@ -1,99 +0,0 @@
-load(":remote_emscripten_repository.bzl", "remote_emscripten_repository")
-load(":revisions.bzl", "EMSCRIPTEN_TAGS")
-
-def _parse_version(v):
-    return [int(u) for u in v.split(".")]
-
-def _empty_repository_impl(ctx):
-    ctx.file("MODULE.bazel", """module(name = "{}")""".format(ctx.name))
-    ctx.file("BUILD.bazel", "")
-
-_empty_repository = repository_rule(
-    implementation = _empty_repository_impl,
-)
-
-def emscripten_repo_name(name):
-    return "emscripten_bin_{}".format(name)
-
-def _emscripten_deps_impl(ctx):
-    version = None
-
-    for mod in ctx.modules:
-        for config in mod.tags.config:
-            if config.version and version != None:
-                fail("More than one emscripten version specified!")
-            version = config.version
-    if version == None:
-        version = "latest"
-
-    if version == "latest":
-        version = reversed(sorted(EMSCRIPTEN_TAGS.keys(), key = _parse_version))[0]
-
-    revision = EMSCRIPTEN_TAGS[version]
-
-    emscripten_url = "https://storage.googleapis.com/webassembly/emscripten-releases-builds/{}/{}/wasm-binaries{}.{}"
-
-    remote_emscripten_repository(
-        name = emscripten_repo_name("linux"),
-        bin_extension = "",
-        sha256 = revision.sha_linux,
-        strip_prefix = "install",
-        type = "tar.xz",
-        url = emscripten_url.format("linux", revision.hash, "", "tar.xz"),
-    )
-
-    # Not all versions have a linux/arm64 release: https://github.com/emscripten-core/emsdk/issues/547
-    if hasattr(revision, "sha_linux_arm64"):
-        remote_emscripten_repository(
-            name = emscripten_repo_name("linux_arm64"),
-            bin_extension = "",
-            sha256 = revision.sha_linux_arm64,
-            strip_prefix = "install",
-            type = "tar.xz",
-            url = emscripten_url.format("linux", revision.hash, "-arm64", "tar.xz"),
-        )
-    else:
-        _empty_repository(
-            name = emscripten_repo_name("linux_arm64"),
-        )
-
-    remote_emscripten_repository(
-        name = emscripten_repo_name("mac"),
-        bin_extension = "",
-        sha256 = revision.sha_mac,
-        strip_prefix = "install",
-        type = "tar.xz",
-        url = emscripten_url.format("mac", revision.hash, "", "tar.xz"),
-    )
-
-    remote_emscripten_repository(
-        name = emscripten_repo_name("mac_arm64"),
-        bin_extension = "",
-        sha256 = revision.sha_mac_arm64,
-        strip_prefix = "install",
-        type = "tar.xz",
-        url = emscripten_url.format("mac", revision.hash, "-arm64", "tar.xz"),
-    )
-
-    remote_emscripten_repository(
-        name = emscripten_repo_name("win"),
-        bin_extension = ".exe",
-        sha256 = revision.sha_win,
-        strip_prefix = "install",
-        type = "zip",
-        url = emscripten_url.format("win", revision.hash, "", "zip"),
-    )
-
-emscripten_deps = module_extension(
-    tag_classes = {
-        "config": tag_class(
-            attrs = {
-                "version": attr.string(
-                    doc = "Version to use. 'latest' to use latest.",
-                    values = ["latest"] + EMSCRIPTEN_TAGS.keys(),
-                ),
-            },
-        ),
-    },
-    implementation = _emscripten_deps_impl,
-)

+ 0 - 43
emsdk-cache/emsdk-main/bazel/emscripten_toolchain/BUILD.bazel

@@ -1,43 +0,0 @@
-load("//:emscripten_deps.bzl", "emscripten_repo_name")
-load("//:remote_emscripten_repository.bzl", "create_toolchains", "emscripten_toolchain_name")
-load("@rules_python//python:py_binary.bzl", "py_binary")
-
-package(default_visibility = ["//visibility:public"])
-
-# dlmalloc.bc is implicitly added by the emscripten toolchain
-cc_library(name = "malloc")
-
-create_toolchains(
-    name = emscripten_toolchain_name("linux"),
-    repo_name = emscripten_repo_name("linux"),
-    exec_compatible_with = [ "@platforms//os:linux", "@platforms//cpu:x86_64"],
-)
-
-create_toolchains(
-    name = emscripten_toolchain_name("linux_arm64"),
-    repo_name = emscripten_repo_name("linux_arm64"),
-    exec_compatible_with = ["@platforms//os:linux", "@platforms//cpu:arm64"],
-)
-
-create_toolchains(
-    name = emscripten_toolchain_name("mac"),
-    repo_name = emscripten_repo_name("mac"),
-    exec_compatible_with = ["@platforms//os:macos", "@platforms//cpu:x86_64"],
-)
-
-create_toolchains(
-    name = emscripten_toolchain_name("mac_arm64"),
-    repo_name = emscripten_repo_name("mac_arm64"),
-    exec_compatible_with = ["@platforms//os:macos", "@platforms//cpu:arm64"],
-)
-
-create_toolchains(
-    name = emscripten_toolchain_name("win"),
-    repo_name = emscripten_repo_name("win"),
-    exec_compatible_with = ["@platforms//os:windows", "@platforms//cpu:x86_64"],
-)
-
-py_binary(
-    name = "wasm_binary",
-    srcs = ["wasm_binary.py"],
-)

+ 0 - 16
emsdk-cache/emsdk-main/bazel/emscripten_toolchain/default_config

@@ -1,16 +0,0 @@
-import os
-import platform
-
-ROOT_DIR = os.environ["ROOT_DIR"]
-EMSCRIPTEN_ROOT = os.environ["EMSCRIPTEN"]
-BINARYEN_ROOT = os.path.join(ROOT_DIR, os.environ["EM_BIN_PATH"])
-LLVM_ROOT = os.path.join(BINARYEN_ROOT, "bin")
-NODE_JS = os.path.join(ROOT_DIR, os.environ["NODE_JS_PATH"])
-FROZEN_CACHE = True
-
-# This works around an issue with Bazel RBE where the symlinks in node_modules/.bin
-# are uploaded as the linked files, which means the cli.js cannot load its
-# dependencies from the expected locations.
-# See https://github.com/emscripten-core/emscripten/pull/16640 for more
-CLOSURE_COMPILER = [NODE_JS, os.path.join(EMSCRIPTEN_ROOT, "node_modules",
-                                          "google-closure-compiler", "cli.js")]

+ 0 - 5
emsdk-cache/emsdk-main/bazel/emscripten_toolchain/emar.bat

@@ -1,5 +0,0 @@
-@ECHO OFF
-
-call %~dp0\env.bat
-
-py -3 %EMSCRIPTEN%\emar.py %*

+ 0 - 5
emsdk-cache/emsdk-main/bazel/emscripten_toolchain/emar.sh

@@ -1,5 +0,0 @@
-#!/bin/bash
-
-source $(dirname $0)/env.sh
-
-exec python3 $EMSCRIPTEN/emar.py "$@"

+ 0 - 5
emsdk-cache/emsdk-main/bazel/emscripten_toolchain/emcc.bat

@@ -1,5 +0,0 @@
-@ECHO OFF
-
-call %~dp0\env.bat
-
-py -3 %EMSCRIPTEN%\emcc.py %*

+ 0 - 5
emsdk-cache/emsdk-main/bazel/emscripten_toolchain/emcc.sh

@@ -1,5 +0,0 @@
-#!/bin/bash
-
-source $(dirname $0)/env.sh
-
-exec python3 $EMSCRIPTEN/emcc.py "$@"

+ 0 - 5
emsdk-cache/emsdk-main/bazel/emscripten_toolchain/emcc_link.bat

@@ -1,5 +0,0 @@
-@ECHO OFF
-
-call %~dp0\env.bat
-
-py -3 %~dp0\link_wrapper.py %*

+ 0 - 5
emsdk-cache/emsdk-main/bazel/emscripten_toolchain/emcc_link.sh

@@ -1,5 +0,0 @@
-#!/bin/bash
-
-source $(dirname $0)/env.sh
-
-exec python3 $(dirname $0)/link_wrapper.py "$@"

+ 0 - 6
emsdk-cache/emsdk-main/bazel/emscripten_toolchain/env.bat

@@ -1,6 +0,0 @@
-@ECHO OFF
-
-set ROOT_DIR=%EXT_BUILD_ROOT%
-if "%ROOT_DIR%"=="" set ROOT_DIR=%CD%
-set EMSCRIPTEN=%ROOT_DIR%\%EM_BIN_PATH%\emscripten
-set EM_CONFIG=%ROOT_DIR%\%EM_CONFIG_PATH%

+ 0 - 5
emsdk-cache/emsdk-main/bazel/emscripten_toolchain/env.sh

@@ -1,5 +0,0 @@
-#!/bin/bash
-
-export ROOT_DIR=${EXT_BUILD_ROOT:-$(pwd -P)}
-export EMSCRIPTEN=$ROOT_DIR/$EM_BIN_PATH/emscripten
-export EM_CONFIG=$ROOT_DIR/$EM_CONFIG_PATH

+ 0 - 167
emsdk-cache/emsdk-main/bazel/emscripten_toolchain/link_wrapper.py

@@ -1,167 +0,0 @@
-#!/usr/bin/env python
-"""wrapper around emcc link step.
-
-This wrapper currently serves the following purposes.
-
-1. When building with --config=wasm the final output is multiple files, usually
-   at least one .js and one .wasm file. Since the cc_binary link step only
-   allows a single output, we must tar up the outputs into a single file.
-
-2. Add quotes around arguments that need them in the response file to work
-   around a bazel quirk.
-
-3. Ensure the external_debug_info section of the wasm points at the correct
-   bazel path.
-"""
-
-from __future__ import print_function
-
-import argparse
-import os
-import subprocess
-import sys
-
-# Only argument should be @path/to/parameter/file
-assert sys.argv[1][0] == '@', sys.argv
-param_filename = sys.argv[1][1:]
-param_file_args = [line.strip() for line in open(param_filename, 'r').readlines()]
-
-# Re-write response file if needed.
-if any(' ' in a for a in param_file_args):
-  new_param_filename = param_filename + '.modified'
-  with open(new_param_filename, 'w') as f:
-    for param in param_file_args:
-      if ' ' in param:
-        f.write('"%s"' % param)
-      else:
-        f.write(param)
-      f.write('\n')
-  sys.argv[1] = '@' + new_param_filename
-
-emcc_py = os.path.join(os.environ['EMSCRIPTEN'], 'emcc.py')
-rtn = subprocess.call([sys.executable, emcc_py] + sys.argv[1:])
-if rtn != 0:
-  sys.exit(1)
-
-# Parse the arguments that we gave to the linker to determine what the output
-# file is named and what the output format is.
-parser = argparse.ArgumentParser(add_help=False)
-parser.add_argument('-o')
-parser.add_argument('--oformat')
-options = parser.parse_known_args(param_file_args)[0]
-output_file = options.o
-oformat = options.oformat
-outdir = os.path.normpath(os.path.dirname(output_file))
-base_name = os.path.basename(output_file)
-
-# The output file name is the name of the build rule that was built.
-# Add an appropriate file extension based on --oformat.
-if oformat is not None:
-  base_name_split = os.path.splitext(base_name)
-
-  # If the output name has no extension, give it the appropriate extension.
-  if not base_name_split[1]:
-    os.replace(output_file, output_file + '.' + oformat)
-
-  # If the output name does have an extension and it matches the output format,
-  # change the base_name so it doesn't have an extension.
-  elif base_name_split[1] == '.' + oformat:
-    base_name = base_name_split[0]
-
-  # If the output name does have an extension and it does not match the output
-  # format, change the base_name so it doesn't have an extension and rename
-  # the output_file so it has the proper extension.
-  # Note that if you do something like name your build rule "foo.js" and pass
-  # "--oformat=html", emscripten will write to the same file for both the js and
-  # html output, overwriting the js output entirely with the html.
-  # Please don't do that.
-  else:
-    base_name = base_name_split[0]
-    os.replace(output_file, os.path.join(outdir, base_name + '.' + oformat))
-
-files = []
-extensions = [
-    '.js',
-    '.wasm',
-    '.wasm.map',
-    '.js.mem',
-    '.fetch.js',
-    '.worker.js',
-    '.data',
-    '.js.symbols',
-    '.wasm.debug.wasm',
-    '.html',
-    '.aw.js'
-]
-
-for ext in extensions:
-  filename = base_name + ext
-  if os.path.exists(os.path.join(outdir, filename)):
-    files.append(filename)
-
-wasm_base = os.path.join(outdir, base_name + '.wasm')
-if os.path.exists(wasm_base + '.debug.wasm') and os.path.exists(wasm_base):
-  # If we have a .wasm.debug.wasm file and a .wasm file, we need to rewrite the
-  # section in the .wasm file that refers to it. The path that's in there
-  # is the blaze output path; we want it to be just the filename.
-
-  llvm_objcopy = os.path.join(
-      os.environ['EM_BIN_PATH'], 'bin/llvm-objcopy')
-  # First, check to make sure the .wasm file has the header that needs to be
-  # rewritten.
-  rtn = subprocess.call([
-      llvm_objcopy,
-      '--dump-section=external_debug_info=/dev/null',
-      wasm_base], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
-  if rtn == 0:
-    # If llvm-objcopy did not return an error, the external_debug_info section
-    # must exist, so we're good to continue.
-
-    # Next we need to convert length of the filename to LEB128.
-    # Start by converting the length of the filename to a bit string.
-    bit_string = '{0:b}'.format(len(base_name + '.wasm.debug.wasm'))
-
-    # Pad the bit string with 0s so that its length is a multiple of 7.
-    while len(bit_string) % 7 != 0:
-      bit_string = '0' + bit_string
-
-    # Break up our bit string into chunks of 7.
-    # We do this backwards because the final format is little-endian.
-    final_bytes = bytearray()
-    for i in reversed(range(0, len(bit_string), 7)):
-      binary_part = bit_string[i:i + 7]
-      if i != 0:
-        # Every chunk except the last one needs to be prepended with '1'.
-        # The length of each chunk is 7, so that one has an implicit '0'.
-        binary_part = '1' + binary_part
-      final_bytes.append(int(binary_part, 2))
-    # Finally, add the actual filename.
-    final_bytes.extend((base_name + '.wasm.debug.wasm').encode())
-
-    # Write our length + filename bytes to a temp file.
-    with open(base_name + '_debugsection.tmp', 'wb+') as f:
-      f.write(final_bytes)
-      f.close()
-
-    # First delete the old section.
-    subprocess.check_call([
-        llvm_objcopy,
-        wasm_base,
-        '--remove-section=external_debug_info'])
-    # Rewrite section with the new size and filename from the temp file.
-    subprocess.check_call([
-        llvm_objcopy,
-        wasm_base,
-        '--add-section=external_debug_info=' + base_name + '_debugsection.tmp'])
-
-# Make sure we have at least one output file.
-if not len(files):
-  print('emcc.py did not appear to output any known files!')
-  sys.exit(1)
-
-# cc_binary must output exactly one file; put all the output files in a tarball.
-cmd = ['tar', 'cf', base_name + '.tar'] + files
-subprocess.check_call(cmd, cwd=outdir)
-os.replace(os.path.join(outdir, base_name + '.tar'), output_file)
-
-sys.exit(0)

+ 0 - 1158
emsdk-cache/emsdk-main/bazel/emscripten_toolchain/toolchain.bzl

@@ -1,1158 +0,0 @@
-"""This module encapsulates logic to create emscripten_cc_toolchain_config rule."""
-
-load(
-    "@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl",
-    "action_config",
-    "env_entry",
-    "env_set",
-    "feature",
-    "feature_set",
-    "flag_group",
-    "tool",
-    "tool_path",
-    "variable_with_value",
-    "with_feature_set",
-    _flag_set = "flag_set",
-)
-load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES")
-
-def flag_set(flags = None, features = None, not_features = None, **kwargs):
-    """Extension to flag_set which allows for a "simple" form.
-
-    The simple form allows specifying flags as a simple list instead of a flag_group
-    if enable_if or expand_if semantics are not required.
-
-    Similarly, the simple form allows passing features/not_features if they are a simple
-    list of semantically "and" features.
-    (i.e. "asan" and "dbg", rather than "asan" or "dbg")
-
-    Args:
-      flags: list, set of flags
-      features: list, set of features required to be enabled.
-      not_features: list, set of features required to not be enabled.
-      **kwargs: The rest of the args for flag_set.
-
-    Returns:
-      flag_set
-    """
-    if flags:
-        if kwargs.get("flag_groups"):
-            fail("Cannot set flags and flag_groups")
-        else:
-            kwargs["flag_groups"] = [flag_group(flags = flags)]
-
-    if features or not_features:
-        if kwargs.get("with_features"):
-            fail("Cannot set features/not_feature and with_features")
-        kwargs["with_features"] = [with_feature_set(
-            features = features or [],
-            not_features = not_features or [],
-        )]
-    return _flag_set(**kwargs)
-
-CROSSTOOL_DEFAULT_WARNINGS = [
-    "-Wall",
-]
-
-def _impl(ctx):
-    target_cpu = ctx.attr.cpu
-    toolchain_identifier = "emscripten-" + target_cpu
-    target_system_name = target_cpu + "-unknown-emscripten"
-
-    host_system_name = "i686-unknown-linux-gnu"
-
-    target_libc = "musl/js"
-
-    abi_version = "emscripten_syscalls"
-
-    compiler = "emscripten"
-    abi_libc_version = "default"
-
-    cc_target_os = "emscripten"
-
-    emscripten_dir = ctx.attr.emscripten_binaries.label.workspace_root
-
-    nodejs_path = ctx.file.nodejs_bin.path
-
-    builtin_sysroot = emscripten_dir + "/emscripten/cache/sysroot"
-
-    emcc_script = "emcc.%s" % ctx.attr.script_extension
-    emcc_link_script = "emcc_link.%s" % ctx.attr.script_extension
-    emar_script = "emar.%s" % ctx.attr.script_extension
-
-    ################################################################
-    # Tools
-    ################################################################
-    clang_tool = tool(path = emcc_script)
-    clif_match_tool = tool(path = "dummy_clif_matcher")
-    link_tool = tool(path = emcc_link_script)
-    archive_tool = tool(path = emar_script)
-    strip_tool = tool(path = "NOT_USED_STRIP_TOOL")
-
-    #### Legacy tool paths (much of this is redundant with action_configs, but
-    #### these are still used for some things)
-    tool_paths = [
-        tool_path(name = "ar", path = emar_script),
-        tool_path(name = "cpp", path = "/bin/false"),
-        tool_path(name = "gcc", path = emcc_script),
-        tool_path(name = "gcov", path = "/bin/false"),
-        tool_path(name = "ld", path = emcc_link_script),
-        tool_path(name = "nm", path = "NOT_USED"),
-        tool_path(name = "objdump", path = "/bin/false"),
-        tool_path(name = "strip", path = "NOT_USED"),
-    ]
-
-    ################################################################
-    # Action Configs
-    ################################################################
-
-    cpp_compile_action = action_config(
-        action_name = ACTION_NAMES.cpp_compile,
-        tools = [clang_tool],
-    )
-
-    cpp_module_compile_action = action_config(
-        action_name = ACTION_NAMES.cpp_module_compile,
-        tools = [clang_tool],
-    )
-
-    cpp_module_codegen_action = action_config(
-        action_name = ACTION_NAMES.cpp_module_codegen,
-        tools = [clang_tool],
-    )
-
-    clif_match_action = action_config(
-        action_name = ACTION_NAMES.clif_match,
-        tools = [clif_match_tool],
-    )
-
-    cpp_link_dynamic_library_action = action_config(
-        action_name = ACTION_NAMES.cpp_link_dynamic_library,
-        tools = [link_tool],
-    )
-
-    strip_action = action_config(
-        action_name = ACTION_NAMES.strip,
-        tools = [strip_tool],
-    )
-
-    preprocess_assemble_action = action_config(
-        action_name = ACTION_NAMES.preprocess_assemble,
-        tools = [clang_tool],
-    )
-
-    cpp_header_parsing_action = action_config(
-        action_name = ACTION_NAMES.cpp_header_parsing,
-        tools = [clang_tool],
-    )
-
-    cpp_link_static_library_action = action_config(
-        action_name = ACTION_NAMES.cpp_link_static_library,
-        enabled = True,
-        flag_sets = [
-            flag_set(
-                flag_groups = [
-                    flag_group(
-                        flags = ["rcsD", "%{output_execpath}"],
-                        expand_if_available = "output_execpath",
-                    ),
-                ],
-            ),
-            flag_set(
-                flag_groups = [
-                    flag_group(
-                        iterate_over = "libraries_to_link",
-                        flag_groups = [
-                            flag_group(
-                                flags = ["%{libraries_to_link.name}"],
-                                expand_if_equal = variable_with_value(
-                                    name = "libraries_to_link.type",
-                                    value = "object_file",
-                                ),
-                            ),
-                            flag_group(
-                                flags = ["%{libraries_to_link.object_files}"],
-                                iterate_over = "libraries_to_link.object_files",
-                                expand_if_equal = variable_with_value(
-                                    name = "libraries_to_link.type",
-                                    value = "object_file_group",
-                                ),
-                            ),
-                        ],
-                        expand_if_available = "libraries_to_link",
-                    ),
-                ],
-            ),
-            flag_set(
-                flag_groups = [
-                    flag_group(
-                        flags = ["@%{linker_param_file}"],
-                        expand_if_available = "linker_param_file",
-                    ),
-                ],
-            ),
-        ],
-        tools = [archive_tool],
-    )
-
-    c_compile_action = action_config(
-        action_name = ACTION_NAMES.c_compile,
-        tools = [clang_tool],
-    )
-
-    linkstamp_compile_action = action_config(
-        action_name = ACTION_NAMES.linkstamp_compile,
-        tools = [clang_tool],
-    )
-
-    assemble_action = action_config(
-        action_name = ACTION_NAMES.assemble,
-        tools = [clang_tool],
-    )
-
-    cpp_link_executable_action = action_config(
-        action_name = ACTION_NAMES.cpp_link_executable,
-        tools = [link_tool],
-    )
-
-    cpp_link_nodeps_dynamic_library_action = action_config(
-        action_name = ACTION_NAMES.cpp_link_nodeps_dynamic_library,
-        tools = [link_tool],
-    )
-
-    action_configs = [
-        strip_action,
-        c_compile_action,
-        cpp_compile_action,
-        linkstamp_compile_action,
-        assemble_action,
-        preprocess_assemble_action,
-        cpp_header_parsing_action,
-        cpp_module_compile_action,
-        cpp_module_codegen_action,
-        cpp_link_executable_action,
-        cpp_link_dynamic_library_action,
-        cpp_link_nodeps_dynamic_library_action,
-        cpp_link_static_library_action,
-        clif_match_action,
-    ]
-
-    all_compile_actions = [
-        ACTION_NAMES.c_compile,
-        ACTION_NAMES.cpp_compile,
-        ACTION_NAMES.linkstamp_compile,
-        ACTION_NAMES.assemble,
-        ACTION_NAMES.preprocess_assemble,
-        ACTION_NAMES.cpp_header_parsing,
-        ACTION_NAMES.cpp_module_compile,
-        ACTION_NAMES.cpp_module_codegen,
-        ACTION_NAMES.clif_match,
-        ACTION_NAMES.lto_backend,
-    ]
-
-    all_cpp_compile_actions = [
-        ACTION_NAMES.cpp_compile,
-        ACTION_NAMES.linkstamp_compile,
-        ACTION_NAMES.cpp_header_parsing,
-        ACTION_NAMES.cpp_module_compile,
-        ACTION_NAMES.cpp_module_codegen,
-        ACTION_NAMES.clif_match,
-    ]
-
-    preprocessor_compile_actions = [
-        ACTION_NAMES.c_compile,
-        ACTION_NAMES.cpp_compile,
-        ACTION_NAMES.linkstamp_compile,
-        ACTION_NAMES.preprocess_assemble,
-        ACTION_NAMES.cpp_header_parsing,
-        ACTION_NAMES.cpp_module_compile,
-        ACTION_NAMES.clif_match,
-    ]
-
-    all_link_actions = [
-        ACTION_NAMES.cpp_link_executable,
-        ACTION_NAMES.cpp_link_dynamic_library,
-        ACTION_NAMES.cpp_link_nodeps_dynamic_library,
-    ]
-
-    ################################################################
-    # Features
-    ################################################################
-
-    features = [
-        # This set of magic "feature"s are important configuration information for blaze.
-        feature(name = "no_legacy_features", enabled = True),
-        feature(
-            name = "has_configured_linker_path",
-            enabled = True,
-        ),
-
-        # Blaze requests this feature by default, but we don't care.
-        feature(name = "dependency_file"),
-
-        # Blaze requests this feature by default, but we don't care.
-        feature(name = "random_seed"),
-
-        # Formerly "needsPic" attribute
-        feature(name = "supports_pic", enabled = False),
-
-        # Blaze requests this feature by default.
-        # Blaze also tests if this feature is supported, before setting the "pic" build-variable.
-        feature(name = "pic"),
-
-        # Blaze requests this feature by default.
-        # Blaze also tests if this feature is supported before setting preprocessor_defines
-        # (...but why?)
-        feature(name = "preprocessor_defines"),
-
-        # Blaze requests this feature by default.
-        # Blaze also tests if this feature is supported before setting includes. (...but why?)
-        feature(name = "include_paths"),
-
-        # Blaze tests if this feature is enabled in order to create implicit
-        # "nodeps" .so outputs from cc_library rules.
-        feature(name = "supports_dynamic_linker", enabled = False),
-
-        # Blaze requests this feature when linking a cc_binary which is
-        # "dynamic" aka linked against nodeps-dynamic-library cc_library
-        # outputs.
-        feature(name = "dynamic_linking_mode"),
-
-        #### Configuration features
-        feature(
-            name = "crosstool_cpu",
-            enabled = True,
-            implies = ["crosstool_cpu_" + target_cpu],
-        ),
-        feature(
-            name = "crosstool_cpu_asmjs",
-            provides = ["variant:crosstool_cpu"],
-        ),
-        feature(
-            name = "crosstool_cpu_wasm",
-            provides = ["variant:crosstool_cpu"],
-        ),
-
-        # These 3 features will be automatically enabled by blaze in the
-        # corresponding build mode.
-        feature(
-            name = "opt",
-            provides = ["variant:crosstool_build_mode"],
-        ),
-        feature(
-            name = "dbg",
-            provides = ["variant:crosstool_build_mode"],
-        ),
-        feature(
-            name = "fastbuild",
-            provides = ["variant:crosstool_build_mode"],
-        ),
-
-        # Feature to prevent 'command line too long' issues
-        feature(
-            name = "archive_param_file",
-            enabled = True,
-        ),
-        feature(
-            name = "compiler_param_file",
-            enabled = True,
-        ),
-
-        #### User-settable features
-
-        # Set if enabling exceptions.
-        feature(name = "exceptions"),
-
-        # Set if enabling wasm_exceptions.
-        feature(name = "wasm_exceptions"),
-
-        # This feature overrides the default optimization to prefer execution speed
-        # over binary size (like clang -O3).
-        feature(
-            name = "optimized_for_speed",
-            provides = ["variant:crosstool_optimization_mode"],
-        ),
-
-        # This feature overrides the default optimization to prefer binary size over
-        # execution speed (like clang -Oz).
-        feature(
-            name = "optimized_for_size",
-            provides = ["variant:crosstool_optimization_mode"],
-        ),
-
-        # Convenience aliases / alt-spellings.
-        feature(
-            name = "optimize_for_speed",
-            implies = ["optimized_for_speed"],
-        ),
-        feature(
-            name = "optimize_for_size",
-            implies = ["optimized_for_size"],
-        ),
-
-        # This feature allows easier use of profiling tools by preserving mangled
-        # C++ names. This does everything profiling_funcs does and more.
-        feature(name = "profiling"),
-
-        # This feature emits only enough debug info for function names to appear
-        # in profiles.
-        feature(name = "profiling_funcs"),
-
-        # This feature allows source maps to be generated.
-        feature(
-            name = "source_maps",
-            implies = ["full_debug_info"],
-        ),
-        feature(
-            name = "dwarf_debug_info",
-            implies = ["profiling"],
-        ),
-
-        # Turns on full debug info (-g4).
-        feature(name = "full_debug_info"),
-
-        # Enables the use of "Emscripten" Pthread implementation.
-        # https://kripken.github.io/emscripten-site/docs/porting/pthreads.html
-        # https://github.com/kripken/emscripten/wiki/Pthreads-with-WebAssembly
-        feature(name = "use_pthreads"),
-
-        # If enabled, the runtime will exit when main() completes.
-        feature(name = "exit_runtime"),
-
-        # Primarily for toolchain maintainers:
-        feature(name = "emcc_debug"),
-        feature(name = "emcc_debug_link"),
-        feature(
-            name = "llvm_backend",
-            requires = [feature_set(features = ["crosstool_cpu_wasm"])],
-            enabled = True,
-        ),
-
-        # Remove once flag is flipped.
-        # See https://github.com/bazelbuild/bazel/issues/7687
-        feature(
-            name = "do_not_split_linking_cmdline",
-        ),
-
-        # Adds simd support, only available with the llvm backend.
-        feature(
-            name = "wasm_simd",
-            requires = [feature_set(features = ["llvm_backend"])],
-        ),
-        # Adds relaxed-simd support, only available with the llvm backend.
-        feature(
-            name = "wasm_relaxed_simd",
-            requires = [feature_set(features = ["llvm_backend"])],
-        ),
-        feature(
-            name = "precise_long_double_printf",
-            enabled = True,
-        ),
-        feature(
-            name = "wasm_warnings_as_errors",
-            enabled = False,
-        ),
-
-        # ASan and UBSan. See also:
-        # https://emscripten.org/docs/debugging/Sanitizers.html
-        feature(name = "wasm_asan"),
-        feature(name = "wasm_ubsan"),
-        feature(
-            name = "output_format_js",
-            enabled = True,
-        ),
-        feature(
-            name = "wasm_standalone",
-        ),
-    ]
-
-    crosstool_default_flag_sets = [
-        # Compile, Link, and CC_FLAGS make variable
-        flag_set(
-            actions = [
-                ACTION_NAMES.c_compile,
-                ACTION_NAMES.cpp_compile,
-                ACTION_NAMES.linkstamp_compile,
-                ACTION_NAMES.assemble,
-                ACTION_NAMES.preprocess_assemble,
-                ACTION_NAMES.cpp_header_parsing,
-                ACTION_NAMES.cpp_module_compile,
-                ACTION_NAMES.cpp_module_codegen,
-                ACTION_NAMES.clif_match,
-                ACTION_NAMES.cpp_link_executable,
-                ACTION_NAMES.cpp_link_dynamic_library,
-                ACTION_NAMES.cpp_link_nodeps_dynamic_library,
-            ],
-            flag_groups = [
-                flag_group(
-                    flags = ["--sysroot=%{sysroot}"],
-                    expand_if_available = "sysroot",
-                ),
-            ],
-        ),
-        # Compile + Link
-        flag_set(
-            actions = [
-                ACTION_NAMES.c_compile,
-                ACTION_NAMES.cpp_compile,
-                ACTION_NAMES.linkstamp_compile,
-                ACTION_NAMES.assemble,
-                ACTION_NAMES.preprocess_assemble,
-                ACTION_NAMES.cpp_header_parsing,
-                ACTION_NAMES.cpp_module_compile,
-                ACTION_NAMES.cpp_module_codegen,
-                ACTION_NAMES.clif_match,
-                ACTION_NAMES.cpp_link_executable,
-                ACTION_NAMES.cpp_link_dynamic_library,
-                ACTION_NAMES.cpp_link_nodeps_dynamic_library,
-            ],
-            # This forces color diagnostics even on Forge (where we don't have an
-            # attached terminal).
-            flags = [
-                "-fdiagnostics-color",
-            ],
-        ),
-        # C++ compiles (and implicitly link)
-        flag_set(
-            actions = all_cpp_compile_actions,
-            flags = [
-                "-fno-exceptions",
-            ],
-            not_features = ["exceptions", "wasm_exceptions"],
-        ),
-        flag_set(
-            actions = all_cpp_compile_actions,
-            flags = [
-                "-fexceptions",
-            ],
-            features = ["exceptions"],
-        ),
-        flag_set(
-            actions = all_cpp_compile_actions +
-                      all_link_actions,
-            flags = [
-                "-fwasm-exceptions",
-            ],
-            features = ["wasm_exceptions"],
-        ),
-        # All compiles (and implicitly link)
-        flag_set(
-            actions = all_compile_actions +
-                      all_link_actions,
-            flags = [
-                "-fno-strict-aliasing",
-                "-funsigned-char",
-                "-no-canonical-prefixes",
-            ],
-        ),
-        # Language Features
-        flag_set(
-            actions = all_cpp_compile_actions,
-            flags = ["-std=gnu++17", "-nostdinc", "-nostdinc++"],
-        ),
-
-        # Emscripten-specific settings:
-        flag_set(
-            actions = all_compile_actions + all_link_actions,
-            flags = ["-s", "WASM=0"],
-            features = ["crosstool_cpu_asmjs"],
-        ),
-        flag_set(
-            actions = all_compile_actions +
-                      all_link_actions,
-            flags = ["-s", "USE_PTHREADS=1"],
-            features = ["use_pthreads"],
-        ),
-        flag_set(
-            actions = all_link_actions,
-            flags = ["-s", "EXIT_RUNTIME=1"],
-            features = ["exit_runtime"],
-        ),
-        flag_set(
-            actions = all_compile_actions + all_link_actions,
-            flags = ["-pthread"],
-            features = ["llvm_backend", "use_pthreads"],
-        ),
-        flag_set(
-            actions = all_compile_actions + all_link_actions,
-            flags = ["-msimd128"],
-            features = ["wasm_simd"],
-        ),
-        flag_set(
-            actions = all_compile_actions + all_link_actions,
-            flags = ["-msimd128", "-mrelaxed-simd"],
-            features = ["wasm_relaxed_simd"],
-        ),
-        flag_set(
-            actions = all_link_actions,
-            flags = ["-s", "PRINTF_LONG_DOUBLE=1"],
-            features = ["precise_long_double_printf"],
-        ),
-        flag_set(
-            actions = all_link_actions,
-            flags = ["--oformat=js"],
-            features = ["output_format_js"],
-        ),
-
-        # Opt
-        flag_set(
-            actions = preprocessor_compile_actions,
-            flags = ["-DNDEBUG"],
-            features = ["opt"],
-        ),
-        flag_set(
-            actions = all_compile_actions,
-            flags = ["-fomit-frame-pointer"],
-            features = ["opt"],
-        ),
-        flag_set(
-            actions = all_compile_actions +
-                      all_link_actions,
-            flags = ["-O2"],
-            features = ["opt"],
-        ),
-
-        # Users can override opt-level with semantic names...
-        flag_set(
-            actions = all_compile_actions +
-                      all_link_actions,
-            flags = ["-Oz"],
-            features = ["optimized_for_size", "opt"],
-        ),
-        flag_set(
-            actions = all_compile_actions +
-                      all_link_actions,
-            flags = ["-O3"],
-            features = ["optimized_for_speed", "opt"],
-        ),
-
-        # Fastbuild
-        flag_set(
-            actions = all_compile_actions,
-            flags = ["-fomit-frame-pointer"],
-            features = ["fastbuild"],
-        ),
-        flag_set(
-            actions = all_compile_actions +
-                      all_link_actions,
-            flags = ["-O0"],
-            features = ["fastbuild"],
-        ),
-
-        # Dbg
-        flag_set(
-            actions = all_compile_actions,
-            flags = ["-fno-omit-frame-pointer"],
-            features = ["dbg"],
-        ),
-        flag_set(
-            actions = all_compile_actions +
-                      all_link_actions,
-            flags = ["-g", "-O0"],
-            features = ["dbg"],
-        ),
-        flag_set(
-            actions = all_compile_actions +
-                      all_link_actions,
-            flags = [
-                "-g",
-                "-fsanitize=address",
-                "-O1",
-                "-DADDRESS_SANITIZER=1",
-                "-fno-omit-frame-pointer",
-            ],
-            features = ["wasm_asan"],
-        ),
-        flag_set(
-            actions = all_compile_actions +
-                      all_link_actions,
-            flags = [
-                "-g4",
-                "-fsanitize=undefined",
-                "-O1",
-                "-DUNDEFINED_BEHAVIOR_SANITIZER=1",
-                "-fno-omit-frame-pointer",
-                "-fno-sanitize=vptr",
-            ],
-            features = ["wasm_ubsan"],
-        ),
-
-        # Profiling provides full debug info and a special --profiling flag
-        # to control name mangling
-        flag_set(
-            actions = all_link_actions,
-            flags = ["--profiling"],
-            features = ["profiling"],
-        ),
-        flag_set(
-            actions = all_link_actions,
-            flags = ["--profiling_funcs"],
-            features = ["profiling_funcs"],
-        ),
-        flag_set(
-            actions = all_compile_actions +
-                      all_link_actions,
-            flags = ["-g4"],
-            features = ["full_debug_info"],
-        ),
-        flag_set(
-            actions = all_link_actions,
-            flags = ["-gseparate-dwarf"],
-            features = ["dwarf_debug_info"],
-        ),
-        flag_set(
-            actions = all_compile_actions +
-                      all_link_actions,
-            flags = ["-fdebug-compilation-dir=."],
-            features = ["dwarf_debug_info"],
-        ),
-        # Generic warning flag list
-        flag_set(
-            actions = all_compile_actions,
-            flags = CROSSTOOL_DEFAULT_WARNINGS,
-        ),
-
-        # Defines and Includes and Paths and such
-        flag_set(
-            actions = all_compile_actions,
-            flag_groups = [
-                flag_group(flags = ["-fPIC"], expand_if_available = "pic"),
-            ],
-        ),
-        flag_set(
-            actions = preprocessor_compile_actions,
-            flag_groups = [
-                flag_group(
-                    flags = ["-D%{preprocessor_defines}"],
-                    iterate_over = "preprocessor_defines",
-                ),
-            ],
-        ),
-        flag_set(
-            actions = preprocessor_compile_actions,
-            flag_groups = [
-                flag_group(
-                    flags = ["-include", "%{includes}"],
-                    iterate_over = "includes",
-                    expand_if_available = "includes",
-                ),
-            ],
-        ),
-        flag_set(
-            actions = preprocessor_compile_actions,
-            flag_groups = [
-                flag_group(
-                    flags = ["-iquote", "%{quote_include_paths}"],
-                    iterate_over = "quote_include_paths",
-                ),
-                flag_group(
-                    flags = ["-I%{include_paths}"],
-                    iterate_over = "include_paths",
-                ),
-                flag_group(
-                    flags = ["-isystem", "%{system_include_paths}"],
-                    iterate_over = "system_include_paths",
-                ),
-            ],
-        ),
-
-        ## Linking options (not libs -- those go last)
-
-        # Generic link options
-        flag_set(
-            actions = [
-                ACTION_NAMES.cpp_link_dynamic_library,
-                ACTION_NAMES.cpp_link_nodeps_dynamic_library,
-            ],
-            flags = ["-shared"],
-        ),
-
-        # Linker search paths and objects:
-        flag_set(
-            actions = all_link_actions,
-            flag_groups = [
-                flag_group(
-                    iterate_over = "runtime_library_search_directories",
-                    flag_groups = [
-                        flag_group(
-                            flags = [
-                                "-Wl,-rpath,$EXEC_ORIGIN/%{runtime_library_search_directories}",
-                            ],
-                            expand_if_true = "is_cc_test",
-                        ),
-                        flag_group(
-                            flags = [
-                                "-Wl,-rpath,$ORIGIN/%{runtime_library_search_directories}",
-                            ],
-                            expand_if_false = "is_cc_test",
-                        ),
-                    ],
-                    expand_if_available = "runtime_library_search_directories",
-                ),
-            ],
-        ),
-        flag_set(
-            actions = all_link_actions,
-            flag_groups = [
-                flag_group(
-                    flags = ["-L%{library_search_directories}"],
-                    iterate_over = "library_search_directories",
-                    expand_if_available = "library_search_directories",
-                ),
-            ],
-        ),
-        flag_set(
-            actions = all_link_actions,
-            flag_groups = [
-                flag_group(
-                    # This is actually a list of object files from the linkstamp steps
-                    flags = ["%{linkstamp_paths}"],
-                    iterate_over = "linkstamp_paths",
-                    expand_if_available = "linkstamp_paths",
-                ),
-            ],
-        ),
-        flag_set(
-            actions = all_link_actions,
-            flag_groups = [
-                flag_group(
-                    flags = ["@%{thinlto_param_file}"],
-                    expand_if_available = "libraries_to_link",
-                    expand_if_true = "thinlto_param_file",
-                ),
-                flag_group(
-                    iterate_over = "libraries_to_link",
-                    flag_groups = [
-                        flag_group(
-                            flags = ["-Wl,--start-lib"],
-                            expand_if_equal = variable_with_value(
-                                name = "libraries_to_link.type",
-                                value = "object_file_group",
-                            ),
-                        ),
-                        flag_group(
-                            flags = ["-Wl,-whole-archive"],
-                            expand_if_true = "libraries_to_link.is_whole_archive",
-                        ),
-                        flag_group(
-                            flags = ["%{libraries_to_link.object_files}"],
-                            iterate_over = "libraries_to_link.object_files",
-                            expand_if_equal = variable_with_value(
-                                name = "libraries_to_link.type",
-                                value = "object_file_group",
-                            ),
-                        ),
-                        flag_group(
-                            flags = ["%{libraries_to_link.name}"],
-                            expand_if_equal = variable_with_value(
-                                name = "libraries_to_link.type",
-                                value = "object_file",
-                            ),
-                        ),
-                        flag_group(
-                            flags = ["%{libraries_to_link.name}"],
-                            expand_if_equal = variable_with_value(
-                                name = "libraries_to_link.type",
-                                value = "interface_library",
-                            ),
-                        ),
-                        flag_group(
-                            flags = ["%{libraries_to_link.name}"],
-                            expand_if_equal = variable_with_value(
-                                name = "libraries_to_link.type",
-                                value = "static_library",
-                            ),
-                        ),
-                        flag_group(
-                            flags = ["-l%{libraries_to_link.name}"],
-                            expand_if_equal = variable_with_value(
-                                name = "libraries_to_link.type",
-                                value = "dynamic_library",
-                            ),
-                        ),
-                        flag_group(
-                            flags = ["-l:%{libraries_to_link.name}"],
-                            expand_if_equal = variable_with_value(
-                                name = "libraries_to_link.type",
-                                value = "versioned_dynamic_library",
-                            ),
-                        ),
-                        flag_group(
-                            flags = ["-Wl,-no-whole-archive"],
-                            expand_if_true = "libraries_to_link.is_whole_archive",
-                        ),
-                        flag_group(
-                            flags = ["-Wl,--end-lib"],
-                            expand_if_equal = variable_with_value(
-                                name = "libraries_to_link.type",
-                                value = "object_file_group",
-                            ),
-                        ),
-                    ],
-                    expand_if_available = "libraries_to_link",
-                ),
-            ],
-        ),
-
-        # Configure the header parsing and preprocessing.
-        flag_set(
-            actions = [ACTION_NAMES.cpp_header_parsing],
-            flags = ["-xc++-header", "-fsyntax-only"],
-            features = ["parse_headers"],
-        ),
-
-        # Note: user compile flags should be nearly last -- you probably
-        # don't want to put any more features after this!
-        flag_set(
-            actions = [
-                ACTION_NAMES.c_compile,
-                ACTION_NAMES.cpp_compile,
-                ACTION_NAMES.linkstamp_compile,
-                ACTION_NAMES.assemble,
-                ACTION_NAMES.preprocess_assemble,
-                ACTION_NAMES.cpp_header_parsing,
-                ACTION_NAMES.cpp_module_compile,
-                ACTION_NAMES.cpp_module_codegen,
-                ACTION_NAMES.clif_match,
-            ],
-            flag_groups = [
-                flag_group(
-                    flags = ["%{user_compile_flags}"],
-                    iterate_over = "user_compile_flags",
-                    expand_if_available = "user_compile_flags",
-                ),
-            ],
-        ),
-        flag_set(
-            actions = all_link_actions,
-            flag_groups = [
-                flag_group(
-                    flags = ["%{user_link_flags}"],
-                    iterate_over = "user_link_flags",
-                    expand_if_available = "user_link_flags",
-                ),
-            ],
-        ),
-        ## Options which need to go late -- after all the user options -- go here.
-        flag_set(
-            # One might hope that these options would only be needed for C++
-            # compiles. But, sadly, users compile ".c" files with custom
-            # copts=["-x", "c++"], and expect that to be able to find C++ stdlib
-            # headers. It might be worth pondering how blaze could support this sort
-            # of use-case better.
-            actions = preprocessor_compile_actions +
-                      [ACTION_NAMES.cc_flags_make_variable],
-            flags = [
-                "-iwithsysroot" + "/include/c++/v1",
-                "-iwithsysroot" + "/include/compat",
-                "-iwithsysroot" + "/include",
-                "-isystem",
-                emscripten_dir + "/lib/clang/22/include",
-            ],
-        ),
-        # Inputs and outputs
-        flag_set(
-            actions = [
-                ACTION_NAMES.c_compile,
-                ACTION_NAMES.cpp_compile,
-                ACTION_NAMES.linkstamp_compile,
-                ACTION_NAMES.assemble,
-                ACTION_NAMES.preprocess_assemble,
-                ACTION_NAMES.cpp_header_parsing,
-                ACTION_NAMES.cpp_module_compile,
-                ACTION_NAMES.cpp_module_codegen,
-                ACTION_NAMES.clif_match,
-            ],
-            flag_groups = [
-                flag_group(
-                    flags = ["-MD", "-MF", "%{dependency_file}"],
-                    expand_if_available = "dependency_file",
-                ),
-            ],
-        ),
-        flag_set(
-            actions = [
-                ACTION_NAMES.c_compile,
-                ACTION_NAMES.cpp_compile,
-                ACTION_NAMES.linkstamp_compile,
-                ACTION_NAMES.assemble,
-                ACTION_NAMES.preprocess_assemble,
-                ACTION_NAMES.cpp_header_parsing,
-                ACTION_NAMES.cpp_module_compile,
-                ACTION_NAMES.cpp_module_codegen,
-                ACTION_NAMES.clif_match,
-            ],
-            flag_groups = [
-                flag_group(
-                    flags = ["-c", "%{source_file}"],
-                    expand_if_available = "source_file",
-                ),
-            ],
-        ),
-        flag_set(
-            actions = [
-                ACTION_NAMES.c_compile,
-                ACTION_NAMES.cpp_compile,
-                ACTION_NAMES.linkstamp_compile,
-                ACTION_NAMES.assemble,
-                ACTION_NAMES.preprocess_assemble,
-                ACTION_NAMES.cpp_header_parsing,
-                ACTION_NAMES.cpp_module_compile,
-                ACTION_NAMES.cpp_module_codegen,
-                ACTION_NAMES.clif_match,
-            ],
-            flag_groups = [
-                flag_group(
-                    flags = ["-S"],
-                    expand_if_available = "output_assembly_file",
-                ),
-                flag_group(
-                    flags = ["-E"],
-                    expand_if_available = "output_preprocess_file",
-                ),
-                flag_group(
-                    flags = ["-o", "%{output_file}"],
-                    expand_if_available = "output_file",
-                ),
-            ],
-        ),
-        flag_set(
-            actions = all_link_actions,
-            flag_groups = [
-                flag_group(
-                    flags = ["-o", "%{output_execpath}"],
-                    expand_if_available = "output_execpath",
-                ),
-            ],
-        ),
-        # And finally, the params file!
-        flag_set(
-            actions = all_link_actions,
-            flag_groups = [
-                flag_group(
-                    flags = ["@%{linker_param_file}"],
-                    expand_if_available = "linker_param_file",
-                ),
-            ],
-        ),
-        flag_set(
-            actions = all_compile_actions,
-            flags = [
-                "-Wno-builtin-macro-redefined",
-                # Genrules may not escape quotes enough for these, so
-                # don't put them into $(CC_FLAGS):
-                '-D__DATE__="redacted"',
-                '-D__TIMESTAMP__="redacted"',
-                '-D__TIME__="redacted"',
-            ],
-        ),
-        flag_set(
-            actions = all_compile_actions,
-            flags = ["-Werror"],
-            features = ["wasm_warnings_as_errors"],
-        ),
-        flag_set(
-            actions = all_link_actions,
-            flags = ["-sSTANDALONE_WASM"],
-            features = ["wasm_standalone"],
-        ),
-    ]
-
-    crosstool_default_env_sets = [
-        # Globals
-        env_set(
-            actions = all_compile_actions +
-                      all_link_actions +
-                      [ACTION_NAMES.cpp_link_static_library],
-            env_entries = [
-                env_entry(
-                    key = "EM_BIN_PATH",
-                    value = emscripten_dir,
-                ),
-                env_entry(
-                    key = "EM_CONFIG_PATH",
-                    value = ctx.file.em_config.path,
-                ),
-                env_entry(
-                    key = "NODE_JS_PATH",
-                    value = nodejs_path,
-                ),
-            ],
-        ),
-        # Use llvm backend.  Off by default, enabled via --features=llvm_backend
-        env_set(
-            actions = all_compile_actions +
-                      all_link_actions +
-                      [ACTION_NAMES.cpp_link_static_library],
-            env_entries = [env_entry(key = "EMCC_WASM_BACKEND", value = "1")],
-            with_features = [with_feature_set(features = ["llvm_backend"])],
-        ),
-        # Debug compile and link. Off by default, enabled via --features=emcc_debug
-        env_set(
-            actions = all_compile_actions,
-            env_entries = [env_entry(key = "EMCC_DEBUG", value = "1")],
-            with_features = [with_feature_set(features = ["emcc_debug"])],
-        ),
-
-        # Debug only link step. Off by default, enabled via --features=emcc_debug_link
-        env_set(
-            actions = all_link_actions,
-            env_entries = [env_entry(key = "EMCC_DEBUG", value = "1")],
-            with_features = [
-                with_feature_set(features = ["emcc_debug"]),
-                with_feature_set(features = ["emcc_debug_link"]),
-            ],
-        ),
-    ]
-
-    crosstool_default_flags_feature = feature(
-        name = "crosstool_default_flags",
-        enabled = True,
-        flag_sets = crosstool_default_flag_sets,
-        env_sets = crosstool_default_env_sets,
-    )
-
-    features.append(crosstool_default_flags_feature)
-
-    cxx_builtin_include_directories = [
-        emscripten_dir + "/emscripten/cache/sysroot/include/c++/v1",
-        emscripten_dir + "/emscripten/cache/sysroot/include/compat",
-        emscripten_dir + "/emscripten/cache/sysroot/include",
-        emscripten_dir + "/lib/clang/21/include",
-    ]
-
-    artifact_name_patterns = []
-
-    make_variables = []
-
-    return cc_common.create_cc_toolchain_config_info(
-        ctx = ctx,
-        features = features,
-        action_configs = action_configs,
-        artifact_name_patterns = artifact_name_patterns,
-        cxx_builtin_include_directories = cxx_builtin_include_directories,
-        toolchain_identifier = toolchain_identifier,
-        host_system_name = host_system_name,
-        target_system_name = target_system_name,
-        target_cpu = target_cpu,
-        target_libc = target_libc,
-        compiler = compiler,
-        abi_version = abi_version,
-        abi_libc_version = abi_libc_version,
-        tool_paths = tool_paths,
-        make_variables = make_variables,
-        builtin_sysroot = builtin_sysroot,
-        cc_target_os = cc_target_os,
-    )
-
-emscripten_cc_toolchain_config_rule = rule(
-    implementation = _impl,
-    attrs = {
-        "cpu": attr.string(mandatory = True, values = ["asmjs", "wasm"]),
-        "em_config": attr.label(mandatory = True, allow_single_file = True),
-        "emscripten_binaries": attr.label(mandatory = True, cfg = "exec"),
-        "nodejs_bin": attr.label(mandatory = True, allow_single_file = True),
-        "script_extension": attr.string(mandatory = True, values = ["sh", "bat"]),
-    },
-    provides = [CcToolchainConfigInfo],
-)

+ 0 - 56
emsdk-cache/emsdk-main/bazel/emscripten_toolchain/wasm_binary.py

@@ -1,56 +0,0 @@
-"""Unpackages a bazel emscripten archive for use in a bazel BUILD rule.
-
-This script will take a tar archive containing the output of the emscripten
-toolchain. This file contains any output files produced by a wasm_cc_binary or a
-cc_binary built with --config=wasm. The files are extracted into the given
-output paths.
-
-The contents of the archive are expected to match the given outputs extnames.
-
-This script and its accompanying Bazel rule should allow you to extract a
-WebAssembly binary into a larger web application.
-"""
-
-import argparse
-import os
-import tarfile
-
-
-def ensure(f):
-  if not os.path.exists(f):
-    with open(f, 'w'):
-      pass
-
-
-def main():
-  parser = argparse.ArgumentParser()
-  parser.add_argument('--archive', help='The archive to extract from.')
-  parser.add_argument('--outputs', help='Comma separated list of files that should be extracted from the archive. Only the extname has to match a file in the archive.')
-  parser.add_argument('--allow_empty_outputs', help='If an output listed in --outputs does not exist, create it anyways.', action='store_true')
-  args = parser.parse_args()
-
-  args.archive = os.path.normpath(args.archive)
-  args.outputs = args.outputs.split(",")
-
-  tar = tarfile.open(args.archive)
-
-  for member in tar.getmembers():
-    extname = '.' + member.name.split('.', 1)[1]
-    for idx, output in enumerate(args.outputs):
-      if output.endswith(extname):
-        member_file = tar.extractfile(member)
-        with open(output, "wb") as output_file:
-          output_file.write(member_file.read())
-        args.outputs.pop(idx)
-        break
-
-  for output in args.outputs:
-    extname = '.' + output.split('.', 1)[1]
-    if args.allow_empty_outputs:
-      ensure(output)
-    else:
-      print("[ERROR] Archive does not contain file with extname: %s" % extname)
-
-
-if __name__ == '__main__':
-  main()

+ 0 - 231
emsdk-cache/emsdk-main/bazel/emscripten_toolchain/wasm_cc_binary.bzl

@@ -1,231 +0,0 @@
-"""wasm_cc_binary rule for compiling C++ targets to WebAssembly.
-"""
-
-def _wasm_transition_impl(settings, attr):
-    _ignore = (settings, attr)
-
-    features = list(settings["//command_line_option:features"])
-    linkopts = list(settings["//command_line_option:linkopt"])
-
-    if attr.threads == "emscripten":
-        # threads enabled
-        features.append("use_pthreads")
-    elif attr.threads == "off":
-        # threads disabled
-        features.append("-use_pthreads")
-
-    if attr.exit_runtime == True:
-        features.append("exit_runtime")
-
-    if attr.backend == "llvm":
-        features.append("llvm_backend")
-    elif attr.backend == "emscripten":
-        features.append("-llvm_backend")
-
-    if attr.simd:
-        features.append("wasm_simd")
-
-    platform = "@emsdk//:platform_wasm"
-    if attr.standalone:
-        platform = "@emsdk//:platform_wasi"
-        features.append("wasm_standalone")
-
-    return {
-        "//command_line_option:compiler": "emscripten",
-        "//command_line_option:cpu": "wasm",
-        "//command_line_option:features": features,
-        "//command_line_option:dynamic_mode": "off",
-        "//command_line_option:linkopt": linkopts,
-        "//command_line_option:platforms": [platform],
-        # This is hardcoded to an empty cc_library because the malloc library
-        # is implicitly added by the emscripten toolchain
-        "//command_line_option:custom_malloc": "@emsdk//emscripten_toolchain:malloc",
-    }
-
-_wasm_transition = transition(
-    implementation = _wasm_transition_impl,
-    inputs = [
-        "//command_line_option:features",
-        "//command_line_option:linkopt",
-    ],
-    outputs = [
-        "//command_line_option:compiler",
-        "//command_line_option:cpu",
-        "//command_line_option:features",
-        "//command_line_option:dynamic_mode",
-        "//command_line_option:linkopt",
-        "//command_line_option:platforms",
-        "//command_line_option:custom_malloc",
-    ],
-)
-
-_ALLOW_OUTPUT_EXTNAMES = [
-    ".js",
-    ".wasm",
-    ".wasm.map",
-    ".worker.js",
-    ".js.mem",
-    ".data",
-    ".fetch.js",
-    ".js.symbols",
-    ".wasm.debug.wasm",
-    ".html",
-    ".aw.js",
-]
-
-_WASM_BINARY_COMMON_ATTRS = {
-    "backend": attr.string(
-        default = "_default",
-        values = ["_default", "emscripten", "llvm"],
-    ),
-    "cc_target": attr.label(
-        cfg = _wasm_transition,
-        mandatory = True,
-    ),
-    "exit_runtime": attr.bool(
-        default = False,
-    ),
-    "threads": attr.string(
-        default = "_default",
-        values = ["_default", "emscripten", "off"],
-    ),
-    "simd": attr.bool(
-        default = False,
-    ),
-    "standalone": attr.bool(
-        default = False,
-    ),
-    "_allowlist_function_transition": attr.label(
-        default = "@bazel_tools//tools/allowlists/function_transition_allowlist",
-    ),
-    "_wasm_binary_extractor": attr.label(
-        executable = True,
-        allow_files = True,
-        cfg = "exec",
-        default = Label("@emsdk//emscripten_toolchain:wasm_binary"),
-    ),
-}
-
-def _wasm_cc_binary_impl(ctx):
-    args = ctx.actions.args()
-    cc_target = ctx.attr.cc_target[0]
-
-    for output in ctx.outputs.outputs:
-        valid_extname = False
-        for allowed_extname in _ALLOW_OUTPUT_EXTNAMES:
-            if output.path.endswith(allowed_extname):
-                valid_extname = True
-                break
-        if not valid_extname:
-            fail("Invalid output '{}'. Allowed extnames: {}".format(output.basename, ", ".join(_ALLOW_OUTPUT_EXTNAMES)))
-
-    args.add_all("--archive", ctx.files.cc_target)
-    args.add_joined("--outputs", ctx.outputs.outputs, join_with = ",")
-
-    ctx.actions.run(
-        inputs = ctx.files.cc_target,
-        outputs = ctx.outputs.outputs,
-        arguments = [args],
-        executable = ctx.executable._wasm_binary_extractor,
-    )
-
-    return [
-        DefaultInfo(
-            files = depset(ctx.outputs.outputs),
-            # This is needed since rules like web_test usually have a data
-            # dependency on this target.
-            data_runfiles = ctx.runfiles(transitive_files = depset(ctx.outputs.outputs)),
-        ),
-        OutputGroupInfo(_wasm_tar = cc_target.files),
-    ]
-
-def _wasm_cc_binary_legacy_impl(ctx):
-    cc_target = ctx.attr.cc_target[0]
-    outputs = [
-        ctx.outputs.loader,
-        ctx.outputs.wasm,
-        ctx.outputs.map,
-        ctx.outputs.mem,
-        ctx.outputs.fetch,
-        ctx.outputs.worker,
-        ctx.outputs.data,
-        ctx.outputs.symbols,
-        ctx.outputs.dwarf,
-        ctx.outputs.html,
-        ctx.outputs.audio_worklet,
-    ]
-
-    args = ctx.actions.args()
-    args.add("--allow_empty_outputs")
-    args.add_all("--archive", ctx.files.cc_target)
-    args.add_joined("--outputs", outputs, join_with = ",")
-
-    ctx.actions.run(
-        inputs = ctx.files.cc_target,
-        outputs = outputs,
-        arguments = [args],
-        executable = ctx.executable._wasm_binary_extractor,
-    )
-
-    return [
-        DefaultInfo(
-            executable = ctx.outputs.wasm,
-            files = depset(outputs),
-            # This is needed since rules like web_test usually have a data
-            # dependency on this target.
-            data_runfiles = ctx.runfiles(transitive_files = depset(outputs)),
-        ),
-        OutputGroupInfo(_wasm_tar = cc_target.files),
-    ]
-
-_wasm_cc_binary = rule(
-    implementation = _wasm_cc_binary_impl,
-    attrs = dict(
-        _WASM_BINARY_COMMON_ATTRS,
-        outputs = attr.output_list(
-            allow_empty = False,
-            mandatory = True,
-        ),
-    ),
-)
-
-def _wasm_binary_legacy_outputs(name, cc_target):
-    basename = cc_target.name
-    basename = basename.split(".")[0]
-    outputs = {
-        "loader": "{}/{}.js".format(name, basename),
-        "wasm": "{}/{}.wasm".format(name, basename),
-        "map": "{}/{}.wasm.map".format(name, basename),
-        "mem": "{}/{}.js.mem".format(name, basename),
-        "fetch": "{}/{}.fetch.js".format(name, basename),
-        "worker": "{}/{}.worker.js".format(name, basename),
-        "data": "{}/{}.data".format(name, basename),
-        "symbols": "{}/{}.js.symbols".format(name, basename),
-        "dwarf": "{}/{}.wasm.debug.wasm".format(name, basename),
-        "html": "{}/{}.html".format(name, basename),
-        "audio_worklet": "{}/{}.aw.js".format(name, basename)
-    }
-
-    return outputs
-
-_wasm_cc_binary_legacy = rule(
-    implementation = _wasm_cc_binary_legacy_impl,
-    attrs = _WASM_BINARY_COMMON_ATTRS,
-    outputs = _wasm_binary_legacy_outputs,
-)
-
-# Wraps a C++ Blaze target, extracting the appropriate files.
-#
-# This rule will transition to the emscripten toolchain in order
-# to build the the cc_target as a WebAssembly binary.
-#
-# Args:
-#   name: The name of the rule.
-#   cc_target: The cc_binary or cc_library to extract files from.
-def wasm_cc_binary(outputs = None, **kwargs):
-    # for backwards compatibility if no outputs are set the deprecated
-    # implementation is used.
-    if not outputs:
-        _wasm_cc_binary_legacy(**kwargs)
-    else:
-        _wasm_cc_binary(outputs = outputs, **kwargs)

+ 0 - 6
emsdk-cache/emsdk-main/bazel/emscripten_toolchain/wasm_rules.bzl

@@ -1,6 +0,0 @@
-"""Rules related to C++ and WebAssembly.
-"""
-
-load(":wasm_cc_binary.bzl", _wasm_cc_binary = "wasm_cc_binary")
-
-wasm_cc_binary = _wasm_cc_binary

+ 0 - 10
emsdk-cache/emsdk-main/bazel/hello-world/hello-world-simd.cc

@@ -1,10 +0,0 @@
-#include <wasm_simd128.h>
-
-void multiply_arrays(int* out, int* in_a, int* in_b, int size) {
-  for (int i = 0; i < size; i += 4) {
-    v128_t a = wasm_v128_load(&in_a[i]);
-    v128_t b = wasm_v128_load(&in_b[i]);
-    v128_t prod = wasm_i32x4_mul(a, b);
-    wasm_v128_store(&out[i], prod);
-  }
-}

+ 0 - 6
emsdk-cache/emsdk-main/bazel/hello-world/hello-world.cc

@@ -1,6 +0,0 @@
-#include <iostream>
-
-int main(int argc, char** argv) {
-  std::cout << "hello world!" << std::endl;
-  return 0;
-}

+ 0 - 148
emsdk-cache/emsdk-main/bazel/remote_emscripten_repository.bzl

@@ -1,148 +0,0 @@
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-load(":emscripten_build_file.bzl", "EMSCRIPTEN_BUILD_FILE_CONTENT_TEMPLATE")
-load(":revisions.bzl", "EMSCRIPTEN_TAGS")
-load("//emscripten_toolchain:toolchain.bzl", "emscripten_cc_toolchain_config_rule")
-
-def remote_emscripten_repository(
-    name,
-    bin_extension,
-    **kwargs,
-):
-    """Imports an Emscripten from an http archive
-
-    Args:
-      name: A unique name for this Emscripten repository.
-      bin_extension: Extension for the binaries in this Emscripten repository
-      **kwargs: Args for http_archive. Refer to http_archive documentation for more info.
-    """
-    http_archive(
-        name = name,
-        build_file_content = EMSCRIPTEN_BUILD_FILE_CONTENT_TEMPLATE.format(bin_extension = bin_extension),
-        **kwargs
-    )
-
-def emscripten_toolchain_name(name):
-    return "emscripten_{}".format(name)
-
-def _get_name_and_target(name):
-    return name, ":" + name
-
-def create_toolchains(name, repo_name, exec_compatible_with):
-    """Creates toolchain definition for an Emscripten
-
-    Register the toolchains defined by this macro via
-    `register_toolchains("//<path-to-target>:cc-toolchain-wasm-<name>")`
-
-    Args:
-      name: A unique name for this Emscripten toolchain
-      repo_name: The name of the Emscripten repository for this toolchain
-      exec_compatible_with: Execute platform constraints for the Emscripten toolchain associated
-        with this repository.
-      **kwargs: Args for http_archive. Refer to http_archive documentation for more info.
-    """
-    common_files_name, common_files_target = _get_name_and_target("common_files_" + name)
-    compiler_files_name, compiler_files_target = _get_name_and_target("compiler_files_" + name)
-    linker_files_name, linker_files_target = _get_name_and_target("linker_files_" + name)
-    ar_files_name, ar_files_target = _get_name_and_target("ar_files_" + name)
-    all_files_name, all_files_target = _get_name_and_target("all_files_" + name)
-    cc_wasm_name, cc_wasm_target = _get_name_and_target("cc-compiler-wasm-" + name)
-
-    wasm_name = "wasm-" + name
-
-    # These are file groups defined by the build_file_content on the Emscripten http_archive
-    remote_repo = "@{}//".format(repo_name)
-    repo_compiler_files_target = remote_repo + ":compiler_files"
-    repo_linker_files_target = remote_repo + ":linker_files"
-    repo_ar_files_target = remote_repo + ":ar_files"
-
-    native.filegroup(
-        name = common_files_name,
-        srcs = [
-            "@emscripten_cache//:emscripten_config",
-            "@emsdk//emscripten_toolchain:env.sh",
-            "@emsdk//emscripten_toolchain:env.bat",
-            "@nodejs//:node_files",
-        ],
-    )
-
-    native.filegroup(
-        name = compiler_files_name,
-        srcs = [
-            "@emsdk//emscripten_toolchain:emcc.sh",
-            "@emsdk//emscripten_toolchain:emcc.bat",
-            repo_compiler_files_target,
-            common_files_target,
-        ],
-    )
-
-    native.filegroup(
-        name = linker_files_name,
-        srcs = [
-            "@emsdk//emscripten_toolchain:emcc_link.sh",
-            "@emsdk//emscripten_toolchain:emcc_link.bat",
-            "link_wrapper.py",
-            repo_linker_files_target,
-            common_files_target,
-        ],
-    )
-
-    native.filegroup(
-        name = ar_files_name,
-        srcs = [
-            "@emsdk//emscripten_toolchain:emar.sh",
-            "@emsdk//emscripten_toolchain:emar.bat",
-            repo_ar_files_target,
-            common_files_target,
-        ],
-    )
-
-    native.filegroup(
-        name = all_files_name,
-        srcs = [
-            ar_files_target,
-            compiler_files_target,
-            linker_files_target,
-        ],
-    )
-
-    emscripten_cc_toolchain_config_rule(
-        name = wasm_name,
-        cpu = "wasm",
-        em_config = "@emscripten_cache//:emscripten_config",
-        emscripten_binaries = repo_compiler_files_target,
-        nodejs_bin = "@nodejs//:node",
-        script_extension = select({
-            "@bazel_tools//src/conditions:host_windows": "bat",
-            "//conditions:default": "sh",
-        }),
-    )
-
-    native.cc_toolchain(
-        name = cc_wasm_name,
-        all_files = all_files_target,
-        ar_files = ar_files_target,
-        as_files = ":empty",
-        compiler_files = compiler_files_target,
-        dwp_files = ":empty",
-        linker_files = linker_files_target,
-        objcopy_files = ":empty",
-        strip_files = ":empty",
-        toolchain_config = wasm_name,
-        toolchain_identifier = "emscripten-wasm-" + name,
-    )
-
-    native.toolchain(
-        name = "cc-toolchain-wasm-" + name,
-        target_compatible_with = ["@platforms//cpu:wasm32"],
-        exec_compatible_with = exec_compatible_with,
-        toolchain = cc_wasm_target,
-        toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
-    )
-
-    native.cc_toolchain_suite(
-        name = "everything-" + name,
-        toolchains = {
-            "wasm": cc_wasm_target,
-            "wasm|emscripten": cc_wasm_target,
-        },
-    )

+ 0 - 805
emsdk-cache/emsdk-main/bazel/revisions.bzl

@@ -1,805 +0,0 @@
-# This file is automatically updated by emsdk/scripts/update_bazel_workspace.py
-# DO NOT MODIFY
-
-EMSCRIPTEN_TAGS = {
-    "4.0.13": struct(
-        hash = "32b8ae819674cb42b8ac2191afeb9571e33ad5e2",
-        sha_linux = "2ad887035e3e5cac78abcaeca3b3881897f03b9919d008cbc0ef41d7641247c9",
-        sha_linux_arm64 = "675156bd626c7b19d4f2271ea8ffa77a235d9b0a031116632e53b374cf23754c",
-        sha_mac = "657cbd01e84f0a33cb7a1379baecd18a7d96883222a3a99b43919d8bb2374f55",
-        sha_mac_arm64 = "12ac26e298ef973207eba9332e28da375ec2ba1d32e68e0d8b32de3c886a2e39",
-        sha_win = "a363d6e92dcaf0024d378f1faabb61a139d9152a796f66a475a48e33e90f6adb",
-    ),
-    "4.0.12": struct(
-        hash = "209b886304498eff50dd835850dc5715803401ed",
-        sha_linux = "1c303712707a91b88f743b0ad6dd1544c289e614844396698a2510a66c5608f1",
-        sha_linux_arm64 = "2c503d031d2ad2b13c6e4fe09f104fe50c5d1319feaa2b3d19d4e4608435fbb8",
-        sha_mac = "c85830f151ec8eebec6bb2344e3eed942bc7b5dc91b146326635f9f71af459f2",
-        sha_mac_arm64 = "853dff1a8451b54ff7cdd95f923851dd9b58ab36873b7b600d16243a5fb6d907",
-        sha_win = "7b7e58fbd35a78ddf9a2a4a3f6215857bf2342942c429cdf540a2251540cb845",
-    ),
-    "4.0.11": struct(
-        hash = "7033fec38817ec01909b044ea0193ddd5057255c",
-        sha_linux = "f38e70b53be587e7c757f375b3452e259c70130d4b40db3213c95b7ae321f5d7",
-        sha_linux_arm64 = "42020e4db200ac366a3e91ac2fccc04ee0ffc090cd2d5986c892b27f39172bb9",
-        sha_mac = "4169811f9682f54ae5c9d0662d0a4dd4318abab5d3d0473fa54007f515a8cdea",
-        sha_mac_arm64 = "09554371e3941306d047d67618532e5366ba6c9b5bda1a504a917bfbabc5d414",
-        sha_win = "bd2094ca9bde5df25020a46ece7f56b622d1d22214fbd12950b01b952dd40084",
-    ),
-    "4.0.10": struct(
-        hash = "8103ffedfb0c42d231c6af6859a5a1a832260b43",
-        sha_linux = "0183f887b56c3f8d4b45826cb49856a3324afb66236ad3c13944c0fd2550cbbc",
-        sha_linux_arm64 = "0679f459118d80163d0712b0abda00cbc97a90cddf1dcefa9efb1bf89f67baed",
-        sha_mac = "02f3179f703b4d196a679897b430c1eeeb1d5f9aeba9b435b04ba3f526f7e8e0",
-        sha_mac_arm64 = "c744ffe06ffed55cd8dae42862b7646f15550c7decd47a48d09a474af83732b0",
-        sha_win = "1a66825e85fda039f57d39c98ae2bdb96a18e53745159e9599f69679be18439f",
-    ),
-    "4.0.9": struct(
-        hash = "cb2a69bce627bd2247624c71fc12907cb8785d2f",
-        sha_linux = "c6fd245138e6bbdd8349963cb4045c557d657e4be0ea44155375633c689c8be9",
-        sha_linux_arm64 = "872d7f5870f1bfc523a446ca66ab1b47009a96be33c398dbbb12a56597e46ab5",
-        sha_mac = "7efb0a6ddcb915aeca9f8685db909ae7799452894876fc1223a78d5c3288ff2d",
-        sha_mac_arm64 = "b97f3cda61211dd83b31ef9ea92e83d416a9422192cf3ee484fffe11e5d6e5b9",
-        sha_win = "e6e409ae564c041691f2fecd690431a9935401f8ab6afe284b222546887e84c5",
-    ),
-    "4.0.8": struct(
-        hash = "56f86607aeb458086e72f23188789be2ee0e971a",
-        sha_linux = "7b50b2b40f80d4531ae29a0a5b902eca41552e04815f59880a122ac81e8f269d",
-        sha_linux_arm64 = "d6e3ab0cdec2e6983235322f600f248d313bfce4a6a69ef16cdfdc330ff748b8",
-        sha_mac = "e1b2e6d4797338ed884f9d8a8419f93fc42cfcdea5e8a8b29fe13c6fd3fe7f7a",
-        sha_mac_arm64 = "115b207304d5471b77fc7649904111f3bb5ed7998ad192cba6cfc5fd0b2d78cb",
-        sha_win = "9ca65cb49287f448216c2eac12dacff9808ae827d5de267aaf2bd65f6d4f233e",
-    ),
-    "4.0.7": struct(
-        hash = "ef4e9cedeac3332e4738087567552063f4f250d3",
-        sha_linux = "60079078b1ecc4e96ab01c4189aceeff9049a1bb2544123295e9841b91a9410d",
-        sha_linux_arm64 = "caa10ae2d2b01eb290957e96636f0a6861e7305c8d991c762379542208415793",
-        sha_mac = "d588cc31b7db0d876f1d45f4d0c656d5e205d049c0bb27209cad04cfebe19309",
-        sha_mac_arm64 = "c0153cc053d8961e094447c3e706cb8f379c263bee64202fd78251fe018fb014",
-        sha_win = "7974b6e11164c2c94ddb252c9728d21de321094421f5d0856702e65c06751e54",
-    ),
-    "4.0.6": struct(
-        hash = "14767574a5c37ff9526a253a65ddbe0811cb3667",
-        sha_linux = "27fc220a9ad98d323cad73531ff563e9838c9e1205f51ee2a5632bb4266a35d2",
-        sha_linux_arm64 = "2d03f8eb3f81dd94821658eefbb442a92b0b7601f4cfb08590590fd7bc467ef8",
-        sha_mac = "c06048915595726fc2e2da6a8db3134581a6287645fb818802a9734ff9785e77",
-        sha_mac_arm64 = "35d743453d0f91857b09f00d721037bb46753aaeae373bd7f64746338db11770",
-        sha_win = "3b576e825b26426bb72854ed98752df3fcb58cc3ab1dc116566e328b79a8abb3",
-    ),
-    "4.0.5": struct(
-        hash = "d7f8ff5e2ca3539c33fae81e98f7c56ef9fa1239",
-        sha_linux = "fdd4d9d6b37e845039b207baaef60cd98fb594ea13a3e6d622c2dcd8f2a48ac6",
-        sha_linux_arm64 = "0007aec32eee609b91f35c32481ec060ea7dac7151e36344bbcae419907f9240",
-        sha_mac = "f4e5a6c57ad9de59bff73463972213a299af2bb419dafbdd3959947fa801a342",
-        sha_mac_arm64 = "b8b93190fa17afe32a5eaa7120b807767b1c9d6e1d4ae6b9a2c6adb231758683",
-        sha_win = "3b8ed9e298a6d58fee841f5c3f1d3e7b2dff104cc7df314cd329f4c05d470be0",
-    ),
-    "4.0.4": struct(
-        hash = "ea71afcf5a172125179a07ff1731de6e81c92222",
-        sha_linux = "f05dab4a6a13a5fe6972e95e918d1483e687faf468e1a653deaa8d7956a97a3a",
-        sha_linux_arm64 = "95a421f304a7209c6f259754ad15aea5bbbbb1838139b51837aeb2c184fa4a89",
-        sha_mac = "d8b44aae37224ae76572ad84b60a2adaa126826332864fb689944d5130705d8d",
-        sha_mac_arm64 = "ade1c1a0c2e5893c6f74079beeae8b7e2a0c3f3b7ae88891064104fd985dfc2b",
-        sha_win = "342cf9dfb83e95bf678d07e460e093ea61a609d34b4603d9be06d4f31784409d",
-    ),
-    "4.0.3": struct(
-        hash = "de2109f0e5e7278d470da11de526aed16c527722",
-        sha_linux = "6480f51d0c24130424c696bf83e9774f42246a0109c8d48b59f4520fdfadb928",
-        sha_linux_arm64 = "76b1511d550b4f47276b93581ae5122063acbca7c960703637657388cf178636",
-        sha_mac = "f40851b816b31b3ca3214ebf61cc152625a05c24f43e2b13c2ad9b9e5dca73c0",
-        sha_mac_arm64 = "6d8ac5ad1f59f71de0927eb2c595dab2f21d9946ca293434359a6db2ab06a138",
-        sha_win = "3702e4a518057520d4ad9e7cd63a01a829770d090551e00f19f417f55b0170d3",
-    ),
-    "4.0.2": struct(
-        hash = "cc8eba40de8235f9c33d92463018f87b3edaa09e",
-        sha_linux = "3c0e3940240709388c24a4262680c18bb1d5979f2337abe53db00fb039606c44",
-        sha_linux_arm64 = "21ed0c31c1fc972e3509fcb140e0323061b5f2b173fe56d1f8961df2a37e4c11",
-        sha_mac = "e1bd96ec790968adf583d348158375b76ee0287e348954c3393c82565475b07b",
-        sha_mac_arm64 = "e5bf9a5efabc114b42636abcea07a1e02d3a9406cd399a29ccbc730586dce465",
-        sha_win = "78010f8e2f7bb6868bb20e3fc32e24d45e6fca749c388c2d25bea9845512338d",
-    ),
-    "4.0.1": struct(
-        hash = "5ff495a591978fdf8a16f2d172be3616f3150d1e",
-        sha_linux = "7b2b64b1bc15555696f78cbcb54c8d75832222d1578270ff5f56a8024c9a0dbc",
-        sha_linux_arm64 = "5c046a22b933de14be6b2522b75796afffe3940a19422eee483b7f3f1a226d66",
-        sha_mac = "d089eba9c3cad675bbd7d3318aec166ebe5ba984a6c5291136c09c68324d9818",
-        sha_mac_arm64 = "c8359b334bad71719e8d29e796ca7b63891e0305987b2572eb5a2f020e34f773",
-        sha_win = "9cf861339327f3657281c5c8c18aa723323acffe3b3d1c3807b9d4576d097e0e",
-    ),
-    "4.0.0": struct(
-        hash = "3ebc04a3dab24522a5bf8ced3ce3caea816558f6",
-        sha_linux = "6836988f0b7ee6ce3df5192dd4375b9eee55be78847ce31cf1d2abfb00f1e991",
-        sha_linux_arm64 = "d4e6e04b7e2fa1bdffc9c07ab4e0a3f66bde75adb06ebf9cc66a341907b17db4",
-        sha_mac = "4123e9ff6a699dac303c4fe22529ae0d618c118fcd8267df590363b0fc98c91d",
-        sha_mac_arm64 = "4b5fb7cc4f5f8526aaa41c8560a00ad6782b97cd3894d856beb635f05a825613",
-        sha_win = "6b1e5aee4b4a4274712566c845888bdf4eced09a5aaa64c1796cda57cd2854c4",
-    ),
-    "3.1.74": struct(
-        hash = "c2655005234810c7c42e02a18e4696554abe0352",
-        sha_linux = "a987bb4cded4f29437e8589accac204ce3c134feaaaf251bb97d0fdf450dce65",
-        sha_linux_arm64 = "c7fcc532eb7ee1dc7df0eacb49128ded12e4d55a973b8a2a5215da8bb6c4027c",
-        sha_mac = "04f848f40bd19220a43abde2dd1012d95bf1f89c618c0f631b83d18357e2bb65",
-        sha_mac_arm64 = "fc71758a5bfb02b8a5c2dd21d6bfc34aa3c64698f6105e204a1f4d11f6d67603",
-        sha_win = "603b0515e0367ee2718b2f360ef0194663d23a91236910d5f4a90ac4d745a4f2",
-    ),
-    "3.1.73": struct(
-        hash = "b363a836e75a245c548b7a6a021822d8c9e4c6df",
-        sha_linux = "4f3bc91cffec9096c3d3ccb11c222e1c2cb7734a0ff9a92d192e171849e68f28",
-        sha_linux_arm64 = "e6fb8a32889d4e4a3ac3e45d8012641369251ddd1255ada132ff6c70ab62b932",
-        sha_mac = "8d52ec080834f49996534de26772800dee048ec9bf148bb508be95887e267735",
-        sha_mac_arm64 = "58e6c984c5a1fb71e0871f0c3bb9e32d41e7553260c6eeb38800a4612623a99d",
-        sha_win = "d76003fad2146ad1f2289e8b251fbc359406ced0857f141a41f15149c2138302",
-    ),
-    "3.1.72": struct(
-        hash = "7a360458327cd24c2a7aab428bdbcb5bca8810e4",
-        sha_linux = "be094d6dd27c27a64116e9c0165d6cade5d329f5137e56696773e98e1df83fa7",
-        sha_linux_arm64 = "5dba64454809d72d53c432f3c91830d69d413ebd9dcd0ce18df5a79a3af235a6",
-        sha_mac = "52f713c118717814d2371912ab9019a3605b7d6acc627f3842e6aa7d3ffff7bf",
-        sha_mac_arm64 = "644593539684f59c635c7eae2e743f5e4e27b1d665f9c71c23dcefd4c2448b3c",
-        sha_win = "c72623fb68f109d8f122036f25b9fc75353bd1ce28995d9920277d4be4a1d99c",
-    ),
-    "3.1.71": struct(
-        hash = "7ee0f9488f152e9e9cf0d4d243970e03742f1a5c",
-        sha_linux = "43f87aa84a73697b905d2a13c89d016af8ec66bed792f37dd5a0059529abee12",
-        sha_linux_arm64 = "d25f5e57b2e7557df39cd9dec3b0283fb086f66c800af3d9a3f70f36c5fc6b14",
-        sha_mac = "8dac015c03c4f2e594d8bca25fe35d1e4d808aea81705121e852aff0464c4a9d",
-        sha_mac_arm64 = "a7797c3d210eda29f88eede261fc8f0aabf22c7b05214916b5b50a1271e9f0b8",
-        sha_win = "dfe77eaf22278ca975519f0497c8b336c86e52461c478060418fe67b39b6e87c",
-    ),
-    "3.1.70": struct(
-        hash = "6fa6145af41e835f3d13edf7d308c08e4573357a",
-        sha_linux = "c29b4a2c6addd5aafa613768d34273a23d8fcd1753c685ff61099506710cd8d7",
-        sha_linux_arm64 = "b13386975023a06f19057daef3896d480229b144d1e97f8764ed2f3e0fcb7d37",
-        sha_mac = "bc0edcaaaa19daeda9164d38d36c5f7d7b4b4e1eb7695ad58e776336c571fcc4",
-        sha_mac_arm64 = "e470d5eeb570850d66a79bd4c06064b9b3a1e90c7c2101e1a444ebcd6466fe5a",
-        sha_win = "f0118d71fd67583ddcfd39af2ed8bec3d18152fb6aadee085ebec5bcaf4ac4f5",
-    ),
-    "3.1.69": struct(
-        hash = "8fe01288bc35668c13316324336ea00195dfb814",
-        sha_linux = "24a786666e6f48ed3c3944b44df5cf146c45cf4faece4cb2686312a3d052a00c",
-        sha_linux_arm64 = "48e670501d215ac5b6b2680c900c517d9028dbc4de43be5dd6f25211a3640f2b",
-        sha_mac = "8503fe87dd2f30abff2550e9d6eb8aadeaf30fd3c6972d635b31e67f82e155f7",
-        sha_mac_arm64 = "995c7b3c84458edf6b8945e81405320c64a25dfe79eaa427fc1fe9a680f56b4f",
-        sha_win = "3839e0a581ae7b19156f004762a8221585e9a0d6237e468b13a878d1947636c5",
-    ),
-    "3.1.68": struct(
-        hash = "b52d8c9150dc7d4c8e4a7a08c7a9b4006c9abe49",
-        sha_linux = "1f2bcb47d85eb31d90fa797b3513221adc50f0656bb37f0962a40fd0f49fcf6a",
-        sha_linux_arm64 = "de346e7a489aa27a442215945d154d58a0d35c608b6150b2992af0e70c04e1c5",
-        sha_mac = "b180711544d783121370d2c894703f99d370a864ab147730f82fd59b88fa3481",
-        sha_mac_arm64 = "5e9b6242b56edc8cb404cbaf6c8bd7eb1f0f168b55b580bd92652f98c5d286f4",
-        sha_win = "824d37e8a0845f44e4c1111e8365640eea28944f1bdbd1e9e3fea0279b68baea",
-    ),
-    "3.1.67": struct(
-        hash = "4ae62984ea36ef0e5bfcbd0ed9b62f04bee6426a",
-        sha_linux = "535b64822916c80124363a5c7a5bd0cafd703f166d5155c0ad0e464e4a879091",
-        sha_linux_arm64 = "04c5f959702d8c1e5c000752b562271c224dee593e81144280840fed06e36cd9",
-        sha_mac = "692b8fdc79a47332ba9881966c72517eedf15b2da7bed37a535dfec55e6bbd9c",
-        sha_mac_arm64 = "ac26753f59fa9c8e92be9c91666014ad9400c91fbd37064105d1b5fcae503985",
-        sha_win = "8c6af8046ed47386018e42d18b53f57fad0926306dd4315d7f09dfae844b3dd3",
-    ),
-    "3.1.66": struct(
-        hash = "243eae09cf5c20c4fde51a620b92f483255c8214",
-        sha_linux = "b10eac37c978b28da2f1f34cdd8a7759c0ed5e5a2d8eb4f4e6790209de33dbf7",
-        sha_linux_arm64 = "9c78a470f74c24fc1fde2c8d86583ed98847b6cbdd87cd0b36ff2d6b4799d950",
-        sha_mac = "64fd0603ccbf949967cb0dfd8f1b0b25e018abf8bfe813b53596c4fc78751027",
-        sha_mac_arm64 = "fd6250f25101957f56086d292263379880c4b3329819a021008b2058f92ef67b",
-        sha_win = "b24f65a1a1111d8ace6ba47b55e07681cd0620f7bf711d1018ee262c9501defc",
-    ),
-    "3.1.65": struct(
-        hash = "fdcf56c75a1d27fdff6525a7e03423595485ca19",
-        sha_linux = "b2b7de13d37c4c5126e6c6a077e6019ebacc78ef1fb1b35b9035f03975f5ffaa",
-        sha_linux_arm64 = "f838af6495408f3c0a14d233171b4919b62e445c62805a22dea1875cb709a116",
-        sha_mac = "cc50b829a21a041979e0941cfd2047d30a06e3c4a8fd9f662ecdc12a0ab40535",
-        sha_mac_arm64 = "db4430db6a085d6ed5284917e632541dad3ce0a9464659fb674055247ad059d0",
-        sha_win = "e72ae4ec3231d9a492eadbf77ff28c13efd90307a69df04234792e67a001d05e",
-    ),
-    "3.1.64": struct(
-        hash = "fd61bacaf40131f74987e649a135f1dd559aff60",
-        sha_linux = "c39de24beca60fd580f6dff0eca0e275016042a30234588b19eda82397e299f3",
-        sha_linux_arm64 = "61b412135630a60c5517278dc83930e06f80fa286fcc2bb6366c4f620c86e4e0",
-        sha_mac = "2644772be398c8095621b3d0fe9ff2d122b18b7b0963c0eb702639d94dfb8e90",
-        sha_mac_arm64 = "47449057c345a09aa8750be1a357c364ffea9f8a066066cb341a7a2a14bac96a",
-        sha_win = "eb5b59afb420915daab4c383e5f73d456cc14776dce02fdc852c46522cda5531",
-    ),
-    "3.1.63": struct(
-        hash = "aeb36a44b29e8ca9f4c7efbb4735b69003ac2bb9",
-        sha_linux = "2a38ac1ea2fe3b7169879f0f666ea278f344cbb5db6e34421b9554939559109c",
-        sha_linux_arm64 = "f1dd5fe4cd22e89b1f5bfd216f1245f9f40f6ea76651a7f66e925a68ff6f18b8",
-        sha_mac = "7e192b84aecfade22817b5b38f0c69d1f795a9b990308188d39ed1d218692cd3",
-        sha_mac_arm64 = "751ef26a3682f5f23dfdc1c2f80cd0604a32cad61e6373c823de774722ecb9af",
-        sha_win = "947f8e867e781750d374d659644897f2345a133ad3d0f9ade23afcb81eeaddd3",
-    ),
-    "3.1.62": struct(
-        hash = "d52176ac8e07c47c1773bb2776ebd91e3886c3af",
-        sha_linux = "fd303a2b2a85c4b3ab8aa29595d70c5fde9df71c5254d56ed19d54e9ee98e881",
-        sha_linux_arm64 = "233c0df77644472cd322b45b2d7cf709e6c338799b46f6ec5d5f39ca4dbe8aef",
-        sha_mac = "d9cfef7ba8f44bf21be715244d0d5f909f1ccc2a481a301b3c01d12d1babc049",
-        sha_mac_arm64 = "de5484d60c858aaa8b93ba6485924adffe734cf4f8296765c089900cf9ce0701",
-        sha_win = "7455680bf9c19a26fe4868111ac01401023b0f92e862d3cabadf7950b87707fd",
-    ),
-    "3.1.61": struct(
-        hash = "28e4a74b579b4157bda5fc34f23c7d3905a8bd6c",
-        sha_linux = "e3e20e09219fd47a0019bb3252e17db4a00ded39b39b41634bc73f840a8ff2be",
-        sha_linux_arm64 = "a6b858601ca09fb7bb6ddf1a5ffb1a4130454c936ad046d45fef183037828c46",
-        sha_mac = "1fe69a3c42fb2857b80c8e77bfab780cb212ed7cf81ae57c0c4d235504df5269",
-        sha_mac_arm64 = "4ba702eea409e2d4bfabc73a68919217d3993e7585d95734e3e40a3c9ce1bd21",
-        sha_win = "bbafba849ff072a61dd34a8ffc0c85eed20a417854a3ca751b092e3565a92581",
-    ),
-    "3.1.60": struct(
-        hash = "87709b5747de5b1993fe314285528bf4b65c23e1",
-        sha_linux = "ff5eb062165920c7cb69935d396f13e9f8ca5b13f2d7f3af2759bcacb5e877e2",
-        sha_linux_arm64 = "2c291942df4868d3f65b31dd964bda9736bfddcd6a7886158963f797d1b45cf5",
-        sha_mac = "45586fab1bad65a4293ea8939dafb5ec711ba92ae7b4d1edbaae3b4486f398b5",
-        sha_mac_arm64 = "8dc27416a378ad07285d380f68717cfe0db1ea6252fdb1ad012af95e4d3f342e",
-        sha_win = "f3147ef2d4ca48ea2624039969fd0529d0bacb63bf49ee4809c681902768b973",
-    ),
-    "3.1.59": struct(
-        hash = "e20ee09a8a740544c4bc6de5d4ba5f81f74b74d6",
-        sha_linux = "ae59d1946cb92e1651cbb904fe824b3f07b39f42fa25f582116b5aaa226fa239",
-        sha_linux_arm64 = "25b918d6d5ee2af7ef6b28e089dc21d2dc419dca76c8079bb638cb20459eb9e5",
-        sha_mac = "af175bd559cb80459749e504da314af0163291f195461bf4d376d6980c4c60c3",
-        sha_mac_arm64 = "e17553bca5d00b30c920595e785281627e973f9e7e14c5dc0a73c355ccafe113",
-        sha_win = "bb54256fc3b7824cb75d5474f887d9bf8e1e63c15b351bdfbed898aa293ee4ab",
-    ),
-    "3.1.58": struct(
-        hash = "a4d4afb626c5010f6ccda4638b8d77579a63782e",
-        sha_linux = "b188249ecb939dadc679aaf2d3d9afd0fe19ab942f91b7bc926b4f252915dd1a",
-        sha_linux_arm64 = "4aedc8ca641b40d9bd82d85b1dc3458fe1afc9a132da06a09384a5f89c058969",
-        sha_mac = "2092aa4bef3b9f88d3f343b042a417ba617d4e04454656d8f2e101ba53f854e8",
-        sha_mac_arm64 = "7a9a15845257629b7602d15bdf7633a8e10472b0fa9b3d9ee7149938aa2f2039",
-        sha_win = "9fe76b6189566d56f0cf9aecbd23a006778530aa87184a900f5662e39ce7272a",
-    ),
-    "3.1.57": struct(
-        hash = "523b29e1b99a61069a2fa9f9d3cc9be1c4c53d4d",
-        sha_linux = "5bc444132258d4404d396f2044a4a334064ad0f1022555cad5ec72804a98ba5a",
-        sha_linux_arm64 = "f0022413afcc1610deff10921b3f5938bf4d01eba46ce96655f2295bdd84bd6a",
-        sha_mac = "31ddccb68c86f0a45332982938c49505158860ed4f7e8ccef72a48382e0e3c96",
-        sha_mac_arm64 = "cc5fdb65b339464f99b9c731cc63c233ec9577268886a856fa49f227ca2a56d1",
-        sha_win = "b53555420bb9b6e31c153e4c59427000ec692be17ae900f659a9b774d1ecebed",
-    ),
-    "3.1.56": struct(
-        hash = "9d106be887796484c4aaffc9dc45f48a8810f336",
-        sha_linux = "52338cca556002251e5e7d738adb1870d14331ddf463e613af02028b64e05a82",
-        sha_mac = "fc5cca6a9db571ecb2974bf0d4e12f1bc6068726271464586cf7e8723004b4c6",
-        sha_mac_arm64 = "aed728d09d801c4a33210505874ce066269292e7809a7d6a6414146be01545f1",
-        sha_win = "cd5fbe94fb0bcf01badc10eace48eddbca22b34f31229e3d70c68ade7bcdd571",
-    ),
-    "3.1.55": struct(
-        hash = "f5557e3b7166d05bddb5977e363ec48cd06e9d32",
-        sha_linux = "2a1cccc2f6db801219eb966d00af78a026af7822055064092387e7eba18e75ad",
-        sha_mac = "f1f8f4ebd086d0cd8bd54c41c6a0e86bbb26d7b8020484fef3dba67cd9e6906c",
-        sha_mac_arm64 = "7533b7a1beaa692a4f1e57b91c456b13e6bcc367dc9a414cb066350e8a2058c7",
-        sha_win = "204984cbb755f9aa09c21b49129d908f59617a60d5aebd8742097a9a2c196abb",
-    ),
-    "3.1.54": struct(
-        hash = "aa1588cd28c250a60457b5ed342557c762f416e3",
-        sha_linux = "5c8db804abe1ac7ddaa99a6997683cf9fa9004de655b32b5b612d59a94bd59d0",
-        sha_mac = "e6d2b8c6983767c7ced83d40b87081a221f05bab08d0fa4f0c6de652547c8a9f",
-        sha_mac_arm64 = "83764751ee5c7b42529e1df168695d4a51a23c9c165f3f90693baa9bd9256efa",
-        sha_win = "c0a1c9f3e1dfc9bb2e600501aea999f53b34a16f82da387317fdcae7e9c2a79b",
-    ),
-    "3.1.53": struct(
-        hash = "e5523d57a0e0dcf80f3b101bbc23613fcc3101aa",
-        sha_linux = "1025c0c738fbaedf3f8fcffee23bef71c8d04a95b30ea8a69a47231fb35d1c8b",
-        sha_mac = "318dc0cc51a237040bc1cb0a9e7d6c214196c8a100b50d0e298cf3ea7c365dbe",
-        sha_mac_arm64 = "e346ef588f7cfe1e41623de2257a11ecf8381fbd3bde63a8773b3a663411ea12",
-        sha_win = "af7f7175ab0b3c1e9121c713764e8ac1d970b6dbee8a84602b4a69cc5ec5940d",
-    ),
-    "3.1.52": struct(
-        hash = "ce2097fb81953331e65543c20b437475f218127c",
-        sha_linux = "1c0cd572067c6348cea5e347b9ef7c5460493ca3f0d84bb991689731d0e140ef",
-        sha_mac = "5d9c801f9cfe81337d65969e174e0b3ef4cf2b47eb548ff4695abe3a2e69ba70",
-        sha_mac_arm64 = "7ce8fef7542437c85412143cb59b13b8804bb06243a106d2d342c7d9132edc8e",
-        sha_win = "82ed01d965f5c2765191c67da5baecd2d3ce3f82a8cf30fc47fcd56d47826cf6",
-    ),
-    "3.1.51": struct(
-        hash = "4f416d92fbff66ce79901cfc8263768f1b25dd3e",
-        sha_linux = "09af08eb562cccf85770e4b8e368acb5accb1759fe3bc436b8fad80c27f90c79",
-        sha_mac = "b12201caf9ff2b981349edebd2d2c022ff000c74241ef96305b831abbd4f9450",
-        sha_mac_arm64 = "65fbee020cf965f9216607bad56215795529cbe8cef318fadcb33141dd6b5e82",
-        sha_win = "65c2d005a6be80723fa795ea724d4db9960601cf7d59d880f2882ecd45c8ad2b",
-    ),
-    "3.1.50": struct(
-        hash = "2ce4170cef5ce46f337f9fd907b614a8db772c7d",
-        sha_linux = "8822050b999286694cd4ffc7d959a8ea3137e3a910121d78b5377439ede9b598",
-        sha_mac = "39ce2f689be348b558df9c2c988b03472d43f8ac0827624397f7c0bb56a1e893",
-        sha_mac_arm64 = "5a9fa8de121db400bb46e716d861283b938ad87257d7c48f99dd5557100bd3ea",
-        sha_win = "29096f5596d93dbf620a9547fd1ecec8f54f3f52d49b13f09959d852310220db",
-    ),
-    "3.1.49": struct(
-        hash = "bd0a2e230466dadb36efc71aa7271f17c6c35420",
-        sha_linux = "18f452f8bdcd13e0d3a65c569180d1b83579775eadb8069cb32bca1f2e751751",
-        sha_mac = "c5275eab15e42abb3a42bbe1cfe38ee1b852febc78f65f5605b8972a7bee672f",
-        sha_mac_arm64 = "10a722e2c7dcc97236f70f2d68b23a7975800ebf27ec4fdf76deddf483b1c6d6",
-        sha_win = "4361fc18faaf70a2dc342c219b13c39a8196e9a48e6897d08c7b0dca6ba6525d",
-    ),
-    "3.1.48": struct(
-        hash = "694434b6d47c5f6eff2c8fbd9eeb016c977ae9dc",
-        sha_linux = "689fffcb60f93a60a7bb52cc205ead43ab31f252753cfef39ae2074f6a442634",
-        sha_mac = "8ac2a3f32b4cba0d84ca5a1fe1db883dbfc2731432833ab5a7e6967c5f4ab7dc",
-        sha_mac_arm64 = "10dd40f94fe5c5f8c4efc838d1623cafe98c629d4c7872ad8c15cd7b0836f281",
-        sha_win = "9276435ea7c402c18572a4301d6a26426eac73414b0ed5cb3e721044a50f651d",
-    ),
-    "3.1.47": struct(
-        hash = "39ade279e75e6d17dd6b7eb9fba2006e61fe966b",
-        sha_linux = "bdc50abe5c7d4b4f14acea4ec36b270e86770cea2da4b0c393b80a692dc7eb7a",
-        sha_mac = "6a3a116707037d75a967a7d971894d8ace74a2a230aa50ba55e88e7cd7b94953",
-        sha_mac_arm64 = "b13d228e6a1c89c13a1500fff07dcf093fb01fa621d458496d4a6d7f05cfd600",
-        sha_win = "66a6c4f0cda4ace14a86d3e59d20685d35211854d21670632b0566ac73638245",
-    ),
-    "3.1.46": struct(
-        hash = "21644188d5c473e92f1d7df2f9f60c758a78a486",
-        sha_linux = "75cbf14629b06e417b597d3f897ad7d881c53762380aca2f0dd85f1b15891511",
-        sha_mac = "06f45608381203d501141be632cab960aa105626c3a0f7a48657b79728103880",
-        sha_mac_arm64 = "c2a85b509a91663b390f77d51fba775421d42456211466fd3757f9dede7af9e4",
-        sha_win = "1ed3a3f36dee5d373ebea213fc723b3eeb7d6ba4c43da6a951ea0d76f265f234",
-    ),
-    "3.1.45": struct(
-        hash = "2b7c5fb8ffeac3315deb1f82ab7bf8da544f84a1",
-        sha_linux = "1c0576765f8b34603eead6f2bd4bc77bf68ea2f0a39ed4c144514103e85bc7d9",
-        sha_mac = "87f63ebb2f9807435016b238bbf46ccb94c919ec0786b46463cd788634391b0c",
-        sha_mac_arm64 = "29e698772c0e00c21ce120dd1db1586f5c65507168babff148c2e628add6e72a",
-        sha_win = "891d49f8828f715ef621d55fe202de4929bbdc89b69101fd33963571458a7f47",
-    ),
-    "3.1.44": struct(
-        hash = "b90507fcf011da61bacfca613569d882f7749552",
-        sha_linux = "5ffa2bab560a9cda6db6ee041a635d10e1ef26c8fc63675d682917b8d3d53263",
-        sha_mac = "291b2653f7576f8354f0267047e47a5ddef11223c89d5be399d04618f13b3832",
-        sha_mac_arm64 = "ad1625821b49ccbbe733596223fdf99fd786470d679f2c9dfabd4a1a7b929282",
-        sha_win = "8b61f60ef169b1c20207361067c40192c83b96cdbdb2f4cff21dfb20b9ee528d",
-    ),
-    "3.1.43": struct(
-        hash = "bf3c159888633d232c0507f4c76cc156a43c32dc",
-        sha_linux = "147a67a3454783b8c351780ec0111329d1e6fbb1d2fcdfe1c035e1c0997e0701",
-        sha_mac = "d84896c6d1ba0fbd9a5e5c5830b3ac4a02da5e683e9d8c7172f4c3ffdfaa0392",
-        sha_mac_arm64 = "d684f0bfc655f61e76cec29fdaad1668f3d21a229fdd908267f400691468328d",
-        sha_win = "a335f5f5b070cf354f1ca8e0afb23c06ae5f9ffb2c501124da7fcaea09a7db6d",
-    ),
-    "3.1.42": struct(
-        hash = "9d73bf4bd5b5c9ce6e51be0ed5ce6599fcb28e9e",
-        sha_linux = "aaa076e64dd511b0d874c348f8dab80a2f9ade0887ba74845fd02c40bbf9e68f",
-        sha_mac = "4715002394c5d444243c77ca231883eb999cf3313c4869cf0ae288d911f80f89",
-        sha_mac_arm64 = "84dede714edd81362ed2a2f79b91b1bd9cd544f219f937582e616d73bf0ea7f9",
-        sha_win = "4c704f4a4927aa537c2815a72915b7591c163ae8f0dbaedc167e810dd2a4a83d",
-    ),
-    "3.1.41": struct(
-        hash = "eb71265ef0ab905620015adbfedacf88c5dbf021",
-        sha_linux = "493ec8bd3f3ea3d6d616de01d6dac9c2af696978c6c44d453757ab2f8a666656",
-        sha_mac = "bb088e7b8f83b6bae02a0992eae61351e4e97bd033f8c8937cdaea0cb961ac9e",
-        sha_mac_arm64 = "aaba2de03a6dcc0db90e61e5e405a52aa47124e5ef21953d052ca015ce5ee773",
-        sha_win = "c7afbf2dfb6040990bd40bd72c726ada36e3e6f1985c4b62db7296465dd0778f",
-    ),
-    "3.1.40": struct(
-        hash = "c3122846bb040798aab975f61008c37eb19476de",
-        sha_linux = "5501e750c92f5a54b27ee101f6816e7416f154cb4181b73fd0be3faae947016c",
-        sha_mac = "052d6236ce49eaf3aa02b3c4d367b5ed4fb78209c1f1e64d48beb79e9c0b7131",
-        sha_mac_arm64 = "c8af68f904367938bac255f5e64ed271021b289bb135dc77ab3b58b87e1ea5b2",
-        sha_win = "3ec21ca18b56f7d3953da2e0d468154fcaaf30b5ac663d9ad00c41540923a099",
-    ),
-    "3.1.39": struct(
-        hash = "1b56b171b627af0841cf8d4d8c0160c6cb6d855f",
-        sha_linux = "7ec6e15a2da2701243f89af7744403ee011211e59e4f0a6fd8ced544e72e917d",
-        sha_mac = "dad7d270207aaffb8b8ef584cf0579bbad144879ea6f00ec9a8080adf22130dc",
-        sha_mac_arm64 = "c5e474ca661348d0339c785e25ad81845d49dab19d5e3e84eef2393e623e0bac",
-        sha_win = "a04f898b9d54dd2dc95fb697a92a1b65d07102a4cc36a02dea44c448fad83472",
-    ),
-    "3.1.38": struct(
-        hash = "03ecb526947f6a3702a0d083083799fe410d3893",
-        sha_linux = "e2812859fa32b6019f688dd66f2fa48efbfb5594da9a43b876fd4fe4ca474c20",
-        sha_mac = "a88c4b9eeb5dedb0d9af3b6b84bd45c486de567fbeba1675edb2d7d196e0013b",
-        sha_mac_arm64 = "0e5d1519ccc1163c13ee93d85f70ef6a520464f59ca3795c47cc7c44ab0f5f49",
-        sha_win = "bcdea031961a4f3c23008d53e083770d19751dd2a2aa71cacdea8462d09548be",
-    ),
-    "3.1.37": struct(
-        hash = "7c905cfc1ca6699f6ccb288ae174902cfbdcf0a2",
-        sha_linux = "9ff44ef69d3f389adcacbb9b95331da72cffdf6e9431c8beb6ebf7aedb77499c",
-        sha_mac = "accfe90322b6449933c3d8e1346024e2e2e3bef7b101942294f995b2c8e1b60f",
-        sha_mac_arm64 = "a0461e234c08bd7ddd7a86b49b52ccc853ebe4ce0fb5b4314e9de0193c32514a",
-        sha_win = "e026ea2570e747d0640829c62abddcdc14a4acffe31180110971750b80042d7a",
-    ),
-    "3.1.36": struct(
-        hash = "adedc0750c4a89b65bee866edab24298cb8d6677",
-        sha_linux = "55d3cc557a83716f7a7fe121a07dbd59ed4b5d425051e22c902570e3e0ea6c4c",
-        sha_mac = "6643fcef0f928cd730b894f0c2c3343eeef870576e43e56428a7a8247c7bc921",
-        sha_mac_arm64 = "2e8d9103cd0ba7a2b143927196a630b091b981006c908d7d36995a210a04d73b",
-        sha_win = "69a197f6fc153d9f98ced539564683cb13ff0ef144d3d4fbddf643e33b5f860c",
-    ),
-    "3.1.35": struct(
-        hash = "671550b5bdceee7bdb21493714f9a815aa5149a9",
-        sha_linux = "9d4b5dcb719d39e59b646ecf7c409db20c5cb6b9575f5362ffb49a9e66290819",
-        sha_mac = "01ea06c1f4a6c980bfdc812f9599a8ef424a975c89d5c288c9e6f2fa5e5ef5ad",
-        sha_mac_arm64 = "f6480ee21c80fe062e0f9d8555f8bdef621601634b9bd1e5ad07b90777ff5e4b",
-        sha_win = "cd26088365433ce1263a11898406c2f9284e55c2c7f23b26170c2a172c52f0b1",
-    ),
-    "3.1.34": struct(
-        hash = "2fdd6b9e5b67d5b62f84d0501a876513ff118ef1",
-        sha_linux = "dd3713f077072dcdb811f934d6685187daa47c424039e31cba83633c8d1681b1",
-        sha_mac = "3824609ee9b7c9919e29b19775d495a16778adb981867901f4bc503fe2f65d7d",
-        sha_mac_arm64 = "72728637171df46e7cd22f90537dd6faf1d4809ed1befc504ff96768c82f0e0f",
-        sha_win = "7538d1a1e0d586bd0723f595557551b05d724a5803132949a6fafb8b056af995",
-    ),
-    "3.1.33": struct(
-        hash = "49b960bd03b3a9da478a08541ce6eafe792a58a8",
-        sha_linux = "eab02b3f4b7c076974452ba602f908a36adf597afa15b16095b441f191ede1bb",
-        sha_linux_arm64 = "5e15af6affcf37c9ce6c304b4aeccb87a2758e1ef029dbc996f9d77d7444378e",
-        sha_mac = "b8dad3cddb19c1daf9dae99020bd17b903ae9649cfc58e433ea4951e758804de",
-        sha_mac_arm64 = "fbf03d06c7503f091191e440b8ea577d65b3261167cdb47359d053f12888974b",
-        sha_win = "031f951668eaeea39bd9363abb3f514efc3401506374984fa9b1d7ba3130a62f",
-    ),
-    "3.1.32": struct(
-        hash = "29ad1037cd6b99e5d8a1bd75bc188c1e9a6fda8d",
-        sha_linux = "25fa252e9fc674d1bcef35b3a10dd85024aa93c843b8067f8d917e5151968ffc",
-        sha_mac = "7881714e7738eb183b5a421bb2b907e96359e791ad0a622be6e7f5690a16b9d6",
-        sha_mac_arm64 = "04eede7352aca4b6fc1c111a8b31d00e8aa40547c3cd062ff9be4ffe1ed98d95",
-        sha_win = "22c3429eb1e6051bda46e9c02c14eca1ae3749ba8c411fbd5a3b51e3b9623161",
-    ),
-    "3.1.31": struct(
-        hash = "1eec24930cb2f56f6d9cd10ffcb031e27ea4157a",
-        sha_linux = "5952523c0c58cfc7c8839c1d3fe42ff34af5d8721231306ee432063dfacf96ca",
-        sha_mac = "13482cf3cb29f423f2037b9dc2b9e4ff72d0a49fcd471bbaa9b76d9f86f31d82",
-        sha_mac_arm64 = "654a35af16be5eeb2082e68fb36190fe76de28fa2da75ac0d2197482a203f39a",
-        sha_win = "493c29f5a505ccd9687036ee4c580d190b1c32b286be0e751a78e68997cec8b2",
-    ),
-    "3.1.30": struct(
-        hash = "dc1fdcfd3f5b9d29cb1ebdf15e6e845bef9b0cc1",
-        sha_linux = "151d7afdfb728e1e55ed1d100e4d3fbd20925fd65f3c3b9e093061a2c89dcac7",
-        sha_mac = "f0cdbc676c58bce7a65572418fb1521665ed522d7d05ae90f0764b77801982bb",
-        sha_mac_arm64 = "fca4eaf8ff528bb9308e5e8d0cf2709713b99fc19d55c6578a6c8f3e66182f55",
-        sha_win = "3001101622d98b2af3e5209154f60bbe341d32f6178307c6c723e84b5fe08bdc",
-    ),
-    "3.1.29": struct(
-        hash = "d949f1b99a477d4b0b54d95413df3688afa69d0a",
-        sha_linux = "d3f274446924c27082603170fab60ba78a2fb51360e5578fab4d9b5adab0fa9a",
-        sha_mac = "ed224c296efd22437f298f0fe0852613b0b1d48810b1b6d87b6b7e6beb589fe2",
-        sha_mac_arm64 = "af9bb86a7996bbbb36820e93dbc7f537ac23070e8730439b1e49792c4fc008e9",
-        sha_win = "6203f80273565a2ee6734bd33ad7bc6940ef709cbd593e70d6489e96c02ced25",
-    ),
-    "3.1.28": struct(
-        hash = "30b9e46ddcea66e91530559379089002d8b692cf",
-        sha_linux = "c23426d8b6d94cea702542c39e3bcef9439425dd4bd03bcc172e291dbbe5ed0d",
-        sha_mac = "4cfb918fe3233a2b31e5734e85b2a365e634f4e8a83c4390e8595cb98ae6bd8c",
-        sha_mac_arm64 = "a47f1f09bc7bbd4952cf54445d4fbfae53623ecbfecee0506a637665c7b4ea4c",
-        sha_win = "4388d230871d5b1e15c2fd0db21a792ab2836f23d860475fe183c03c5db75c8c",
-    ),
-    "3.1.27": struct(
-        hash = "48ce0b44015d0182fc8c27aa9fbc0a4474b55982",
-        sha_linux = "4dc872260c8f42a8e20c8612b2255adbd466fec54cfbe37b46eca4eb34a2b03f",
-        sha_mac = "40c3326147b162b8357efdc72476faaa6686338cff3e176680e361c2511453e8",
-        sha_mac_arm64 = "7b87610de966b84353c8c1ded8e12c034b5b913c093210ebd3b26320e2ac2990",
-        sha_win = "39bbfcb09ba7feb214518a67b1ff6d38bae065b416b4483834e4fdaef2316f8c",
-    ),
-    "3.1.26": struct(
-        hash = "4f68bb2a505c727bcf58195cf4da20592a6e92c8",
-        sha_linux = "82d24d5619c814ae99ef7243de428600c02e96dfc49c36e44753b1fce626766e",
-        sha_mac = "7b645979d8901f3153507561bbec10ecfeb197dca5914228715a74b760cf7eec",
-        sha_mac_arm64 = "d9c647fd70588bae71303a6c923df8a44ffe63e168b375d35bf6ceda21258fa1",
-        sha_win = "1ad49d69634ce2d1fe04614c18060a903c102e1dbc9dfdef3a03e52c189b4c92",
-    ),
-    "3.1.25": struct(
-        hash = "ff6babb041d0f31575cc16d15ef82c6222ca99b8",
-        sha_linux = "c5ae6b4525845ea36bde89cbf4e1d03de87a2658862d76c6a53bbf8de7c67ff5",
-        sha_mac = "d2581aaa7207f0d9dd9949247f0706bda8561e805d67aec166ed4f3b39c3a3fa",
-        sha_mac_arm64 = "dbcb76036a09248c2a839872c27b87b6d4ccc81e57add4e2a6f5e560a2c530fc",
-        sha_win = "3a86d98d934456a74ed06388c1487d95a0d5a3f31777636453f22e61d57d7fb1",
-    ),
-    "3.1.24": struct(
-        hash = "54217a0950bb1dafe8808cc6207d378e323f9d74",
-        sha_linux = "20e8e5bd745e3ad69c03bb877091d2fbb0c7db1eab309de8f185e9821aea40f4",
-        sha_mac = "cfb897a980dd51fceb02ff143ad0fd8e5d299db640c5646d1547d522194545f2",
-        sha_mac_arm64 = "e87b0727343051312f82a6653cad4682a518dd9cb6575844c0cd6505d520fab6",
-        sha_win = "a0ea07f9014a912f13176fdbbc1ee7ab08104d45e7ca7e1c237505579b63d530",
-    ),
-    "3.1.23": struct(
-        hash = "bfd5e63a44ba4c8568cd8ac87c27b35e40732bf4",
-        sha_linux = "3b8d9e163d6afc8569deca0ba1d4042f80da7a31e23cee006c3faa9cbf2fbc31",
-        sha_mac = "fd1c79475e47fd2f06ee9ba189e68309e443c2d3c56fd28163d1cd6f77047075",
-        sha_mac_arm64 = "66e57ee0962ec31056674b5681f91bd62f85b0bf1238a8d5b160660c0bf47292",
-        sha_win = "7c30b281abcc0ffb9e7575197f1ac0598a94c6cec36547b81554a97b792a9e75",
-    ),
-    "3.1.22": struct(
-        hash = "990cee04a21caafc75955d736fb45791a7f2aeee",
-        sha_linux = "a310ed9f16c97a91c72564ca5f85c412cb99429d8001825663fda1b28c00346e",
-        sha_mac = "b19afaf414178781c4c91ee711ec4d9063b9736719e45ca2e8b45c2258df16be",
-        sha_mac_arm64 = "7c8212abf77f0307b6ff848bf9c6212f870506df6d074349f76401f30f9fcefe",
-        sha_win = "2c0cfe267d47f390d7e35a83545b1d5043e4a7fb77b838ee19b0fce65035f55d",
-    ),
-    "3.1.21": struct(
-        hash = "a16a8bca2466eb144f7c93fa899c0272c8815dc3",
-        sha_linux = "7045ddb3b37a2cc63cb1cf976019a6a3b7f8dbdc71254db0eee5b0452f94e9e7",
-        sha_linux_arm64 = "2852c8b108ec748d52d31dab3f4854bc6022df008019daff1c7e31ac00363b3f",
-        sha_mac = "2a8d3d3ad721fec81ca1a4a581e4183b6e732e9905beb874531851846a05a367",
-        sha_mac_arm64 = "cf788a7bdc38bb40d01f94b2d46acafb0e2f02d8ee3b3d69541c114e467ee37f",
-        sha_win = "81518bba13f41717ffe6990b6d4a5af635d0c9d0f71a8d3bc0980cd0bc8f5f66",
-    ),
-    "3.1.20": struct(
-        hash = "d92c8639f406582d70a5dde27855f74ecf602f45",
-        sha_linux = "3b606d133489aac8cdfff4f99ff14a35563b1fafe658aa23f83694f77ed9467a",
-        sha_mac = "cc9ea1696bdb3f28778bac1cf4587a34e90830e1c64976cd205fd73e77566cd8",
-        sha_mac_arm64 = "b976410bf4fa1af9896be1c736634bfb56b2ef0f3386cd3cf39616ce47445cc0",
-        sha_win = "1e6806ee240ab838ae7eee618c57efc793195c62e4d167136507efcfa66d6c6d",
-    ),
-    "3.1.19": struct(
-        hash = "4c3772879a04140298c3abde90962d5567b5e2fc",
-        sha_linux = "18d4a5bb93371fe1d4586db9804f673fff0c510d98713ec25b6bda1a8457230d",
-        sha_mac = "6adb721340cb93b7a3efafbfd1d283842a39bb6f1390630b0806c8af26b66840",
-        sha_mac_arm64 = "429c9e3a79d32380f3dfee52b1001963edaa2e3035fce9f52ca87b08e1a2f26e",
-        sha_win = "0368eefb28f42799ce897020d0d10a4a27e1b69b650575d94deb268e402a3632",
-    ),
-    "3.1.18": struct(
-        hash = "49d45744895c7d7e28acd94a385d7ee361653b4a",
-        sha_linux = "6ef373c4ff3cdf33d7beecea47d4eaee7795693f8ca9469f33785cb9c54f40bb",
-        sha_mac = "ad0e645abdb6d3f0b6c6ad0ee70761010a712949c9b0b193aefc78ecbc3f1710",
-        sha_mac_arm64 = "68d0a1ec3e83e0415e24133c59e64206b83686712434c8c2e6792547cf654b1c",
-        sha_win = "96829a228f7c08fabd37833f7361614785aa39aa865beef06890ee8ede58dc66",
-    ),
-    "3.1.17": struct(
-        hash = "d27fef2070c86a218965da8b8b5df8b4425aa3bb",
-        sha_linux = "562b3ba75ce77a917317bc697febb38194e85cfe07f4fec308c3b29c621f8f13",
-        sha_mac = "8a2bee8ea434049e40663a6d78d1c3584e5c32196fd85d6a10f3192d2e3aba4e",
-        sha_mac_arm64 = "5f60d3f351d06d862e853a294642d24243d6cb197e34c2f2602d80555c2eb014",
-        sha_win = "90b2ade825e07bb05831090dd64b5f5b01a4169a84a3ddec85fcd60be3b246a5",
-    ),
-    "3.1.16": struct(
-        hash = "fb1baf00423818052359cf9126e94bc71c39feb5",
-        sha_linux = "bdce7e58833069a98d7e0b4fd9d6fea7394770ec10339cc95ed9fe52ba39f3a7",
-        sha_mac = "d05f4e997324d7f7d8561436677687d296893d6414f53930184fab272e4c6158",
-        sha_mac_arm64 = "36ab8da30698558a567c5c1c0e130b59f08cf4b29c9c5242f4ea60b449ecff17",
-        sha_win = "e1324c22c914ab7f62fe6d38a550de25b2232a723c80393fa8884a260c07766d",
-    ),
-    "3.1.15": struct(
-        hash = "568a46a9fb7e1f1686a6f7216b3dc976f28d2a79",
-        sha_linux = "737db513047d12e95a12f4fbe05314f3af79ac955d1ea43fc83626337e307edc",
-        sha_mac = "f8993371a1ff713203023f0283054a31df5342ca287debc4e16d04d97e069aee",
-        sha_mac_arm64 = "c61a8efa8543a6c44e394a0685e7d4facb4c7dbb210c4c32d311b0002c4dec99",
-        sha_win = "235592467a0be6a537e03fb587aaee230aa2c889f2785cb9754eb44bfbf747ed",
-    ),
-    "3.1.14": struct(
-        hash = "ade9d780ff17c88d81aa13860361743e3c1e1396",
-        sha_linux = "e2c43068fb1985592db42183a13f85bbd9518b3747746e0003d70c7d770a0b2f",
-        sha_mac = "567e9548f3fa7c1aa717821af4aaa7849a0f7217cb55eb7f66a06c898808fd96",
-        sha_mac_arm64 = "df8319aba8bc0d0c40ebec3c8f45e507c2a51a57df24826d4cab6f6cd75017ac",
-        sha_win = "6bfec6bf6a01e483a57e91f7223340a425f6ff711cbd32a08ed78002810d7882",
-    ),
-    "3.1.13": struct(
-        hash = "bc44364b561cfde15c243a54e3b96ea12d7ea284",
-        sha_linux = "290f04300465cbb7c8e920f9986128b3f287b14b93627b0c6d069d534860c1b4",
-        sha_mac = "72b209a3e5800be155cf5b29bdaceb18aefceeba68f35ac719a483bd27d85705",
-        sha_mac_arm64 = "2bf90ed73454f58b810e09a776a34ddf7395f9ee45580f3a8fea53f74ba7ede2",
-        sha_win = "07fd730289c26f72ae4037fd25f608f6b9d36f1950677229b6c7d392957db3d2",
-    ),
-    "3.1.12": struct(
-        hash = "a8c3b314d61e2bb98581d522f858132b2fc21488",
-        sha_linux = "ac8ae46b2fe2fbef07077cdeefc8288d2a73e3189958f32b36f2d17d868275d0",
-        sha_mac = "c33afddd7c8f7a5293cb427ef26eb65f51fa3121d0577568824174227aa37ef3",
-        sha_mac_arm64 = "253feff779385d2499764cd988175446e21db8cbb9952746e96969c2a763924c",
-        sha_win = "04015fb6a1b4ad4d7c16587a7eeaabf19c5b35097f3e28efa029c0c67547067c",
-    ),
-    "3.1.11": struct(
-        hash = "8c3a799341c01148692c52fda73bbba5e89c5727",
-        sha_linux = "ba52cfd784362530866c9d554ddc62cfa3f0690f44007c0b3b36e189bb579d5e",
-        sha_mac = "c46548425e0bf4acd3c4275aff6a463c90ff1faf283ae7f5237d8c17bf84d779",
-        sha_mac_arm64 = "c5ae40c468955ed02b86c54061278d2b4075b1230612bae5910f836aa9c200b3",
-        sha_win = "74481a1998236fd9d296f367584934d5ab8bbf174446ceb647f714031671de98",
-    ),
-    "3.1.10": struct(
-        hash = "8bd05c7221b4ce34d4bedec40b672d94e681a765",
-        sha_linux = "f5a937383b5c9fa15071a31d679a2ddd5c03bc8952cbbd5bfbf7c0a86c2dae5a",
-        sha_mac = "e73491f2787cbda75e718c3947916b57259164eddd9b2db16b9c876d3deb16a9",
-        sha_mac_arm64 = "d7485ce3b13f183484af5163d7bec79ece9a1fdc5845f8152e36270e6f90cfd9",
-        sha_win = "dd75061405bc902ecd983bd3e4cfd6931a866e1c9de602c4458280cbeb271720",
-    ),
-    "3.1.9": struct(
-        hash = "edabe25af34554d19c046078f853999b074259ca",
-        sha_linux = "89fa75c981e47ad19942b8236d2604b2666dfd516a08626aaa1bfb0d657c87bf",
-        sha_mac = "6c7f59dd84d1484f1dfa041d71cc79fc97db8d15834b6220e5868bd9bd373a24",
-        sha_mac_arm64 = "13a258de0daaa3c09a53e21a67414cbf5fa5706f955767fe791a059ed5eb90bf",
-        sha_win = "0857b03919b948558f9a57d15cf2b220852cc070359c386da0e6e4831c7ac5e0",
-    ),
-    "3.1.8": struct(
-        hash = "8c9e0a76ebed2c5e88a718d43e8b62452def3771",
-        sha_linux = "6b170777eb523e62972ad458e533b1853cd0c4e02f6f2cf4cd68e109499ccd9b",
-        sha_mac = "ede01fe160c3b8443f53f94dbad530e0e7e8197a1b874c7bb9038b187279080c",
-        sha_mac_arm64 = "9ecc8678f948875e7f64defeababc0320f98e103547f395c390c01d76e5a1d64",
-        sha_win = "039d27d4ae43b50d0858dbc4dcf412f572351e98e1056d7fdcdf2aab1740557e",
-    ),
-    "3.1.7": struct(
-        hash = "d0e637fe48197587d981f79e8114757731d0c2a9",
-        sha_linux = "d941738a3c755d6d530bab66d38325515b9dbaa588d2db2b8a63b2a8a1961e52",
-        sha_mac = "597aacdb25d422094427014d3a97e8b91ec80df2255a66e0986414bf71aaf37d",
-        sha_mac_arm64 = "a0b2db0269c55e854d1007a59f95b8e5f14d32309e76f985ea9afe481b2bd6e6",
-        sha_win = "cb44339db27b694862efb37539d41eaff7253c93c0882cf7d9aaf4afeaa82912",
-    ),
-    "3.1.6": struct(
-        hash = "8791c3e936141cbc2dd72d76290ea9b2726d39f3",
-        sha_linux = "f43dfe707dff18fa7a08dbfe2fa3f8d46afb65ccba9bbe554465d83d5d80e388",
-        sha_mac = "13a01080ff042560b9a9b1b2c9fc5f8c154710bc41db8bbd907a9e53c286afd0",
-        sha_mac_arm64 = "7ae97e85593b037c345b539e7f8b8952b82c001be982219060c83f0834bb6827",
-        sha_win = "e7005c0a5439e532cb64f34ba90405792288a1ed8845cdafcedd3de5af6fd3f2",
-    ),
-    "3.1.5": struct(
-        hash = "2dee36c7163f7394ab9341854ef5281501dd97d0",
-        sha_linux = "6641703b7da1805aa5a8488d231ae7fedfe27f1a5a33e7d05a2ee5902ab84180",
-        sha_mac = "9dba57f09702a7eed53f3f71cdd8a4ed1202ca5a5f4449249c2d98a285b26f75",
-        sha_mac_arm64 = "0093b4d47c9eb9c8bab5b3048c68855255b5e5a8bfd78f4183424009489327e6",
-        sha_win = "849edc42b494f670df4763dbc8ebbb5464ac28787482668c3f6e27588a77cb3a",
-    ),
-    "3.1.4": struct(
-        hash = "39e60dda6945cfcd6487725bdb1361ae7975173f",
-        sha_linux = "4a57c0d60eeb4e021de61c8497f0b595a0a9db0235f1640a528de752409f4fcf",
-        sha_mac = "f28a9a4f42f67de1d5c4d8a288f29e5082bbf4fcb172e0c6e248695163372478",
-        sha_mac_arm64 = "be35043edad7a7022f7b174e8efc90e2db54ba4fd71288760bea4db082835f56",
-        sha_win = "d97ff247bdfc7e839610cbcd87d30a65018f964d183d5b852b6021d43c5d199a",
-    ),
-    "3.1.3": struct(
-        hash = "2ddc66235392b37e5b33477fd86cbe01a14b8aa2",
-        sha_linux = "8b840819eb88f9178c11bad25859ce448a0559e485823a863a6add21380636ca",
-        sha_mac = "0cb3f9bfbcc744233eae9d20036155738409405eacf8a3d4f9beefc5919d809a",
-        sha_mac_arm64 = "ee2772f380419df17d154e00388a16bcddc78c7af035c16a2ee534d6ecf099aa",
-        sha_win = "c0549e1dbaa581ae66934c38beebd4250cd450cc2778e9a602cd9431bc81bc37",
-    ),
-    "3.1.2": struct(
-        hash = "6626e25d6d866cf283147ca68d54ac9326fe399f",
-        sha_linux = "4fb53364a2ba1de8978445aa26b2204bfd215b41da5d7df04f231040b197010a",
-        sha_mac = "a8e347accb1ff402d96a128912ac8cda1731611c9f89095fee0ad39a6a18bbc3",
-        sha_mac_arm64 = "4374f5c852d0403b0a3b0e9dc8a3856a340e9d82ecf0f20aa8b36c6179d31fc8",
-        sha_win = "e96f6ab8252fefa42f461676311d4c4e2d96fdc2e876ece07d9d7a49ef31aef0",
-    ),
-    "3.1.1": struct(
-        hash = "5ee64de9809592480da01372880ea11debd6c740",
-        sha_linux = "ba94c5ecabacbedc89665a742c37c4c132c739aea46aa66fd744cb72b260c870",
-        sha_mac = "8b5f8cec55af0e6816a08d8d1e8b873f96d0e0504fdd6e8deb2fc024957d1aa7",
-        sha_win = "6cbe976aff6155cf1c48707f0520b5aa6a7770860e9b1964bfca3e5923ce7225",
-    ),
-    "3.1.0": struct(
-        hash = "562e3a0af169e6dea5e6dbecac2255d67c2c8b94",
-        sha_linux = "0714344e32e244e6d44d9ea75937633ab1338e417a232fb66d6dcd7d4b704e8c",
-        sha_mac = "f6c1cad729ed799e1df09eacf5aa80cce9861d69ec6d9581c17e4ba8d9b064ce",
-        sha_win = "756c41cbcab4ae6077cca30834d16151392b8c19ab186c13d42d7d05d6d727cc",
-    ),
-    "3.0.1": struct(
-        hash = "91b7a67a486d2430e73423a38d950d8a550826ed",
-        sha_linux = "25fd430268596229c4ac38e188d7c2b31f75c2ec8172b1351d763e37c830c6af",
-        sha_mac = "52ec2204115b727cc4de38b5eeae147eead12b299b98e5a88653d12958cae4d4",
-        sha_win = "0e072736b471c9a07cdf534ba4da46b3b6545b63c8a6cbb0ef7d544251e15092",
-    ),
-    "3.0.0": struct(
-        hash = "7fbe748230f2ce99abbf975d9ad997699efb3153",
-        sha_linux = "10646b64daea15354f14f89f7e79937f420b77f31bda7c4b174de2474835950f",
-        sha_mac = "ebb17bc91c6a72ca06d17337d27aa1a2be4c9af4c68644c221712123f663b8ab",
-        sha_win = "0d4f2ff5d88a8eef5ed769ee4ffc5d5574143911d2e0079325cdc5206c9e9bb1",
-    ),
-    "2.0.34": struct(
-        hash = "d8fc1b92dbc0ce8d740a7adb937c5137ba4755e0",
-        sha_linux = "a6304e3a52c172eb178c6f9817d74aa3ee411e97ef00bcae0884377799c49954",
-        sha_mac = "975ae11000100362baf19d161fec04d82e1f7c9fb7d43c43864ddd65a47f1780",
-        sha_win = "8167a44bb895a0fdc153836bed91bf387be57f2dc1b8f103bf70e68923b61d39",
-    ),
-    "2.0.33": struct(
-        hash = "cef8850d57278271766fb2163eebcb07354018e7",
-        sha_linux = "958a0f4b1533e877c1a5ed3c13cb8baabc80e791d45858c2c94ac62325ada953",
-        sha_mac = "8ecb248653d44c3748e23c089cb9f0e3d4eee7cda13fdec27ec0113b896e34c4",
-        sha_mac_arm64 = "1ec6f3d7afa5e10f3af996e26d9c3a66f02ae49e48e512a4b5d6b7165c61290f",
-        sha_win = "6b6b2831f8b338488f787b4a8c34700277bf3988358dbb54426f017155603ac9",
-    ),
-    "2.0.32": struct(
-        hash = "74646397e3c5010824ad60d1de86c6bcbe334dff",
-        sha_linux = "236b3954e71d3bb30d347c655b9f47f2a091aa2e61046e1912c8da90152f4ca1",
-        sha_mac = "6a03267574534948e3b041e5d3e31bd757751ef17912eb6e90b96a47da03afb6",
-        sha_win = "2f8fbf0db097d67d0c364946faceec27c569c5c2d7b22068eef8db55645aba36",
-    ),
-    "2.0.31": struct(
-        hash = "597724ca3f6cd6e84bea73f1f519a3953b5c273d",
-        sha_linux = "ef70c7733aa0df41cb4c812f5a89bf6b2ed13ca8aa252872396c0be271156d9e",
-        sha_mac = "77e57c3e98758488ef676f8f58a85faa0bd65a1d326a91771ad83d7cb0e373ca",
-        sha_win = "541605b740afccd08a39f5ae815978f699f350d621a1b2dfba0763970b56aee4",
-    ),
-    "2.0.30": struct(
-        hash = "c69458f1bbf3ef5b8da4e934de210659cc9bca04",
-        sha_linux = "ee1c8270096a728966ae38af548047d1f64c18318e06ba75952e657136f02537",
-        sha_mac = "574a5819308eba6c8be6a780e26dff415a0e7178d3f44162dd8dca87eb40d4a7",
-        sha_win = "242d244f4f5f5af08e6e6ac9c143aebf1b7bb2a23fd2992350731e59acfee07c",
-    ),
-    "2.0.29": struct(
-        hash = "c2369dc425725fff86ba90a9007a4603ddf7941b",
-        sha_linux = "7df4a8f3e25820becadfa7f1fe0d78e764102ec3ee50c474ca1634ed90d48890",
-        sha_mac = "d998521ba95882a27792f0113ea2c972fbb891c240649f4c994f0260c0e1a213",
-        sha_win = "c64aa3f2af6503f6711b2322986a45784e00d7c7fe13ec3f5c4f740472d065a0",
-    ),
-    "2.0.28": struct(
-        hash = "866055ea639d64dfedc625d28ec981e47ce37168",
-        sha_linux = "7dca7704eb14e367bb67e9abc9eaf59e75f59b74e32422e04556de10897a9a86",
-        sha_mac = "370f76493e3805e2538290b698a381f04b6d78a77771e48fc0099cf89dad985f",
-        sha_win = "e913c50ea5f196d36971f7cf5b1cf9a9ca27ce0818aba56be3a66e31e95c0e5b",
-    ),
-    "2.0.27": struct(
-        hash = "1ac46e3b84955231ab4a4f4cbe0c7ac28c86b8cc",
-        sha_linux = "3e124e278de168cf22e03b93b2f14a65a86777e428cdaab7e5e1c2289eb41605",
-        sha_mac = "388262b9e1042ef9a3a1945d5a23dcd634c8042a225e8fdf80bcc2c1cb7e05cc",
-        sha_win = "762276a332432e717afb988310d21ae10e36facc1e05bfd77042a364fb43cc3c",
-    ),
-    "2.0.26": struct(
-        hash = "823d37b15d1ab61bc9ac0665ceef6951d3703842",
-        sha_linux = "996e16d368a99dd4dd12126acbcb8bea9a607b5257cc7b747c4afc2f036fd8cf",
-        sha_mac = "8b2d7e84cc449531e88034beb31da89a0b61ccaeaa1584ffb6da7842c6348fdc",
-        sha_win = "095e772764d7f8c0f8228bda4b8500ae43aac2303567da5cdc9f8623f70a5743",
-    ),
-    "2.0.25": struct(
-        hash = "f6f001b08fbb67935379cf13d17fd9bfdbaff791",
-        sha_linux = "06d8e2f3d4f4b35a57de9c15e62a559c941cfba1dd7ec02353d815904d912c3b",
-        sha_mac = "6541bf3a648aae7df84de424ff392dd1513ab5450203c84f72a6a03e321a301b",
-        sha_win = "267fbfa809ec0eb911c1962b1b9768675cb82228e694a5f9ef570232ee71db76",
-    ),
-    "2.0.24": struct(
-        hash = "6ab7fc5622a67e6111d07c4ba61c8d3c8fc33ed2",
-        sha_linux = "e5daa0e87f3afd2197e7975297cb0cd4c245edccb964ca5f1f32ee7d985bf440",
-        sha_mac = "e4b7f2a7b71d6ac4610ee7b14743570e0dfba3668dc6b4f984cbe7a135888527",
-        sha_win = "db2aad422a3ca2295be6101b0151eeee55dcea29ba1f31b4594c02ba46591cbe",
-    ),
-    "2.0.23": struct(
-        hash = "77b065ace39e6ab21446e13f92897f956c80476a",
-        sha_linux = "7713a9a5572d839aea9eaa84a7c4779d11c6c8818ee64a0f443b62081fae6d47",
-        sha_mac = "b793087462d581e25c8c267fca9d30519619e3272480862a56cc316a32c7afab",
-        sha_win = "b8885cbb41a39e4734861462e05ee58c7ff7562016a842bcee2603f229940e8b",
-    ),
-    "2.0.22": struct(
-        hash = "6465a9acb820207acf7da44661a7de52d0a1ae3c",
-        sha_linux = "c079781124e763c53c9fc73781fcee40296ce3314276836bc694f07bd331a859",
-        sha_mac = "ab95574dfc685b0300e37bea36aba413045bbfa2ab06b93eceb881670489eec1",
-        sha_win = "ba142e7e380596cba763e3a414de6511bcb86de48e4b48cf393b1ea449a24aaa",
-    ),
-    "2.0.21": struct(
-        hash = "72f4ec97fbc7ec16c15ae68a75b0a257b2835160",
-        sha_linux = "741264f33f96ba4b785ed0b133861ebdfefbaefab76ddcfe7bde6522829d6f70",
-        sha_mac = "b07c0d65ee7e2799170c6f3b2aacebfe070c2e4975088bcd1b3a4140fecd8418",
-        sha_win = "dc3cbf47aa4be52a92526f1790a013734ecbd407f7f36286ed0283c96355999a",
-    ),
-    "2.0.20": struct(
-        hash = "e0c15cd14170f407a9eb27fcbad22931dc67feb7",
-        sha_linux = "a196504fd1095836ca3961208338ff9e292be7729ea529bc19800aa7c966d34a",
-        sha_mac = "6cdbf17ed61486b38ea79d3f31d74483e7388d1e7468518dccba3f24e0ddd4c4",
-        sha_win = "4d22a32c219dbe18c55b635d014b9eaf7da60536171b7af37d9a8099fd33794b",
-    ),
-    "2.0.19": struct(
-        hash = "9b9ff2dabfb4a7fbacbc004c0bead12a60f9d05c",
-        sha_linux = "bd7c2a38ac88d219a1ab5003ddbf8fdc66a6ba55bc69f99077346edf2753b4ea",
-        sha_mac = "6cc44029c9052855a55938eb6496b5659da4b1ce9cb34502b740af5993a94f93",
-        sha_win = "a1fa8b1c387b9307f9b87c43dc83c0ff1bc04b9f29fbe4f39aff2dd946ca4b70",
-    ),
-    "2.0.18": struct(
-        hash = "c2ac7520fad29a7937ed60ab6a95b08eb374c7ba",
-        sha_linux = "e9f777de592f606b10104b2efe5179a7a8f44e3a9dffa1e3aaf73e05eb8893d7",
-        sha_mac = "86b1dd62e424e3788bf132292a694a25ca9b0875d06f50d0f5d424593697452c",
-        sha_win = "49ce07bda6be070251db44a08fcc05cae21ffdbd7522423a0c79bde635e87e28",
-    ),
-    "2.0.17": struct(
-        hash = "f5c45e60392b82f603e3a8039c62db294fab02d2",
-        sha_linux = "b40a4874057e4cace600f8ee9787dcbe236e3dc5b2fff5c2ecb0e867e426f99c",
-        sha_mac = "081f61abf7d5ac0ec31aaffc5550013d4093ea4ea39520b7a32b7448d2a6ee70",
-        sha_win = "45d06e597e6a1185a76200bd0481495e7298800a4805045d9cdbcce6311c91b2",
-    ),
-    "2.0.16": struct(
-        hash = "80d9674f2fafa6b9346d735c42d5c52b8cc8aa8e",
-        sha_linux = "e527638b224d9a30dc7e5fa4b9bd2eb2ab76ad306739ba8cacf5a5e333933a2a",
-        sha_mac = "061020eb0e3ee0611dc5a0008ccc7778168a4f838d49ca41c0aad8c52c1a01c9",
-        sha_win = "99364ed0388f928e0594f790662bf3a30c2894b0eff81797e1b64f62128561cb",
-    ),
-    "2.0.15": struct(
-        hash = "89202930a98fe7f9ed59b574469a9471b0bda7dd",
-        sha_linux = "7ff49fc63adf29970f6e7af1df445d7f554bdbbb2606db1cb5d3567ce69df1db",
-        sha_mac = "e35cced1514ad0da40584f8dd6f76aabf847ce0fa82c6dc8dd9442fb74ed6d0d",
-        sha_win = "31d5f8107c87833cea57edc57613bba4b36b16152772f744c5ad204594b4e666",
-    ),
-    "2.0.14": struct(
-        hash = "fc5562126762ab26c4757147a3b4c24e85a7289e",
-        sha_linux = "e466cd47ddd4bf0acd645412fdf08eda6d232484e48e5a2643e08062a7a4cf56",
-        sha_mac = "1c554c08459b7025638ca4eddba0d35babe8c26b202a70a74e9442d577896211",
-        sha_win = "428bc6094671937af96f26d803871fc5cd83d4d2b1c1df45fa6873a9bc5cac51",
-    ),
-    "2.0.13": struct(
-        hash = "ce0e4a4d1cab395ee5082a60ebb4f3891a94b256",
-        sha_linux = "8986ed886e111c661099c5147126b8a379a4040aab6a1f572fe01f0f9b99a343",
-        sha_mac = "88c91332c8c76fed14ebf0edc9a08f586012f54f04ad61e5b1b6d02bf96bdeab",
-        sha_win = "9fb3b945b7bd56e34d17ec04de4cce475f26c49d161aee9d9c0b8b1434591f88",
-    ),
-}

+ 0 - 1
emsdk-cache/emsdk-main/bazel/test_external/.bazelrc

@@ -1 +0,0 @@
-build --incompatible_enable_cc_toolchain_resolution

+ 0 - 4
emsdk-cache/emsdk-main/bazel/test_external/.gitignore

@@ -1,4 +0,0 @@
-bazel-bin
-bazel-out
-bazel-test_external
-bazel-testlogs

+ 0 - 6
emsdk-cache/emsdk-main/bazel/test_external/MODULE.bazel

@@ -1,6 +0,0 @@
-bazel_dep(name = "rules_cc", version = "0.1.1")
-bazel_dep(name = "emsdk")
-local_path_override(
-    module_name = "emsdk",
-    path = "..",
-)

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 618
emsdk-cache/emsdk-main/bazel/test_external/MODULE.bazel.lock


+ 0 - 2
emsdk-cache/emsdk-main/bazel/test_external/hello-embind-externs.js

@@ -1,2 +0,0 @@
-// This file prevents customJSFunctionToTestClosure from being minified by the Closure compiler.
-Module.customJSFunctionToTestClosure = function() {}

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/hello-embind-interface.js

@@ -1,3 +0,0 @@
-Module.customJSFunctionToTestClosure = function(firstParam, secondParam) {
-	console.log("This function adds two numbers to get", firstParam + secondParam);
-}

+ 0 - 16
emsdk-cache/emsdk-main/bazel/test_external/hello-embind.cc

@@ -1,16 +0,0 @@
-#include <emscripten/bind.h>
-
-using namespace emscripten;
-
-class HelloClass {
-    public:
-    static std::string SayHello(const std::string &name) {
-        return "Yo! " + name;
-    };
-};
-
-EMSCRIPTEN_BINDINGS(Hello) {
-    emscripten::class_<HelloClass>("HelloClass")
-        .constructor<>()
-        .class_function("SayHello", &HelloClass::SayHello);
-}

+ 0 - 6
emsdk-cache/emsdk-main/bazel/test_external/hello-world.cc

@@ -1,6 +0,0 @@
-#include <iostream>
-
-int main(int argc, char** argv) {
-  std::cout << "hello world!" << std::endl;
-  return 0;
-}

+ 0 - 61
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/BUILD.bazel

@@ -1,61 +0,0 @@
-load("@emsdk//emscripten_toolchain:wasm_rules.bzl", "wasm_cc_binary")
-
-_TEST_TARGETS = [
-    "long_command_line_file01",
-    "long_command_line_file02",
-    "long_command_line_file03",
-    "long_command_line_file04",
-    "long_command_line_file05",
-    "long_command_line_file06",
-    "long_command_line_file07",
-    "long_command_line_file08",
-    "long_command_line_file09",
-    "long_command_line_file10",
-    "long_command_line_file11",
-    "long_command_line_file12",
-    "long_command_line_file13",
-    "long_command_line_file14",
-    "long_command_line_file15",
-    "long_command_line_file16",
-    "long_command_line_file17",
-    "long_command_line_file18",
-    "long_command_line_file19",
-    "long_command_line_file20",
-]
-
-_TEST_TARGET_SUFFIXES = [
-    "a",
-    "b",
-    "c",
-    "d",
-    "e",
-    "f",
-    "g",
-    "h",
-    "i",
-    "j",
-]
-
-[cc_library(
-    name = "{}_{}".format(target, suffix),
-    hdrs = ["include/{}.hh".format(target)],
-    # stripping include prefix to create more flags passed to emcc
-    strip_include_prefix = "include",
-    srcs = ["{}.cc".format(target)],
-) for target in _TEST_TARGETS for suffix in _TEST_TARGET_SUFFIXES]
-
-cc_binary(
-    name = "long_command_line",
-    linkshared = True,
-    srcs = ["long_command_line.cc"],
-    deps = [":{}_{}".format(target, suffix) for target in _TEST_TARGETS for suffix in _TEST_TARGET_SUFFIXES],
-)
-
-wasm_cc_binary(
-    name = "long_command_line_wasm",
-    cc_target = ":long_command_line",
-    outputs = [
-        "long_command_line.js",
-        "long_command_line.wasm",
-    ],
-)

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file01.hh

@@ -1,3 +0,0 @@
-#pragma once
-
-void f1();

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file02.hh

@@ -1,3 +0,0 @@
-#pragma once
-
-void f2();

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file03.hh

@@ -1,3 +0,0 @@
-#pragma once
-
-void f3();

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file04.hh

@@ -1,3 +0,0 @@
-#pragma once
-
-void f4();

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file05.hh

@@ -1,3 +0,0 @@
-#pragma once
-
-void f5();

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file06.hh

@@ -1,3 +0,0 @@
-#pragma once
-
-void f6();

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file07.hh

@@ -1,3 +0,0 @@
-#pragma once
-
-void f7();

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file08.hh

@@ -1,3 +0,0 @@
-#pragma once
-
-void f8();

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file09.hh

@@ -1,3 +0,0 @@
-#pragma once
-
-void f9();

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file10.hh

@@ -1,3 +0,0 @@
-#pragma once
-
-void f10();

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file11.hh

@@ -1,3 +0,0 @@
-#pragma once
-
-void f11();

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file12.hh

@@ -1,3 +0,0 @@
-#pragma once
-
-void f12();

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file13.hh

@@ -1,3 +0,0 @@
-#pragma once
-
-void f13();

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file14.hh

@@ -1,3 +0,0 @@
-#pragma once
-
-void f14();

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file15.hh

@@ -1,3 +0,0 @@
-#pragma once
-
-void f15();

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file16.hh

@@ -1,3 +0,0 @@
-#pragma once
-
-void f16();

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file17.hh

@@ -1,3 +0,0 @@
-#pragma once
-
-void f17();

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file18.hh

@@ -1,3 +0,0 @@
-#pragma once
-
-void f18();

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file19.hh

@@ -1,3 +0,0 @@
-#pragma once
-
-void f19();

+ 0 - 3
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/include/long_command_line_file20.hh

@@ -1,3 +0,0 @@
-#pragma once
-
-void f20();

+ 0 - 43
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line.cc

@@ -1,43 +0,0 @@
-#include "long_command_line_file01.hh"
-#include "long_command_line_file02.hh"
-#include "long_command_line_file03.hh"
-#include "long_command_line_file04.hh"
-#include "long_command_line_file05.hh"
-#include "long_command_line_file06.hh"
-#include "long_command_line_file07.hh"
-#include "long_command_line_file08.hh"
-#include "long_command_line_file09.hh"
-#include "long_command_line_file10.hh"
-#include "long_command_line_file11.hh"
-#include "long_command_line_file12.hh"
-#include "long_command_line_file13.hh"
-#include "long_command_line_file14.hh"
-#include "long_command_line_file15.hh"
-#include "long_command_line_file16.hh"
-#include "long_command_line_file17.hh"
-#include "long_command_line_file18.hh"
-#include "long_command_line_file19.hh"
-#include "long_command_line_file20.hh"
-
-int main() {
-  f1();
-  f2();
-  f3();
-  f4();
-  f5();
-  f6();
-  f7();
-  f8();
-  f9();
-  f10();
-  f11();
-  f12();
-  f13();
-  f14();
-  f15();
-  f16();
-  f17();
-  f18();
-  f19();
-  f20();
-}

+ 0 - 5
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file01.cc

@@ -1,5 +0,0 @@
-#include "long_command_line_file01.hh"
-
-#include <iostream>
-
-void f1() { std::cout << "hello from f1()\n"; }

+ 0 - 5
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file02.cc

@@ -1,5 +0,0 @@
-#include "long_command_line_file02.hh"
-
-#include <iostream>
-
-void f2() { std::cout << "hello from f2()\n"; }

+ 0 - 5
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file03.cc

@@ -1,5 +0,0 @@
-#include "long_command_line_file03.hh"
-
-#include <iostream>
-
-void f3() { std::cout << "hello from f3()\n"; }

+ 0 - 5
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file04.cc

@@ -1,5 +0,0 @@
-#include "long_command_line_file04.hh"
-
-#include <iostream>
-
-void f4() { std::cout << "hello from f4()\n"; }

+ 0 - 5
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file05.cc

@@ -1,5 +0,0 @@
-#include "long_command_line_file05.hh"
-
-#include <iostream>
-
-void f5() { std::cout << "hello from f5()\n"; }

+ 0 - 5
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file06.cc

@@ -1,5 +0,0 @@
-#include "long_command_line_file06.hh"
-
-#include <iostream>
-
-void f6() { std::cout << "hello from f6()\n"; }

+ 0 - 5
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file07.cc

@@ -1,5 +0,0 @@
-#include "long_command_line_file07.hh"
-
-#include <iostream>
-
-void f7() { std::cout << "hello from f7()\n"; }

+ 0 - 5
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file08.cc

@@ -1,5 +0,0 @@
-#include "long_command_line_file08.hh"
-
-#include <iostream>
-
-void f8() { std::cout << "hello from f8()\n"; }

+ 0 - 5
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file09.cc

@@ -1,5 +0,0 @@
-#include "long_command_line_file09.hh"
-
-#include <iostream>
-
-void f9() { std::cout << "hello from f9()\n"; }

+ 0 - 5
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file10.cc

@@ -1,5 +0,0 @@
-#include "long_command_line_file10.hh"
-
-#include <iostream>
-
-void f10() { std::cout << "hello from f10()\n"; }

+ 0 - 5
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file11.cc

@@ -1,5 +0,0 @@
-#include "long_command_line_file11.hh"
-
-#include <iostream>
-
-void f11() { std::cout << "hello from f11()\n"; }

+ 0 - 5
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file12.cc

@@ -1,5 +0,0 @@
-#include "long_command_line_file12.hh"
-
-#include <iostream>
-
-void f12() { std::cout << "hello from f12()\n"; }

+ 0 - 5
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file13.cc

@@ -1,5 +0,0 @@
-#include "long_command_line_file13.hh"
-
-#include <iostream>
-
-void f13() { std::cout << "hello from f13()\n"; }

+ 0 - 5
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file14.cc

@@ -1,5 +0,0 @@
-#include "long_command_line_file14.hh"
-
-#include <iostream>
-
-void f14() { std::cout << "hello from f14()\n"; }

+ 0 - 5
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file15.cc

@@ -1,5 +0,0 @@
-#include "long_command_line_file15.hh"
-
-#include <iostream>
-
-void f15() { std::cout << "hello from f15()\n"; }

+ 0 - 5
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file16.cc

@@ -1,5 +0,0 @@
-#include "long_command_line_file16.hh"
-
-#include <iostream>
-
-void f16() { std::cout << "hello from f16()\n"; }

+ 0 - 5
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file17.cc

@@ -1,5 +0,0 @@
-#include "long_command_line_file17.hh"
-
-#include <iostream>
-
-void f17() { std::cout << "hello from f17()\n"; }

+ 0 - 5
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file18.cc

@@ -1,5 +0,0 @@
-#include "long_command_line_file18.hh"
-
-#include <iostream>
-
-void f18() { std::cout << "hello from f18()\n"; }

+ 0 - 5
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file19.cc

@@ -1,5 +0,0 @@
-#include "long_command_line_file19.hh"
-
-#include <iostream>
-
-void f19() { std::cout << "hello from f19()\n"; }

+ 0 - 5
emsdk-cache/emsdk-main/bazel/test_external/long_command_line/long_command_line_file20.cc

@@ -1,5 +0,0 @@
-#include "long_command_line_file20.hh"
-
-#include <iostream>
-
-void f20() { std::cout << "hello from f20()\n"; }

+ 0 - 1
emsdk-cache/emsdk-main/bazel/test_secondary_lto_cache/.bazelrc

@@ -1 +0,0 @@
-build --incompatible_enable_cc_toolchain_resolution

+ 0 - 4
emsdk-cache/emsdk-main/bazel/test_secondary_lto_cache/.gitignore

@@ -1,4 +0,0 @@
-bazel-bin
-bazel-out
-bazel-test_secondary_lto_cache
-bazel-testlogs

+ 0 - 26
emsdk-cache/emsdk-main/bazel/test_secondary_lto_cache/MODULE.bazel

@@ -1,26 +0,0 @@
-bazel_dep(name = "rules_cc", version = "0.1.1")
-bazel_dep(name = "emsdk")
-local_path_override(
-    module_name = "emsdk",
-    path = "..",
-)
-
-emscripten_cache = use_extension(
-    "@emsdk//:emscripten_cache.bzl",
-    "emscripten_cache",
-)
-emscripten_cache.configuration(flags = ["--lto"])
-emscripten_cache.targets(targets = [
-    "crtbegin",
-    "libprintf_long_double-debug",
-    "libstubs-debug",
-    "libnoexit",
-    "libc-debug",
-    "libdlmalloc",
-    "libcompiler_rt",
-    "libc++-noexcept",
-    "libc++-debug-noexcept",
-    "libc++abi-debug-noexcept",
-    "libsockets",
-    "libdlmalloc-debug",
-])

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 632
emsdk-cache/emsdk-main/bazel/test_secondary_lto_cache/MODULE.bazel.lock


+ 0 - 6
emsdk-cache/emsdk-main/bazel/test_secondary_lto_cache/hello-world.cc

@@ -1,6 +0,0 @@
-#include <iostream>
-
-int main(int argc, char** argv) {
-  std::cout << "hello world!" << std::endl;
-  return 0;
-}

+ 0 - 131
emsdk-cache/emsdk-main/docker/Dockerfile

@@ -1,131 +0,0 @@
-FROM ubuntu:jammy AS stage_build
-
-ARG EMSCRIPTEN_VERSION=tot
-ENV EMSDK /emsdk
-
-# ------------------------------------------------------------------------------
-
-RUN echo "## Start building" \
-    && echo "## Update and install packages" \
-    && apt-get -qq -y update \
-    && apt-get -qq install -y --no-install-recommends \
-        binutils \
-        build-essential \
-        ca-certificates \
-        file \
-        git \
-        python3 \
-        python3-pip \
-    && echo "## Done"
-
-# Copy the contents of this repository to the container
-COPY . ${EMSDK}
-
-RUN echo "## Install Emscripten" \
-    && cd ${EMSDK} \
-    && ./emsdk install ${EMSCRIPTEN_VERSION} \
-    && echo "## Done"
-
-# This generates configuration that contains all valid paths according to installed SDK
-# TODO(sbc): We should be able to use just emcc -v here but it doesn't
-# currently create the sanity file.
-RUN cd ${EMSDK} \
-    && echo "## Generate standard configuration" \
-    && ./emsdk activate ${EMSCRIPTEN_VERSION} \
-    && chmod 777 ${EMSDK}/upstream/emscripten \
-    && chmod -R 777 ${EMSDK}/upstream/emscripten/cache \
-    && echo "int main() { return 0; }" > hello.c \
-    && ${EMSDK}/upstream/emscripten/emcc -c hello.c \
-    && cat ${EMSDK}/upstream/emscripten/cache/sanity.txt \
-    && echo "## Done"
-
-# Cleanup Emscripten installation and strip some symbols
-RUN echo "## Aggressive optimization: Remove debug symbols" \
-    && cd ${EMSDK} && . ./emsdk_env.sh \
-    # Remove debugging symbols from embedded node (extra 7MB)
-    && strip -s `which node` \
-    # Tests consume ~80MB disc space
-    && rm -fr ${EMSDK}/upstream/emscripten/tests \
-    # strip out symbols from clang (~extra 50MB disc space)
-    && find ${EMSDK}/upstream/bin -type f -exec strip -s {} + || true \
-    && echo "## Done"
-
-# ------------------------------------------------------------------------------
-# -------------------------------- STAGE DEPLOY --------------------------------
-# ------------------------------------------------------------------------------
-
-FROM ubuntu:jammy AS stage_deploy
-
-COPY --from=stage_build /emsdk /emsdk
-
-# These fallback environment variables are intended for situations where the
-# entrypoint is not utilized (as in a derived image) or overridden (e.g. when
-# using `--entrypoint /bin/bash` in CLI).
-# This corresponds to the env variables set during: `source ./emsdk_env.sh`
-ENV EMSDK=/emsdk \
-    PATH="/emsdk:/emsdk/upstream/emscripten:/emsdk/node/22.16.0_64bit/bin:${PATH}"
-
-# ------------------------------------------------------------------------------
-# Create a 'standard` 1000:1000 user
-# Thanks to that this image can be executed as non-root user and created files
-# will not require root access level on host machine Please note that this
-# solution even if widely spread (i.e. Node.js uses it) is far from perfect as
-# user 1000:1000 might not exist on host machine, and in this case running any
-# docker image will cause other random problems (mostly due `$HOME` pointing to
-# `/`)
-RUN echo "## Create emscripten user (1000:1000)" \
-    && groupadd --gid 1000 emscripten \
-    && useradd --uid 1000 --gid emscripten --shell /bin/bash --create-home emscripten \
-    && echo "## Done"
-
-# ------------------------------------------------------------------------------
-
-RUN echo "## Update and install packages" \
-    && apt-get -qq -y update \
-    # Somewhere in here apt sets up tzdata which asks for your time zone and blocks
-    # waiting for the answer which you can't give as docker build doesn't read from
-    # the terminal. The env vars set here avoid the interactive prompt and set the TZ.
-    && DEBIAN_FRONTEND="noninteractive" TZ="America/San_Francisco" apt-get -qq install -y --no-install-recommends \
-        sudo \
-        libxml2 \
-        ca-certificates \
-        python3 \
-        python3-pip \
-        wget \
-        curl \
-        zip \
-        unzip \
-        git \
-        git-lfs \
-        ssh-client \
-        build-essential \
-        make \
-        ant \
-        libidn12 \
-        cmake \
-        openjdk-11-jre-headless \
-    # Standard Cleanup on Debian images
-    && apt-get -y clean \
-    && apt-get -y autoclean \
-    && apt-get -y autoremove \
-    && rm -rf /var/lib/apt/lists/* \
-    && rm -rf /var/cache/debconf/*-old \
-    && rm -rf /usr/share/doc/* \
-    && rm -rf /usr/share/man/?? \
-    && rm -rf /usr/share/man/??_* \
-    && echo "## Done"
-
-# ------------------------------------------------------------------------------
-# Use commonly used /src as working directory
-WORKDIR /src
-
-ENTRYPOINT ["/emsdk/docker/entrypoint.sh"]
-
-LABEL maintainer="[email protected]" \
-      org.label-schema.name="emscripten" \
-      org.label-schema.description="The official container with Emscripten SDK" \
-      org.label-schema.url="https://emscripten.org" \
-      org.label-schema.vcs-url="https://github.com/emscripten-core/emsdk" \
-      org.label-schema.docker.dockerfile="/docker/Dockerfile"
-
-# ------------------------------------------------------------------------------

+ 0 - 31
emsdk-cache/emsdk-main/docker/Makefile

@@ -1,31 +0,0 @@
-# A Makefile to build, test, tag and publish the Emscripten SDK Docker container.
-
-# Emscripten version to build: Should match the version that has been already released.
-# i.e.:  1.39.18
-version =
-alias =
-only_alias =
-
-image_name ?= emscripten/emsdk
-
-.TEST:
-ifndef version
-	$(error argument 'version' is not set. Please call `make version=SOME_VERSION ...`)
-endif
-
-build: Dockerfile .TEST
-	cd .. && docker build --progress=plain --network host --build-arg=EMSCRIPTEN_VERSION=${version} -t ${image_name}:${version} -f docker/$< .
-
-test: test_dockerimage.sh .TEST
-	# test as non-root
-	# test fallback env variables by overriding the entrypoint
-	docker run --rm -u `id -u`:`id -g` -w /emsdk/docker --net=host --entrypoint /bin/bash ${image_name}:${version} $<
-
-push: .TEST
-ifndef only_alias
-	docker push ${image_name}:${version}
-endif
-ifdef alias
-	docker tag ${image_name}:${version} ${image_name}:${alias}
-	docker push ${image_name}:${alias}
-endif

+ 0 - 125
emsdk-cache/emsdk-main/docker/README.md

@@ -1,125 +0,0 @@
-# Dockerfile for EMSDK
-
-This Dockerfile builds a self-contained version of Emscripten SDK that enables Emscripten to be used without any
-other installation on the host system.
-
-It is published at https://hub.docker.com/r/emscripten/emsdk.
-
-### Usage
-
-Simple usage of this container to compile a hello-world
-```bash
-# create helloworld.cpp
-cat << EOF > helloworld.cpp
-#include <iostream>
-int main() {
-  std::cout << "Hello World!" << std::endl;
-  return 0;
-}
-EOF
-```
-
-```bash
-# compile with docker image
-docker run \
-  --rm \
-  -v "$(pwd):$(pwd)" \
-  -u $(id -u):$(id -g) \
-  emscripten/emsdk \
-  emcc helloworld.cpp -o helloworld.js
-
-# execute on host machine
-node helloworld.js
-```
-
-Teardown of compilation command:
-
-|part|description|
-|---|---|
-|`docker run`| A standard command to run a command in a container|
-|`--rm`|remove a container after execution (optimization)|
-|`-v "$(pwd):$(pwd)"`|Mounting current folder from the host system into mirrored path on the container<br>TIP: This helps to investigate possible problem as we preserve exactly the same paths like in host. In such case modern editors (like Sublime, Atom, VS Code) let us to CTRL+Click on a problematic file |
-|`-u $(id -u):$(id -g)`| Run the container as a non-root user with the same UID and GID as local user. Hence all files produced by this are accessible to non-root users|
-|`emscripten/emsdk`|Get the latest tag of this container|
-|`emcc helloworld.cpp -o helloworld.js`|Execute `emcc` command with following arguments inside container, effectively compile our source code|
-
-
-
-### Building Dockerfile
-
-This image has following optional arguments
-
-| arg | default value | description |
-| --- | --- | --- |
-| `EMSCRIPTEN_VERSION` | `tot`<br/>(special case, tip-of-tree) | One of released version of Emscripten. For example `2.0.0`<br/> Minimal supported version is **1.39.0** |
-
-**Building**
-
-This step will build Dockerfile as given tag on local machine
-```bash
-# using docker
-docker build \
-    --network host \
-    --build-arg=EMSCRIPTEN_VERSION=1.39.17 \
-    -t emscripten/emsdk:1.39.17 \
-    -f docker/Dockerfile \
-    .
-```
-```bash
-# using predefined make target
-make version=1.39.17 build test
-```
-
-**Tagging**
-
-In case of using `docker build` command directly, given `--tag` should match version of released Emscripten (you can see list of non-legacy versions by executing `emsdk list`).
-
-**Pushing**
-
-This step will take local image and push to default docker registry. You need to make sure that you logged in docker cli (`docker login`) and you have rights to push to that registry.
-
-```bash
-# using docker
-docker push emscripten/emsdk:1.39.17
-```
-```bash
-# using predefined make target
-make version=1.39.17 push
-```
-
-In case of pushing the most recent version, this version should be also tagged as `latest` and pushed.
-```bash
-# using docker cli
-docker tag emscripten/emsdk:1.39.17 emscripten/emsdk:latest
-docker push emscripten/emsdk:latest
-
-```bash
-# using make
-make version=1.39.17 alias=latest push
-```
-
-### Extending
-
-If your project uses packages that this image doesn't provide you might want to:
-* Contribute to this repo: Maybe your dependency is either non-intrusive or could be useful for other people
-* Create custom image that bases on this image
-
-1. create own Dockerfile that holds:
-    ```dockerfile
-    # Point at any base image that you find suitable to extend.
-    FROM emscripten/emsdk:1.39.17
-
-    # Install required tools that are useful for your project i.e. ninja-build
-    RUN apt update && apt install -y ninja-build
-    ```
-
-2. build it
-    ```bash
-    docker build -t extended_emscripten .
-    ```
-
-3. test
-    ```bash
-    docker run --rm extended_emscripten ninja --version
-    # 1.10.0
-    ```

+ 0 - 7
emsdk-cache/emsdk-main/docker/entrypoint.sh

@@ -1,7 +0,0 @@
-#!/bin/bash
-set -e
-
-# Set-up PATH and other environment variables
-EMSDK_QUIET=1 source /emsdk/emsdk_env.sh
-
-exec "$@"

+ 0 - 29
emsdk-cache/emsdk-main/docker/test_dockerimage.sh

@@ -1,29 +0,0 @@
-#!/usr/bin/env bash
-set -ex
-
-if [ $EUID -eq 0 ]; then
-  sudo -u nobody `which emcc` --version
-fi
-
-which emsdk
-node --version
-npm --version
-python3 --version
-pip3 --version
-em++ --version
-emcc --version
-java -version
-cmake --version
-
-exit_code=0
-
-# test emcc compilation
-echo 'int main() { return 0; }' | emcc -o /tmp/main.js -xc -
-node /tmp/main.js || exit_code=$?
-if [ $exit_code -ne 0 ]; then
-  echo "Node exited with non-zero exit code: $exit_code"
-  exit $exit_code
-fi
-
-# test embuilder
-embuilder build zlib --force

+ 0 - 1
emsdk-cache/emsdk-main/emcmdprompt.bat

@@ -1 +0,0 @@
-@cmd /k call emsdk_env.bat

+ 0 - 279
emsdk-cache/emsdk-main/emscripten-releases-tags.json

@@ -1,279 +0,0 @@
-{
-  "aliases": {
-    "latest": "4.0.13",
-    "latest-sdk": "latest",
-    "latest-arm64-linux": "latest",
-    "latest-64bit": "latest",
-    "sdk-latest-64bit": "latest",
-    "latest-upstream": "latest",
-    "latest-clang-upstream": "latest",
-    "latest-releases-upstream": "latest"
-  },
-  "releases": {
-    "4.0.13": "32b8ae819674cb42b8ac2191afeb9571e33ad5e2",
-    "4.0.13-asserts": "17d4746128fd81d192c1685da52332c5221799bb",
-    "4.0.12": "209b886304498eff50dd835850dc5715803401ed",
-    "4.0.12-asserts": "a9e9ee083503b842a14d31db764e31d65afb8910",
-    "4.0.11": "7033fec38817ec01909b044ea0193ddd5057255c",
-    "4.0.11-asserts": "0eacb0d6",
-    "4.0.10": "8103ffedfb0c42d231c6af6859a5a1a832260b43",
-    "4.0.10-asserts": "ccf48a673362f11ddb6c3656405bb6a03b344052",
-    "4.0.9": "cb2a69bce627bd2247624c71fc12907cb8785d2f",
-    "4.0.9-asserts": "27f1e0801c6ec5ea4d9a9e1d573eb1fead3525f1",
-    "4.0.8": "56f86607aeb458086e72f23188789be2ee0e971a",
-    "4.0.8-asserts": "ab275365d4057cf92d698ef99744d66cd8c7cba9",
-    "4.0.7": "ef4e9cedeac3332e4738087567552063f4f250d3",
-    "4.0.7-asserts": "4bef8973dc12f5f38022f323d67c16237bbd2962",
-    "4.0.6": "14767574a5c37ff9526a253a65ddbe0811cb3667",
-    "4.0.6-asserts": "4050eaf1fd8e1c191198ec4ba8c346c4f3da0dc8",
-    "4.0.5": "d7f8ff5e2ca3539c33fae81e98f7c56ef9fa1239",
-    "4.0.5-asserts": "71269375282224b2e662bbe009e2e3ebc40db67f",
-    "4.0.4": "ea71afcf5a172125179a07ff1731de6e81c92222",
-    "4.0.4-asserts": "5121692126f7c96d86a13dc8462e758813e30123",
-    "4.0.3": "de2109f0e5e7278d470da11de526aed16c527722",
-    "4.0.3-asserts": "bae6703fb819bd84fb4dfb5e87b41cf93b6d3f2b",
-    "4.0.2": "cc8eba40de8235f9c33d92463018f87b3edaa09e",
-    "4.0.2-asserts": "dc575ac9a214463b2b3503c11a1a31db665b4414",
-    "4.0.1": "5ff495a591978fdf8a16f2d172be3616f3150d1e",
-    "4.0.1-asserts": "c2e46b78d3dde701187d685f8c175f17425bee68",
-    "4.0.0": "3ebc04a3dab24522a5bf8ced3ce3caea816558f6",
-    "4.0.0-asserts": "912ac2d711bb343205f314564ed287d883a7d888",
-    "3.1.74": "c2655005234810c7c42e02a18e4696554abe0352",
-    "3.1.74-asserts": "88e95307accc1f4b247b86b7a0c0e6beaf07f844",
-    "3.1.73": "b363a836e75a245c548b7a6a021822d8c9e4c6df",
-    "3.1.73-asserts": "86f3e54628089634c6b73039955388296e920291",
-    "3.1.72": "7a360458327cd24c2a7aab428bdbcb5bca8810e4",
-    "3.1.72-asserts": "92d39398c0016e73821548a4cd9df3df1358f6d9",
-    "3.1.71": "7ee0f9488f152e9e9cf0d4d243970e03742f1a5c",
-    "3.1.71-asserts": "15b142643065fe241138c6785cb8e384504f76e8",
-    "3.1.70": "6fa6145af41e835f3d13edf7d308c08e4573357a",
-    "3.1.70-asserts": "11444ec05e2cc64ef42c4f33c6e3a2a7534694f2",
-    "3.1.69": "8fe01288bc35668c13316324336ea00195dfb814",
-    "3.1.69-asserts": "cf6f9d1b4026ec7aec33aceb68077c704b52b068",
-    "3.1.68": "b52d8c9150dc7d4c8e4a7a08c7a9b4006c9abe49",
-    "3.1.68-asserts": "1565c9e5a4547215a1b63013607bf7a1cbb3d9d3",
-    "3.1.67": "4ae62984ea36ef0e5bfcbd0ed9b62f04bee6426a",
-    "3.1.67-asserts": "7cfc00962efe07f2e2ff3383f59519dc5bea4f82",
-    "3.1.66": "243eae09cf5c20c4fde51a620b92f483255c8214",
-    "3.1.66-asserts": "c5d25114210455d19cb9232171824292005a5080",
-    "3.1.65": "fdcf56c75a1d27fdff6525a7e03423595485ca19",
-    "3.1.65-asserts": "3231fb47481b2248c31002cdd7324a9155135ce0",
-    "3.1.64": "fd61bacaf40131f74987e649a135f1dd559aff60",
-    "3.1.64-asserts": "42c1d51ceb8e41e70ce1d8dc1bc534c0f609c196",
-    "3.1.63": "aeb36a44b29e8ca9f4c7efbb4735b69003ac2bb9",
-    "3.1.63-asserts": "b0275806047b42f2f88998c5c8159aec90e195ab",
-    "3.1.62": "d52176ac8e07c47c1773bb2776ebd91e3886c3af",
-    "3.1.62-asserts": "9d9e7deac8b91fbdd8804045595e807f9d774a53",
-    "3.1.61": "28e4a74b579b4157bda5fc34f23c7d3905a8bd6c",
-    "3.1.61-asserts": "7fc912687ba2077b3aeae472b51c238b3d201c46",
-    "3.1.60": "87709b5747de5b1993fe314285528bf4b65c23e1",
-    "3.1.60-asserts": "e2388e8a528890b8f3ff7b9ab4f52dbe2aeb38b9",
-    "3.1.59": "e20ee09a8a740544c4bc6de5d4ba5f81f74b74d6",
-    "3.1.59-asserts": "10ae1e83ccce9f4a363bb2e3090ba8fc32d25851",
-    "3.1.58": "a4d4afb626c5010f6ccda4638b8d77579a63782e",
-    "3.1.58-asserts": "5bc1c7108d4d91db316b24a75593a37c1117c266",
-    "3.1.57": "523b29e1b99a61069a2fa9f9d3cc9be1c4c53d4d",
-    "3.1.57-asserts": "10b736eeeac0dae3fd5bc29c6b3e32f7f7adf941",
-    "3.1.56": "9d106be887796484c4aaffc9dc45f48a8810f336",
-    "3.1.56-asserts": "2b9c4b912b611dc51f9019e11371e3cdd36fa64e",
-    "3.1.55": "f5557e3b7166d05bddb5977e363ec48cd06e9d32",
-    "3.1.55-asserts": "eb23cc30563325fd6dc97fcf85ddf26489ab9110",
-    "3.1.54": "aa1588cd28c250a60457b5ed342557c762f416e3",
-    "3.1.54-asserts": "d525f56cb765ed6884a0c443dbb906b63b148915",
-    "3.1.53": "e5523d57a0e0dcf80f3b101bbc23613fcc3101aa",
-    "3.1.53-asserts": "152cef4e00fc17776576bcc57f53badd21b92509",
-    "3.1.52": "ce2097fb81953331e65543c20b437475f218127c",
-    "3.1.52-asserts": "49e9a37dd6d1d65aa92472d8908cb8b88092dfaf",
-    "3.1.51": "4f416d92fbff66ce79901cfc8263768f1b25dd3e",
-    "3.1.51-asserts": "9035c99beb760aa0ea381bdf11abf440d88bb451",
-    "3.1.50": "2ce4170cef5ce46f337f9fd907b614a8db772c7d",
-    "3.1.50-asserts": "0a6fe6ef5880bf5b035d396f3875fda9b7c4bb60",
-    "3.1.49": "bd0a2e230466dadb36efc71aa7271f17c6c35420",
-    "3.1.49-asserts": "4ea035c5bbd6168dae34c970b5f56d7aa4dcf952",
-    "3.1.48": "694434b6d47c5f6eff2c8fbd9eeb016c977ae9dc",
-    "3.1.48-asserts": "6e2b8a97c6db82089c3a405bc88ea9fb125deb16",
-    "3.1.47": "39ade279e75e6d17dd6b7eb9fba2006e61fe966b",
-    "3.1.47-asserts": "dc49d84ed226a5a30a5117cefc07c781f6c0d16e",
-    "3.1.46": "21644188d5c473e92f1d7df2f9f60c758a78a486",
-    "3.1.46-asserts": "3e09b252d0d5a8e045d2ca92c606bfb9874bddf8",
-    "3.1.45": "2b7c5fb8ffeac3315deb1f82ab7bf8da544f84a1",
-    "3.1.45-asserts": "2aec03dfd8ce68c95316116dafbe30e273f32a81",
-    "3.1.44": "b90507fcf011da61bacfca613569d882f7749552",
-    "3.1.44-asserts": "06d00b0c62e435b743aa37c67b4ab76bc8568c79",
-    "3.1.43": "bf3c159888633d232c0507f4c76cc156a43c32dc",
-    "3.1.43-asserts": "3ec53a819a5958665d6bb0ac895c99546921b6ef",
-    "3.1.42": "9d73bf4bd5b5c9ce6e51be0ed5ce6599fcb28e9e",
-    "3.1.42-asserts": "7a622e0b66ee095aea9766375a2774b68c8bd8ef",
-    "3.1.41": "eb71265ef0ab905620015adbfedacf88c5dbf021",
-    "3.1.41-asserts": "064607aeccaffd93175bb40c072271c0393d71a5",
-    "3.1.40": "c3122846bb040798aab975f61008c37eb19476de",
-    "3.1.40-asserts": "5b5daaaabaf7292736454e4f8a73fa79bd455af4",
-    "3.1.39": "1b56b171b627af0841cf8d4d8c0160c6cb6d855f",
-    "3.1.39-asserts": "5e237cc9d9f6020af9ba908692361aa71744af1d",
-    "3.1.38": "03ecb526947f6a3702a0d083083799fe410d3893",
-    "3.1.38-asserts": "f771c7a0b55bc5d89ecceedfe9521c2c04aa43ae",
-    "3.1.37": "7c905cfc1ca6699f6ccb288ae174902cfbdcf0a2",
-    "3.1.37-asserts": "323607efbcdf84886dab55a18d758fe4c7d71d1e",
-    "3.1.36": "adedc0750c4a89b65bee866edab24298cb8d6677",
-    "3.1.36-asserts": "fdd2824226a8b001df5697146b88be98920fc215",
-    "3.1.35": "671550b5bdceee7bdb21493714f9a815aa5149a9",
-    "3.1.35-asserts": "42481a713ae805eda34f6e3e7170384c426b1d73",
-    "3.1.34": "2fdd6b9e5b67d5b62f84d0501a876513ff118ef1",
-    "3.1.34-asserts": "385382932c18a1312fff88000c4f83c2b9d1bb44",
-    "3.1.33": "49b960bd03b3a9da478a08541ce6eafe792a58a8",
-    "3.1.33-asserts": "e3ca2c6756b75cf6c6daa40276de0f25218e04a7",
-    "3.1.32": "29ad1037cd6b99e5d8a1bd75bc188c1e9a6fda8d",
-    "3.1.32-asserts": "2811c849256ec5b62b4ec32fb8369e5f3c9a54b1",
-    "3.1.31": "1eec24930cb2f56f6d9cd10ffcb031e27ea4157a",
-    "3.1.31-asserts": "48488847a38bb9cfb36e7397bea21ab2bb062680",
-    "3.1.30": "dc1fdcfd3f5b9d29cb1ebdf15e6e845bef9b0cc1",
-    "3.1.30-asserts": "21cca44e843267533c3d0b258b46c37bd142a2d7",
-    "3.1.29": "d949f1b99a477d4b0b54d95413df3688afa69d0a",
-    "3.1.29-asserts": "9d1e32e66e4b5921efc1a45cdc68e8c522c42c32",
-    "3.1.28": "30b9e46ddcea66e91530559379089002d8b692cf",
-    "3.1.28-asserts": "19871a9ea4914d63749b8d4d170e27a8854cb565",
-    "3.1.27": "48ce0b44015d0182fc8c27aa9fbc0a4474b55982",
-    "3.1.27-asserts": "630810e5a312f57d17efbe384ed7e4299f796bc1",
-    "3.1.26": "4f68bb2a505c727bcf58195cf4da20592a6e92c8",
-    "3.1.26-asserts": "4e2ffe94b04dbadfbca1687ab458d306b3414d13",
-    "3.1.25": "ff6babb041d0f31575cc16d15ef82c6222ca99b8",
-    "3.1.25-asserts": "6b19d6a8c30d7b83ba2193625fc12cce9ae0206b",
-    "3.1.24": "54217a0950bb1dafe8808cc6207d378e323f9d74",
-    "3.1.24-asserts": "4c20c7393ca208c740c16a97dbf305ba52fea2bb",
-    "3.1.23": "bfd5e63a44ba4c8568cd8ac87c27b35e40732bf4",
-    "3.1.23-asserts": "77d2c744fe37fe0e22a51329fa23bab4b8ffa656",
-    "3.1.22": "990cee04a21caafc75955d736fb45791a7f2aeee",
-    "3.1.22-asserts": "d94fe69a037e93562d0bbe9d0372ce23f4ab1089",
-    "3.1.21": "a16a8bca2466eb144f7c93fa899c0272c8815dc3",
-    "3.1.21-asserts": "c7a387161b029621eb4d3dd57363b1393b4c50b2",
-    "3.1.20": "d92c8639f406582d70a5dde27855f74ecf602f45",
-    "3.1.20-asserts": "db0fd1cb7316675317d527b6ed4f4cc7005df9ec",
-    "3.1.19": "4c3772879a04140298c3abde90962d5567b5e2fc",
-    "3.1.19-asserts": "83c2ba526ec47139d29e1417ac23d15b37ead98a",
-    "3.1.18": "49d45744895c7d7e28acd94a385d7ee361653b4a",
-    "3.1.18-asserts": "cb7fa1dce4b04e35b78ec43499a7759f24c1e64d",
-    "3.1.17": "d27fef2070c86a218965da8b8b5df8b4425aa3bb",
-    "3.1.17-asserts": "19aab28a81be09863e86aba8ee4e20feaee31f6b",
-    "3.1.16": "fb1baf00423818052359cf9126e94bc71c39feb5",
-    "3.1.16-asserts": "61848bee5b330db5ad5f827352d453b5557757fa",
-    "3.1.15": "568a46a9fb7e1f1686a6f7216b3dc976f28d2a79",
-    "3.1.15-asserts": "a8a770a0a23d2279270bd28004c8c60b02d91fbb",
-    "3.1.14": "ade9d780ff17c88d81aa13860361743e3c1e1396",
-    "3.1.14-asserts": "b55548282b553fc0b922b82d97b80f256bf01d20",
-    "3.1.13": "bc44364b561cfde15c243a54e3b96ea12d7ea284",
-    "3.1.13-asserts": "6b8f75967b5d37fa898d217b560d571694eb5b13",
-    "3.1.12": "a8c3b314d61e2bb98581d522f858132b2fc21488",
-    "3.1.12-asserts": "0ec1936aa3cb809d96abfebcc5356cd0cb15f6b8",
-    "3.1.11": "8c3a799341c01148692c52fda73bbba5e89c5727",
-    "3.1.11-asserts": "4d27b98351e021e9b7d2681a84cbab5a0ddc7a88",
-    "3.1.10": "8bd05c7221b4ce34d4bedec40b672d94e681a765",
-    "3.1.10-asserts": "d9b20effb2d660936fb5be525744e941fd900bc6",
-    "3.1.9": "edabe25af34554d19c046078f853999b074259ca",
-    "3.1.9-asserts": "c751721b1dfa47c03ede0f0da89be453c79b34ef",
-    "3.1.8": "8c9e0a76ebed2c5e88a718d43e8b62452def3771",
-    "3.1.8-asserts": "d33ae3c8d16f04b004b76c1d7c1989d637aa36e0",
-    "3.1.7": "d0e637fe48197587d981f79e8114757731d0c2a9",
-    "3.1.7-asserts": "88f0cab4e7db846e171cbbbbf20cc1a51b8c779f",
-    "3.1.6": "8791c3e936141cbc2dd72d76290ea9b2726d39f3",
-    "3.1.6-asserts": "84fa976d87a29ea1734601b042f3c6809ecb89f0",
-    "3.1.5": "2dee36c7163f7394ab9341854ef5281501dd97d0",
-    "3.1.5-asserts": "e9b96739e70faf11bbb2f63addcef59f2b2c7b48",
-    "3.1.4": "39e60dda6945cfcd6487725bdb1361ae7975173f",
-    "3.1.4-asserts": "05edbd634e300fc79ce0f635251bd5bef375328b",
-    "3.1.3": "2ddc66235392b37e5b33477fd86cbe01a14b8aa2",
-    "3.1.3-asserts": "66aaf7da980346898a84e3e1b70477286e225eec",
-    "3.1.2": "6626e25d6d866cf283147ca68d54ac9326fe399f",
-    "3.1.2-asserts": "b5cb3731eeaf127ae73d5e24b56cf5f0cdbf16a6",
-    "3.1.1": "5ee64de9809592480da01372880ea11debd6c740",
-    "3.1.1-asserts": "9455ce6306d97c0b3854e88e1e2f66d4b8565daf",
-    "3.1.0": "562e3a0af169e6dea5e6dbecac2255d67c2c8b94",
-    "3.1.0-asserts": "1de2db691103282dad6b2037018db6ece54f57c6",
-    "3.0.1": "91b7a67a486d2430e73423a38d950d8a550826ed",
-    "3.0.1-asserts": "2a84a08e92ce8748015dfc3eee40ee35a853fed0",
-    "3.0.0": "7fbe748230f2ce99abbf975d9ad997699efb3153",
-    "3.0.0-asserts": "f1d65c26f502220e278d31e7621e99b673e28093",
-    "2.0.34": "d8fc1b92dbc0ce8d740a7adb937c5137ba4755e0",
-    "2.0.33": "cef8850d57278271766fb2163eebcb07354018e7",
-    "2.0.32": "74646397e3c5010824ad60d1de86c6bcbe334dff",
-    "2.0.31": "597724ca3f6cd6e84bea73f1f519a3953b5c273d",
-    "2.0.31-asserts": "c1065389ccf4a81e3c1af080316afd444788bc46",
-    "2.0.30": "c69458f1bbf3ef5b8da4e934de210659cc9bca04",
-    "2.0.30-asserts": "e13a2d74c5fa5f175ae7cffd4197fe7f78bea304",
-    "2.0.29": "c2369dc425725fff86ba90a9007a4603ddf7941b",
-    "2.0.29-lto": "439b7bd7da11e99065c84a60766e427b03be4206",
-    "2.0.28": "866055ea639d64dfedc625d28ec981e47ce37168",
-    "2.0.28-lto": "ac6ac36f7a02cec857bc1e543e55c686c5bd1256",
-    "2.0.27": "1ac46e3b84955231ab4a4f4cbe0c7ac28c86b8cc",
-    "2.0.27-lto": "79509f70be89d66b8441383de94b3e5a91dedc68",
-    "2.0.26": "823d37b15d1ab61bc9ac0665ceef6951d3703842",
-    "2.0.26-lto": "b92ba43f3ac92ab6f1ce6136a8c5969b68ba6968",
-    "2.0.25": "f6f001b08fbb67935379cf13d17fd9bfdbaff791",
-    "2.0.24": "6ab7fc5622a67e6111d07c4ba61c8d3c8fc33ed2",
-    "2.0.23": "77b065ace39e6ab21446e13f92897f956c80476a",
-    "2.0.23-lto": "3f6dbb899f61fab52e4574beb4f7c8382658aa20",
-    "2.0.22": "6465a9acb820207acf7da44661a7de52d0a1ae3c",
-    "2.0.21": "72f4ec97fbc7ec16c15ae68a75b0a257b2835160",
-    "2.0.20": "e0c15cd14170f407a9eb27fcbad22931dc67feb7",
-    "2.0.20-lto": "d1b26cd17e51c5c705eea69b9545975e3705c058",
-    "2.0.19": "9b9ff2dabfb4a7fbacbc004c0bead12a60f9d05c",
-    "2.0.19-lto": "4487f6c5107e7882ae2bad6d26c34ffdceb713f0",
-    "2.0.18": "c2ac7520fad29a7937ed60ab6a95b08eb374c7ba",
-    "2.0.17": "f5c45e60392b82f603e3a8039c62db294fab02d2",
-    "2.0.16": "80d9674f2fafa6b9346d735c42d5c52b8cc8aa8e",
-    "2.0.15": "89202930a98fe7f9ed59b574469a9471b0bda7dd",
-    "2.0.14": "fc5562126762ab26c4757147a3b4c24e85a7289e",
-    "2.0.13": "ce0e4a4d1cab395ee5082a60ebb4f3891a94b256",
-    "2.0.12": "dcf819a7821f8db0c8f15ac336fea8960ec204f5",
-    "2.0.11": "4764c5c323a474f7ba28ae991b0c9024fccca43c",
-    "2.0.10": "37fc7647c754ac9a28ad588c143b82286de0ef71",
-    "2.0.9": "d8e430f9a9b6e87502f826c39e7684852f59624f",
-    "2.0.8": "e4ed6c79f4db8b175d9bbe55869b697aba9bcf2a",
-    "2.0.7": "d7a29d82b320e471203b69d43aaf03b560eedc54",
-    "2.0.6": "4ba921c8c8fe2e8cae071ca9889d5c27f5debd87",
-    "2.0.5": "461f0f118d8d8e6cfd84e077f3eb010c17a39032",
-    "2.0.4": "eefeb3e623af023844ac477d70d1fd8a668f5110",
-    "2.0.3": "7a7f38ca19da152d4cd6da4776921a0f1e3f3e3f",
-    "2.0.2": "ede25d889a0abe63360d4c5d420087c8753b8bbe",
-    "2.0.1": "13e29bd55185e3c12802bc090b4507901856b2ba",
-    "2.0.0": "5974288502aab433d45f53511e961aaca4079d86",
-    "1.40.1": "536568644fd67d53778f6111fdd5f64ad3f4c539",
-    "1.40.0": "edf24e7233e0def312a08cc8dcec63a461155da1",
-    "1.39.20": "e7e39da9c81faecd9ecf44065cee864d76e4e34d",
-    "1.39.19": "665121d026cafc46c29b30d6d4c45ed73eedbb7e",
-    "1.39.18": "1914a1543f08cd8e41f44c2bb05f7a90d1920275",
-    "1.39.17": "9bc968c0e49b1c795ecddb87391b265911e2adcb",
-    "1.39.16": "ae5001fac3849895a873e422a2a80afc90f3b798",
-    "1.39.15": "3880c744c068986d4ee781a61f7b2e820043e11f",
-    "1.39.14": "574ad04affb82cc36a32dd89b2a87bea4fb30eba",
-    "1.39.13": "7b3cd38017f7c582cfa3ac24a9f12aa6a8dca51f",
-    "1.39.12": "e13b86d4dbd9a986525ef27d4ad8157949b9bc3a",
-    "1.39.11": "6584e2d88570ee55914db92a3bad84f99e5bdd82",
-    "1.39.10": "65d33d604d3fa0ebe03548378b898fc6608e9cb8",
-    "1.39.9": "122396dfad60e1b2a83ccefa74a1425a2e05b5cb",
-    "1.39.8": "9e60f34accb4627d7358223862a7e74291886ab6",
-    "1.39.7": "9a89fff28cc6f75e17976fce1904b280e4beb25d",
-    "1.39.6": "967836071d96d9b7894e492382f5fcb96423fc07",
-    "1.39.5": "b3ddcab6efd749d3ed937fb452ace4e39a825842",
-    "1.39.4": "8bb7b0bbbca74cc58741416cc955011f22ff5ccb",
-    "1.39.3": "b024b71038d1291ed7ec23ecd553bf2c0c8d6da6",
-    "1.39.2": "c630da9163a64e08de3dd948be0a0f7a175d285b",
-    "1.39.1": "40f3caabcef7b52bdde63d3883462414d7a25bec",
-    "1.39.0": "d57bfdd6d43181501bbd3fab502d57c9073ceb49",
-    "1.38.48": "1290d9deb93d67c4649999a8f2c8d9167d38dc04",
-    "1.38.47": "bc367c257409d676e71c5511383228b7aabf1689",
-    "1.38.46": "c89919d252f7cea00d944bdf3bd630cd3c7e7388",
-    "1.38.45": "f3030d9fffcc9e1287cb6b8e72982e94ece31d71",
-    "1.38.44": "e5fd171371c3dcb8806a337f2dfa9b70f598f456",
-    "1.38.43": "737d4a07be76c15124adf3c6ef2c218123f7a67f",
-    "1.38.42": "05f8c01394ddd0838d3cb484ba8ca97a3efc1ac9",
-    "1.38.41": "5c6785a63993ae7a4d5362b32b0be9c85138fb96",
-    "1.38.40": "7b4b328af02eafbc857b8ca1e3d9b12dddc56ef7",
-    "1.38.39": "f42b12c45fd3f4c20de1321402fbc28f8fd21df1",
-    "1.38.38": "80bff2784f8500c1305ca69ba1d9fc84df0e401c",
-    "1.38.37": "0ca6c49e30bc09c3ccefc867df4196a4b4183441",
-    "1.38.36": "d46be49c2aab975333423122239892bd46f52bba",
-    "1.38.35": "98f49919f25e06fa557cbcb1321d4c10e60c87ca",
-    "1.38.34": "048cf9424790cc525a7ea6da340820aae226f3b9",
-    "1.38.33": "3b8cff670e9233a6623563add831647e8689a86b"
-  }
-}

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä