)]}'
{
  "commit": "61fc72a4a431cbfd42f22e2af76177c73431c3e6",
  "tree": "7085b1c323b2ea9b4a5bf64f211308e35f458279",
  "parents": [
    "6b9a6c6ec3bbc9795df67b87340e2ea58f42b3d4"
  ],
  "author": {
    "name": "Gregory P. Smith",
    "email": "68491+gpshead@users.noreply.github.com",
    "time": "Fri Jan 02 06:03:05 2026"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Jan 02 06:03:05 2026"
  },
  "message": "gh-124951: Optimize base64 encode \u0026 decode for an easy 2-3x speedup [no SIMD] (GH-143262)\n\nOptimize base64 encoding/decoding by eliminating loop-carried dependencies. Key changes:\n- Add `base64_encode_trio()` and `base64_decode_quad()` helper functions that process complete groups independently\n- Add `base64_encode_fast()` and `base64_decode_fast()` wrappers\n- Update `b2a_base64` and `a2b_base64` to use fast path for complete groups\n\nPerformance gains (encode/decode speedup vs main, PGO builds):\n```\n             64 bytes    64K        1M\n  Zen2:      1.2x/1.8x   1.7x/2.8x  1.5x/2.8x\n  Zen4:      1.2x/1.7x   1.6x/3.0x  1.5x/3.0x  [old data, likely faster]\n  M4:        1.3x/1.9x   2.3x/2.8x  2.4x/2.9x  [old data, likely faster]\n  RPi5-32:   1.2x/1.2x   2.4x/2.4x  2.0x/2.1x\n```\n\nBased on my exploratory work done in https://github.com/python/cpython/compare/main...gpshead:cpython:claude/vectorize-base64-c-S7Hku\n\nSee PR and issue for further thoughts on sometimes MUCH faster SIMD vectorized versions of this.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "11f08031ec54f219c8388d8ba4acf9074cac6416",
      "old_mode": 33188,
      "old_path": "Doc/whatsnew/3.15.rst",
      "new_id": "dc4248655b4b2d598e400d2911f7fbf31528c9d4",
      "new_mode": 33188,
      "new_path": "Doc/whatsnew/3.15.rst"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "10c7f8632d736b7b85023bbccbfcaf979b69b4ed",
      "new_mode": 33188,
      "new_path": "Misc/NEWS.d/next/Library/2025-12-29-00-42-26.gh-issue-124951.OsC5K4.rst"
    },
    {
      "type": "modify",
      "old_id": "13e4bc5be03ebdc81f959567e100ddeee9a00c1e",
      "old_mode": 33188,
      "old_path": "Modules/binascii.c",
      "new_id": "a0a2960eef5ab083f74b034e060b4e5e98a2637b",
      "new_mode": 33188,
      "new_path": "Modules/binascii.c"
    }
  ]
}
