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.
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.