)]}'
{
  "commit": "5a94e59f02833f9142bad9203acd72626b089535",
  "tree": "ddfe00a54a701eff0f74af6e84e5b8cefcef1c93",
  "parents": [
    "ab1711b026f8a4915ee2ef2556b2a7dbff18fa63"
  ],
  "author": {
    "name": "Francois-Rene Rideau",
    "email": "tunes@google.com",
    "time": "Fri Sep 04 19:13:47 2015 +0000"
  },
  "committer": {
    "name": "Damien Martin-Guillerez",
    "email": "dmarting@google.com",
    "time": "Tue Sep 08 09:02:28 2015 +0000"
  },
  "message": "Refactor Skylark Environment-s\n\nMake Environment-s freezable: Introduce a class Mutability\nas a revokable capability to mutate objects in an Environment.\nFor now, only Environment-s carry this capability.\nMake sure that every Mutability is revoked in the same function that creates it,\nso no Environment is left open for modification after being created and exported;\nexceptions for tests, the shell and initialization contexts.\n\nUnify Environment, SkylarkEnvironment and EvaluationContext into Environment.\nHave a notion of Frame for the bindings + parent + mutability.\nReplace the updateAndPropagate mechanism by a dynamicFrame.\nSimplify ValidationEnvironment, that is now always deduced from the Environment.\n\n--\nMOS_MIGRATED_REVID\u003d102363438\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "18d605ddbc3c44b733cce2a221b8cbbbc87c9551",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java",
      "new_id": "57bc5e82fec6cbf86bd5aabd9bb7804ddc994294",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java"
    },
    {
      "type": "modify",
      "old_id": "74b04a913a2e1725e88871e6d33d6813df668805",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/events/Location.java",
      "new_id": "1b9110d664d99d34ef81659ee40a607ab7d65e7f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/events/Location.java"
    },
    {
      "type": "modify",
      "old_id": "fda1a8321c39b992ed90a934325d213e0ccf7ed2",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/ExternalPackage.java",
      "new_id": "49852ee7475259714e702d60396020fc2d20df8a",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/ExternalPackage.java"
    },
    {
      "type": "modify",
      "old_id": "ffea0bddad6f670ad587c89ffa517e23c0bbd941",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java",
      "new_id": "cde726bffbc8c4bcb7f9a03200422803d7a926a0",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java"
    },
    {
      "type": "modify",
      "old_id": "a479ca9f55ff912a1aa1ae5ebd40ef1e139f03f3",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/Preprocessor.java",
      "new_id": "c44776ad8baf4f9685535d5025578ff301f46f01",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/Preprocessor.java"
    },
    {
      "type": "modify",
      "old_id": "59fcbb595bb6181d3604ca42e37c531b4fd1107a",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/RuleClass.java",
      "new_id": "7906a2bcda75b3d76d0e35479c0f40d73589e607",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/RuleClass.java"
    },
    {
      "type": "modify",
      "old_id": "958d88ac7c3757dd3744b47e56d465c5f2c6aa83",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/RuleClassProvider.java",
      "new_id": "b3ca83fe36df45566eea517b4ba36881a2aa2114",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/RuleClassProvider.java"
    },
    {
      "type": "modify",
      "old_id": "33f9d49793e13643e3e0e443679c1c40ffd545d1",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/RuleFactory.java",
      "new_id": "2eb94b19d994043780031eebf0a407bc9e860066",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/RuleFactory.java"
    },
    {
      "type": "modify",
      "old_id": "054865fafdcb7d34062a2ceecf5ade0274131e2c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java",
      "new_id": "abbbdf88d35340fe8aa505b7b9f0cada2b47da88",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java"
    },
    {
      "type": "modify",
      "old_id": "1fb878212b948c923f031f0a9bac9af7639a9d26",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/query2/output/ProtoOutputFormatter.java",
      "new_id": "fbe926735c00fc6d0944615516bf79689c267995",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/query2/output/ProtoOutputFormatter.java"
    },
    {
      "type": "modify",
      "old_id": "75afd45413fc3da69824a943ac89f79155263305",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/SkylarkAttr.java",
      "new_id": "e6d8f3c487ffb6d25bb277d3ff69985db05dad36",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/SkylarkAttr.java"
    },
    {
      "type": "modify",
      "old_id": "c52c58c88cfe3812c3e07d9ccabd33e1d8e9d15e",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/SkylarkModules.java",
      "new_id": "30544208c21ea4c3a906ceaccc1eb1a90fe230ee",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/SkylarkModules.java"
    },
    {
      "type": "modify",
      "old_id": "e2540342c7517e14acd7a878f2852f3cb2acc232",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java",
      "new_id": "c9e2cee87d0735b2bee8cbc6844c21d3a8f3064a",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java"
    },
    {
      "type": "modify",
      "old_id": "409b4087a46c89f15d04435b76984a7c79de69cf",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java",
      "new_id": "405abe435c56aecf4cea5ccc7022ab1a6f889030",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java"
    },
    {
      "type": "modify",
      "old_id": "2b339046e06f57761f2a9c60c54d281a99947af2",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/ASTFileLookupFunction.java",
      "new_id": "fe44617e0229f3f67391fd5a4ffa2196ff7c72c7",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/ASTFileLookupFunction.java"
    },
    {
      "type": "modify",
      "old_id": "9e3b8d516ba2b6398a97e330db910b6249d757c2",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java",
      "new_id": "ac3a6e9cbce9dbc098c1f87d7942fe8598dbcae7",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java"
    },
    {
      "type": "modify",
      "old_id": "0bd16ae90a6cc1a3291daec358afe9cda9ea1696",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunction.java",
      "new_id": "b3eb9570197e3a32e1b08b37a3d2ee9c77daf47f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunction.java"
    },
    {
      "type": "modify",
      "old_id": "020a42636709856025024852806a236d7258b525",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupValue.java",
      "new_id": "86db05497d82a4672b54b2f60f67837e095e28e0",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupValue.java"
    },
    {
      "type": "modify",
      "old_id": "30f0c6a027dc3372eca89649af7fb7a0e1449fd9",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java",
      "new_id": "ce45ca21558c1147fe0fc26d01fdf55f377ac847",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java"
    },
    {
      "type": "modify",
      "old_id": "8d5f48f2e0ae40a4e4ec4e33b242e8b80e5b2086",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/BaseFunction.java",
      "new_id": "d28d4d30a77db68453b89b437dbffad32f5f525e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/BaseFunction.java"
    },
    {
      "type": "modify",
      "old_id": "a7547deca3786071bf70a3b52f131a13ea7ec6ee",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/BuiltinFunction.java",
      "new_id": "aa9b151f99fb3df72d6d179822288a88293494e4",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/BuiltinFunction.java"
    },
    {
      "type": "modify",
      "old_id": "ed30671273518c136448852c19be3cf2604c7334",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/Environment.java",
      "new_id": "25be3fd996925c6242b5ab8663322cd4cf9d9fd1",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/Environment.java"
    },
    {
      "type": "modify",
      "old_id": "82ca835ccd9c4eedb17bc90731da3df71f9ba686",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/EvalExceptionWithStackTrace.java",
      "new_id": "714556e476478eb034f5d3be820e538ea6ceff31",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/EvalExceptionWithStackTrace.java"
    },
    {
      "type": "delete",
      "old_id": "6a24cb3cac67bb227840d155e2d1cf25a3d4ea45",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/EvaluationContext.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "b7842d4c4cedfb150e5ce5118cbcdd98324be61c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/Expression.java",
      "new_id": "1886843e86d5a43179d847cf3e11785fbc62b5c0",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/Expression.java"
    },
    {
      "type": "modify",
      "old_id": "8d1eb56f9c88950ab6224f586f4feb92da574bc8",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java",
      "new_id": "76737dd4c1c4dd62d5b6a92843e4a1d284a7d080",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java"
    },
    {
      "type": "modify",
      "old_id": "ae7c0272efabe9007480b89a780643d8e299db90",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/FunctionDefStatement.java",
      "new_id": "acc09c9859929f413825af3fe78b129c9ad32dd7",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/FunctionDefStatement.java"
    },
    {
      "type": "modify",
      "old_id": "df5f486e0bc340066bf6f9232a0d2d56bea83622",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/LValue.java",
      "new_id": "1a39755b5a536b235fe0ee7e3a3d5cd1a16cf6db",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/LValue.java"
    },
    {
      "type": "modify",
      "old_id": "996ae41bbeb315e8fe870e56ec002329811babda",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java",
      "new_id": "b1ca1f60a024a10b6301758a2ed53877161a0049",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5120f8d0d260ae8bebd135b5d25b381d2a6dab03",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/Mutability.java"
    },
    {
      "type": "modify",
      "old_id": "50ef2546d57edb9ad313755df2e6cd623b911e09",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/Runtime.java",
      "new_id": "9230d6be7247a9bb4b5eaee7dbca5fc715b079b3",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/Runtime.java"
    },
    {
      "type": "modify",
      "old_id": "94b1917ab66b51e3f78ebce3df5c78adfc23ac47",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/SkylarkCallbackFunction.java",
      "new_id": "6140acb0b0f9fc3f17efcc0ca3416a3d77d05261",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/SkylarkCallbackFunction.java"
    },
    {
      "type": "delete",
      "old_id": "0ff19f90c4d2fdad2856292df8dd456cd3ccfc20",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/SkylarkEnvironment.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "bf3c8321c0412126f4fdc8aef8caf7dea9a89117",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/SkylarkSignatureProcessor.java",
      "new_id": "6b316258ee8313c88e2468efa73245a3d5f275f6",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/SkylarkSignatureProcessor.java"
    },
    {
      "type": "modify",
      "old_id": "ca89b1ab432d4969f230e78b24712c3d30ceb9ef",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/Statement.java",
      "new_id": "2c99209b3ed96f565d5b8a89f2117ed5e01e95ca",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/Statement.java"
    },
    {
      "type": "modify",
      "old_id": "f50e6ee5f1ea60df5a6afba20d0605c7cd18e66b",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/UserDefinedFunction.java",
      "new_id": "537f29f63252a6f57ba832dbbb626d49856a6869",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/UserDefinedFunction.java"
    },
    {
      "type": "modify",
      "old_id": "9b71f96accb26ce34fc4ff4958a18478e7f8b34f",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/syntax/ValidationEnvironment.java",
      "new_id": "9d56271434a8c4a995c5d8ec4b0c9dbe3f907f67",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/syntax/ValidationEnvironment.java"
    },
    {
      "type": "modify",
      "old_id": "aa8d8f83a6e733470699c30efb653071523045f7",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/events/util/EventCollectionApparatus.java",
      "new_id": "c7f85d6fcba530840069205518c8304a0625e64a",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/events/util/EventCollectionApparatus.java"
    },
    {
      "type": "modify",
      "old_id": "24ac455762baaaf2e59e07003d03a49301b14df5",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/packages/util/PackageFactoryApparatus.java",
      "new_id": "2f298518e3808ae7aa1f004215156354659b906e",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/packages/util/PackageFactoryApparatus.java"
    },
    {
      "type": "modify",
      "old_id": "eff5badfb6018c4d8fb31e23110e062b458f870c",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/BuildFileASTTest.java",
      "new_id": "00e9062d63217e392f4b24b67d14bc5af7344772",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/BuildFileASTTest.java"
    },
    {
      "type": "modify",
      "old_id": "a324b13ff565a1c380b340048386986bba31f3e8",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/EnvironmentTest.java",
      "new_id": "02021245c65e9f3e758e85c5749c19f4c3d70041",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/EnvironmentTest.java"
    },
    {
      "type": "modify",
      "old_id": "cf23858207fd27a9b2e333987ad1a88070528243",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java",
      "new_id": "83a55be2d8af7ff3e487e5d80aa07e92149e0b74",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java"
    },
    {
      "type": "modify",
      "old_id": "b2d661b7d48ef44d860dc5fcdd9df01ebcaf2f3d",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/EvaluationTestCase.java",
      "new_id": "e26234af0cdeacc5d1a54c77b778507f68cb5b6a",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/EvaluationTestCase.java"
    },
    {
      "type": "modify",
      "old_id": "e0c074a126574e63c605876fbefc70f9197f3c2e",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java",
      "new_id": "5137b45c65f384b39b66fbbeee14f73d16efac26",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java"
    },
    {
      "type": "modify",
      "old_id": "16bcb8010f1a9d7469045a8ef23b157318f245ac",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java",
      "new_id": "a473f9525b82b451b92bc6851d94d2fb9a377558",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java"
    },
    {
      "type": "modify",
      "old_id": "86ad1fb557ec51db725b8919aed39b7f2a957683",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/SkylarkListTest.java",
      "new_id": "7558b6c4f3822590a2ff908fc77a8a08bbc6f331",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/SkylarkListTest.java"
    },
    {
      "type": "modify",
      "old_id": "c4bb7d84a999c99e314bcfb016100c237d38cc33",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/SkylarkShell.java",
      "new_id": "b12f51b1d0c834d609cd8766c86e61f2d2ada4d5",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/SkylarkShell.java"
    },
    {
      "type": "modify",
      "old_id": "57b341f3b914ed6bf603c591fe817ee16cd64ea6",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/syntax/ValidationTests.java",
      "new_id": "3ebdf8dde43ca3541e49661b33ef3dab838e72ad",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/syntax/ValidationTests.java"
    },
    {
      "type": "modify",
      "old_id": "5ec7ac27b22a0799c59230faa685d267e8b37a72",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/testutil/TestMode.java",
      "new_id": "ea887f9d68314fdc5702222819e0f4e8bc3cc0a7",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/testutil/TestMode.java"
    },
    {
      "type": "modify",
      "old_id": "2fd1ffe57c2aae6ea7fdfe3c3a07a3be1dbef2ee",
      "old_mode": 33188,
      "old_path": "src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/Resolver.java",
      "new_id": "0feebe2ddc4f344419a2c1cd660d12023f537452",
      "new_mode": 33188,
      "new_path": "src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/Resolver.java"
    }
  ]
}
