)]}'
{
  "commit": "7dbc5e03f1ced0e3a67e42e0f182579865d26af7",
  "tree": "c181d7456e951a103cccf57b301f49ee7de489ff",
  "parents": [
    "f59022b9b19c0086adc9795fd8659f8bc988f747"
  ],
  "author": {
    "name": "Taras Tsugrii",
    "email": "ttsugrii@fb.com",
    "time": "Mon Jul 30 10:48:31 2018 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-piper@google.com",
    "time": "Mon Jul 30 10:49:57 2018 -0700"
  },
  "message": "[Skylark] Use POJOs instead of dynamic proxies.\n\nJava uses dynamically generated proxy classes to access annotation properties\nand their methods are ~7X slower than plain getters. According to async-profiler\n50%+ of `convertArgumentList` method time is spent in dynamic proxy methods, so\noptimizing their performance makes sense.\n\nThis also makes the model less anemic, since POJOs can actually provide business\nmethods.\n\nCloses #5666.\n\nPiperOrigin-RevId: 206608812\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3798b1fc79c20cc671ee501f5ed7d2f453192f2f",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/NativeInfo.java",
      "new_id": "2652671007b7cce6b08b7d828af0f70f4e9fac35",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/NativeInfo.java"
    },
    {
      "type": "modify",
      "old_id": "75d7e00c8f29047d31b6e461c72115a4a2e9d200",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skylarkdebug/server/DebuggerSerialization.java",
      "new_id": "ba3743de856ad75ce540fd56fc23d9b200a12fe4",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skylarkdebug/server/DebuggerSerialization.java"
    },
    {
      "type": "modify",
      "old_id": "9a0a56b5925d2319f960268d07ae0fd381fd218c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/BuiltinCallable.java",
      "new_id": "aa37b3567727edb529294aab3a10a7db9c1e18fc",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/BuiltinCallable.java"
    },
    {
      "type": "modify",
      "old_id": "b41f274c37e0f128a2461fb505c9ba4fa2a3a428",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java",
      "new_id": "ad8b50379eb9bd71332b5a646f4e921ef6d9397c",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java"
    },
    {
      "type": "modify",
      "old_id": "fefcf70355a8a81a5cf84ea6b6156b9fdc4b6b9f",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java",
      "new_id": "814b329a80a33dc15bd84b304f60d9df0be0b62e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "978b15f7c46ef21030666767f396e31a36dbda9b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/MethodDescriptor.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1bbc05b95a3c1397c7d119797b9aabd446a4d988",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/ParamDescriptor.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f414636383e25448c77cc0c8554226a3ee097812",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/ParamTypeDescriptor.java"
    },
    {
      "type": "modify",
      "old_id": "009bdedfd3a16296e2717a1e95c2cba5206c279a",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/SkylarkSignatureProcessor.java",
      "new_id": "2c9e074f4930bffef6fb2fdbde0c3d35e7ff38ce",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/SkylarkSignatureProcessor.java"
    }
  ]
}
