)]}'
{
  "commit": "33add367e2b265f4ed0fcc32e7f795f87992c488",
  "tree": "05e6e1309acb619b125e18f8490c4daf16023f7c",
  "parents": [
    "08de25c4ea16d7ecc3ceeb093d4f343a2be30df5"
  ],
  "author": {
    "name": "Flakebi",
    "email": "flakebi@t-online.de",
    "time": "Thu Jan 01 18:34:24 2026 +0100"
  },
  "committer": {
    "name": "Flakebi",
    "email": "flakebi@t-online.de",
    "time": "Thu Jan 01 18:34:24 2026 +0100"
  },
  "message": "Add checks for gpu-kernel calling conv\n\nThe `gpu-kernel` calling convention has several restrictions that were\nnot enforced by the compiler until now.\nAdd the following restrictions:\n\n1. Cannot be async\n2. Cannot be called\n3. Cannot return values, return type must be `()` or `!`\n4. Arguments should be primitives, i.e. passed by value. More complicated\n   types can work when you know what you are doing, but it is rather\n   unintuitive, one needs to know ABI/compiler internals.\n5. Export name should be unmangled, either through `no_mangle` or\n   `export_name`. Kernels are searched by name on the CPU side, having\n   a mangled name makes it hard to find and probably almost always\n   unintentional.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6a5ea36f2a4245095cd4d56bf10831b0e8de7843",
      "old_mode": 33188,
      "old_path": "compiler/rustc_abi/src/extern_abi.rs",
      "new_id": "e44dea1ce593b0b42ba934be891118133ef0adcc",
      "new_mode": 33188,
      "new_path": "compiler/rustc_abi/src/extern_abi.rs"
    },
    {
      "type": "modify",
      "old_id": "0d34ba6c2ca87047e8a78bf8b772a3eccf9589b4",
      "old_mode": 33188,
      "old_path": "compiler/rustc_ast_passes/src/ast_validation.rs",
      "new_id": "3e70687c16d3ab49351a4fb955071d691b3cabf8",
      "new_mode": 33188,
      "new_path": "compiler/rustc_ast_passes/src/ast_validation.rs"
    },
    {
      "type": "modify",
      "old_id": "325be43a0065c82f6b8f96997b5c6105fcfb1f78",
      "old_mode": 33188,
      "old_path": "compiler/rustc_hir_typeck/messages.ftl",
      "new_id": "0c4b1f891eadbc251b003eb9bc8c55c9475be6a8",
      "new_mode": 33188,
      "new_path": "compiler/rustc_hir_typeck/messages.ftl"
    },
    {
      "type": "modify",
      "old_id": "714c6a104a9e13ac6d1a1760ef9965039e79bb0b",
      "old_mode": 33188,
      "old_path": "compiler/rustc_hir_typeck/src/callee.rs",
      "new_id": "b60d053957a9b7b6def4dc759eeb2cbc1ce3cf77",
      "new_mode": 33188,
      "new_path": "compiler/rustc_hir_typeck/src/callee.rs"
    },
    {
      "type": "modify",
      "old_id": "620002915fa8d2b0339926c051f1e299b5bd2d1d",
      "old_mode": 33188,
      "old_path": "compiler/rustc_hir_typeck/src/errors.rs",
      "new_id": "0cf7f09e937675c524420e6229372dfc5136fb14",
      "new_mode": 33188,
      "new_path": "compiler/rustc_hir_typeck/src/errors.rs"
    },
    {
      "type": "modify",
      "old_id": "56a0a3ceebf5a9ad450ed4b913aec860638ae83f",
      "old_mode": 33188,
      "old_path": "compiler/rustc_lint/messages.ftl",
      "new_id": "2f4537b94da20f1ae05c301cd1b165212f3e1ecc",
      "new_mode": 33188,
      "new_path": "compiler/rustc_lint/messages.ftl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dbdf5b6e7955fa7135797c6a8d5d1330841eba9f",
      "new_mode": 33188,
      "new_path": "compiler/rustc_lint/src/gpukernel_abi.rs"
    },
    {
      "type": "modify",
      "old_id": "49929a0a9bc7615e12108e7ef5e729447e497a7c",
      "old_mode": 33188,
      "old_path": "compiler/rustc_lint/src/lib.rs",
      "new_id": "dd2042b57f526c63b3deed7a3308e2e90720bf02",
      "new_mode": 33188,
      "new_path": "compiler/rustc_lint/src/lib.rs"
    },
    {
      "type": "modify",
      "old_id": "5017ce7caa5258df0f27758fd1b46e4c28825efb",
      "old_mode": 33188,
      "old_path": "compiler/rustc_lint/src/lints.rs",
      "new_id": "ba486f95427d0cb4b734e4c5fe0315b7e67a95dc",
      "new_mode": 33188,
      "new_path": "compiler/rustc_lint/src/lints.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "039e2d7b4f00902174a6e2e1458610d02f310b0e",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-be-called.amdgpu.stderr"
    },
    {
      "type": "modify",
      "old_id": "2128991d83cdf9dca964ca439401f2d2b1e85309",
      "old_mode": 33188,
      "old_path": "tests/ui/abi/cannot-be-called.avr.stderr",
      "new_id": "752292a58705f8129ec5202e5d87053f3978da14",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-be-called.avr.stderr"
    },
    {
      "type": "modify",
      "old_id": "9b1755921aea4c6d2d61b96ab1b24c309b6792b7",
      "old_mode": 33188,
      "old_path": "tests/ui/abi/cannot-be-called.i686.stderr",
      "new_id": "30e294ad61ecc5bfb4bcc2ea42ee7165d0e06ea1",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-be-called.i686.stderr"
    },
    {
      "type": "modify",
      "old_id": "9a047b11cf795a1217cf467d42601a752f028a47",
      "old_mode": 33188,
      "old_path": "tests/ui/abi/cannot-be-called.msp430.stderr",
      "new_id": "12ab88bc858bdb47af7418f9022c67e1ce85a7f0",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-be-called.msp430.stderr"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "039e2d7b4f00902174a6e2e1458610d02f310b0e",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-be-called.nvptx.stderr"
    },
    {
      "type": "modify",
      "old_id": "135b20c50d58a4fea52df61378859922913eb9b5",
      "old_mode": 33188,
      "old_path": "tests/ui/abi/cannot-be-called.riscv32.stderr",
      "new_id": "b1897b74ebbe31699b6b5f5ffa16528a22fb208f",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-be-called.riscv32.stderr"
    },
    {
      "type": "modify",
      "old_id": "135b20c50d58a4fea52df61378859922913eb9b5",
      "old_mode": 33188,
      "old_path": "tests/ui/abi/cannot-be-called.riscv64.stderr",
      "new_id": "b1897b74ebbe31699b6b5f5ffa16528a22fb208f",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-be-called.riscv64.stderr"
    },
    {
      "type": "modify",
      "old_id": "315ea1601633e4892f6a600b29db7acb63b411ad",
      "old_mode": 33188,
      "old_path": "tests/ui/abi/cannot-be-called.rs",
      "new_id": "8d1a4ae0b557fee730cd09235a048ecaf63cc8a3",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-be-called.rs"
    },
    {
      "type": "modify",
      "old_id": "9b1755921aea4c6d2d61b96ab1b24c309b6792b7",
      "old_mode": 33188,
      "old_path": "tests/ui/abi/cannot-be-called.x64.stderr",
      "new_id": "30e294ad61ecc5bfb4bcc2ea42ee7165d0e06ea1",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-be-called.x64.stderr"
    },
    {
      "type": "modify",
      "old_id": "9b1755921aea4c6d2d61b96ab1b24c309b6792b7",
      "old_mode": 33188,
      "old_path": "tests/ui/abi/cannot-be-called.x64_win.stderr",
      "new_id": "30e294ad61ecc5bfb4bcc2ea42ee7165d0e06ea1",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-be-called.x64_win.stderr"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a36ea0caa19eb77bd6ea675484d70739e395c17c",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-be-coroutine.amdgpu.stderr"
    },
    {
      "type": "modify",
      "old_id": "11bc93b1eef110a9946b674d0e5488d8277466b6",
      "old_mode": 33188,
      "old_path": "tests/ui/abi/cannot-be-coroutine.avr.stderr",
      "new_id": "643a575bece15a8140d57ef9949d066c2a9359f1",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-be-coroutine.avr.stderr"
    },
    {
      "type": "modify",
      "old_id": "4a344bb09020079d040a6e3868ad9176b8ede437",
      "old_mode": 33188,
      "old_path": "tests/ui/abi/cannot-be-coroutine.i686.stderr",
      "new_id": "f618507df47d29004227b255b8ab4d2d221ecc94",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-be-coroutine.i686.stderr"
    },
    {
      "type": "modify",
      "old_id": "c2867705df78c8f5bf7e0fd1e98efc43065ae5e4",
      "old_mode": 33188,
      "old_path": "tests/ui/abi/cannot-be-coroutine.msp430.stderr",
      "new_id": "f2586c8cd9755b6e567e54a512599e44d57b6a98",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-be-coroutine.msp430.stderr"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a36ea0caa19eb77bd6ea675484d70739e395c17c",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-be-coroutine.nvptx.stderr"
    },
    {
      "type": "modify",
      "old_id": "398f888205dfbe98a0929742c75ad257dd93f37e",
      "old_mode": 33188,
      "old_path": "tests/ui/abi/cannot-be-coroutine.riscv32.stderr",
      "new_id": "c5a8c3f60a382f93dd7c337b18e604f018e2bbe1",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-be-coroutine.riscv32.stderr"
    },
    {
      "type": "modify",
      "old_id": "398f888205dfbe98a0929742c75ad257dd93f37e",
      "old_mode": 33188,
      "old_path": "tests/ui/abi/cannot-be-coroutine.riscv64.stderr",
      "new_id": "c5a8c3f60a382f93dd7c337b18e604f018e2bbe1",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-be-coroutine.riscv64.stderr"
    },
    {
      "type": "modify",
      "old_id": "c070e8032e1afe62eb28dfd9671e325cf140aecd",
      "old_mode": 33188,
      "old_path": "tests/ui/abi/cannot-be-coroutine.rs",
      "new_id": "239f5aa5c31feff0a5d1a04bf882f8fd5c6dcdd4",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-be-coroutine.rs"
    },
    {
      "type": "modify",
      "old_id": "4a344bb09020079d040a6e3868ad9176b8ede437",
      "old_mode": 33188,
      "old_path": "tests/ui/abi/cannot-be-coroutine.x64.stderr",
      "new_id": "f618507df47d29004227b255b8ab4d2d221ecc94",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-be-coroutine.x64.stderr"
    },
    {
      "type": "modify",
      "old_id": "4a344bb09020079d040a6e3868ad9176b8ede437",
      "old_mode": 33188,
      "old_path": "tests/ui/abi/cannot-be-coroutine.x64_win.stderr",
      "new_id": "f618507df47d29004227b255b8ab4d2d221ecc94",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-be-coroutine.x64_win.stderr"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f264907d00ec2185acb18d90685b6a7b45f50bd3",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-return.amdgpu.stderr"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f264907d00ec2185acb18d90685b6a7b45f50bd3",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-return.nvptx.stderr"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9a5db30431b9f346c964bc272d477d7ee310eb26",
      "new_mode": 33188,
      "new_path": "tests/ui/abi/cannot-return.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "21eebe42f8b1d62c565fc6f3f9accf29028d1c21",
      "new_mode": 33188,
      "new_path": "tests/ui/lint/lint-gpu-kernel.amdgpu.stderr"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "21eebe42f8b1d62c565fc6f3f9accf29028d1c21",
      "new_mode": 33188,
      "new_path": "tests/ui/lint/lint-gpu-kernel.nvptx.stderr"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9b3ed0d14d8ade45da6898faf3b2967a82a6695e",
      "new_mode": 33188,
      "new_path": "tests/ui/lint/lint-gpu-kernel.rs"
    }
  ]
}
