)]}'
{
  "commit": "34052bf2bbe2477d22bc4ef96b774067a86f68e3",
  "tree": "6f79cadd39c4275acbba70029f3570061cd92197",
  "parents": [
    "0c5f2a35328fc0b285c01710b6ea7f3a7d2e0713"
  ],
  "author": {
    "name": "Anna Gringauze",
    "email": "annagrin@google.com",
    "time": "Thu Sep 03 03:05:13 2020 +0000"
  },
  "committer": {
    "name": "commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Thu Sep 03 03:05:13 2020 +0000"
  },
  "message": "Add expression evaluation to ddc for google3\n\n- Move expression evaluation to ddc in preparation for google3\n- Added server to ddc to handle update and compileExpression requests\n- Added tests\n- Added \u0027experimental-output-compiled-kernel\u0027 option to ddc to generate\n  full kernel files only for compiled libraries, and store with\n  \u0027.full.dill\u0027 extension\n- Added AssetFileSystem to communicate to the asset server in the\n  debugger\n- Made expression_compiler_worker work with full kernel files,\n  so removed invalidation of current file to improve performance\n- Made expression_compiler_worker reuse already loaded imports\n  to avoid reading them from source in the incremental compiler\n- Updated tests to work with DDC (for simulating webdev)\n- Disabled tests that work with bazel kernel worker for now\n  as it does not generate full dill files yet\n- Addressed code review comments from the prototype version:\n  https://dart-review.googlesource.com/c/sdk/+/157005\n\nDetails:\n\nCurrently, in flutter tools, expression evaluation is supported via\nexpression compilation, which is done by the incremental compiler in\nthe frontend server. The same incremental compiler is used for initial\napplication compilation, incremental code compilation for hot reload,\nand any number of expression compilation requests.\n\nIn google3, the apps are typically too large to be compiled as a whole\nin memory by the frontend server. Build in google3 is currently done by\nblaze, as a distributed build using a task dependency graph. Build tasks\noutput kernel outline files as an interface between components produced\nby individual tasks.\n\nWe are proposing an implementation of the expression compilation in\ngoogle3 that is taking advantage of full kernel files produced by the\nbuild (supporting build changes to follow). This change introduces a\nsmall server based on dev_compiler, which can handle following requests:\n\n- update: load full kernel for given modules (done on app start)\n- compileExpression: compile expression in a given library and module\n  (done when paused on a breakpoint)\n\nExpression compilation uses previously loaded kernel files for the\napplication component and its dependencies to compile an expression.\n\n\nChange-Id: Icf73868069faf3a2eb6d43ba78e459f8457e9e35\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/160944\nReviewed-by: Nicholas Shahan \u003cnshahan@google.com\u003e\nReviewed-by: Gary Roumanis \u003cgrouma@google.com\u003e\nReviewed-by: Jens Johansen \u003cjensj@google.com\u003e\nReviewed-by: Jake Macdonald \u003cjakemac@google.com\u003e\nCommit-Queue: Anna Gringauze \u003cannagrin@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a906e00ec514da55db940f98faa18c873ec49471",
      "old_mode": 33261,
      "old_path": "pkg/dev_compiler/bin/dartdevc.dart",
      "new_id": "68246e3d3b2708425612c19cce07cca331127664",
      "new_mode": 33261,
      "new_path": "pkg/dev_compiler/bin/dartdevc.dart"
    },
    {
      "type": "modify",
      "old_id": "dedfc7269e511b56ea545fbd2b51ede1ae672426",
      "old_mode": 33188,
      "old_path": "pkg/dev_compiler/lib/dev_compiler.dart",
      "new_id": "ca0a8bdbf270281bb0e5e7387ea8911fcc3190f4",
      "new_mode": 33188,
      "new_path": "pkg/dev_compiler/lib/dev_compiler.dart"
    },
    {
      "type": "modify",
      "old_id": "2761eb03c339ddcf36ab0e8eabc6884aaa4c8924",
      "old_mode": 33188,
      "old_path": "pkg/dev_compiler/lib/src/compiler/shared_command.dart",
      "new_id": "358f238caad43f56f6af09ae555890409941b7e3",
      "new_mode": 33188,
      "new_path": "pkg/dev_compiler/lib/src/compiler/shared_command.dart"
    },
    {
      "type": "modify",
      "old_id": "ba8002244caca78f704c5f2103c935cb767bf582",
      "old_mode": 33188,
      "old_path": "pkg/dev_compiler/lib/src/kernel/command.dart",
      "new_id": "6598642fa3780ec1311653d084e6dde3b56d77b2",
      "new_mode": 33188,
      "new_path": "pkg/dev_compiler/lib/src/kernel/command.dart"
    },
    {
      "type": "modify",
      "old_id": "a040dc96035af5b89a15255654c63b5b21c5f862",
      "old_mode": 33188,
      "old_path": "pkg/dev_compiler/lib/src/kernel/compiler.dart",
      "new_id": "96575f13d13777dabac37f63ca20cfb8dc2b7522",
      "new_mode": 33188,
      "new_path": "pkg/dev_compiler/lib/src/kernel/compiler.dart"
    },
    {
      "type": "rename",
      "old_id": "a64a90448ac93500a8e6f22399baa40ee9c60006",
      "old_mode": 33188,
      "old_path": "pkg/frontend_server/lib/src/expression_compiler.dart",
      "new_id": "2b26a3f4e59a6bb17f8e12fc12bfe26599674f25",
      "new_mode": 33188,
      "new_path": "pkg/dev_compiler/lib/src/kernel/expression_compiler.dart",
      "score": 94
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9cb61dc3545ac0e2ebf839ed13310cd16571339e",
      "new_mode": 33188,
      "new_path": "pkg/dev_compiler/lib/src/kernel/expression_compiler_worker.dart"
    },
    {
      "type": "modify",
      "old_id": "48ed14f17ef214f6b84e18c764e11a04cf87e3f8",
      "old_mode": 33188,
      "old_path": "pkg/dev_compiler/pubspec.yaml",
      "new_id": "73cdcc9e1d0205c6ca16de760e1289aed5e4f3ca",
      "new_mode": 33188,
      "new_path": "pkg/dev_compiler/pubspec.yaml"
    },
    {
      "type": "rename",
      "old_id": "2dabd91f49e0b6bcabdb6490a4b45642518c5748",
      "old_mode": 33188,
      "old_path": "pkg/frontend_server/test/src/expression_compiler_test.dart",
      "new_id": "7374f490d90973c8cf8b363bf0d3938fb0e9a6e7",
      "new_mode": 33188,
      "new_path": "pkg/dev_compiler/test/expression_compiler/expression_compiler_test.dart",
      "score": 95
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "18fa6ce7ba4ec166678ce53b527dded6983537c4",
      "new_mode": 33188,
      "new_path": "pkg/dev_compiler/test/expression_compiler/expression_compiler_worker_test.dart"
    },
    {
      "type": "modify",
      "old_id": "35f563164eaf50abff17ab7154298e0104635151",
      "old_mode": 33188,
      "old_path": "pkg/frontend_server/lib/frontend_server.dart",
      "new_id": "af482511df68d66d6f08106108fe374adc08cd5a",
      "new_mode": 33188,
      "new_path": "pkg/frontend_server/lib/frontend_server.dart"
    },
    {
      "type": "modify",
      "old_id": "6f96f7e882878a3cea18796eca9949a63f1f006d",
      "old_mode": 33188,
      "old_path": "pkg/frontend_server/pubspec.yaml",
      "new_id": "7932dab8da243c0cc3320a8692ceb04b0a4c1dc4",
      "new_mode": 33188,
      "new_path": "pkg/frontend_server/pubspec.yaml"
    }
  ]
}
