)]}'
{
  "commit": "e1b1349257e1d897dfbbefb82cd32e9244e5cbbf",
  "tree": "70b7ef46dd713717a24decceddc7631259b6956a",
  "parents": [
    "d0ff7c02aebf159eff6e1b9951b8cc7e4f7b2864"
  ],
  "author": {
    "name": "Philipp Wagner",
    "email": "phw@lowrisc.org",
    "time": "Mon Sep 27 18:22:48 2021 +0100"
  },
  "committer": {
    "name": "Philipp Wagner",
    "email": "mail@philipp-wagner.com",
    "time": "Wed Oct 06 23:29:35 2021 +0100"
  },
  "message": "[ipgen] Support object template parameters\n\nSome ipgen templates require complex data structures as template\nparameters: nested combinations of lists, dicts, string and integer\nvalues. The parameters passed to the clkmgr are a good example: they\nconsist of information about all clocks, their associated resets, and\nmuch more. Having individual string or int template parameters is\ninfeasible.\n\nThis commit introduces a \"catch-all\" template parameter type called\n\"object\". It can be any data structure, as long as it can be serialized\nto Hjson. We actually check for that to ensure round-trip safety even if\nthe template parameters are not written to a config file and reloaded,\nbut passed to the template directly.\n\nThe checking is using the JSON serializer, as extended by the Hjson\nlibrary. This makes it possible to simplify the implementation\nconsiderably, at the cost of a slightly less beautiful and less\nperformand implementation (since we do a object -\u003e json -\u003e object\nround-trip with associated string parsing).\n\nSigned-off-by: Philipp Wagner \u003cphw@lowrisc.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e4a292c365a566b836f4d5385fa1a75ffed34b5c",
      "old_mode": 33188,
      "old_path": "util/ipgen/lib.py",
      "new_id": "8411d68bba66d46ec2926455a7d11b1637168f37",
      "new_mode": 33188,
      "new_path": "util/ipgen/lib.py"
    },
    {
      "type": "modify",
      "old_id": "7ffa76dd1aa58bd9f515ff4ff70cb652811470e5",
      "old_mode": 33188,
      "old_path": "util/ipgen/renderer.py",
      "new_id": "b4840acd2cc40e195fa6be9cba005ff3ce5ad953",
      "new_mode": 33188,
      "new_path": "util/ipgen/renderer.py"
    }
  ]
}
