)]}'
{
  "commit": "d2415b6045c470a8cad449167a3a4fdc21bdfb90",
  "tree": "4cc3ed5768889151ef7f7d57ca5be972442450e5",
  "parents": [
    "e7f8ce2e4d2831a48759fcb801031bbb9bbe26fc"
  ],
  "author": {
    "name": "Alon Zakai",
    "email": "azakai@google.com",
    "time": "Wed May 06 17:12:20 2026"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed May 06 17:12:20 2026"
  },
  "message": "[NFC] Use pascal-style string storage for IString/Name (#8662)\n\nPreviously our interned strings were std::string_view, which means a\npointer and a size. Instead, store the size as a header alongside the\nstring data. As we have many views on the same data, this reduces\nmemory usage, basically anywhere we use a Name, which is every\nCall, GlobalSet, Load, etc.\n\nI see a 5% RAM reduction. Changes to instructions, branches, and\nwall time are very very small.\n\nThis removes the \"reuse\" optimization where we could reuse a\nstring from the input. That was error-prone and a bad idea anyhow.\nIn practice, it might have helped a little, but this new model is\nsimpler and saves a lot more. (We can\u0027t reuse now since we need to convert\nto pascal-style storage anyhow.)",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "61fc137f5a88dec90a2faebb1496d0f635d1f484",
      "old_mode": 33188,
      "old_path": "src/ir/names.h",
      "new_id": "083a54f0ef5e1c8d8010229c6879b299cf2dd51e",
      "new_mode": 33188,
      "new_path": "src/ir/names.h"
    },
    {
      "type": "modify",
      "old_id": "3e1213cd05b9e52d3a0962e81acaa65c84e7aeaf",
      "old_mode": 33188,
      "old_path": "src/ir/possible-contents.cpp",
      "new_id": "4b76f4678259e499bdfb62c7904e353c85527f7e",
      "new_mode": 33188,
      "new_path": "src/ir/possible-contents.cpp"
    },
    {
      "type": "modify",
      "old_id": "eac35a543c567dc8009a9c3b5f35755968da1f38",
      "old_mode": 33188,
      "old_path": "src/parser/contexts.h",
      "new_id": "06a515e32d1a970134cf2492081fa5923b87de14",
      "new_mode": 33188,
      "new_path": "src/parser/contexts.h"
    },
    {
      "type": "modify",
      "old_id": "a8410a24c05895e2d11c2702a4234b0cff82c52d",
      "old_mode": 33188,
      "old_path": "src/passes/Asyncify.cpp",
      "new_id": "feea9adf7c2da532943c15ed38b1ed8a8a249fb9",
      "new_mode": 33188,
      "new_path": "src/passes/Asyncify.cpp"
    },
    {
      "type": "modify",
      "old_id": "759ef7cc2873a453821e5f52dbaa4d349d92cb1d",
      "old_mode": 33188,
      "old_path": "src/passes/J2CLOpts.cpp",
      "new_id": "0474a31ef7426b0bf558e306246420710c220713",
      "new_mode": 33188,
      "new_path": "src/passes/J2CLOpts.cpp"
    },
    {
      "type": "modify",
      "old_id": "882f9a8b5d907f221386377f142c5575889e36bb",
      "old_mode": 33188,
      "old_path": "src/passes/MinifyImportsAndExports.cpp",
      "new_id": "8c43ee694c353b3e512dba6513a918f28a0d0275",
      "new_mode": 33188,
      "new_path": "src/passes/MinifyImportsAndExports.cpp"
    },
    {
      "type": "modify",
      "old_id": "02e555a8c4b0d70661be9e9a4ec72749c300c5d4",
      "old_mode": 33188,
      "old_path": "src/passes/Print.cpp",
      "new_id": "d560ca495474377c5742c48535621fb59fc37e7e",
      "new_mode": 33188,
      "new_path": "src/passes/Print.cpp"
    },
    {
      "type": "modify",
      "old_id": "cd3a8ffabb663d96abcbd9b735468f916808b9ee",
      "old_mode": 33188,
      "old_path": "src/passes/StringLifting.cpp",
      "new_id": "ac15d2a8614875c2c0345b3a61457394f46da522",
      "new_mode": 33188,
      "new_path": "src/passes/StringLifting.cpp"
    },
    {
      "type": "modify",
      "old_id": "b4641bda134550038bc3c4f44708ed2f69e83edd",
      "old_mode": 33188,
      "old_path": "src/passes/StringLowering.cpp",
      "new_id": "bd753efaf918520d0ca4aa4e471d4b5f72a148ed",
      "new_mode": 33188,
      "new_path": "src/passes/StringLowering.cpp"
    },
    {
      "type": "modify",
      "old_id": "60c8b59be6d3f687bd3764969de5f72f17f6792d",
      "old_mode": 33188,
      "old_path": "src/support/istring.cpp",
      "new_id": "d254dcc4cff1e48280d3eec12656ee8e85f224ec",
      "new_mode": 33188,
      "new_path": "src/support/istring.cpp"
    },
    {
      "type": "modify",
      "old_id": "dad20b8fb005e73ace5bf20e56fe75bbfe62fabc",
      "old_mode": 33188,
      "old_path": "src/support/istring.h",
      "new_id": "a567eb82f1217120fc6229e0767aaa04eb933e57",
      "new_mode": 33188,
      "new_path": "src/support/istring.h"
    },
    {
      "type": "modify",
      "old_id": "dd94719d47d9b3d26a52c012cba9582d5e2e58c3",
      "old_mode": 33188,
      "old_path": "src/support/json.cpp",
      "new_id": "ff39331741092224254d530bf7af2990c5f55d85",
      "new_mode": 33188,
      "new_path": "src/support/json.cpp"
    },
    {
      "type": "modify",
      "old_id": "4c599defca0f2e42b9714703985209545a99bc8f",
      "old_mode": 33188,
      "old_path": "src/support/name.cpp",
      "new_id": "34b7546fba945f50d1de7a358dc97d82df409659",
      "new_mode": 33188,
      "new_path": "src/support/name.cpp"
    },
    {
      "type": "modify",
      "old_id": "8e3f7a291d5657432062a367d952f5a333e8d1e7",
      "old_mode": 33188,
      "old_path": "src/support/name.h",
      "new_id": "d6c71f732c9013a78e720193d80383859cde57a6",
      "new_mode": 33188,
      "new_path": "src/support/name.h"
    },
    {
      "type": "modify",
      "old_id": "7717ec23811542419cff978857558cfc1c4eb524",
      "old_mode": 33188,
      "old_path": "src/tools/execution-results.h",
      "new_id": "09f7657ee962734c427f84aa78f25066a6cbcffd",
      "new_mode": 33188,
      "new_path": "src/tools/execution-results.h"
    },
    {
      "type": "modify",
      "old_id": "96b2063df4b3e0276e1caa9c4d786f1a6d5f87d1",
      "old_mode": 33188,
      "old_path": "src/tools/wasm-metadce.cpp",
      "new_id": "29bba15aaf89bb70d3dc6ae92fdda7c7dc258cf9",
      "new_mode": 33188,
      "new_path": "src/tools/wasm-metadce.cpp"
    },
    {
      "type": "modify",
      "old_id": "242442a1d8ad76c18e3dcf5dc4a74df8d88787d1",
      "old_mode": 33188,
      "old_path": "src/tools/wasm2c-wrapper.h",
      "new_id": "e39bf54a3d267913bb79a10d2f9f18d68c1fbc0a",
      "new_mode": 33188,
      "new_path": "src/tools/wasm2c-wrapper.h"
    },
    {
      "type": "modify",
      "old_id": "c018ca4484e9f8b8bb6c5146759ae0465e43f153",
      "old_mode": 33188,
      "old_path": "src/wasm-interpreter.h",
      "new_id": "447c22497d3c0f544f755212db6d03e1d44d2d94",
      "new_mode": 33188,
      "new_path": "src/wasm-interpreter.h"
    },
    {
      "type": "modify",
      "old_id": "2ee7975da1de7ca583c91e2bf7f65c63145bbfda",
      "old_mode": 33188,
      "old_path": "src/wasm/wasm-binary.cpp",
      "new_id": "2adb6ba83d40b77befec4747e2ab2eaca34deba4",
      "new_mode": 33188,
      "new_path": "src/wasm/wasm-binary.cpp"
    },
    {
      "type": "modify",
      "old_id": "08ac6e6e26e4b2555bd1977bb17bc29be0a0e256",
      "old_mode": 33188,
      "old_path": "src/wasm2js.h",
      "new_id": "5eb937b0f883b1364f352ace48eecf66d3b9d6a6",
      "new_mode": 33188,
      "new_path": "src/wasm2js.h"
    },
    {
      "type": "modify",
      "old_id": "254f7a38c9f63dfb23986ae69b17b6abd0688a8c",
      "old_mode": 33188,
      "old_path": "test/gtest/CMakeLists.txt",
      "new_id": "05ce44006a69d5c37b9d4d9ae03c16ad17a78d6a",
      "new_mode": 33188,
      "new_path": "test/gtest/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "18b99464cb3bb4f70b440d1b4c6dd77b58887b9d",
      "new_mode": 33188,
      "new_path": "test/gtest/istring.cpp"
    }
  ]
}
