mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
* Roll dart to aece1c1e92. Changes since last roll: ``` aece1c1e92 Update compile_flutter.sh after vm -> frontend_server rename 9293e26fc9 [gardening] Fix flutter hhh patch. 13fbf569f6 [flutter] split frontend_server from vm package a389015083 Rewrite MethodInvocation to FunctionExpressionInvocation when the target is not a method. ae251757a9 [vm,aot,bytecode] Performance fixes 01ebf92dde [VM] Consume extension member/is late flag setting when reading kernel file. 8e05cd278c [vm, bytecode] Emit bytecode without ASTs by default. 4539536b34 [eventhandler] generalize socket initialization 7115687beb NNBD i13n: Add a description for discarding just the condition 2bcaf02582 (origin/base) Update dartdoc to 0.28.7. a0e8c7712d [dart2js] New RTI: Prevent elision of precomputed1 and remove unneeded read. c38e19cbbe [vm/compiler] bit utilities f918214f36 Add a unit test reproducing issue #38352. ad47b1ca64 Remove summary1, part 2. 0881a4a691 Reland "Deprecate TypeParameterTypeImpl.getTypes()" d93a6b596b Prepare to publish analyzer version 0.38.5 d5feab0c53 [vm] Create builds for LeakSanitizer, MemorySanitizer and ThreadSanitizer. 8c5236f55e [vm/ffi] Fix host-target word mismatch breaking AOT callbacks in ARM_X64. 5f7b837195 Remove unused FunctionElementImpl_forLUB. 2c75771611 Write and read the static type of IntegerLiteral. b00453c68a Create synthetic FunctionType in quick fixes. 897e197dd4 Flow analysis: Update AssignedVariablesVisitor to track functions/methods. 55466fd3cc Flow analysis: Remove AssignedVariables.capturedAnywhere. 0a5cf36f14 Make exitFunctionBody safer. ``` * Update license hash
72 lines
2.5 KiB
Markdown
72 lines
2.5 KiB
Markdown
# 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.
|
|
|