)]}'
{
  "commit": "5db84123ba6d64591e35e01df3c0d1b1fcf253fc",
  "tree": "9748772f5564a701fb92fedf2a20d6fc23e73293",
  "parents": [
    "4169ed846ad8bd755045a2fdc74b8496943a60e9"
  ],
  "author": {
    "name": "Elliott Hughes",
    "email": "enh@google.com",
    "time": "Fri Oct 03 18:30:28 2025 +0000"
  },
  "committer": {
    "name": "Elliott Hughes",
    "email": "enh@google.com",
    "time": "Tue Oct 07 17:02:29 2025 -0400"
  },
  "message": "\u003cstring.h\u003e: write our own strcspn()/strspn().\n\nThe massive speedup from using our optimized arm64 strchrnul() here\nfor the most common case suggests there\u0027s the potential for these to\nbe significantly faster for the other cases if we had some vector/simd\ncode here.\n\nIn the meantime, this is faster for all inputs than the nested loop\ntraditional BSD code (which does actually do pretty well for a single\ndelimiter, at the expense of poor performance with multiple delimiters)\nand faster than the obvious bitset code. Though somewhere hboehm is\nmuttering about me trashing the data cache for my microbenchmark, I\nthink it\u0027s probably justified here because (a) it\u0027s the stack, (b) it\u0027s\nonly 256 bytes (and you\u0027re probably only hitting the first 64), and (c)\nyou\u0027re calling these functions because you\u0027re doing string processing,\nand the input -- rather than the delimiters -- is where your data cache\nis going.\n\nBug: http://b/437059814\nChange-Id: Ifa441e2818422c32d671b5b15827748e8f876e79\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1d60ad8f7c49a63ebd022d954b5732a5766efd1b",
      "old_mode": 33188,
      "old_path": "libc/bionic/string.cpp",
      "new_id": "6a26085ebb58d34b392d7d347116e053453f26bc",
      "new_mode": 33188,
      "new_path": "libc/bionic/string.cpp"
    }
  ]
}
