Siva 80a6a46fb4 Roll Dart to version fe606f890b0a311da802c78b0af414a3c2087a79 (flutter/engine#5033)
fe606f890b Revert [vm/compiler] Canonicalize more intermediate constants in IL.
54531ad4e7 Bring in the latest pub_semver
61b15fede8 [build] Remove unnecessary inputs from uses of application_snapshot.
9968728df1 Remove package:cli_util deps from package:analyzer.
0ca8b6e5be Improve recovery when "assert" is used in an expression
6de5da1f58 fix #32649, add an option to disable asserts in DDC/K
afbaf0c4a6 Add 'Extract Widget' to getAvailableRefactorings().
d4a1896cfb Demote IMPORT_DUPLICATED_LIBRARY_NAMED to a warning
f85480b4dd Add tests for CFE implementation of expression compilation.
a865531f57 Remove two unused classes from the public API
3b7199fe63 [standalone] Only allow one outstanding load when running with --deterministic.
35fecb4a10 Issue 32896. Add isXYZ accessors to ParameterElementForLink_VariableSetter.
8df94f34fd Improve fasta parser await-for statement recovery
dd897d35a2 Move the task API out of the public API
c32e0e4bf3 [vm] Clear trailing bytes of objects that end up in snapshot images.
3a5fcf5a87 Upgrade the dep on package:isolate.
973a1a0219 Remove uses of upper-case constants in remaining SDK code.
b3595d59b3 [VM] Revert small change in FlowGraphCompiler::EmitTestAndCallCheckCid
0cbd4b520a Address review comments from change 51120
5dd283e783 fix #32270, DDC tests can now work with preview-dart-2
ce2b0db370 Improve fasta parser "assert" recovery
f8f5365a94 [vm/compiler] Fix sorting of instructions stats.
30655dcea0 [vm/aot] Treat Endian.host as a compile time constant.
eeaea82b75 Update status on test that often times out
805c08d8bf Fix a run-time type issue when running in Dart 2 mode
b1bc4ed2b5 Handle as in nested const constructors
823dfda5a5 Delete serialization, except for equivalence and helpers used in other tests.
7383cd46e0 Fix for issue 32872
86ba29265a Clean up the use of deprecated API in the analyzer_plugin package
fbb60b786f Add generic bounds test to function_type_variable_test
fd5f998796 [vm] Delta-encode offsets into ROData.
6fe7a86e7f Replace SourceFactory.resolveUri() with resolveRelativeUri() in resynthesizer.
2fb94418cd Mark mirrors test crashing.
c2b338f1b7 Remove fuzzy arrow support from analyzer
9976cddcd7 Shared cache of FileState contents.
b52931ff30 Revert "[vm/kernel] Fix non-canoncialized type arguments in partial instantiation."
c214c43758 Make LineInfo a public class
bd12c869ae [vm/kernel] Fix non-canoncialized type arguments in partial instantiation.
51a2f96a71 Always call writeAnnotationList to write annotations.
974a8ee21d Fix crash in named function expression
988de9c925 Thread forest object through calls
51f9d243e7 [VM] Mark type as finalized before calling the Canonicalize() method
a8578eaf69 Clean up some imports in Fasta type inference
e9616da13e Cleanup TypeInfo
3b414a277c Reland "[VM] Introduction of type testing stubs - Part 1-4"
c5f69dff2d Include `call` on Closure in inference
826928e2ab Use _trust to test inference of --omit-implicit-checks
6802746ad7 Fixed a couple of typos in subtyping.md
782cfe04d1 fix #32756, DDC dynamic calls to generics will work with emit-metadata
8613938e33 fix DDK to track mock setters correctly.
92f1d0fab4 [gn] Allow single or double quotes in .config
e2ee654cd1 Make a method in MempryResourceProvider private
b0fafbd1f4 Clean up js_runtime parse/tryParse methods
5e1cb4d41b Make SourceRange part of analyzers public API
1ab4cee181 Add a benchmark for running flutter analyze --flutter-repo against flutter head.
ff24a5ee6b fasta: make strong-mode inference aware of the type of LoadLibrary and CheckLibraryIsLoaded
6d7df88fa3 Delay computing file name sets until they are requested.
b7cc1e7ce7 Fix stack overflow in RTI computation
6db4ea4ca5 [vm] Use unsigned varints when possible in the clustered snapshot.
2018-04-18 11:07:56 +02:00
..

Frontend Server

Frontend server is simple wrapper around Dart Frontend. It is a Dart application that compiles Dart source into Dart Kernel binary (.dill-file). Documentation on Dart Kernel (semantic, binary format, etc) can be found here: https://github.com/dart-lang/sdk/wiki/Kernel-Documentation.

Frontend server runs in two modes:

  • immediate mode, where Dart source file name is provided as command line argument;
  • interactive mode, where communication is happening over stdin/stdout.

Interactive mode instructions

Compile/Recompile

compile <input.dart>

Compiles <input.dart> Dart source file with Dart Frontend. Replies with result response.

recompile <boundary-key>
<path/to/updated/file1.dart>
<path/to/updated/file2.dart>
...
<boundary-key>

Incrementally recompiles Dart program previously compiled in current session, taking into account changes in the listed files. Replies with result response.

Relative paths should be relative to current working directory for the shell that launched Frontend Server.

Accept/Reject

accept

Accepts results of incremental compilation, so that on next recompilation request Dart Frontend will not include these recompiled files.

reject

Rejects results of incremental compilation, so that on next recompilation request Dart Frontend will include compilation results from previously rejected recompilation in addition to what it will recompile based on newly changed files. Small technical detail is that Dart Frontend will not recompile files from previously rejected recompilation attempts (unless they were changed since then), it will just include appropriate kernel binaries it kept around from those previously rejected compilation requests.

One use of accept and reject instructions is in the context of Dart VM hot-reload. Dart VM can reject user-provided incremental change to what is currently running. It could happen for variety of Dart VM internal reasons. For example, if incremental update changes some class to enum, such update can not be hot-reloaded by VM at this point, will be rejected.

Quit

quit

Stops the server.

Response from the server

result <boundary-key>
<compiler output>
<boundary-key> [<output.dill>]

Response from the Dart Frontend compiler is bracketed by <boundary-key> tags. If the compiler was able to produce a Dart Kernel file, the name of this file <output.dill> is provided too. If the compiler encountered unrecoverable errors, there will be no output file name provided.