)]}'
{
  "commit": "b7c85e3a53a0eda71c4358edabfbfc23f45ac274",
  "tree": "a956f9138e4439bf5a76d583c4bb518409056f78",
  "parents": [
    "c01f898ed0e57ea6a880db811ed2bb305b06bd50"
  ],
  "author": {
    "name": "Tianqi Chen",
    "email": "tqchen@users.noreply.github.com",
    "time": "Sun Apr 26 22:03:22 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Apr 26 22:03:22 2026 -0400"
  },
  "message": "[REFACTOR] Use FFI types in runtime inline module-create wrapper signatures (#19449)\n\n## Summary\n\nThis PR cleans up the public inline wrapper API for runtime backend\nmodule creators introduced in #19447. The wrappers previously used a mix\nof `std::unordered_map` / `std::vector` / `std::string` and `ffi::*`\ntypes with conversion glue inside the wrapper body.\n\n## Changes\n\n- `ConstLoaderModuleCreate`: both parameters change from\n`std::unordered_map\u003cstd::string, T\u003e` to `ffi::Map\u003cffi::String, T\u003e`; the\nconversion loops in the wrapper body are removed (net −12 lines of glue\ncode). The callsite in `codegen_vm.cc` is updated to build `ffi::Map`\ndirectly and passes the existing `ffi::Map\u003cffi::String, Tensor\u003e` params\nargument through without a copy.\n- `VulkanModuleCreate`: `source` parameter changes from `std::string` to\n`ffi::String`. The `SPIRVShader` smap remains `std::unordered_map`\nbecause `SPIRVShader` is a plain C++ struct, not FFI-storable.\n- `OpenCLModuleCreate` (SPIRV overload): `spirv_text` changes from\n`const std::string\u0026` to `ffi::String`. Same `SPIRVShader` constraint\napplies.\n- `metal_module.h`: removes stale `\u003cunordered_map\u003e`, `\u003cvector\u003e`,\n`\u003cmemory\u003e`, `\u003cstring\u003e` includes left over from before #19447.\n\nInternal `*ModuleCreateImpl` functions and the compiler-side\n`SourceModuleCreate` family are unchanged.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "13dc02fde4a175f923282420881adba96398673f",
      "old_mode": 33188,
      "old_path": "src/relax/backend/vm/codegen_vm.cc",
      "new_id": "bf29556768c55ce645baf38c4ff8ed5f057008c7",
      "new_mode": 33188,
      "new_path": "src/relax/backend/vm/codegen_vm.cc"
    },
    {
      "type": "modify",
      "old_id": "006c1f1e1acd180a39edd2aa20c5b022ae4f059b",
      "old_mode": 33188,
      "old_path": "src/runtime/const_loader_module.cc",
      "new_id": "aaaeb9737e2d937ee836a8dfc1044a90650c7821",
      "new_mode": 33188,
      "new_path": "src/runtime/const_loader_module.cc"
    },
    {
      "type": "modify",
      "old_id": "c97232016d8aab62ae5850c57487faabe8d159d9",
      "old_mode": 33188,
      "old_path": "src/runtime/const_loader_module.h",
      "new_id": "6722785cc95091449adea9cd224b6ac1ea090a58",
      "new_mode": 33188,
      "new_path": "src/runtime/const_loader_module.h"
    },
    {
      "type": "modify",
      "old_id": "fe9454f674d1437cd083c7480f351bcdd227405e",
      "old_mode": 33188,
      "old_path": "src/runtime/metal/metal_module.h",
      "new_id": "3f4b3965adc56c2a79d66252b6a84fd8db704b40",
      "new_mode": 33188,
      "new_path": "src/runtime/metal/metal_module.h"
    },
    {
      "type": "modify",
      "old_id": "6697badd4885bba9af9bffda4472f1160ca76388",
      "old_mode": 33188,
      "old_path": "src/runtime/opencl/opencl_module.h",
      "new_id": "9d16ea9231b267da8d0d74132202070c6f35e599",
      "new_mode": 33188,
      "new_path": "src/runtime/opencl/opencl_module.h"
    },
    {
      "type": "modify",
      "old_id": "87df473753d4b0703d378b171a9401139855978c",
      "old_mode": 33188,
      "old_path": "src/runtime/vulkan/vulkan_module.h",
      "new_id": "d8fdda4d92514d3371ce66457600d50a98599094",
      "new_mode": 33188,
      "new_path": "src/runtime/vulkan/vulkan_module.h"
    }
  ]
}
