)]}'
{
  "commit": "5f894997f087d6dbd2638780f1cfde2e88fdc6a9",
  "tree": "0056022beb5d4ca485befc4fe76f2543b8b65fa6",
  "parents": [
    "2a69a48db18a6fd84f02fd4060b587c127fb8e31"
  ],
  "author": {
    "name": "Valentin Churavy",
    "email": "v.churavy@gmail.com",
    "time": "Thu Oct 01 10:56:48 2026 +0200"
  },
  "committer": {
    "name": "Valentin Churavy",
    "email": "v.churavy@gmail.com",
    "time": "Thu Oct 01 10:56:48 2026 +0200"
  },
  "message": "Add Fortran bindings for split reverse mode\n\nThe Fortran module exposed only __enzyme_autodiff and __enzyme_fwddiff, so\nFortran code could not run the forward and reverse passes separately.\n\nAdd enzyme_augmentfwd and enzyme_reverse, bindings for __enzyme_augmentfwd and\n__enzyme_reverse, and the enzyme_tape descriptor. Pass a type(c_ptr) after\nenzyme_tape. The forward pass stores a pointer to its tape there, and the\nreverse pass reads the tape back and frees it. enzyme_allocated is left out:\nFortran passes its size by reference, but Enzyme needs a constant.\n\nAssisted-by: Claude Code (Opus 5.5)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "62ef356c9000a374c74dc58578fddd2cecaa35a6",
      "old_mode": 33188,
      "old_path": "enzyme/Fortran/README.md",
      "new_id": "04cd09d9ca6a842a3b544f2b476bd4e12e7b1c1c",
      "new_mode": 33188,
      "new_path": "enzyme/Fortran/README.md"
    },
    {
      "type": "modify",
      "old_id": "6fcae72c85d13abff0aa760287beb1cbb5ae0b4b",
      "old_mode": 33188,
      "old_path": "enzyme/Fortran/enzyme.f90",
      "new_id": "4f30147f3545784a2e52b71034df60ac0803e1e0",
      "new_mode": 33188,
      "new_path": "enzyme/Fortran/enzyme.f90"
    },
    {
      "type": "modify",
      "old_id": "c0cc711b3bc46172f31b539da0c3d5e9125bea3c",
      "old_mode": 33188,
      "old_path": "enzyme/Fortran/enzyme_function_hooks.f90",
      "new_id": "50e9ff560719f6dc3c3e34f067b0a5b14da02def",
      "new_mode": 33188,
      "new_path": "enzyme/Fortran/enzyme_function_hooks.f90"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "111c249cc23c37c300fd54846769fd54f66dddf8",
      "new_mode": 33188,
      "new_path": "enzyme/test/Fortran/ReverseMode/split_with_bindings_O0.f90"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0138686c6e086902bf9cd82c591177a5dadde864",
      "new_mode": 33188,
      "new_path": "enzyme/test/Fortran/ReverseMode/split_with_bindings_opt.f90"
    }
  ]
}
