)]}'
{
  "commit": "c5d4b96a4aadbc86c6b63052e900adbc88037d38",
  "tree": "24629e88c2699b82654f8c7edfa4ce6602091a8a",
  "parents": [
    "34282319af42dfbc5bf80c0514b5e8902ed7cb90"
  ],
  "author": {
    "name": "Dave Liddell",
    "email": "dave.liddell@amd.com",
    "time": "Fri Jun 14 10:53:31 2024 -0600"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Jun 14 09:53:31 2024 -0700"
  },
  "message": "Allow flags to be set with greater flexibility (#17659)\n\nChanges to the python binding to allow iree.runtime.flags.parse_flags to\r\ntake effect at times other than before the first time a driver is\r\ncreated. Also includes fixes for bugs exposed during the development of\r\nthis feature.\r\n\r\n- Added \"internal\" API functions `create_hal_driver()` and\r\n`clear_hal_driver_cache()` to create a driver object independent of the\r\ncache, and to clear the cache, respectively\r\n- Added `HalDriver` class implementation functions for the above new API\r\nfunctions. Refactored class to share as much common code as possible.\r\n- Factored out driver URI processing into its own nested class for\r\neasier handling of URI components\r\n- Fixed dangling pointer bug. In the C layer flags are being kept by\r\nreference as string views, requiring the caller to keep the original\r\nflag strings (argc, argv) around for as long as the flags are being\r\nused. However, the python binding was using a local variable for those\r\nstrings, letting them go out of scope and causing garbage values later\r\non. The fix is to move the strings to a file scope variable. Flag\r\nhandling does not appear to be getting used in a multi-threaded\r\nenvironment, as other aspects of flag handling use static variables with\r\nno mutex guarding that I could find.\r\n- Fixed runtime assert in Windows debug build for the improper use of\r\nstd::vector\u003c\u003e::front() on an empty vector. The code never used the value\r\nof front(), as it was guarded by a check for the vector\u0027s size, but the\r\nassert prevents the debug build from running.\r\n\r\n---------\r\n\r\nSigned-off-by: Dave Liddell \u003cdave.liddell@amd.com\u003e\r\nSigned-off-by: daveliddell \u003cdave.liddell@amd.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "18771af9e0be9ae11718969da735bd4ec09a4989",
      "old_mode": 33188,
      "old_path": "runtime/bindings/python/hal.cc",
      "new_id": "8799e4884fbda225ebd545b8d1445570b25e7262",
      "new_mode": 33188,
      "new_path": "runtime/bindings/python/hal.cc"
    },
    {
      "type": "modify",
      "old_id": "29d02334e95962df4afa4e956ba04208d29f8cb4",
      "old_mode": 33188,
      "old_path": "runtime/bindings/python/hal.h",
      "new_id": "7dbc108917c3b0b57f9e40f39df89b9196601b81",
      "new_mode": 33188,
      "new_path": "runtime/bindings/python/hal.h"
    },
    {
      "type": "modify",
      "old_id": "7eb9254cf3b07c22affab0e95fdb70fca242ae73",
      "old_mode": 33188,
      "old_path": "runtime/bindings/python/initialize_module.cc",
      "new_id": "c79da46353fcfed18052ec6c9e427b13d65ed8eb",
      "new_mode": 33188,
      "new_path": "runtime/bindings/python/initialize_module.cc"
    },
    {
      "type": "modify",
      "old_id": "0560003d5f1d8384695a420bf0f026aadef2cfe1",
      "old_mode": 33188,
      "old_path": "runtime/bindings/python/iree/runtime/system_setup.py",
      "new_id": "8cd117d56acc417b246cf7491540db13447b292f",
      "new_mode": 33188,
      "new_path": "runtime/bindings/python/iree/runtime/system_setup.py"
    },
    {
      "type": "modify",
      "old_id": "2d0ddf9ea2cb327792dd4ac0d4476aa7c064d16a",
      "old_mode": 33188,
      "old_path": "runtime/bindings/python/tests/system_setup_test.py",
      "new_id": "c55dc466598ffd5b700658013df40a32659d1061",
      "new_mode": 33188,
      "new_path": "runtime/bindings/python/tests/system_setup_test.py"
    }
  ]
}
