)]}'
{
  "log": [
    {
      "commit": "59b2ed9725ba3ea2609533b9ce9c432f76671949",
      "tree": "f5746aa961add0e9c3df0617691fbab80e006358",
      "parents": [
        "059323d586bc66f5424828e9e94716fcde2497a3"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue Jun 02 19:57:02 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 02 19:57:53 2026"
      },
      "message": "Implement ToFlatProto for all C++ IR structs. Adds boilerplate serialization logic to convert IR AST nodes into the protobuf schema.\n\nThese methods are yet to be invoked in the top-level GenerateBindings call (in src_code_gen.cc), as such this CL is a no-op.\n\nTesting: The IR generation is testable by running `ir_from_cc_proto_test.rs`. `proto_from_cc` duplicates most of the setup logic from `json_from_cc` to decouple the (JSON/proto) test pipelines, which will be helpful as we deprecate the JSON IR.\nPiperOrigin-RevId: 925528978\n"
    },
    {
      "commit": "059323d586bc66f5424828e9e94716fcde2497a3",
      "tree": "198719d4a6d36688979ad450447e507a1fdbf7a0",
      "parents": [
        "9d2ff3f1d5b51ece33f327ad149e5fd9d40c86c5"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue Jun 02 18:02:02 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 02 18:03:22 2026"
      },
      "message": "Integrate LLVM at llvm/llvm-project@56c9a2c79666\n\nUpdates LLVM usage to match\n[56c9a2c79666](https://github.com/llvm/llvm-project/commit/56c9a2c79666)\n\nPiperOrigin-RevId: 925463577\n"
    },
    {
      "commit": "9d2ff3f1d5b51ece33f327ad149e5fd9d40c86c5",
      "tree": "9d990f9ab788f98b6981b387a3521afe4d3b8b7b",
      "parents": [
        "94ee198243fc404bc6899837a20907c68b4f9a8f"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue Jun 02 13:41:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 02 13:44:53 2026"
      },
      "message": "Move generated headers under `crubit/` subdirectory.\n\nIn the C++ build we add the `include/` directory to `-I` to give access\nto the generated headers. This caused issues with overlapping headers.\nFor example, a generated `time.h` would shadow the system header\n`time.h` preventing importing both. Solve this problem by moving our\nheaders under a `crubit` subdirectory, so `time.h` would be imported at\n`crubit/time.h`.\n\nPiperOrigin-RevId: 925318927\n"
    },
    {
      "commit": "94ee198243fc404bc6899837a20907c68b4f9a8f",
      "tree": "4a05692cae2ab73413d6449176efc77dea94e007",
      "parents": [
        "4d6c86a2f1b93a19adaabd7b772a0df9f9f7559a"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Mon Jun 01 21:40:31 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 01 21:41:20 2026"
      },
      "message": "Move JSON deserialization up to FFI boundary function in cc_api.\n\nThis is to decouple bindings generation logic from payload deserialization, which is now complicated by supporting two different formats.\n\nWe deserialize `ir` (json or proto) in the cc_api.rs instead of the inner generate_bindings/lib.rs implementation, at which point `generate_bindings` is set to receive an already deserialized IR. This does not break any tests as the IR stubs for these are deserialized during their setup phase.\n\nPiperOrigin-RevId: 924920640\n"
    },
    {
      "commit": "4d6c86a2f1b93a19adaabd7b772a0df9f9f7559a",
      "tree": "6ab4ab302cf73b9dd455f779badb047f5acc641c",
      "parents": [
        "a3cac54e1342be40567ce225015abf772a7517ab"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Mon Jun 01 18:49:38 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 01 18:50:23 2026"
      },
      "message": "assume_lifetimes: don\u0027t try to use `\u0027static` as a lifetime parameter.\n\nIf `\u0027static` *is* explicitly bound by an annotation, we should rename\nthe internal lifetime to static_0 (`test_binding_context_shadows_static`).\n\nPiperOrigin-RevId: 924830705\n"
    },
    {
      "commit": "a3cac54e1342be40567ce225015abf772a7517ab",
      "tree": "951844136026e804148cd49c6dba09a52a384fb0",
      "parents": [
        "7b96700dc1478faa4fb37f1d8789cf9614b3171b"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Mon Jun 01 17:48:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 01 17:49:51 2026"
      },
      "message": "cc_bindings_from_rs: fix nightly build breakage\n\nPiperOrigin-RevId: 924795333\n"
    },
    {
      "commit": "7b96700dc1478faa4fb37f1d8789cf9614b3171b",
      "tree": "369f4def35114a760aaa75603d6ebbfbea95636c",
      "parents": [
        "dcfea25b171296860455870b462364c5ab1b5734"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Mon Jun 01 16:35:31 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 01 16:36:08 2026"
      },
      "message": "Emit `rs_std::Tuple` in bridgeable locations.\n\nThis is gated behind a feature. It\u0027s a breaking change, so we\u0027ll need to migrate existing users before enabling the feature globally.\n\nWe do not turn `()` into `rs_std::Tuple` because these are not layout\ncompatible types. We\u0027d require a solution for ZST types to map these, so\nthe existing bridging to `std::tuple\u003c\u003e` is left where it is allowed.\n\nPiperOrigin-RevId: 924755435\n"
    },
    {
      "commit": "dcfea25b171296860455870b462364c5ab1b5734",
      "tree": "5e75550a6a45e44526233587d46cc90530346f5c",
      "parents": [
        "dfda3ae8d647b5cfd5d724c01c40c1f3712c01ef"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Mon Jun 01 14:49:12 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 01 14:50:18 2026"
      },
      "message": "Update compatibility for Rust stable 1.96.\n\nThis also soft removes support for 1.94. We\u0027re now checking for\nspecifically 1.95 instead of stable, so that we can distinguish 1.95\nfrom 1.96.\n\nPiperOrigin-RevId: 924706314\n"
    },
    {
      "commit": "dfda3ae8d647b5cfd5d724c01c40c1f3712c01ef",
      "tree": "d0406e618a65cd10bc9dcbc7ed942b54fad067fe",
      "parents": [
        "4ccd520aefa4310599b2b518507afb7706e57c63"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Sat May 30 02:10:42 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat May 30 02:11:31 2026"
      },
      "message": "Merge no_thunk_name_mangling into is_golden_test\n\nThis change merges the no_thunk_name_mangling behavior directly into is_golden_test.\n\nPiperOrigin-RevId: 923709004\n"
    },
    {
      "commit": "4ccd520aefa4310599b2b518507afb7706e57c63",
      "tree": "6421e25c60ed0d9ca3a3c729b17cb1a82ee5ab4f",
      "parents": [
        "5d42f43f32a08b1943051fbd260b7381a9b60d62"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Fri May 29 22:56:23 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 29 22:57:22 2026"
      },
      "message": "Fix overload conflict avoidance for `Index` / `IndexMut`.\n\nBefore this CL, only top-level types would be analyzed for potential\nconflicts (e.g. `usize` and `u64` may both map to the same C++ type).\nThis means that conflicts involving nested types may go unnoticed,\nleading to C++ compilation errors (e.g. when `(usize, bool)` and\n`(u64, bool)` tuple types both map to the same C++ type).\n\nThis CL fixes this:\n\n* The conflict avoidance code was moved into a small, separate crate\n  for additional encapsulation and unit test coverage.  In particular,\n  working with generic, impl-id-independent items makes unit testing\n  and implementation simpler.\n* The conflict avoidance code was made independent of `usize` / `isize`\n  (based on the concept of a \"preferred\" type).\n* Recursive destructuring of types has been added to the\n  `get_preferred_type` function\n\nPiperOrigin-RevId: 923641703\n"
    },
    {
      "commit": "5d42f43f32a08b1943051fbd260b7381a9b60d62",
      "tree": "0064c85288cb3c044cf2daf6be2dc0b257d45cc3",
      "parents": [
        "6428257492508cb21a1291898bdcb02e941d4c55"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Fri May 29 22:11:30 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 29 22:12:31 2026"
      },
      "message": "Support generic parameters in cpp_layout_equivalent\n\nThis change adds support for generic parameters to `crubit_annotate::cpp_layout_equivalent` in `cpp_api_from_rust`. This allows mapping Rust APIs that use generic types like `cc_std::unique_ptr` and `cc_std::optional` back into C++ by building on the existing `layout_equivalent` support.\n\n- Relaxed pointer restrictions for `cpp_layout_equivalent` in `format_type.rs` and `generate_function_thunk.rs`.\n- Added support for generic parameters in `format_type.rs` for `Legacy` types.\n- Fixed parameter conversion in thunks to read from pointer for non-pointers.\n- Added a test case in `bridging` directory.\n\nPiperOrigin-RevId: 923620036\n"
    },
    {
      "commit": "6428257492508cb21a1291898bdcb02e941d4c55",
      "tree": "4ca04ba647b7550792802a3f3b3f90dd695eb5e1",
      "parents": [
        "6f864d8373067441ff2037e7caf2b871af755f9b"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri May 29 20:26:25 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 29 20:27:26 2026"
      },
      "message": "Remove source location and feature list comments from cc_bindings_from_rs golden tests\n\nThis CL does two things:\n1. Adds the codegen logic to cc_bindings_from_rs to support the `is_golden_test` flag and act accordingly by not generating those noisy comments.\n2. Changes `cc_bindings_from_rs/test/golden/golden_test.bzl` to use the newly added `crubit_golden_flavor_transition`, which enables that build flag, which `cc_bindings_from_rs/bazel_support/cc_bindings_from_rust_rule.bzl` then acts on.\n\nPiperOrigin-RevId: 923573359\n"
    },
    {
      "commit": "6f864d8373067441ff2037e7caf2b871af755f9b",
      "tree": "bfae05546944f3eecc5143e29da45a78a67e3333",
      "parents": [
        "7e6f8e05a5691dc361f42ee8d040f7a9993a757a"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri May 29 19:34:11 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 29 19:34:53 2026"
      },
      "message": "Implement `useProtobufIR` feature flag.\n\nPiperOrigin-RevId: 923548672\n"
    },
    {
      "commit": "7e6f8e05a5691dc361f42ee8d040f7a9993a757a",
      "tree": "f3924d5fc91aa3709043486554eb6e1c6d2fc46c",
      "parents": [
        "732eebcc1baedf325760fef4ca746caa145faded"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri May 29 18:50:56 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 29 18:51:40 2026"
      },
      "message": "Standardize and apply the golden test flag across rs_bindings_from_cc tests.\n\nThis CL standardizes the `is_golden_test` generation toggle by propagating it to all `rs_bindings_from_cc` golden tests (including annotations, lifetmes, and nested item example test suites). This strips out source location noise and feature-list comments, preventing minor C++ code changes or target metadata shifts from breaking goldens via trivial comment mismatches.\nEND_PUBLIC\n\n\u003e AI disclaimer: I used AI to write this entire CL, but personally revised it extensively and made sure everything made sense to me and felt well-structured. I also used it to write the description, but then personally revised that as well (correcting several mistakes in the process).\n\nPiperOrigin-RevId: 923527489\n"
    },
    {
      "commit": "732eebcc1baedf325760fef4ca746caa145faded",
      "tree": "0df064e43297f52192a90d79bcf84df3e4c9a20b",
      "parents": [
        "098a108bb048cf076156c4d86c2d14ce61ac36b1"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Fri May 29 18:13:45 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 29 18:15:14 2026"
      },
      "message": "Implement `PartialEq` \u003d\u003e `operator\u003d\u003d` bindings.\n\nPiperOrigin-RevId: 923508662\n"
    },
    {
      "commit": "098a108bb048cf076156c4d86c2d14ce61ac36b1",
      "tree": "830d2c2163809989d7d8589fadcf113cbdc53d2f",
      "parents": [
        "28bee61faf9245d0593b53876239eb3ddb81ead8"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Fri May 29 14:34:25 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 29 14:35:20 2026"
      },
      "message": "Generate a unique cargo project per build config.\n\nPreviously, we would write Cargo.toml and lib.rs directly in the\ndeps_dir. This would cause clobbering issues if multiple projects are\ncalled with the subcommand. We fix the issue by embedding each project\nin their own `lib_name-\u003cmetadata-hash\u003e` directory. The outputs of that\nproject remain the same because we manually specify the  target\ndirectory and package name, but the files themselves will no longer be\nclobberd by independent invocations of the tool.\n\nPiperOrigin-RevId: 923404658\n"
    },
    {
      "commit": "28bee61faf9245d0593b53876239eb3ddb81ead8",
      "tree": "a9773bbf989be7f97a38023729a9aa4a9d4b576d",
      "parents": [
        "84d3c758a879d4b10dcb90b3c21437f212348de6"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Thu May 28 22:34:55 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 28 22:35:27 2026"
      },
      "message": "Allow public paths to type aliases whose generics don\u0027t match.\n\nPreviously we wouldn\u0027t consider this a path at all. Relax that to\nconsider it a path, but distinct from it\u0027s underlying type.\n\nPiperOrigin-RevId: 923013279\n"
    },
    {
      "commit": "84d3c758a879d4b10dcb90b3c21437f212348de6",
      "tree": "08a5d4a3a5c7c2171e078269366edab50f46d9d4",
      "parents": [
        "2e6d4f3a6c7d19b1a9f27324351aac304b6b1a74"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Thu May 28 21:30:26 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 28 21:31:12 2026"
      },
      "message": "Introduce LayoutCompatTuple crubit feature.\n\nThis feature will be used to migrate existing targets off of bridging\n`std::tuple` and onto `rs_std::Tuple`.\n\nPiperOrigin-RevId: 922978631\n"
    },
    {
      "commit": "2e6d4f3a6c7d19b1a9f27324351aac304b6b1a74",
      "tree": "14b1383501eb27325973a964ef0ddb14fa36b224",
      "parents": [
        "ad5bc2f40685719e502563ef4d7f006b70b3682c"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu May 28 19:21:02 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 28 19:21:45 2026"
      },
      "message": "Introduce a proto definition of the Clang-based IR and a feature flag gating its use.\n\nThis change is made as part of an effort to move to a more compiler-agnostic IR format in place of our current JSON IR for the cpp-to-rust direction of Crubit. This will enable open-source users to use any version of Clang (or other compilers) and construct middleware to bridge this IR if they would like.\n\nThe frontend and backend currently do not have the neccessary serialization/deserialization to construct and use the proto IR, hence we still default to the JSON IR (no-op change).\n\nPiperOrigin-RevId: 922909854\n"
    },
    {
      "commit": "ad5bc2f40685719e502563ef4d7f006b70b3682c",
      "tree": "5772c10aad79bd0454d5e531f117539bd12a28ed",
      "parents": [
        "1abf594c6a937512ba9a4bfdaeaeb31417cdb0a9"
      ],
      "author": {
        "name": "Michael VanBemmel",
        "email": "mvanbem@google.com",
        "time": "Thu May 28 18:29:43 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 28 18:32:13 2026"
      },
      "message": "Deny `rust-2024-compatibility` lints while we prepare to switch to edition 2024\n\nThis would have caught some recent changes that introduced new compatibility problems.\n\nThere is one manual change in `rs_bindings_from_cc/generate_bindings/lib.rs`. Everything else is an updated golden test.\n\nPiperOrigin-RevId: 922883000\n"
    },
    {
      "commit": "1abf594c6a937512ba9a4bfdaeaeb31417cdb0a9",
      "tree": "5415a871e244c023d2625aac98e985d32607028b",
      "parents": [
        "d2018f0f9bc781d6512cfc583c7e44d2628e68d1"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu May 28 18:27:43 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 28 18:28:21 2026"
      },
      "message": "Add `Future` to the list of supported Rust traits for cc_bindings_from_rs\n\nMore work needs to be done on getting `poll` methods to generate.\n\nPiperOrigin-RevId: 922881890\n"
    },
    {
      "commit": "d2018f0f9bc781d6512cfc583c7e44d2628e68d1",
      "tree": "117d15606dc8e3a57805c5d38490fead14b4734f",
      "parents": [
        "00a862d06d7aa576c4a5318e9603f7f733f672d6"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Thu May 28 16:46:55 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 28 16:47:51 2026"
      },
      "message": "assume_lifetimes: lifetime names cannot be keywords. Make sure to use `make_rs_ident` on lifetime names, still explicitly allowing `\u0027static` and `\u0027_`.\n\nRaw lifetimes were added in the 2021 edition (https://doc.rust-lang.org/edition-guide/rust-2021/raw-lifetimes.html). This CL bumps the edition to 2021 in compile_rust.bzl.\n\nPiperOrigin-RevId: 922825699\n"
    },
    {
      "commit": "00a862d06d7aa576c4a5318e9603f7f733f672d6",
      "tree": "6a10f22a4c8c13eb4b61007c7d82b253b3153441",
      "parents": [
        "329cbdf629c296e3c9b746a5d34aab9f5b6ce9d1"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Thu May 28 16:22:04 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 28 16:23:00 2026"
      },
      "message": "Add string_view convenience impls and docs\n\nPiperOrigin-RevId: 922813180\n"
    },
    {
      "commit": "329cbdf629c296e3c9b746a5d34aab9f5b6ce9d1",
      "tree": "9487eba70d4b5a42aa660b10e97c5f400776fe17",
      "parents": [
        "6f7838fdeac288f6800f69ebf373d6d79ff3fee1",
        "975e1311c8d9b7eac61bdeec06ecd2b7654ba929"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 28 15:10:26 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 28 15:10:26 2026"
      },
      "message": "Merge pull request #1020 from arpitjain099:ci/add-permissions\n\nPiperOrigin-RevId: 922779375\n"
    },
    {
      "commit": "6f7838fdeac288f6800f69ebf373d6d79ff3fee1",
      "tree": "af5953009a55f4a0aebe66ca675889f45784b40e",
      "parents": [
        "463d240b185959a0cf4b9fed40b7b89892e2525d"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu May 28 13:32:10 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 28 13:33:18 2026"
      },
      "message": "Replace `Environment` enum with an equivalent boolean flag.\n\nThis enum was used to control whether source location information should be included in doc comments. This CL replaces the enum with a more direct boolean flag following the refactor (of the FFI call) to use protobufs, which demands an otherwise unused unspecified variant.\n\nPiperOrigin-RevId: 922738061\n"
    },
    {
      "commit": "463d240b185959a0cf4b9fed40b7b89892e2525d",
      "tree": "69857bace08eedfd462bf20fe0257e97213864a0",
      "parents": [
        "18c47c7981ee3548166f5a61b46c91239546c72c"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Thu May 28 01:22:54 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 28 01:23:33 2026"
      },
      "message": "rs_bindings_from_cc: add flag --template_blocklist_path_regex\n\nThis flag is meant for globally configuring headers that we aren\u0027t\ninterested in generating bindings for. (The exact semantics of the\nflag aren\u0027t quite nailed down yet; we may still want to generate\n*some* bits from the excluded paths, and this CL doesn\u0027t deal with\nevery possible flavor of template.)\n\nThis will allow us to exclude template instantiations for things like\ntype_traits, or for standard library templates that we special-case.\nEarly experiments show that even with a simple blocklist, we get good\nresults:\n\nLine deltas cc/rs (blocklist) vs cc/rs (no blocklist):\n  * assume_lifetimes/string_view: 619/1588 vs 992/2594\n  * consume_absl/absl_functional.golden.cc vs 695/2216 vs 3781/10645\n  * golden/callables_rs_api.rs 694/1997 vs 3780/9618\n  * golden/composable_bridging_rs_api.rs 811/2373 vs 3897/9994\n  * golden/templates_rs_api.rs 230/582 vs 230/582 (expected)\n  * golden/templates_source_order_rs_api.rs 170/590 vs 170/590 (expected)\n\nPiperOrigin-RevId: 922456423\n"
    },
    {
      "commit": "18c47c7981ee3548166f5a61b46c91239546c72c",
      "tree": "776d272ce904553a1440bf94e753854294c06e04",
      "parents": [
        "79e2c056a9bd5214cff98a3feba05656014ce167"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Thu May 28 01:13:58 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 28 01:14:49 2026"
      },
      "message": "Refactor `Index`/`IndexMut` support for reusability with other traits.\n\nThis refactoring helps with implementing `PartialEq` \u003d\u003e `operator\u003d\u003d`\nbindings in a follow-up.\n\nSummary of changes:\n\n* Rename `generate_index_impls` and various other parameter names,\n  variable names, etc to be independent from `Index` / `IndexMut`.\n* Make `generate_function` take an `TraitFnBindingsMode` argument that\n  explicitly says how to treat associated functions from a trait impl,\n  since `Index` / `IndexMut` (and other `operator`-mapped bindings) need\n  a slightly different treatment from the old behavior.\n* Reuse `generate_function` for generating `Index` / `IndexMut` bindings.\n  Benefits:\n    - `query_..._impls` no longer needs to take `to_ref` nor\n      `method_this_qualifier` parameters\n    - `query_..._impls` is simplified - no need to call\n      `liberate_and_deanonymize_late_bound_regions` nor\n      `try_normalize`\n    - Improved bindings - e.g. `operator[]` now has\n      `CRUBIT_LIFETIME_BOUND` attribute if appropriate.\n    - Additional argument types are correctly handled, which makes\n      `PartialEq` adoption easier in a follow-up CL\n\nPiperOrigin-RevId: 922452948\n"
    },
    {
      "commit": "79e2c056a9bd5214cff98a3feba05656014ce167",
      "tree": "b5c1f17f12f548e7b976ffc4fd870430192cedfd",
      "parents": [
        "3ff5319d7c81b5d7f219b22a1e6702f7a407fd57"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Wed May 27 20:07:32 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 27 20:11:49 2026"
      },
      "message": "Add specializations db method.\n\nSpecializations calculates all specializations provided by the current\ncrate and caches them. It will be used in type formatting to determine\nwhen a type is a specialization and shouldn\u0027t be handled normally.\n\nPiperOrigin-RevId: 922303201\n"
    },
    {
      "commit": "3ff5319d7c81b5d7f219b22a1e6702f7a407fd57",
      "tree": "fe84dec0ff040cf7d64bf4ce0a892fbf88086408",
      "parents": [
        "1d10e5e46e93fcfa6ea532cd21fbd795721e8b7b"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed May 27 16:21:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 27 16:22:20 2026"
      },
      "message": "Integrate LLVM at llvm/llvm-project@a225aafbd1a4\n\nUpdates LLVM usage to match\n[a225aafbd1a4](https://github.com/llvm/llvm-project/commit/a225aafbd1a4)\n\nPiperOrigin-RevId: 922174432\n"
    },
    {
      "commit": "1d10e5e46e93fcfa6ea532cd21fbd795721e8b7b",
      "tree": "b32a0294163b85853dbbc41e7de501a27c3a49e1",
      "parents": [
        "4c1f526615a35f0fe4846ecfd9ab2d6c74d74d64"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Wed May 27 15:25:53 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 27 15:26:47 2026"
      },
      "message": "Check for tuple kind manually.\n\nThe helper `opt_tuple_fields` was introduced recently enough that it\nisn\u0027t available on stable `1.95`. Rather than `rustversion` it, we can\nprovide a single helper that works everywhere.\n\nPiperOrigin-RevId: 922146366\n"
    },
    {
      "commit": "4c1f526615a35f0fe4846ecfd9ab2d6c74d74d64",
      "tree": "753373d68cd7742005516d39acf39360a347768d",
      "parents": [
        "cccbf4049c09b5f426c10212f4dd665de8967429"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Wed May 27 14:18:16 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 27 14:19:09 2026"
      },
      "message": "Introduce specialization crubit attribute.\n\nThis annotation will be used to mark types that specialize a C++ generic\ntype. Imagine types such as `cc_std::vector\u003cT\u003e` or `cc_std::optional\u003cT\u003e`\nthat we want to bind back to their generic C++ types `std::vector\u003cT\u003e` and\n`std::optional\u003cT\u003e`.\n\nPiperOrigin-RevId: 922113644\n"
    },
    {
      "commit": "cccbf4049c09b5f426c10212f4dd665de8967429",
      "tree": "08ad283d03eaf3cf69165d846d7a39f2fef97519",
      "parents": [
        "d07631b082dfefe7e1a3d285c01204f228a849f2"
      ],
      "author": {
        "name": "Andreas C. Osowski",
        "email": "qwf@google.com",
        "time": "Wed May 27 08:19:42 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 27 08:20:53 2026"
      },
      "message": "Fix Crubit issue where friend functions declared in a class and then redefined outside are not imported correctly.\n\nPreviously, Crubit would try to import these functions via FriendDeclImporter as children of the class, and might also skip them when processing the outside definition due to canonicalization rules.\n\nThis change:\n1. Skips importing friend declarations in FriendDeclImporter if they are redeclared outside the class.\n2. Modifies CanonicalizeDecl to prefer the outside definition as the canonical one if the first declaration was inside a record. This ensures it is imported as a top-level free function.\n\nThis ensures that friend functions redefined outside are imported as normal top-level free functions.\n\nPiperOrigin-RevId: 921962869\n"
    },
    {
      "commit": "d07631b082dfefe7e1a3d285c01204f228a849f2",
      "tree": "4e13601adf002894be150663220fb5e700c8196e",
      "parents": [
        "81748b7aca1be527ffbdb592483bec6e103a114a"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue May 26 21:23:02 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 26 21:23:30 2026"
      },
      "message": "Refactor `GenerateBindingsImpl()` to serialize the GenerateBindingsRequest/Response protos through the FFI boundary.\n\nPiperOrigin-RevId: 921680560\n"
    },
    {
      "commit": "81748b7aca1be527ffbdb592483bec6e103a114a",
      "tree": "039e91296bbebe11afa46b24e693dab1f8f3b42a",
      "parents": [
        "d64cca08029a3fcecec8b87147d5b4f7d4b8134b"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue May 26 20:44:11 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 26 20:48:50 2026"
      },
      "message": "API Implementation for rs_std::Tuple.\n\nrs_std::Tuple supports conversion from and to std::tuple, deferring more\nin-depth functionality to std::tuple. Conversion is only supported if every underlying type supports a C++ move (see HasNoDefault for an example where that is not the case). I couldn\u0027t find a way to do the conversion that compiles with an immovable type, and I would love one if you have one.\nPiperOrigin-RevId: 921658872\n"
    },
    {
      "commit": "d64cca08029a3fcecec8b87147d5b4f7d4b8134b",
      "tree": "cb332ee0804ddfb5a629a37933c4ae849aa22fcb",
      "parents": [
        "10ff752ed872276789576de06a10befc187d5e2d"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Sat May 23 00:32:59 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat May 23 00:33:38 2026"
      },
      "message": "Restructure template specialization to introduce Tuples.\n\nTuples break the previous status quo since they are not enums and not\nADTs. Introducing template specializations for them requires a slew of\nchanges across the codebase to accomodate these differences. This CL\ncontains all of those changes, but none of the actual Tuple\nfunctionality. In it\u0027s place an inert `rs_std::Tuple` is emitted that\ncan\u0027t do anything yet. A followup CL fleshes out the actual API with\nfunctionality.\n\nPiperOrigin-RevId: 919936517\n"
    },
    {
      "commit": "10ff752ed872276789576de06a10befc187d5e2d",
      "tree": "bdc5223281cd50fa5e0c69df072ecef9eb1fc997",
      "parents": [
        "e52d08d3feb106ffff03fed0606879265eeeab2f"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Fri May 22 22:38:44 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 22 22:39:16 2026"
      },
      "message": "Fixes in preparation for stdlib traits.\n\n* Associated types need to check for additional srcs, so we don\u0027t bind them.\n* Only bind stable lookup trait methods.\n\nPiperOrigin-RevId: 919892094\n"
    },
    {
      "commit": "e52d08d3feb106ffff03fed0606879265eeeab2f",
      "tree": "626e2b81c02919ac1841891612751edac54d6434",
      "parents": [
        "90eb50a64dc4a22f5a2b246859830822b3e95314"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Fri May 22 22:28:33 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 22 22:29:16 2026"
      },
      "message": "Check for canonical name earlier in adt_needs_bindings.\n\nPiperOrigin-RevId: 919887152\n"
    },
    {
      "commit": "90eb50a64dc4a22f5a2b246859830822b3e95314",
      "tree": "2015f20b98c3bfd7e67479aaee2fa60701672ed8",
      "parents": [
        "2304ae847bfadd123a2757bfe70e605679ae5403"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri May 22 10:05:38 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 22 10:06:37 2026"
      },
      "message": "Support accepting non-Rust movable C++ types as constructors in Rust functions.\n\nPiperOrigin-RevId: 919565741\n"
    },
    {
      "commit": "2304ae847bfadd123a2757bfe70e605679ae5403",
      "tree": "8e292fb3d00ad65b5bb8b1045a06a4d1a0cb814a",
      "parents": [
        "87a362624dfb0bc2e1a6ff2742fd84099bc57105"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Thu May 21 19:13:56 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 21 19:14:56 2026"
      },
      "message": "Fix `Unable to get size from normalized type constant` panic.\n\nPiperOrigin-RevId: 919187094\n"
    },
    {
      "commit": "87a362624dfb0bc2e1a6ff2742fd84099bc57105",
      "tree": "c9268fc26ea0d3a3e17ede73a8d937570d59d66f",
      "parents": [
        "3ce87175c2158ac9982c2858ea2235ff465e1656"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Thu May 21 18:59:19 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 21 19:00:15 2026"
      },
      "message": "Use `ABSL_CHECK` instead of `CHECK` - round 2.\n\nThe previous CL missed that some sources still used `CHECK_LE`.\n\nPiperOrigin-RevId: 919178976\n"
    },
    {
      "commit": "3ce87175c2158ac9982c2858ea2235ff465e1656",
      "tree": "bfbcd07965468e7ef91490ffeea20b851421c06e",
      "parents": [
        "1d5baf6837c411692153414dd9b029a97de5d77a"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Thu May 21 18:51:59 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 21 18:52:49 2026"
      },
      "message": "Add standard library bindings in the subcommand.\n\nLookup the sysroot from rustc and use that to find the rmetas for the\nstandard library. Generate bindings to those standard library metas and\npass them to other crates in the graph.\n\nPiperOrigin-RevId: 919174884\n"
    },
    {
      "commit": "1d5baf6837c411692153414dd9b029a97de5d77a",
      "tree": "f84e798737eb7e2323b40ee93b46d1e5873528a7",
      "parents": [
        "a79b488bbfcb712d776e3a90de911f9cd47e15a2",
        "0fe11d4acb1ebfdd52e179a291d1deecb9c9dd27"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 21 18:12:29 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 21 18:12:29 2026"
      },
      "message": "Merge pull request #1059 from google:ffi_11-llp64\n\nPiperOrigin-RevId: 919151747\n"
    },
    {
      "commit": "a79b488bbfcb712d776e3a90de911f9cd47e15a2",
      "tree": "cefb97a09bf56059b72073e170378502754f610c",
      "parents": [
        "ecd994456d9352084783fa941939ffd35c35ab03"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Thu May 21 17:38:07 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 21 17:38:45 2026"
      },
      "message": "Avoid normalizing opaque types in function signatures.\n\nIf we normalize opaque types, it changes the semantics of our generated functions\nand causes compilation errors, which we do not want.\n\nPiperOrigin-RevId: 919132463\n"
    },
    {
      "commit": "ecd994456d9352084783fa941939ffd35c35ab03",
      "tree": "acd3dc7f0e7ba435533403b907488fd8f3945ac2",
      "parents": [
        "1dc1846cace923ba980882f27778aa281f43ca1f"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu May 21 16:02:49 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 21 16:04:17 2026"
      },
      "message": "Clean up DynFuture\n\nThis fixes minor typos, stale comments, and adjusts some import style choices.\n\nPiperOrigin-RevId: 919081030\n"
    },
    {
      "commit": "0fe11d4acb1ebfdd52e179a291d1deecb9c9dd27",
      "tree": "a85262c30d5dda582414f51ccdb68e23f8c0d1cb",
      "parents": [
        "ad4111fdc6136000da67d4854ad4060c638da761"
      ],
      "author": {
        "name": "Michael VanBemmel",
        "email": "mvanbem@google.com",
        "time": "Wed May 20 21:29:36 2026"
      },
      "committer": {
        "name": "Michael VanBemmel",
        "email": "mvanbem@google.com",
        "time": "Wed May 20 21:29:36 2026"
      },
      "message": "Fix `ffi_11` LLP64/Windows support\n\nThe newtype macros for `i32` and `u32` had some incorrect and missing\nconversions.\n\nThis change makes the `ffi_11` crate build successfully for\nme on Windows with:\n\n- Today\u0027s Rust `nightly-x86_64-pc-windows-msvc` toolchain, version\n  `1.97.0-nightly (e50aa6fba 2026-05-19)`\n- MSVC v143 - VS 2022 C++ x64/x86 build tools\n"
    },
    {
      "commit": "1dc1846cace923ba980882f27778aa281f43ca1f",
      "tree": "d556f9cf3de27f8bf0e610a36e25a881421187cc",
      "parents": [
        "d2609f870b3979935af3c55eeb0e665467f45603"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Wed May 20 21:27:20 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 20 21:28:15 2026"
      },
      "message": "cpp_api_from_rust Rust 1.94 compatibility.\n\nSimilar to 1.95 it\u0027s mostly tuning existing rustversion. We had to\nintroduce some new ones to cover the stable/nightly divide.\n\nTested by building cc_bindings_from_rs against 1.94, 1.95, and\nnightly-2026-05-18.\n\nPiperOrigin-RevId: 918653613\n"
    },
    {
      "commit": "d2609f870b3979935af3c55eeb0e665467f45603",
      "tree": "760e6c205f9f8953b8ed58aab2267740d0c4365e",
      "parents": [
        "ad4111fdc6136000da67d4854ad4060c638da761"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed May 20 21:20:06 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 20 21:23:35 2026"
      },
      "message": "Remove `fmt` feature as launched\n\nIt\u0027s worked!\n\nPiperOrigin-RevId: 918650028\n"
    },
    {
      "commit": "ad4111fdc6136000da67d4854ad4060c638da761",
      "tree": "9315b5670d7668ac767c53090a7b29ac80aec316",
      "parents": [
        "53e1942512ddc95e61d67b085b25e3d3895fcd45"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed May 20 20:13:17 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 20 20:14:11 2026"
      },
      "message": "Delete Callables feature gate\n\nThe callables feature has been rolled out, so this is no longer necessary.\n\nPiperOrigin-RevId: 918614281\n"
    },
    {
      "commit": "53e1942512ddc95e61d67b085b25e3d3895fcd45",
      "tree": "9aae2cba6646114ad06387d86002653d2f429042",
      "parents": [
        "4da611b98500bd820cc6835193c3bb729e994a2c"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Wed May 20 17:39:33 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 20 17:40:39 2026"
      },
      "message": "Remove hack for status additional sources.\n\nWe now properly pass in a list of files to ignore symbols from, so we no\nlonger need the hardcoded check.\n\nPiperOrigin-RevId: 918529566\n"
    },
    {
      "commit": "4da611b98500bd820cc6835193c3bb729e994a2c",
      "tree": "0982813871702452e7e58ef0acdaeaa048f2e244",
      "parents": [
        "27d30b94a41d878f0fef3e47017b83d5a213edd0"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed May 20 16:59:51 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 20 17:01:12 2026"
      },
      "message": "Fix generate_bindings_test by version splitting\n\nEvilAlias is now allowed, so changed the test to reflect that now.\n\nPiperOrigin-RevId: 918507941\n"
    },
    {
      "commit": "27d30b94a41d878f0fef3e47017b83d5a213edd0",
      "tree": "8f6485beef3182aa842af34a2cf2db0991b2a768",
      "parents": [
        "e7272e9269f0c736bc2ac151db1a2cca9a5b7351"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed May 20 14:50:57 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 20 14:52:50 2026"
      },
      "message": "Treat unstable fields as private in C++ bindings\n\n- Exclude unstable fields from C++ bindings and Rust offset_of! layout assertions by checking tcx.lookup_stability.\n- Prevents compilation failures when binding standard library structs (like std::io::Repeat) that have public unstable internal fields.\n\nPiperOrigin-RevId: 918447146\n"
    },
    {
      "commit": "e7272e9269f0c736bc2ac151db1a2cca9a5b7351",
      "tree": "d2b1438a1d709103ea4b0d0f38f24cf74f370301",
      "parents": [
        "b9c3e0abde6553b9e433ec8ce1ddea53fe81227b"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue May 19 22:26:59 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 19 22:27:55 2026"
      },
      "message": "Make DefId of has_* helpers optional.\n\nIn preparation for tuples, which lack a meaningful DefId, allow for\nchecking has_copy and has_move with an optional DefId.\n\nPiperOrigin-RevId: 918058904\n"
    },
    {
      "commit": "b9c3e0abde6553b9e433ec8ce1ddea53fe81227b",
      "tree": "15ce2428aa9139da6925998198fc23c7ea5fa33e",
      "parents": [
        "9242a61d42b4a13e0e734c89284c79163381a18d"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue May 19 21:38:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 19 21:39:14 2026"
      },
      "message": "Pass additional_rust_srcs list to cc_bindings_from_rs\n\nPiperOrigin-RevId: 918035272\n"
    },
    {
      "commit": "9242a61d42b4a13e0e734c89284c79163381a18d",
      "tree": "6a3fc80ecf1dd7f23bc81a969addb96dc166924c",
      "parents": [
        "61170d19cb22d6a8266b3aca60b120e118a935c7"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue May 19 19:52:13 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 19 19:52:48 2026"
      },
      "message": "Fix variant field layout issue in nightly.\n\nPiperOrigin-RevId: 917977579\n"
    },
    {
      "commit": "61170d19cb22d6a8266b3aca60b120e118a935c7",
      "tree": "0b22b317c1519717f83cd480c2bc820ea33d0b57",
      "parents": [
        "66877899043dd6ad9efdf66ec97cb0fa3ab10753"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue May 19 17:54:15 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 19 17:55:04 2026"
      },
      "message": "Initial async fn detection in cc_bindings_from_rs\n\nThis CL just adds support for detecting when an async fn is encountered. It doesn\u0027t act on it yet besides displaying a more specific error message to the user.\n\nPiperOrigin-RevId: 917919002\n"
    },
    {
      "commit": "66877899043dd6ad9efdf66ec97cb0fa3ab10753",
      "tree": "d5ade11802d0745c3ebed005857cdfc4bbc691b7",
      "parents": [
        "e1022f47d86be06b7b3c1a90dbc1d7d88a30f80c"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Mon May 18 23:30:42 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 18 23:31:21 2026"
      },
      "message": "Add tuple as an implicit dependency.\n\nPiperOrigin-RevId: 917488411\n"
    },
    {
      "commit": "e1022f47d86be06b7b3c1a90dbc1d7d88a30f80c",
      "tree": "06ce45aecb895739231b4ed0cb7ff52e1aabe884",
      "parents": [
        "b2537a78e786ef5e71351b454064eda704a3fa60"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Mon May 18 23:09:57 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 18 23:10:41 2026"
      },
      "message": "Move template instantiation to its own feature (:template_instantiation).\n\nThis change will allow us to bind to arbitrary template instantiations\nindependently of whether :experimental or :wrapper are enabled.\n\nPiperOrigin-RevId: 917478621\n"
    },
    {
      "commit": "b2537a78e786ef5e71351b454064eda704a3fa60",
      "tree": "22098cce84d12b56193bd07489023f456d0e03fe",
      "parents": [
        "7ef002fc07dbdf217fa984f31122896e03e63df5"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Mon May 18 20:19:04 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 18 20:20:12 2026"
      },
      "message": "Add build integration docs to sidebars.\n\nPiperOrigin-RevId: 917393056\n"
    },
    {
      "commit": "7ef002fc07dbdf217fa984f31122896e03e63df5",
      "tree": "81b60045e0418ea44502aabe2731048ffdf7d550",
      "parents": [
        "a123430d0bf3363db79a742948e2b3a552c428f7"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Mon May 18 18:45:01 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 18 18:45:45 2026"
      },
      "message": "Minor tweaks to make `BUILD.gn` files usable in Chromium.\n\nPiperOrigin-RevId: 917347844\n"
    },
    {
      "commit": "a123430d0bf3363db79a742948e2b3a552c428f7",
      "tree": "a72cc5af729a1f3f33f93ff896d5c3bb3b419c04",
      "parents": [
        "91e6002b9d9f61c29d602ffae69c628e326e5480"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Mon May 18 17:59:44 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 18 18:00:38 2026"
      },
      "message": "Recognize `Iterator` trait via `DefId`, not def path.\n\nIn Chromium `tcx.def_path_str` may return `core::iter::Iterator`\nand fail the old checks.  The `DefId`-based checks should be\nmore robust.\n\nPiperOrigin-RevId: 917324491\n"
    },
    {
      "commit": "91e6002b9d9f61c29d602ffae69c628e326e5480",
      "tree": "7d44cc2fb7ce4be8b3e8409f64b90c562036d83f",
      "parents": [
        "40a1588c4fd49607888801561cc280eee640abf1"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Mon May 18 17:44:48 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 18 17:45:30 2026"
      },
      "message": "Renamed corrosion fork branch to main\n\nI forgot git branch names don\u0027t have to line up and can be whatever.\n\nPiperOrigin-RevId: 917316323\n"
    },
    {
      "commit": "40a1588c4fd49607888801561cc280eee640abf1",
      "tree": "a6a2727e4273ace81d7e9a28aa3e53395e527504",
      "parents": [
        "14e96ba90fbdf445602861447db91d9adafe8321"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Mon May 18 16:48:25 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 18 16:50:27 2026"
      },
      "message": "CMake Documentation\n\nPiperOrigin-RevId: 917286140\n"
    },
    {
      "commit": "14e96ba90fbdf445602861447db91d9adafe8321",
      "tree": "af9f44a857486f9ffe80607b29b8335ec108bfd4",
      "parents": [
        "43ee94e7e253ec13e06fcd4766d96ea9dc22faa7"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri May 15 16:09:59 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 15 16:10:36 2026"
      },
      "message": "Define a protobuf model for `GenerateBindingsImpl()`\n\nThis incremental change aims to provide a safer, layout-consistent format when passing C++-derived IR across the FFI boundary.\n\nPiperOrigin-RevId: 916034617\n"
    },
    {
      "commit": "43ee94e7e253ec13e06fcd4766d96ea9dc22faa7",
      "tree": "8c05788e3464ea51c617afae7bdfe3f6b4c0c060",
      "parents": [
        "f4e58cfa5f89e4cb88f620edffd458a910c6d1c4"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri May 15 15:34:38 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 15 15:36:03 2026"
      },
      "message": "Enable the \"callables\" feature in Crubit\n\nThis also removes the `callables_supported` golden test, because after this change it will be functionally identical to the `callables` golden test.\n\nPiperOrigin-RevId: 916020503\n"
    },
    {
      "commit": "f4e58cfa5f89e4cb88f620edffd458a910c6d1c4",
      "tree": "2276218d675e85d7fb35d1d8dc46981e58d02ae4",
      "parents": [
        "14b789103637a946dc3a50c7dba36a301a9bd868",
        "f071a05d3f4553f29ddc15ef8e6c9157d87ed2ce"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 15 00:36:24 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 15 00:36:24 2026"
      },
      "message": "Merge pull request #1021 from arpitjain099:docs/typos\n\nPiperOrigin-RevId: 915703480\n"
    },
    {
      "commit": "14b789103637a946dc3a50c7dba36a301a9bd868",
      "tree": "7bc93d536ce982911347d1d2617faee1e8aaf8dc",
      "parents": [
        "747c23d03c30e1574b33d1488b20540eaeae8359",
        "279e605e9e6a9b8011df681c8116b872bba31ca2"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 14 22:21:56 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 14 22:21:56 2026"
      },
      "message": "Merge pull request #925 from thunderseethe:main\n\nPiperOrigin-RevId: 915643749\n"
    },
    {
      "commit": "747c23d03c30e1574b33d1488b20540eaeae8359",
      "tree": "5b9b367b8bb1458c23a72c28400652c5c51e3149",
      "parents": [
        "c37d63122fb7a5e82c8b8ece1977144941aa783f"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu May 14 20:26:45 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 14 20:31:09 2026"
      },
      "message": "Automatic code cleanup.\n\nPiperOrigin-RevId: 915586840\n"
    },
    {
      "commit": "c37d63122fb7a5e82c8b8ece1977144941aa783f",
      "tree": "c9a181b410c1077e014d5e2d35286ca676bff0f0",
      "parents": [
        "ff391f8226de5ded8dd8f9a5a899cdfcbca606af"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu May 14 18:43:36 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 14 18:44:38 2026"
      },
      "message": "Fix breakages with nightly rustc\n\nCaused by this upstream PR: https://github.com/rust-lang/rust/pull/156224\n\nFixes https://github.com/google/crubit/issues/1028\n\nPiperOrigin-RevId: 915535976\n"
    },
    {
      "commit": "279e605e9e6a9b8011df681c8116b872bba31ca2",
      "tree": "25b075a1fd3336a58110b43c93d69f347ba2503e",
      "parents": [
        "c3a7b0c3a90979aa62e3211cd51ff0c2e00cb9a3",
        "ff391f8226de5ded8dd8f9a5a899cdfcbca606af"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Thu May 14 18:15:26 2026"
      },
      "committer": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Thu May 14 18:15:26 2026"
      },
      "message": "Merge branch \u0027main\u0027 of github.com:google/crubit\n"
    },
    {
      "commit": "ff391f8226de5ded8dd8f9a5a899cdfcbca606af",
      "tree": "15be8fedf8d24f0f13aebd1b1772728f16434148",
      "parents": [
        "7f5a642d7b1e2378808b18c2af9cc6f99f3c87b7"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed May 13 21:17:38 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 13 21:18:14 2026"
      },
      "message": "Prepare ctor.rs for edition 2024 by adding unsafe block in unsafe op\n\nAlso run clippy and fix a few lints.\n\nPiperOrigin-RevId: 915054042\n"
    },
    {
      "commit": "7f5a642d7b1e2378808b18c2af9cc6f99f3c87b7",
      "tree": "c8bd875bf5ecf56af46219d1a239d588654e4b1b",
      "parents": [
        "7b32042ae58b0a767802c8bfd7d222b5863beeb2"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed May 13 20:02:09 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 13 20:03:14 2026"
      },
      "message": "Refactor `Safety` type\n\nIntroduces a strongly-typed `UnsafeReason` wrapper around `Rc\u003cstr\u003e` and replaces all usages of the `Safety` enum with `Option\u003cUnsafeReason\u003e` for simplicity.\n\nPiperOrigin-RevId: 915012240\n"
    },
    {
      "commit": "7b32042ae58b0a767802c8bfd7d222b5863beeb2",
      "tree": "5c54a8ac9c0d55b7edbdfecea4775f4904a768b7",
      "parents": [
        "508f0cb7fe17a52206d53cfb67b4169d6886027a"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Wed May 13 17:47:06 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 13 17:47:54 2026"
      },
      "message": "Don\u0027t bind to trait methods that have an unsupported self type.\n\nDrop recently added a method with a `Pin\u003c\u0026mut Self\u003e` which we were not\nchecking for and trying to format into C++. This is unsupported and we\nshould filter out the method, for now, instead.\n\nPiperOrigin-RevId: 914945682\n"
    },
    {
      "commit": "508f0cb7fe17a52206d53cfb67b4169d6886027a",
      "tree": "affe509c36bc596533949a1411717a2d71383ddd",
      "parents": [
        "0ff6a9db6f3496dcda17aec140d5357ef5163ac7"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Wed May 13 17:06:16 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 13 17:11:46 2026"
      },
      "message": "Add a golden + unit test showing the current state of named (~ type-aliased)\nimplicit template instantiations.\n\nPiperOrigin-RevId: 914923998\n"
    },
    {
      "commit": "0ff6a9db6f3496dcda17aec140d5357ef5163ac7",
      "tree": "1ff4799ffb67e3871e2e8ed5fa5d4630d0c884d3",
      "parents": [
        "45813e6466a34d7e86f1ed638df3f918b37bc2ca"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Wed May 13 16:51:48 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 13 16:52:18 2026"
      },
      "message": "Remove unstable pattern types usage from option test\n\nPiperOrigin-RevId: 914917965\n"
    },
    {
      "commit": "45813e6466a34d7e86f1ed638df3f918b37bc2ca",
      "tree": "b44d0accf5d90394859b7589cb75dad216a48c53",
      "parents": [
        "ca4a2e5902fa7c3ba2e458347f9a36dabcad276c"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Wed May 13 14:40:11 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 13 14:41:03 2026"
      },
      "message": "Remove old lifetime pragmas from some tests.\n\nNote the `lifetime: Some` to `lifetime: None` changes are expected, as\nlifetime inference doesn\u0027t happen on the C++/clang side anymore.\n\nPiperOrigin-RevId: 914856392\n"
    },
    {
      "commit": "ca4a2e5902fa7c3ba2e458347f9a36dabcad276c",
      "tree": "ed4f7b4bdf7d859c6c876e43efa5825570d2415d",
      "parents": [
        "8ad013c9913067ace5f4776f735867e47fef5cad"
      ],
      "author": {
        "name": "Jan Kuehle",
        "email": "jankuehle@google.com",
        "time": "Wed May 13 09:07:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 13 09:10:03 2026"
      },
      "message": "Fix example paths in comments for `Directories` struct\n\nMessed up the order of target-triple and profile name in the example paths in a5afb7d477a6196394bb9d8bd808d870bd49248c. The profile name is last. As also evident by `profile_name \u003d profile_dir.file_name()`.\n\nPiperOrigin-RevId: 914730268\n"
    },
    {
      "commit": "f071a05d3f4553f29ddc15ef8e6c9157d87ed2ce",
      "tree": "30b6ccc691a071650ecada7ae71d0b8040978a30",
      "parents": [
        "8ad013c9913067ace5f4776f735867e47fef5cad"
      ],
      "author": {
        "name": "Arpit Jain",
        "email": "arpitjain099@gmail.com",
        "time": "Wed May 13 08:22:57 2026"
      },
      "committer": {
        "name": "Arpit Jain",
        "email": "arpitjain099@gmail.com",
        "time": "Wed May 13 08:22:57 2026"
      },
      "message": "docs: fix seven typos in design and overview docs\n\nAll caught by codespell on docs/, all in user-facing markdown (no code,\nidentifier renames, or API names):\n\n  docs/design/design.md              filles -\u003e files, diferent -\u003e different, relevent -\u003e relevant\n  docs/design/thunks_...md           sigatures -\u003e signatures\n  docs/overview/limits.md            ohter -\u003e other\n  docs/overview/reference_safety.md  succintly -\u003e succinctly\n  docs/overview/unstable_features.md intialization -\u003e initialization\n\nFalse-positives in the same scan that I deliberately did NOT fix:\nre-declared / re-declare (both forms are valid), unparseable (both \u0027parseable\u0027\nand \u0027parsable\u0027 forms are accepted), statics (a real C++ term).\n\nSigned-off-by: Arpit Jain \u003carpitjain099@gmail.com\u003e\n"
    },
    {
      "commit": "975e1311c8d9b7eac61bdeec06ecd2b7654ba929",
      "tree": "5a2e72f469a28422f385204ca8d8332e14d21231",
      "parents": [
        "8ad013c9913067ace5f4776f735867e47fef5cad"
      ],
      "author": {
        "name": "Arpit Jain",
        "email": "arpitjain099@gmail.com",
        "time": "Wed May 13 06:59:06 2026"
      },
      "committer": {
        "name": "Arpit Jain",
        "email": "arpitjain099@gmail.com",
        "time": "Wed May 13 06:59:06 2026"
      },
      "message": "ci: add explicit GITHUB_TOKEN permissions to nightly and cargo workflows\n\nnightly.yaml is a stub that just echoes a redirect message and exits 1 (the\nreal workflow lives on the test-matrix branch). It doesn\u0027t need any\nGITHUB_TOKEN scope, so permissions: {}.\n\nrust.yml runs cargo test + cargo build + cmake test on every push/PR. Two\njobs, both pure CI - contents: read is enough.\n\nThe mdbook.yaml workflow already declares explicit permissions for the\nGitHub Pages deployment; this aligns the remaining cargo + nightly\nworkflows with that pattern.\n\nSigned-off-by: Arpit Jain \u003carpitjain099@gmail.com\u003e\n"
    },
    {
      "commit": "8ad013c9913067ace5f4776f735867e47fef5cad",
      "tree": "045afdbc9f0c2fcde293b79ea369b0a313b49e31",
      "parents": [
        "f73f68054311729dae7ed9149ad9423780ff4626"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue May 12 22:41:17 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 12 22:42:12 2026"
      },
      "message": "Embed our subtitled logo in the sidebar of crubit.rs\n\nTurns out this involves on the whole more javascript than I was\nexpecting. But this embeds our logo in our website and it interacts\nappropiately with the floating/scrolling of the sidebar.\n\nPiperOrigin-RevId: 914515181\n"
    },
    {
      "commit": "f73f68054311729dae7ed9149ad9423780ff4626",
      "tree": "de1c893a9d1e5c02881566d0c513c0d7b8e10866",
      "parents": [
        "f665ca10a6862663ed220522a6aa76a62e7ac84a"
      ],
      "author": {
        "name": "Michael VanBemmel",
        "email": "mvanbem@google.com",
        "time": "Tue May 12 22:32:30 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 12 22:33:54 2026"
      },
      "message": "Revise the features README to remove a stale bug reference\n\nPiperOrigin-RevId: 914510763\n"
    },
    {
      "commit": "f665ca10a6862663ed220522a6aa76a62e7ac84a",
      "tree": "04602942a5844ad8b4e77a0dc8b44b0f509143f1",
      "parents": [
        "aabb3ea2db63994466327cfb823bf4939117ac48"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue May 12 21:35:37 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 12 21:36:13 2026"
      },
      "message": "Install ccache direct from source instead of using apt.\n\nApt can sometimes be extremely slow. This should consistently be faster.\n\nPiperOrigin-RevId: 914483161\n"
    },
    {
      "commit": "aabb3ea2db63994466327cfb823bf4939117ac48",
      "tree": "cd241324e008d67e89f4e8e300c382d8288c978e",
      "parents": [
        "8fd6d7d434abcf6a42636f020b3cb799d0205cad"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue May 12 20:38:47 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 12 20:41:14 2026"
      },
      "message": "Don\u0027t consider type aliases with different generics to be\npublic paths.\n\nThis wasn\u0027t really an issue prior because we don\u0027t support generics, but\nas we introduce spots of generic support in `Result` and `Option` it has\ncropped up. It\u0027s common to define a type alias such as `type\nMyLibResult\u003cT\u003e \u003d Result\u003cT, MyLibError\u003e`. These should not be considered\nspellings of Result because they differ in generics and if we try to\nwrite `MyLibResult` where we would write `Result` it will cause\ncompilation errors.\n\nPiperOrigin-RevId: 914453990\n"
    },
    {
      "commit": "8fd6d7d434abcf6a42636f020b3cb799d0205cad",
      "tree": "0cb21e65bdcb42b6a7e433b094a5af0ddad5f7e6",
      "parents": [
        "3d868e5bbe395711a7bf285c36d3bd86e813e311"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue May 12 20:36:36 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 12 20:37:21 2026"
      },
      "message": "Check in a full theme for mdbook.\n\nOriginally I tried checking in just the bits of the theme I thought we\u0027d\nneed to modify, with the idea being mdbook will generate the other files\non the fly and we don\u0027t need to maintain them. However, mdbook has a\nversion, so the theme I generated used a different mdbook version than\nthe one we use in our github action causing failures as the generated\nfiles didn\u0027t align with the checked in files.\n\nTo prevent that from happening, I am now checking in the full theme\n(sans fonts) and if that works will proceed with modifying our theme.\n\nPiperOrigin-RevId: 914452958\n"
    },
    {
      "commit": "3d868e5bbe395711a7bf285c36d3bd86e813e311",
      "tree": "4d306701524213c25fd02c9eaab81b020619f7a5",
      "parents": [
        "927280ad1eb5dc10cd00386803b8853b29c3d0e5"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue May 12 19:46:51 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 12 19:47:52 2026"
      },
      "message": "Improve error message for unbridgeable types and add a test case for bridging type aliases.\n\nSpecifically, this improves the experience for types like `absl::Status\u003cTypeThatBecomesRsTypeKindError\u003e` by including `TypeThatBecomesRsTypeKindError` in the error message, indicating which type was problematic.\n\nA new test case `bridge_wrapping_alias` is added, which demonstrates how Crubit handles bridging a type that wraps an alias to a template instantiation. The generated bindings show the expected errors for unsupported features like class templates and template instantiations:\n\n```cpp\n// error: function `bridge_alias_to_inst` could not be bound\n//   Type \u0027TemplateType \u003c int \u003e\u0027 has an error and cannot be bridged: template instantiation is not yet supported\n```\n\nPiperOrigin-RevId: 914427907\n"
    },
    {
      "commit": "927280ad1eb5dc10cd00386803b8853b29c3d0e5",
      "tree": "04eeda563378400bee4f30e14dcc97e7f12929b9",
      "parents": [
        "58fe19e069bf436a0a9bddcdd4477b287631ab62"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue May 12 17:27:27 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 12 17:28:10 2026"
      },
      "message": "Emit diagnostics from the compiler when streaming cargo messages.\n\nToday if a cargo command we evoke has an error, that\u0027s invisible to the\nend user. Surface those error messages when we iterate over cargo\u0027s\noutput so they\u0027re user visible.\n\nPiperOrigin-RevId: 914354270\n"
    },
    {
      "commit": "58fe19e069bf436a0a9bddcdd4477b287631ab62",
      "tree": "b40d138355afdae6a3a37082cdc2ba167098dcc7",
      "parents": [
        "aab7cb8c7a1836ddb87314331d25873c1f96f365"
      ],
      "author": {
        "name": "Fabian Wolff",
        "email": "fwolff@google.com",
        "time": "Tue May 12 11:39:19 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 12 11:45:52 2026"
      },
      "message": "Pass `allowed_unstable_rust_features` to `rustc_compile_action`.\n\nPiperOrigin-RevId: 914211132\n"
    },
    {
      "commit": "aab7cb8c7a1836ddb87314331d25873c1f96f365",
      "tree": "8205a51efd0c71607ad453d4b129f6b9157f7127",
      "parents": [
        "ec1a7ddb8380f20bb5ce8b7678016537710a762c"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Mon May 11 23:49:48 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 11 23:50:25 2026"
      },
      "message": "Ignore the abi_tag attribute on functions.\n\nabi_tag is defined in https://clang.llvm.org/docs/ItaniumMangleAbiTags.html and appears to only change c++ name mangling rules. Since Crubit doesn\u0027t mangle its own C++ names, we don\u0027t need to keep track of abi_tag.\n\nPiperOrigin-RevId: 913948678\n"
    },
    {
      "commit": "ec1a7ddb8380f20bb5ce8b7678016537710a762c",
      "tree": "b18078ac097229f0fc8c227e318017480d20d56e",
      "parents": [
        "bfa973b3c7758e39e3ab5b3f137e1a9329729cb7"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Mon May 11 22:45:58 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 11 22:46:49 2026"
      },
      "message": "Normalize function signature before generating bindings.\n\nThis unblocks Iterator::next from working by normalizing the\n`Iterator::Item` alias type in its signature. I tried just normalizing all function signatures and found that causes breakages around existentials `impl Trait\u003c...\u003e`, so I\u0027ve opted to just do it for trait methods for now.\n\nPiperOrigin-RevId: 913919839\n"
    },
    {
      "commit": "bfa973b3c7758e39e3ab5b3f137e1a9329729cb7",
      "tree": "e7ad7a7c3c9e4060eb465aad5f3857ed95e51472",
      "parents": [
        "e484c9d501539f9275c41bb7554371d14f2870df"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Mon May 11 21:30:34 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 11 21:31:39 2026"
      },
      "message": "Remove assert from normalize_ty.\n\nOriginally I expected normalization to always succeed, but that is not\nthe case. Rather than crash on an error, return the intert type and rely\non our normal error recovery mechanisms to handle the type (often this\nwill be an error on an unresolved type variable). This shoud not be a\nchange in behavior outside of we crash less.\n\nI ran into issue around setting the correct date for the rustversion around stable_hash, so I swapped back to cfg_accessible which I think should work unless they change the name of rustc_data_structures.\n\nPiperOrigin-RevId: 913884213\n"
    },
    {
      "commit": "e484c9d501539f9275c41bb7554371d14f2870df",
      "tree": "4e3a001d9b98b33ddc4734ddc4048ec15829d498",
      "parents": [
        "a6389b1a4479770356dbec498983729b368ea1d9"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Mon May 11 20:59:29 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 11 21:00:04 2026"
      },
      "message": "Move test mock headers into a mock_headers cc_library instead of cc_embed_data\n\nTo be less dependent on Bazel\u0027s cc_embed_data. Otherwise, we need to replicate that in CMake with an `add_custom_command` + python script, or some other method.\n\nThis is not quite as nice as the original, where you could more easily see the files separately, and potentially switch a nullability_test #include to build with the non-mock header through a cc_library.\n\nOtherwise, this is the approach we have in the upstream optional and StatusOr checkers.\n\nPiperOrigin-RevId: 913870061\n"
    },
    {
      "commit": "a6389b1a4479770356dbec498983729b368ea1d9",
      "tree": "e463b9ce298c37e4cc8ce7e1cd656d5a1a6f412e",
      "parents": [
        "c751e08eb48fe02a38afccaf2aa9510ca99099c2"
      ],
      "author": {
        "name": "Michael VanBemmel",
        "email": "mvanbem@google.com",
        "time": "Mon May 11 18:46:47 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 11 18:47:29 2026"
      },
      "message": "Support iOS in `ffi_11` as LP64 with `long long` `int64_t`\n\nIt\u0027s finally time to expand that comment block into an implementation. This crate previously supported any LP64 platform where `int64_t` is the same type as `long`, but was incorrect on platforms where `int64_t` is the same type as `long long`. This change corrects that for iOS (and OpenBSD, which has been in the code but is probably not being exercised anywhere at the moment).\n\nPiperOrigin-RevId: 913807222\n"
    },
    {
      "commit": "c751e08eb48fe02a38afccaf2aa9510ca99099c2",
      "tree": "6fa358224a80b5e8139e8193e88913c9a5659ce2",
      "parents": [
        "c5190dfc2e67292b6b25ed0647c78c71ea0c8e71"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Mon May 11 16:44:12 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 11 16:47:41 2026"
      },
      "message": "Add a proper theme for our mdbook website.\n\nWe\u0027ll need this to add the logo to our website. Since it requires\nintroducing a bunch of files that were implicit before, I\u0027m only adding\nthe bare minimum in this CL. I\u0027ll follow up with adding the logo once I\nknow it works.\n\nPiperOrigin-RevId: 913746126\n"
    },
    {
      "commit": "c5190dfc2e67292b6b25ed0647c78c71ea0c8e71",
      "tree": "0204536fcc0847b61ab6ec6c5aca8d502a4595cb",
      "parents": [
        "a5afb7d477a6196394bb9d8bd808d870bd49248c"
      ],
      "author": {
        "name": "Andreas C. Osowski",
        "email": "qwf@google.com",
        "time": "Mon May 11 16:38:42 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 11 16:42:49 2026"
      },
      "message": "Fix bazel build to at least get it rolling again\n\nPiperOrigin-RevId: 913743576\n"
    },
    {
      "commit": "a5afb7d477a6196394bb9d8bd808d870bd49248c",
      "tree": "1f71ce957e6f00a0cda8b7ad2569aa04de5ec027",
      "parents": [
        "d63065f4f870930c8b8c785a2c35588a5ec0167f"
      ],
      "author": {
        "name": "Jan Kuehle",
        "email": "jankuehle@google.com",
        "time": "Mon May 11 16:37:16 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 11 16:38:03 2026"
      },
      "message": "Fix target vs. host dependency resolution in cargo-cpp_api_from_rust\n\nWhen cross-compiling a Rust library using Cargo (where target artifacts reside in `target/\u003ctriple\u003e/debug/...` while procedural macros and build scripts are compiled for the host in `target/debug/...`), Crubit previously encountered several compiler errors (`E0460` and `E0463`).\n\nRequired 2 changes to fix:\n\n1. Restrict bindings generation strictly to target triple crates\n\n   Filtered the execution loops in `generate_bindings` and `compile_staticlib` to skip crates whose output paths do not reside in the target triple profile directory. This prevents Crubit from erroneously generating C++ bindings for host procedural macros or build dependencies.\n\n2. Pass host dependency paths for procedural macro initialization\n\n   Added the host profile directory (`target/debug/deps`) as a second `-Ldependency` search path alongside the target triple directory. This allows rustc to successfully resolve compile-time host dependencies (like proc_macro2).\n\nPiperOrigin-RevId: 913742922\n"
    },
    {
      "commit": "d63065f4f870930c8b8c785a2c35588a5ec0167f",
      "tree": "fcc0aa9844a6582c7384206d350632f750053438",
      "parents": [
        "964df2b19f5074edd5cf3e86ebd13a5a7b4bdb2a"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Mon May 11 15:49:02 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 11 15:49:34 2026"
      },
      "message": "Adapt to unstable rustc changes.\n\n1. `rustc_data_structures::stable_hasher` was renamed to `rustc_data_structures::stable_hash`.\n\n    https://github.com/rust-lang/rust/pull/156124\n\nPiperOrigin-RevId: 913721015\n"
    },
    {
      "commit": "964df2b19f5074edd5cf3e86ebd13a5a7b4bdb2a",
      "tree": "acced47241aaaf9b2f643a4a775955f40c912f51",
      "parents": [
        "eabdbe19e6a5a68f4064c66a0e1341ed3b8d5413"
      ],
      "author": {
        "name": "Jan Kuehle",
        "email": "jankuehle@google.com",
        "time": "Mon May 11 15:41:42 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 11 15:42:51 2026"
      },
      "message": "cc_bindings_from_rs: Use fake filename instead of - as rustc input\n\nWhen using `-`, rustc sometimes hangs forever waiting for input on stdin. This seems to be racy. It happens ~50% of the time. Using any file name seems to work correctly.\n\nPiperOrigin-RevId: 913717970\n"
    },
    {
      "commit": "eabdbe19e6a5a68f4064c66a0e1341ed3b8d5413",
      "tree": "9c5f32963f8700355bd1b6645795bb4a049fc518",
      "parents": [
        "573e3794cee8a19b16b9068e0f09251a5ff4e142"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Sat May 09 15:05:07 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat May 09 15:09:38 2026"
      },
      "message": "Fix non-determinism in `toposort` by using input order as a tie-breaker\n\nWhen `toposort` has multiple nodes ready to process (no remaining\npredecessors), it puts them in a `BinaryHeap` and uses the `preferred_order`\nclosure to sort them.  If the closure says two nodes are equal, their order in\nthe heap depended on `HashMap` iteration order, which is non-deterministic.\n\nWe fix this by recording each node\u0027s index in the input iterator. If the\nclosure returns `Equal`, we now fall back to comparing these input indices,\npreferring nodes that came first. This makes the sort fully deterministic.\n\nPiperOrigin-RevId: 912985573\n"
    },
    {
      "commit": "573e3794cee8a19b16b9068e0f09251a5ff4e142",
      "tree": "f410339b8ca005dd44b1ece667d7e480549420d0",
      "parents": [
        "6fdbcb5de28990aa552e9fc36173c3778f206b36"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Sat May 09 15:03:41 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat May 09 15:04:33 2026"
      },
      "message": "Fix non-determinism in JSON IR output for Crubit features\n\nPiperOrigin-RevId: 912985243\n"
    },
    {
      "commit": "6fdbcb5de28990aa552e9fc36173c3778f206b36",
      "tree": "979ce42f7a4f161336c24f7cb8af09c919f7d222",
      "parents": [
        "3a08cc41074610c5c07721fd002543b2877d0ea9"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Sat May 09 14:54:13 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat May 09 14:54:53 2026"
      },
      "message": "Sort crate renames in cc_bindings_from_rs for determinism\n\nPiperOrigin-RevId: 912983348\n"
    },
    {
      "commit": "3a08cc41074610c5c07721fd002543b2877d0ea9",
      "tree": "330b85b41498bf4b7d7d5574507e34cf1e7b5408",
      "parents": [
        "1c8dfec42c487900d20fd2c896d80448d088a01c"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Sat May 09 03:15:28 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat May 09 03:16:17 2026"
      },
      "message": "Exclude more bad template instantiations from receiving bindings.\n\nThis CL helps detect three flavors of bad function:\n  * Functions that depend on broken templates (e.g., forward_list\u003cT\u003e::sort\n    for a T that doesn\u0027t have a less).\n  * Functions that call impossible or deleted constructors (forward_list\n    again on a non-copyable T)\n  * Implicit constructors that depend on impossible or deleted\n    constructors\n\nWe need to crawl around the AST because Clang is parsimonious with\ndiagnostics and with template instantiation in general. We explored many\nalternate solutions involving generating expressions or even entirely new\nfunctions to typecheck, but ultimately found success in simply looking\nfor declarations (hand-wavingly) with the bad bit set.\n\nPiperOrigin-RevId: 912817559\n"
    }
  ],
  "next": "1c8dfec42c487900d20fd2c896d80448d088a01c"
}
