)]}'
{
  "commit": "9ace3c3763fc47020b9f0e73d50bbfb589ae70cc",
  "tree": "2d86792b46a1149cf225bc3eba8796f433f69b78",
  "parents": [
    "b614b86f59d1b0c0179e0b881a36ac5b19359d7f"
  ],
  "author": {
    "name": "jcd",
    "email": "jcd@golang.org",
    "time": "Tue Oct 13 15:08:37 2015 +1100"
  },
  "committer": {
    "name": "jcd .",
    "email": "jcd@golang.org",
    "time": "Sat Oct 17 06:47:18 2015 +0000"
  },
  "message": "x/debug: add an expression evaluator.\n\nThe evaluator parses the expression with go/parser, then walks through\nthe resulting syntax tree, evaluating the subexpression at each node.\n\nThe expression can include local and global variables.  The program\ncounter and stack pointer of the stopped program are used to determine\nwhat variables are available, and their location in memory.\n\nThe returned result uses the same types as the program.Value function.\n\nThe math/big package is used to represent untyped numeric constants.\n\nA go generate rule using the m4 preprocessor is used to produce eval.go.\n\nChange-Id: I5b668308b3dd8361fc16974b3dfe9e1ab423c974\nReviewed-on: https://go-review.googlesource.com/15678\nReviewed-by: Dave Day \u003cdjd@golang.org\u003e\nReviewed-by: Ian Lance Taylor \u003ciant@golang.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7a694458374c81efd0029bf2d7f16b43e7d0c9c3",
      "old_mode": 33188,
      "old_path": "ogle/demo/ogler/ogler_test.go",
      "new_id": "2affb00cc005d07b27d6e9fc7eab219d142e8fc2",
      "new_mode": 33188,
      "new_path": "ogle/demo/ogler/ogler_test.go"
    },
    {
      "type": "modify",
      "old_id": "1293ba2e7c70ad661a83cb3ebc5d56bb293ceeab",
      "old_mode": 33188,
      "old_path": "ogle/demo/tracee/main.go",
      "new_id": "91b942e4bcff0d64ca369db02bc6cbebb9a3ffb8",
      "new_mode": 33188,
      "new_path": "ogle/demo/tracee/main.go"
    },
    {
      "type": "modify",
      "old_id": "6841767b4c0dadb64b8c732a8be295240b90546b",
      "old_mode": 33188,
      "old_path": "ogle/program/client/client.go",
      "new_id": "6083d04178c9daa834ac5d7fb5a5feeab8f4b0ac",
      "new_mode": 33188,
      "new_path": "ogle/program/client/client.go"
    },
    {
      "type": "modify",
      "old_id": "cbbb6819710228918adce6535e964c84c26ccaa4",
      "old_mode": 33188,
      "old_path": "ogle/program/local/local.go",
      "new_id": "55f8c12bc6d1cd78d14f64b1a8512cff7580ac84",
      "new_mode": 33188,
      "new_path": "ogle/program/local/local.go"
    },
    {
      "type": "modify",
      "old_id": "4409781f7868e83825a35739c33a5a50574bab71",
      "old_mode": 33188,
      "old_path": "ogle/program/program.go",
      "new_id": "b7feb208c5d28ac4ed20448d99c99864ca750aa3",
      "new_mode": 33188,
      "new_path": "ogle/program/program.go"
    },
    {
      "type": "modify",
      "old_id": "80031c3229b73472c7b56bac7ca56fcc3bdb891c",
      "old_mode": 33188,
      "old_path": "ogle/program/proxyrpc/proxyrpc.go",
      "new_id": "8ed02b41ec12bd44939402885239c1fc5e998d6e",
      "new_mode": 33188,
      "new_path": "ogle/program/proxyrpc/proxyrpc.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "53e4e7194e75e16344305e675e80dfa9a93ea53f",
      "new_mode": 33188,
      "new_path": "ogle/program/server/eval.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "16b8bade599847296c0f31fe86b0355b1d9161eb",
      "new_mode": 33188,
      "new_path": "ogle/program/server/eval.m4"
    },
    {
      "type": "modify",
      "old_id": "4b44581c6766acfc347086589d01ae1bdd006773",
      "old_mode": 33188,
      "old_path": "ogle/program/server/server.go",
      "new_id": "ecffc180e05ac7e5165e311e6d863f5e88022abd",
      "new_mode": 33188,
      "new_path": "ogle/program/server/server.go"
    }
  ]
}
