)]}'
{
  "commit": "7e45de0c3b7ce1d8bbb131482ce18d0978753c7b",
  "tree": "66274bee596d056222bc2cea3f9a5cd2c48199bb",
  "parents": [
    "63735928992cf5ef0cfc2e10a8f73dc3188d3df8"
  ],
  "author": {
    "name": "Daniel Lemire",
    "email": "daniel@lemire.me",
    "time": "Tue Sep 22 02:05:34 2026"
  },
  "committer": {
    "name": "Daniel Lemire",
    "email": "daniel@lemire.me",
    "time": "Tue Sep 22 02:05:34 2026"
  },
  "message": "Restore the simple loop in fastfloat_strncasecmp\n\nPR #356 replaced the 3/5-character case-insensitive compare used by\nparse_infnan with SWAR helpers (fastfloat_strncasecmp3/5 plus a generic\nmemcpy-based fastfloat_strncasecmp). That code only runs for \"nan\",\n\"inf\" and \"infinity\" inputs, so it cannot help ordinary parsing, but it\ngrew the inlined inf/nan tail of the parser: on x86-64 (GCC 14 and\nclang 21) the per-commit benchmarks dropped by 1.5-2.5% because the\nextra dead code changed inlining decisions and register allocation on\nthe hot path (+7 instructions/float on canada.txt).\n\nGo back to the plain loop, which the compiler unrolls for the constant\nlengths 3 and 5, and drop the now-unused generic SWAR function. The\n`actual \u003c 256` guard of the original is unnecessary: OR-ing 0x20 into\na value can only equal an ASCII lowercase letter when the value is that\nletter or its uppercase form, so the plain OR is exact for every\ncharacter type.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3769972f100305ccc38d9feea64aa205c30d7cd1",
      "old_mode": 33188,
      "old_path": "include/fast_float/float_common.h",
      "new_id": "1b2594e79ac6bce781d2f46fab1c462309f48686",
      "new_mode": 33188,
      "new_path": "include/fast_float/float_common.h"
    },
    {
      "type": "modify",
      "old_id": "14d077beaa502db456675788b8dff638733e4f6f",
      "old_mode": 33188,
      "old_path": "include/fast_float/parse_number.h",
      "new_id": "febfdc763ed198dbfce2a1587982705e60770e80",
      "new_mode": 33188,
      "new_path": "include/fast_float/parse_number.h"
    }
  ]
}
