)]}'
{
  "commit": "82d41a76d3c973c894b27e554e5e6f2773bd7925",
  "tree": "f9885d32294b6b9d41a7ab9edc8bcd76bfc8a2a7",
  "parents": [
    "7fbd555dbec53f863f74e5f119812351f02a7a2f"
  ],
  "author": {
    "name": "Michael Allwright",
    "email": "contact@allwright.io",
    "time": "Mon Jul 01 18:23:07 2024 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jul 01 09:23:07 2024 -0700"
  },
  "message": "[Bazel] Support generating a secondary cache (#1405)\n\nThis is a working solution for generating a separate Emscripten cache.\r\nNote that this requires an additional entry in the workspace as follows:\r\n```starlark\r\nload(\"@emsdk//:emscripten_cache.bzl\", emsdk_emscripten_cache \u003d \"emscripten_cache\")\r\nemsdk_emscripten_cache()\r\n```\r\nWhen used like this, the default Emscripten cache will be used. However,\r\nif the entry is as follows:\r\n```starlark\r\nload(\"@emsdk//:emscripten_cache.bzl\", emsdk_emscripten_cache \u003d \"emscripten_cache\")\r\nemsdk_emscripten_cache(flags \u003d [\"--lto\"])\r\n```\r\nThen embuilder will be called to build all system libraries and ports\r\n(i.e., the `ALL` option to embuilder) with the LTO option enabled. This\r\ncan take awhile, so I have also made possible to specify which libraries\r\nyou want to build explicitly:\r\n```starlark\r\nload(\"@emsdk//:emscripten_cache.bzl\", emsdk_emscripten_cache \u003d \"emscripten_cache\")\r\nemsdk_emscripten_cache(\r\n    flags \u003d [\"--lto\"],\r\n    libraries \u003d [\r\n        \"crtbegin\",\r\n        \"libprintf_long_double-debug\",\r\n        \"libstubs-debug\",\r\n        \"libnoexit\",\r\n        \"libc-debug\",\r\n        \"libdlmalloc\",\r\n        \"libcompiler_rt\",\r\n        \"libc++-noexcept\",\r\n        \"libc++abi-debug-noexcept\",\r\n        \"libsockets\"\r\n    ]\r\n)\r\n```\r\n\r\nResolves #807, resolves #971, resolves #1099, resolves #1362, resolves\r\n#1401",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2fd291c328a2815ab676ff52f7d04eb1485f20c7",
      "old_mode": 33188,
      "old_path": "bazel/README.md",
      "new_id": "ce8d210b78e86eaee7f7214249ced36916b9ca61",
      "new_mode": 33188,
      "new_path": "bazel/README.md"
    },
    {
      "type": "modify",
      "old_id": "6d369453caf1ef486af08b57fd6edc4ff9f04ea8",
      "old_mode": 33188,
      "old_path": "bazel/emscripten_deps.bzl",
      "new_id": "16fd8ee1c6b7740f4779aa3287d9f7699707e8fb",
      "new_mode": 33188,
      "new_path": "bazel/emscripten_deps.bzl"
    },
    {
      "type": "modify",
      "old_id": "fb8a6c1b2ef9bd82e8b3e4dcf12df0ade95f405f",
      "old_mode": 33188,
      "old_path": "bazel/emscripten_toolchain/BUILD.bazel",
      "new_id": "3cd086064ec71098be7257a90209ca6920c02c54",
      "new_mode": 33188,
      "new_path": "bazel/emscripten_toolchain/BUILD.bazel"
    },
    {
      "type": "rename",
      "old_id": "648a8fef208edee1ad48d4dd794e4c691efed61d",
      "old_mode": 33188,
      "old_path": "bazel/emscripten_toolchain/emscripten_config",
      "new_id": "648a8fef208edee1ad48d4dd794e4c691efed61d",
      "new_mode": 33188,
      "new_path": "bazel/emscripten_toolchain/default_config",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fbd75a7ea77f755203356c737f8844a39b23b7d9",
      "new_mode": 33188,
      "new_path": "bazel/test_secondary_lto_cache/.bazelrc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9d50f0bb1e443485cb05a4448a334ca978bec242",
      "new_mode": 33188,
      "new_path": "bazel/test_secondary_lto_cache/.gitignore"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f364f3778fcaf8457acfba6ee67fcb58330be0b1",
      "new_mode": 33188,
      "new_path": "bazel/test_secondary_lto_cache/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7f51cebf451c7dadbf694d843696b98f0f0f8eaf",
      "new_mode": 33188,
      "new_path": "bazel/test_secondary_lto_cache/MODULE.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d0bdd3b4c04431ed77d0a818879c414b50a41c3d",
      "new_mode": 33188,
      "new_path": "bazel/test_secondary_lto_cache/WORKSPACE"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ee72c53171df0fe66056886547c7a4dfac839d5a",
      "new_mode": 33188,
      "new_path": "bazel/test_secondary_lto_cache/hello-world.cc"
    },
    {
      "type": "modify",
      "old_id": "6d50b3d3d512244abf1bd09a95817060a9fbefeb",
      "old_mode": 33188,
      "old_path": "bazel/toolchains.bzl",
      "new_id": "ae71413dfdd9ea4096ecd98a4577cca22e084973",
      "new_mode": 33188,
      "new_path": "bazel/toolchains.bzl"
    },
    {
      "type": "modify",
      "old_id": "b417262e27e2f144044ad488dd0c04df0094d599",
      "old_mode": 33188,
      "old_path": "test/test_bazel.ps1",
      "new_id": "5c20a152513470e7133fba973a38a782680d46bb",
      "new_mode": 33188,
      "new_path": "test/test_bazel.ps1"
    },
    {
      "type": "modify",
      "old_id": "51500acee01dfc1eebc7f30dfe1882c97265f8c0",
      "old_mode": 33261,
      "old_path": "test/test_bazel.sh",
      "new_id": "b99a0298965ddc7c5df1e10559d85186480ca324",
      "new_mode": 33261,
      "new_path": "test/test_bazel.sh"
    },
    {
      "type": "modify",
      "old_id": "fa311036320fadc82871d540190bb63ea68ecba2",
      "old_mode": 33261,
      "old_path": "test/test_bazel_mac.sh",
      "new_id": "2b596ee4f711e6cc782dc7444f51a77aa8efc860",
      "new_mode": 33261,
      "new_path": "test/test_bazel_mac.sh"
    }
  ]
}
