)]}'
{
  "commit": "8f942ca8a5259e8dac4745df1b15b80467346a0d",
  "tree": "6a080bcfb77345b7fc2735c1fdaca769329509e4",
  "parents": [
    "27f442142746e91af5aa4a6fb6d77de567557216"
  ],
  "author": {
    "name": "Simon Marchi",
    "email": "simon.marchi@efficios.com",
    "time": "Mon Nov 04 13:27:35 2024 -0500"
  },
  "committer": {
    "name": "Simon Marchi",
    "email": "simon.marchi@polymtl.ca",
    "time": "Mon Nov 25 22:07:03 2024 -0500"
  },
  "message": "gdbsupport: add unordered_dense.h 4.4.0\n\nAdd a copy of unordered_dense.h from [1].  This file implements an\nefficient hash map and hash set with a nice C++ interface (a near\ndrop-in for std::unordered_map and std::unordered_set).  This is\nexpected to be used to replace uses of `htab_t`, for improved code\nreadability and type safety.  Performance-wise, it is preferred to the\nstd types (std::unordered_map and std::unordered_set) due to it using\nopen addressing vs closed addressing for the std types.\n\nI chose this particular implementation because it is simple to use, it\u0027s\na standalone header and it typically performs well in benchmarks I have\nseen (e.g. [2]).  The license being MIT, my understanding is that it\u0027s\nnot a problem to use it and re-distribute it.\n\nAdd two additional files, gdbsupport/unordered_map.h and\ngdbsupport/unordered_set.h, which make the map and set offered by\ngdbsupport/unordered_dense.h available as gdb::unordered_map and\ngdb::unordered_set.\n\n[1] https://github.com/martinus/unordered_dense\n[2] https://jacksonallan.github.io/c_cpp_hash_tables_benchmark/#conclusion-which-hash-table-to-choose\n\nChange-Id: I0c7469ccf9a14540465479e58b2a5140a2440a7d\nApproved-By: Tom Tromey \u003ctom@tromey.com\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2aaacd617a6f704d3c3011520b5c10be9c144678",
      "new_mode": 33188,
      "new_path": "gdbsupport/unordered_dense.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "96407b5edcf3e7100dcf3f0e533a9e63a1192f64",
      "new_mode": 33188,
      "new_path": "gdbsupport/unordered_map.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "73a4fa45d864d7fc6be98ce058bfa82cec35a420",
      "new_mode": 33188,
      "new_path": "gdbsupport/unordered_set.h"
    }
  ]
}
