Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 4c2448d

Browse files
Some cleanups enabled by removing support for Dart. (#5621)
- Switch core snapshot to Dart 2 and remove support for loading platform.dill. - Remove support for loading script snapshots. - Remove support for loading source. - Remove settings and fix names to reflect the above. - Remove support for loading the service isolate from source.
1 parent e27a2e9 commit 4c2448d

24 files changed

+195
-731
lines changed

common/settings.cc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ namespace blink {
1111
std::string Settings::ToString() const {
1212
std::stringstream stream;
1313
stream << "Settings: " << std::endl;
14-
stream << "script_snapshot_path: " << script_snapshot_path << std::endl;
1514
stream << "vm_snapshot_data_path: " << vm_snapshot_data_path << std::endl;
1615
stream << "vm_snapshot_instr_path: " << vm_snapshot_instr_path << std::endl;
1716
stream << "isolate_snapshot_data_path: " << isolate_snapshot_data_path

common/settings.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ using TaskObserverRemove = std::function<void(intptr_t /* key */)>;
2323

2424
struct Settings {
2525
// VM settings
26-
std::string script_snapshot_path;
27-
std::string platform_kernel_path;
28-
2926
std::string vm_snapshot_data_path;
3027
std::string vm_snapshot_instr_path;
3128
std::string isolate_snapshot_data_path;

lib/snapshot/BUILD.gn

Lines changed: 139 additions & 187 deletions
Original file line numberDiff line numberDiff line change
@@ -25,197 +25,143 @@ copy("generate_dart_ui") {
2525
]
2626
}
2727

28-
action("generate_snapshot_bin") {
29-
if (is_fuchsia) {
30-
snapshot_dart = "snapshot_fuchsia.dart"
31-
32-
# TODO(rmacnak): Fuchsia cross builds use the wrong Dart target
33-
# architecture, and have added steps that depend on this error for
34-
# reasonable build times (e.g., invoking the analyzer).
35-
if (target_cpu == host_cpu) {
36-
snapshot_kind = "core-jit"
37-
} else {
38-
snapshot_kind = "core"
39-
}
40-
} else {
41-
snapshot_dart = "snapshot.dart"
42-
snapshot_kind = "core"
43-
}
28+
# Fuchsia's snapshot requires a different platform with extra dart: libraries.
29+
if (!is_fuchsia) {
30+
compiled_action("generate_snapshot_bin") {
31+
tool = "//third_party/dart/runtime/bin:gen_snapshot"
4432

45-
deps = [
46-
":generate_dart_ui",
47-
"//third_party/dart/runtime/bin:gen_snapshot($host_toolchain)",
48-
]
49-
depfile = "$target_gen_dir/core_snapshot.d"
50-
51-
inputs = [
52-
"//third_party/dart/runtime/tools/create_snapshot_bin.py",
53-
snapshot_dart,
54-
] + dart_ui_files
55-
if (is_fuchsia) {
56-
inputs += [ "fuchsia_compilation_trace.txt" ]
57-
}
33+
platform_kernel = "$root_out_dir/flutter_patched_sdk/platform_strong.dill"
34+
inputs = [
35+
platform_kernel,
36+
]
37+
deps = [
38+
":kernel_platform_files",
39+
]
5840

59-
vm_snapshot_data = "$target_gen_dir/vm_isolate_snapshot.bin"
60-
vm_snapshot_instructions = "$target_gen_dir/vm_snapshot_instructions.bin"
61-
isolate_snapshot_data = "$target_gen_dir/isolate_snapshot.bin"
62-
isolate_snapshot_instructions =
63-
"$target_gen_dir/isolate_snapshot_instructions.bin"
64-
outputs = [
65-
vm_snapshot_data,
66-
vm_snapshot_instructions,
67-
isolate_snapshot_data,
68-
isolate_snapshot_instructions,
69-
]
41+
vm_snapshot_data = "$target_gen_dir/vm_isolate_snapshot.bin"
42+
vm_snapshot_instructions = "$target_gen_dir/vm_snapshot_instructions.bin"
43+
isolate_snapshot_data = "$target_gen_dir/isolate_snapshot.bin"
44+
isolate_snapshot_instructions =
45+
"$target_gen_dir/isolate_snapshot_instructions.bin"
46+
outputs = [
47+
vm_snapshot_data,
48+
vm_snapshot_instructions,
49+
isolate_snapshot_data,
50+
isolate_snapshot_instructions,
51+
]
7052

71-
rebased_dart_ui_path = rebase_path(dart_ui_path)
53+
args = [
54+
"--snapshot_kind=core",
55+
"--await_is_keyword",
56+
"--enable_mirrors=false",
57+
"--vm_snapshot_data=" + rebase_path(vm_snapshot_data),
58+
"--vm_snapshot_instructions=" + rebase_path(vm_snapshot_instructions),
59+
"--isolate_snapshot_data=" + rebase_path(isolate_snapshot_data),
60+
"--isolate_snapshot_instructions=" +
61+
rebase_path(isolate_snapshot_instructions),
62+
rebase_path(platform_kernel),
63+
]
7264

73-
gen_snapshot_dir = get_label_info(
74-
"//third_party/dart/runtime/bin:gen_snapshot($host_toolchain)",
75-
"root_out_dir")
76-
script = "//third_party/dart/runtime/tools/create_snapshot_bin.py"
65+
if (is_debug) {
66+
args += [
67+
"--enable_asserts",
68+
"--enable_type_checks",
69+
"--error_on_bad_type",
70+
"--error_on_bad_override",
71+
]
72+
}
73+
}
7774

78-
args = [
79-
"--executable",
80-
rebase_path("$gen_snapshot_dir/gen_snapshot"),
81-
"--script",
82-
rebase_path(snapshot_dart),
83-
"--snapshot_kind",
84-
snapshot_kind,
85-
"--vm_flag",
86-
"--await_is_keyword",
87-
"--vm_flag",
88-
"--enable_mirrors=false",
89-
"--vm_output_bin",
90-
rebase_path(vm_snapshot_data, root_build_dir),
91-
"--vm_instructions_output_bin",
92-
rebase_path(vm_snapshot_instructions, root_build_dir),
93-
"--isolate_output_bin",
94-
rebase_path(isolate_snapshot_data, root_build_dir),
95-
"--isolate_instructions_output_bin",
96-
rebase_path(isolate_snapshot_instructions, root_build_dir),
97-
"--url_mapping=dart:ui,$rebased_dart_ui_path",
98-
"--vm_flag",
99-
"--dependencies=" + rebase_path(depfile),
100-
]
75+
# Generates an assembly file defining a given symbol with the bytes from a
76+
# binary file. Places the symbol in a text section if 'executable' is true,
77+
# otherwise places the symbol in a read-only data section.
78+
template("bin_to_assembly") {
79+
assert(defined(invoker.deps), "Must define deps")
80+
assert(defined(invoker.input), "Must define input binary file")
81+
assert(defined(invoker.output), "Must define output assembly file")
82+
assert(defined(invoker.symbol), "Must define symbol name")
83+
assert(defined(invoker.executable), "Must define boolean executable")
84+
85+
action(target_name) {
86+
deps = invoker.deps
87+
script = "//third_party/dart/runtime/tools/bin_to_assembly.py"
88+
args = [
89+
"--input",
90+
rebase_path(invoker.input),
91+
"--output",
92+
rebase_path(invoker.output),
93+
"--symbol_name",
94+
invoker.symbol,
95+
"--target_os",
96+
current_os,
97+
]
98+
if (invoker.executable) {
99+
args += [ "--executable" ]
100+
}
101+
inputs = [
102+
script,
103+
invoker.input,
104+
]
105+
outputs = [
106+
invoker.output,
107+
]
108+
}
109+
}
101110

102-
if (is_debug) {
103-
args += [
104-
"--vm_flag",
105-
"--enable_asserts",
106-
"--vm_flag",
107-
"--enable_type_checks",
108-
"--vm_flag",
109-
"--error_on_bad_type",
110-
"--vm_flag",
111-
"--error_on_bad_override",
111+
bin_to_assembly("vm_snapshot_data_assembly") {
112+
deps = [
113+
":generate_snapshot_bin",
112114
]
115+
input = "$target_gen_dir/vm_isolate_snapshot.bin"
116+
output = "$target_gen_dir/vm_snapshot_data.S"
117+
symbol = "kDartVmSnapshotData"
118+
executable = false
113119
}
114120

115-
if (is_fuchsia) {
116-
inputs += zircon_sdk_ext_files + mozart_dart_sdk_ext_files
117-
zircon_path = rebase_path(zircon_sdk_ext_lib)
118-
fuchsia_path = rebase_path(fuchsia_sdk_ext_lib)
119-
mozart_internal_path = rebase_path(mozart_dart_sdk_ext_lib)
120-
args += [
121-
"--url_mapping=dart:zircon,$zircon_path",
122-
"--url_mapping=dart:fuchsia,$fuchsia_path",
123-
"--url_mapping=dart:mozart.internal,$mozart_internal_path",
124-
"--load_compilation_trace",
125-
rebase_path("fuchsia_compilation_trace.txt"),
121+
bin_to_assembly("vm_snapshot_instructions_assembly") {
122+
deps = [
123+
":generate_snapshot_bin",
126124
]
125+
input = "$target_gen_dir/vm_snapshot_instructions.bin"
126+
output = "$target_gen_dir/vm_snapshot_instructions.S"
127+
symbol = "kDartVmSnapshotInstructions"
128+
executable = true
127129
}
128-
}
129130

130-
# Generates an assembly file defining a given symbol with the bytes from a
131-
# binary file. Places the symbol in a text section if 'executable' is true,
132-
# otherwise places the symbol in a read-only data section.
133-
template("bin_to_assembly") {
134-
assert(defined(invoker.deps), "Must define deps")
135-
assert(defined(invoker.input), "Must define input binary file")
136-
assert(defined(invoker.output), "Must define output assembly file")
137-
assert(defined(invoker.symbol), "Must define symbol name")
138-
assert(defined(invoker.executable), "Must define boolean executable")
139-
140-
action(target_name) {
141-
deps = invoker.deps
142-
script = "//third_party/dart/runtime/tools/bin_to_assembly.py"
143-
args = [
144-
"--input",
145-
rebase_path(invoker.input),
146-
"--output",
147-
rebase_path(invoker.output),
148-
"--symbol_name",
149-
invoker.symbol,
150-
"--target_os",
151-
current_os,
152-
]
153-
if (invoker.executable) {
154-
args += [ "--executable" ]
155-
}
156-
inputs = [
157-
script,
158-
invoker.input,
159-
]
160-
outputs = [
161-
invoker.output,
131+
bin_to_assembly("isolate_snapshot_data_assembly") {
132+
deps = [
133+
":generate_snapshot_bin",
162134
]
135+
input = "$target_gen_dir/isolate_snapshot.bin"
136+
output = "$target_gen_dir/isolate_snapshot_data.S"
137+
symbol = "kDartIsolateSnapshotData"
138+
executable = false
163139
}
164-
}
165-
166-
bin_to_assembly("vm_snapshot_data_assembly") {
167-
deps = [
168-
":generate_snapshot_bin",
169-
]
170-
input = "$target_gen_dir/vm_isolate_snapshot.bin"
171-
output = "$target_gen_dir/vm_snapshot_data.S"
172-
symbol = "kDartVmSnapshotData"
173-
executable = false
174-
}
175-
176-
bin_to_assembly("vm_snapshot_instructions_assembly") {
177-
deps = [
178-
":generate_snapshot_bin",
179-
]
180-
input = "$target_gen_dir/vm_snapshot_instructions.bin"
181-
output = "$target_gen_dir/vm_snapshot_instructions.S"
182-
symbol = "kDartVmSnapshotInstructions"
183-
executable = true
184-
}
185-
186-
bin_to_assembly("isolate_snapshot_data_assembly") {
187-
deps = [
188-
":generate_snapshot_bin",
189-
]
190-
input = "$target_gen_dir/isolate_snapshot.bin"
191-
output = "$target_gen_dir/isolate_snapshot_data.S"
192-
symbol = "kDartIsolateSnapshotData"
193-
executable = false
194-
}
195140

196-
bin_to_assembly("isolate_snapshot_instructions_assembly") {
197-
deps = [
198-
":generate_snapshot_bin",
199-
]
200-
input = "$target_gen_dir/isolate_snapshot_instructions.bin"
201-
output = "$target_gen_dir/isolate_snapshot_instructions.S"
202-
symbol = "kDartIsolateSnapshotInstructions"
203-
executable = true
204-
}
141+
bin_to_assembly("isolate_snapshot_instructions_assembly") {
142+
deps = [
143+
":generate_snapshot_bin",
144+
]
145+
input = "$target_gen_dir/isolate_snapshot_instructions.bin"
146+
output = "$target_gen_dir/isolate_snapshot_instructions.S"
147+
symbol = "kDartIsolateSnapshotInstructions"
148+
executable = true
149+
}
205150

206-
source_set("snapshot") {
207-
deps = [
208-
":isolate_snapshot_data_assembly",
209-
":isolate_snapshot_instructions_assembly",
210-
":vm_snapshot_data_assembly",
211-
":vm_snapshot_instructions_assembly",
212-
]
213-
sources = [
214-
"$target_gen_dir/isolate_snapshot_data.S",
215-
"$target_gen_dir/isolate_snapshot_instructions.S",
216-
"$target_gen_dir/vm_snapshot_data.S",
217-
"$target_gen_dir/vm_snapshot_instructions.S",
218-
]
151+
source_set("snapshot") {
152+
deps = [
153+
":isolate_snapshot_data_assembly",
154+
":isolate_snapshot_instructions_assembly",
155+
":vm_snapshot_data_assembly",
156+
":vm_snapshot_instructions_assembly",
157+
]
158+
sources = [
159+
"$target_gen_dir/isolate_snapshot_data.S",
160+
"$target_gen_dir/isolate_snapshot_instructions.S",
161+
"$target_gen_dir/vm_snapshot_data.S",
162+
"$target_gen_dir/vm_snapshot_instructions.S",
163+
]
164+
}
219165
}
220166

221167
compile_platform("non_strong_platform") {
@@ -282,22 +228,28 @@ template("generate_entry_points_json_with_gen_snapshot") {
282228
output = invoker.output
283229

284230
tool = "//third_party/dart/runtime/bin:gen_snapshot"
285-
inputs = [
286-
input,
287-
] + extra_inputs
231+
inputs = [ input ] + extra_inputs
288232
outputs = [
289233
output,
234+
235+
# Though they are not consumed, GN needs to know to create the output directory.
236+
"$target_gen_dir/dummy.vm_data.snapshot",
237+
"$target_gen_dir/dummy.vm_instr.snapshot",
238+
"$target_gen_dir/dummy.isolate_data.snapshot",
239+
"$target_gen_dir/dummy.isolate_instr.snapshot",
290240
]
291241
args = [
292-
"--print-precompiler-entry-points=" + rebase_path(output),
293-
"--snapshot-kind=app-aot-blobs",
294-
"--vm_snapshot_data=" + rebase_path("$target_gen_dir/dummy.vm_data.snapshot"),
295-
"--vm_snapshot_instructions=" + rebase_path("$target_gen_dir/dummy.vm_instr.snapshot"),
296-
"--isolate_snapshot_data=" + rebase_path("$target_gen_dir/dummy.isolate_data.snapshot"),
297-
"--isolate_snapshot_instructions=" + rebase_path("$target_gen_dir/dummy.isolate_instr.snapshot"),
298-
] + extra_args + [
299-
rebase_path(input),
300-
]
242+
"--print-precompiler-entry-points=" + rebase_path(output),
243+
"--snapshot-kind=app-aot-blobs",
244+
"--vm_snapshot_data=" +
245+
rebase_path("$target_gen_dir/dummy.vm_data.snapshot"),
246+
"--vm_snapshot_instructions=" +
247+
rebase_path("$target_gen_dir/dummy.vm_instr.snapshot"),
248+
"--isolate_snapshot_data=" +
249+
rebase_path("$target_gen_dir/dummy.isolate_data.snapshot"),
250+
"--isolate_snapshot_instructions=" +
251+
rebase_path("$target_gen_dir/dummy.isolate_instr.snapshot"),
252+
] + extra_args + [ rebase_path(input) ]
301253
}
302254
}
303255

0 commit comments

Comments
 (0)