)]}'
{
  "commit": "3f602f2abdeccb353dfbb8cfed91fb5c9bd6dfc5",
  "tree": "3bfe9a1cb7ca032b7e1987dc0964ea393f137074",
  "parents": [
    "d0d8e84661da99f091efc0c25dc82b320357ff96"
  ],
  "author": {
    "name": "adonovan",
    "email": "adonovan@google.com",
    "time": "Wed Jan 08 10:28:10 2020 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Jan 08 10:29:20 2020 -0800"
  },
  "message": "bazel syntax: optimize calls to built-in methods\n\nThis change rewrites CallUtils.convertStarlarkArgumentsToJavaMethodArguments,\nnow called BuiltinCallable.getArgumentVector, to process arguments in three\nsteps---positional, named, defaults---avoiding all memory allocation\nexcept for the argument vector itself. Evaluation of parameter default\nvalue expressions has been moved into ParamDescriptor, so that concurrent\nhash map lookups are avoided.\n\nAlso, the error messages have been improved in many ways\n- they are more concise, and don\u0027t dump the whole signature.\n- they state facts before expectations.\n- they are better phrased (subject first, emphasis last).\n- the called function is always named, but simply, not in fussy detail.\n- the numbers of accepted parameters are stated, when relevant.\n- the incorrect type is shown after a failed type check.\n- unexpected keywords are spell-checked.\n- plurals are correct.\n\nThe logic is somewhat simpler.\n\nExcept in lib.syntax itself, test expectations of these error messages\nhave been edited down to the crucial parts, for robustness.\n\nThis is a breaking API change for copybara.\n\nBEGIN_PUBLIC\nbazel syntax: optimize calls to built-in methods\nEND_PUBLIC\n\nPiperOrigin-RevId: 288725155\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7b3ff5d41751e73efb88883ee2b2958b7a0bf3fc",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skylarkinterface/SkylarkCallable.java",
      "new_id": "2b7a08e4f135fbb1557da2e30639c11271354071",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skylarkinterface/SkylarkCallable.java"
    },
    {
      "type": "modify",
      "old_id": "7a3f247519e987e07383372cf36c3be4f8978318",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/BuiltinCallable.java",
      "new_id": "a95d20f45aa44809352a9c3dffda3f78b01b105e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/BuiltinCallable.java"
    },
    {
      "type": "modify",
      "old_id": "cc52b630f19f723d88773526310cd041de294744",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/CallUtils.java",
      "new_id": "0360c6af10dec52b1a0fab1f3ad6097036976885",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/CallUtils.java"
    },
    {
      "type": "modify",
      "old_id": "02e101f727e4e1e02f3ee72e5dde49243fe3b8d6",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/MethodDescriptor.java",
      "new_id": "b8997b41aa2a5d85c6381b687b922c3e08444aa1",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/MethodDescriptor.java"
    },
    {
      "type": "modify",
      "old_id": "cf1677066390d955245af872fdb03fc0b2655f23",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/ParamDescriptor.java",
      "new_id": "f66921911c140d2e04e17ae42d677ee53c5fc150",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/ParamDescriptor.java"
    },
    {
      "type": "modify",
      "old_id": "ea925d381e030fe1543ca276f98c083f4cfa8235",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/Starlark.java",
      "new_id": "c74d721591b4c5d2a80622c17a483ef238ddc710",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/Starlark.java"
    },
    {
      "type": "modify",
      "old_id": "4e5bf23adcda2268f7eae4fee6e42ee0dcbd7aa2",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java",
      "new_id": "3b85a63fae57b83e786fbab98cad7036c9613468",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java"
    },
    {
      "type": "modify",
      "old_id": "ac0c181ac2670edaa70ba4fed80fba528741ac30",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java",
      "new_id": "ee3be76c05af0446a8e3ba7cbba1e1d7823aa6b4",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java"
    },
    {
      "type": "modify",
      "old_id": "9d102cf2beecec0d42581d9146b2200dfae256e6",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java",
      "new_id": "c19f77cc68435eb373254f2005b0eb5ef87451cc",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java"
    },
    {
      "type": "modify",
      "old_id": "17f54f98cd8b4ae74dec9e54632b957862245ce6",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java",
      "new_id": "ed4c9f37f58c03ca1c2440657e84b86a9fb74bff",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java"
    },
    {
      "type": "modify",
      "old_id": "1a4b234265ec38673bd000041a2fe4ed3696c80a",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/rules/python/PyInfoTest.java",
      "new_id": "56138239c8bafed5bb7d7e7cd1f3e0f6cedf7208",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/rules/python/PyInfoTest.java"
    },
    {
      "type": "modify",
      "old_id": "b4c293c2dad1a10473f750f6c682209b1c1ca07e",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/rules/python/PyRuntimeInfoTest.java",
      "new_id": "882b043599d50219a5c050dc354ab0ee51614083",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/rules/python/PyRuntimeInfoTest.java"
    },
    {
      "type": "modify",
      "old_id": "8b9dd8062caad06f646bbc14286b668ba3af98c3",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java",
      "new_id": "7841fdb3dab7b42f2d3cd26b3d6b3bd2f8d0e520",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java"
    },
    {
      "type": "modify",
      "old_id": "2301288e192efdbd93e7f87fbd028d20e9c189cd",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java",
      "new_id": "b9c9be404daf267bc2c46d0c7323fcd18d6f2cb6",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java"
    },
    {
      "type": "modify",
      "old_id": "d881afa46793501741a2f06956006b704ef148e7",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java",
      "new_id": "34d8df9389e5a05a3944117efd9ae85b3430972e",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java"
    },
    {
      "type": "modify",
      "old_id": "d38652f89a5c79ecb1b8c6dbf191c75ed59d74b0",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/DepsetTest.java",
      "new_id": "affb7ee8d948d025ab71e1eeae5d26fd9eeb50bd",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/DepsetTest.java"
    },
    {
      "type": "modify",
      "old_id": "615c613625e270c1d0b785e0f007702bd07414c7",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java",
      "new_id": "03f12f9f7a81af828b1664d8f307383038073ff9",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java"
    },
    {
      "type": "modify",
      "old_id": "56762cc3c816bfd2edb86dc8297e83c180301dc3",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java",
      "new_id": "b8af7b4c7708a76d0dc2b3ae4e564d36d67e6d06",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java"
    },
    {
      "type": "modify",
      "old_id": "e3b76932ae36b78367ef59ba8e94b9bf5f55e10c",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java",
      "new_id": "10f840815395f8f53728370b90e6a3461301c4d2",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java"
    },
    {
      "type": "modify",
      "old_id": "263aac4ac19d8b0ac25aa4b4c9f24241bc32bac9",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/StarlarkFlagGuardingTest.java",
      "new_id": "34eac9279fc7d1bfa0a1f568c530321a40322cb9",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/StarlarkFlagGuardingTest.java"
    },
    {
      "type": "modify",
      "old_id": "2863318ad149d8e6df9293134fc4110068a96374",
      "old_mode": 33261,
      "old_path": "src/test/shell/integration/outputs_test.sh",
      "new_id": "e2f523a0b28e64998d1c92aefaba38d42f2cadda",
      "new_mode": 33261,
      "new_path": "src/test/shell/integration/outputs_test.sh"
    },
    {
      "type": "modify",
      "old_id": "a8fe7bb71f8eeb6e6fd44df55ebc3167a24f2dd7",
      "old_mode": 33188,
      "old_path": "src/test/starlark/testdata/function.sky",
      "new_id": "2d8e90855ac263ac42af1dccdae464a4be0e10ba",
      "new_mode": 33188,
      "new_path": "src/test/starlark/testdata/function.sky"
    },
    {
      "type": "modify",
      "old_id": "f6ee91ef799b7c8788139c6860086e46389f4a84",
      "old_mode": 33188,
      "old_path": "src/test/starlark/testdata/int_constructor.sky",
      "new_id": "17eb1f8ab637d5939a708ad62eb1c2f8e579c2f4",
      "new_mode": 33188,
      "new_path": "src/test/starlark/testdata/int_constructor.sky"
    },
    {
      "type": "modify",
      "old_id": "29d066f6c125916b795ba4aec5702245a37fc538",
      "old_mode": 33188,
      "old_path": "src/test/starlark/testdata/int_function.sky",
      "new_id": "ff723970d1a39aa544bbef5e82364bde76ce3ed0",
      "new_mode": 33188,
      "new_path": "src/test/starlark/testdata/int_function.sky"
    },
    {
      "type": "modify",
      "old_id": "9d07c40eb88ad5d475c2d60b014381c9d70abac0",
      "old_mode": 33188,
      "old_path": "src/test/starlark/testdata/reversed.sky",
      "new_id": "da208a8116d63b0679124fc4f31bb5cdd04f1a8c",
      "new_mode": 33188,
      "new_path": "src/test/starlark/testdata/reversed.sky"
    },
    {
      "type": "modify",
      "old_id": "edd1f0741998b399d9449814b2f0abe7f57ef4c9",
      "old_mode": 33188,
      "old_path": "src/test/starlark/testdata/string_misc.sky",
      "new_id": "fd909edac19ea27889d201bbd48133d23d981f5a",
      "new_mode": 33188,
      "new_path": "src/test/starlark/testdata/string_misc.sky"
    }
  ]
}
