OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library compiler_configuration; | 5 library compiler_configuration; |
6 | 6 |
7 import 'dart:io' show Platform; | 7 import 'dart:io' show Platform; |
8 | 8 |
9 import 'runtime_configuration.dart' show RuntimeConfiguration; | 9 import 'runtime_configuration.dart' show RuntimeConfiguration; |
10 import 'runtime_configuration.dart' show DartPrecompiledAdbRuntimeConfiguration; | 10 import 'runtime_configuration.dart' show DartPrecompiledAdbRuntimeConfiguration; |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 bool isStrong = configuration['strong']; | 61 bool isStrong = configuration['strong']; |
62 bool isHostChecked = configuration['host_checked']; | 62 bool isHostChecked = configuration['host_checked']; |
63 bool useSdk = configuration['use_sdk']; | 63 bool useSdk = configuration['use_sdk']; |
64 bool isCsp = configuration['csp']; | 64 bool isCsp = configuration['csp']; |
65 bool useCps = configuration['cps_ir']; | 65 bool useCps = configuration['cps_ir']; |
66 bool useBlobs = configuration['use_blobs']; | 66 bool useBlobs = configuration['use_blobs']; |
67 bool hotReload = configuration['hot_reload']; | 67 bool hotReload = configuration['hot_reload']; |
68 bool hotReloadRollback = configuration['hot_reload_rollback']; | 68 bool hotReloadRollback = configuration['hot_reload_rollback']; |
69 bool useFastStartup = configuration['fast_startup']; | 69 bool useFastStartup = configuration['fast_startup']; |
70 bool verifyKernel = configuration['verify-ir']; | 70 bool verifyKernel = configuration['verify-ir']; |
71 bool useStandaloneDartK = configuration['use-standalone-dartk']; | 71 bool useDFE = configuration['useDFE']; |
| 72 bool useFasta = configuration['useFasta']; |
72 bool treeShake = !configuration['no-tree-shake']; | 73 bool treeShake = !configuration['no-tree-shake']; |
73 | 74 |
74 switch (compiler) { | 75 switch (compiler) { |
75 case 'dart2analyzer': | 76 case 'dart2analyzer': |
76 return new AnalyzerCompilerConfiguration( | 77 return new AnalyzerCompilerConfiguration( |
77 isDebug: isDebug, | 78 isDebug: isDebug, |
78 isChecked: isChecked, | 79 isChecked: isChecked, |
79 isStrong: isStrong, | 80 isStrong: isStrong, |
80 isHostChecked: isHostChecked, | 81 isHostChecked: isHostChecked, |
81 useSdk: useSdk); | 82 useSdk: useSdk); |
(...skipping 12 matching lines...) Expand all Loading... |
94 return new Dart2AppSnapshotCompilerConfiguration( | 95 return new Dart2AppSnapshotCompilerConfiguration( |
95 isDebug: isDebug, isChecked: isChecked); | 96 isDebug: isDebug, isChecked: isChecked); |
96 case 'precompiler': | 97 case 'precompiler': |
97 return new PrecompilerCompilerConfiguration( | 98 return new PrecompilerCompilerConfiguration( |
98 isDebug: isDebug, | 99 isDebug: isDebug, |
99 isChecked: isChecked, | 100 isChecked: isChecked, |
100 arch: configuration['arch'], | 101 arch: configuration['arch'], |
101 useBlobs: useBlobs, | 102 useBlobs: useBlobs, |
102 isAndroid: configuration['system'] == 'android'); | 103 isAndroid: configuration['system'] == 'android'); |
103 case 'dartk': | 104 case 'dartk': |
104 if (useStandaloneDartK) { | 105 if (!useDFE) { |
105 return ComposedCompilerConfiguration.createDartKConfiguration( | 106 return ComposedCompilerConfiguration.createDartKConfiguration( |
106 isChecked: isChecked, | 107 isChecked: isChecked, |
107 isHostChecked: isHostChecked, | 108 isHostChecked: isHostChecked, |
108 useSdk: useSdk, | 109 useSdk: useSdk, |
109 verify: verifyKernel, | 110 verify: verifyKernel, |
110 strong: isStrong, | 111 strong: isStrong, |
111 treeShake: treeShake); | 112 treeShake: treeShake); |
112 } | 113 } |
113 | 114 |
114 return new NoneCompilerConfiguration( | 115 return new NoneCompilerConfiguration( |
115 isDebug: isDebug, | 116 isDebug: isDebug, |
116 isChecked: isChecked, | 117 isChecked: isChecked, |
117 isHostChecked: isHostChecked, | 118 isHostChecked: isHostChecked, |
118 useSdk: useSdk, | 119 useSdk: useSdk, |
119 hotReload: hotReload, | 120 hotReload: hotReload, |
120 hotReloadRollback: hotReloadRollback, | 121 hotReloadRollback: hotReloadRollback, |
121 useDFEIsolate: true); | 122 dfeMode: useFasta ? DFEMode.Fasta : DFEMode.DartK); |
122 | 123 |
123 case 'dartkp': | 124 case 'dartkp': |
124 return ComposedCompilerConfiguration.createDartKPConfiguration( | 125 return ComposedCompilerConfiguration.createDartKPConfiguration( |
125 isChecked: isChecked, | 126 isChecked: isChecked, |
126 isHostChecked: isHostChecked, | 127 isHostChecked: isHostChecked, |
127 arch: configuration['arch'], | 128 arch: configuration['arch'], |
128 useBlobs: useBlobs, | 129 useBlobs: useBlobs, |
129 isAndroid: configuration['system'] == 'android', | 130 isAndroid: configuration['system'] == 'android', |
130 useSdk: useSdk, | 131 useSdk: useSdk, |
131 verify: verifyKernel, | 132 verify: verifyKernel, |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 String buildDir, | 191 String buildDir, |
191 TestInformation info, | 192 TestInformation info, |
192 List<String> vmOptions, | 193 List<String> vmOptions, |
193 List<String> sharedOptions, | 194 List<String> sharedOptions, |
194 List<String> originalArguments, | 195 List<String> originalArguments, |
195 CommandArtifact artifact) { | 196 CommandArtifact artifact) { |
196 return <String>[artifact.filename]; | 197 return <String>[artifact.filename]; |
197 } | 198 } |
198 } | 199 } |
199 | 200 |
| 201 enum DFEMode { |
| 202 None, |
| 203 DartK, |
| 204 Fasta |
| 205 } |
| 206 |
200 /// The "none" compiler. | 207 /// The "none" compiler. |
201 class NoneCompilerConfiguration extends CompilerConfiguration { | 208 class NoneCompilerConfiguration extends CompilerConfiguration { |
202 final bool hotReload; | 209 final bool hotReload; |
203 final bool hotReloadRollback; | 210 final bool hotReloadRollback; |
204 final bool useDFEIsolate; | 211 final DFEMode dfeMode; |
205 | 212 |
206 NoneCompilerConfiguration( | 213 NoneCompilerConfiguration( |
207 {bool isDebug, bool isChecked, bool isHostChecked, bool useSdk, | 214 {bool isDebug, bool isChecked, bool isHostChecked, bool useSdk, |
208 bool this.hotReload, | 215 bool this.hotReload, |
209 bool this.hotReloadRollback, | 216 bool this.hotReloadRollback, |
210 bool this.useDFEIsolate: false}) | 217 DFEMode this.dfeMode: DFEMode.None}) |
211 : super._subclass( | 218 : super._subclass( |
212 isDebug: isDebug, | 219 isDebug: isDebug, |
213 isChecked: isChecked, | 220 isChecked: isChecked, |
214 isHostChecked: isHostChecked, | 221 isHostChecked: isHostChecked, |
215 useSdk: useSdk); | 222 useSdk: useSdk); |
216 | 223 |
217 bool get hasCompiler => false; | 224 bool get hasCompiler => false; |
218 | 225 |
219 List<String> computeRuntimeArguments( | 226 List<String> computeRuntimeArguments( |
220 RuntimeConfiguration runtimeConfiguration, | 227 RuntimeConfiguration runtimeConfiguration, |
221 String buildDir, | 228 String buildDir, |
222 TestInformation info, | 229 TestInformation info, |
223 List<String> vmOptions, | 230 List<String> vmOptions, |
224 List<String> sharedOptions, | 231 List<String> sharedOptions, |
225 List<String> originalArguments, | 232 List<String> originalArguments, |
226 CommandArtifact artifact) { | 233 CommandArtifact artifact) { |
227 List<String> args = []; | 234 List<String> args = []; |
228 if (useDFEIsolate) { | 235 if (dfeMode != DFEMode.None) { |
229 args.add('--dfe=utils/kernel-service/kernel-service.dart'); | 236 args.add('--dfe=utils/kernel-service/kernel-service.dart'); |
230 } | 237 } |
| 238 if (dfeMode == DFEMode.Fasta) { |
| 239 args.add('-DDFE_USE_FASTA=true'); |
| 240 } |
231 if (isChecked) { | 241 if (isChecked) { |
232 args.add('--enable_asserts'); | 242 args.add('--enable_asserts'); |
233 args.add('--enable_type_checks'); | 243 args.add('--enable_type_checks'); |
234 } | 244 } |
235 if (hotReload) { | 245 if (hotReload) { |
236 args.add('--hot-reload-test-mode'); | 246 args.add('--hot-reload-test-mode'); |
237 } else if (hotReloadRollback) { | 247 } else if (hotReloadRollback) { |
238 args.add('--hot-reload-rollback-test-mode'); | 248 args.add('--hot-reload-rollback-test-mode'); |
239 } | 249 } |
240 return args | 250 return args |
(...skipping 677 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
918 RuntimeConfiguration runtimeConfiguration, | 928 RuntimeConfiguration runtimeConfiguration, |
919 String buildDir, | 929 String buildDir, |
920 TestInformation info, | 930 TestInformation info, |
921 List<String> vmOptions, | 931 List<String> vmOptions, |
922 List<String> sharedOptions, | 932 List<String> sharedOptions, |
923 List<String> originalArguments, | 933 List<String> originalArguments, |
924 CommandArtifact artifact) { | 934 CommandArtifact artifact) { |
925 return <String>[]; | 935 return <String>[]; |
926 } | 936 } |
927 } | 937 } |
OLD | NEW |