)]}'
{
  "commit": "83bbfc027a2a94b53bd96b8bdd5ef9e5359820be",
  "tree": "3e1551da2534b0164c4f09525fa58ef9edae9f89",
  "parents": [
    "92f66779dbe9cf4e610175af7634860b0b392b12"
  ],
  "author": {
    "name": "Nigel Tao",
    "email": "nigeltao@golang.org",
    "time": "Sat Apr 26 09:26:54 2014 -0600"
  },
  "committer": {
    "name": "Nigel Tao",
    "email": "nigeltao@golang.org",
    "time": "Sat Apr 26 09:26:54 2014 -0600"
  },
  "message": "ogle/program/server: clarify ordering of evaluation when ptraceRun\nwraps a closure that \u0027returns\u0027 more than just an error.\n\nI don\u0027t think this changes the actual behavior with the gc compiler,\nbut a different compiler might not optimize the \"return foo\" part\nas a no-op, in:\nfunc f() (foo int, err error) {\n        etc\n        return foo, \u003c-s.ec\n}\nand then it\u0027s possibly racy whether foo is evaluated before or after\nthe channel receive.\n\nLGTM\u003dr\nR\u003dr\nhttps://golang.org/cl/89750043\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9bd335706f71672e1824a40d9c9340ba99848561",
      "old_mode": 33188,
      "old_path": "program/server/ptrace.go",
      "new_id": "989f154b545286cfc744e14f16d7b40cdc0555f6",
      "new_mode": 33188,
      "new_path": "program/server/ptrace.go"
    }
  ]
}
