Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(310)

Side by Side Diff: pkg/fletchc/lib/incremental/fletchc_incremental.dart

Issue 1450393002: Roll sdk dependency to 34357cdad108dcba734949bd13bd28c76ea285e0 (Closed) Base URL: git@github.com:dart-lang/fletch.git@master
Patch Set: Update status files Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 fletchc_incremental; 5 library fletchc_incremental;
6 6
7 import 'dart:async' show 7 import 'dart:async' show
8 EventSink, 8 EventSink,
9 Future; 9 Future;
10 10
11 import 'dart:developer' show 11 import 'dart:developer' show
12 UserTag; 12 UserTag;
13 13
14 import 'package:compiler/src/apiimpl.dart' show 14 import 'package:compiler/src/apiimpl.dart' show
15 Compiler; 15 CompilerImpl;
16 16
17 import 'package:compiler/compiler_new.dart' show 17 import 'package:compiler/compiler_new.dart' show
18 CompilerDiagnostics, 18 CompilerDiagnostics,
19 CompilerInput, 19 CompilerInput,
20 CompilerOutput, 20 CompilerOutput,
21 Diagnostic; 21 Diagnostic;
22 22
23 import 'package:compiler/src/elements/elements.dart' show 23 import 'package:compiler/src/elements/elements.dart' show
24 ClassElement, 24 ClassElement,
25 ConstructorElement, 25 ConstructorElement,
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 141
142 FletchCompilerImplementation get compiler => _compiler; 142 FletchCompilerImplementation get compiler => _compiler;
143 143
144 /// Perform a full compile of [script]. This will reset the incremental 144 /// Perform a full compile of [script]. This will reset the incremental
145 /// compiler. 145 /// compiler.
146 /// 146 ///
147 /// Notice: a full compile means not incremental. The part of the program 147 /// Notice: a full compile means not incremental. The part of the program
148 /// that is compiled is determined by tree shaking. 148 /// that is compiled is determined by tree shaking.
149 Future<bool> compile(Uri script) { 149 Future<bool> compile(Uri script) {
150 _compiler = null; 150 _compiler = null;
151 return _reuseCompiler(null).then((Compiler compiler) { 151 return _reuseCompiler(null).then((CompilerImpl compiler) {
152 _compiler = compiler; 152 _compiler = compiler;
153 return compiler.run(script); 153 return compiler.run(script);
154 }); 154 });
155 } 155 }
156 156
157 /// Perform a full analysis of [script]. This will reset the incremental 157 /// Perform a full analysis of [script]. This will reset the incremental
158 /// compiler. 158 /// compiler.
159 /// 159 ///
160 /// Notice: a full analysis is analogous to a full compile, that is, full 160 /// Notice: a full analysis is analogous to a full compile, that is, full
161 /// analysis not incremental. The part of the program that is analyzed is 161 /// analysis not incremental. The part of the program that is analyzed is
162 /// determined by tree shaking. 162 /// determined by tree shaking.
163 Future<int> analyze(Uri script) { 163 Future<int> analyze(Uri script) {
164 _compiler = null; 164 _compiler = null;
165 int initialErrorCount = _context.errorCount; 165 int initialErrorCount = _context.errorCount;
166 int initialProblemCount = _context.problemCount; 166 int initialProblemCount = _context.problemCount;
167 return _reuseCompiler(null, analyzeOnly: true).then((Compiler compiler) { 167 return _reuseCompiler(null, analyzeOnly: true).then(
168 (CompilerImpl compiler) {
168 // Don't try to reuse the compiler object. 169 // Don't try to reuse the compiler object.
169 return compiler.run(script).then((_) { 170 return compiler.run(script).then((_) {
170 return _context.problemCount == initialProblemCount 171 return _context.problemCount == initialProblemCount
171 ? 0 172 ? 0
172 : _context.errorCount == initialErrorCount 173 : _context.errorCount == initialErrorCount
173 ? exit_codes.ANALYSIS_HAD_NON_ERROR_PROBLEMS 174 ? exit_codes.ANALYSIS_HAD_NON_ERROR_PROBLEMS
174 : exit_codes.ANALYSIS_HAD_ERRORS; 175 : exit_codes.ANALYSIS_HAD_ERRORS;
175 }); 176 });
176 }); 177 });
177 } 178 }
178 179
179 Future<Compiler> _reuseCompiler( 180 Future<CompilerImpl> _reuseCompiler(
180 Future<bool> reuseLibrary(LibraryElement library), 181 Future<bool> reuseLibrary(LibraryElement library),
181 {bool analyzeOnly: false}) { 182 {bool analyzeOnly: false}) {
182 List<String> options = this.options == null 183 List<String> options = this.options == null
183 ? <String> [] : new List<String>.from(this.options); 184 ? <String> [] : new List<String>.from(this.options);
184 options.addAll(INCREMENTAL_OPTIONS); 185 options.addAll(INCREMENTAL_OPTIONS);
185 if (analyzeOnly) { 186 if (analyzeOnly) {
186 options.add("--analyze-only"); 187 options.add("--analyze-only");
187 } 188 }
188 return reuseCompiler( 189 return reuseCompiler(
189 cachedCompiler: _compiler, 190 cachedCompiler: _compiler,
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 Uri updatedFile = updatedFiles[uri]; 227 Uri updatedFile = updatedFiles[uri];
227 return inputProvider.readFromUri(updatedFile == null ? uri : updatedFile); 228 return inputProvider.readFromUri(updatedFile == null ? uri : updatedFile);
228 } 229 }
229 LibraryUpdater updater = new LibraryUpdater( 230 LibraryUpdater updater = new LibraryUpdater(
230 _compiler, 231 _compiler,
231 mappingInputProvider, 232 mappingInputProvider,
232 logTime, 233 logTime,
233 logVerbose, 234 logVerbose,
234 _context); 235 _context);
235 _context.registerUriWithUpdates(updatedFiles.keys); 236 _context.registerUriWithUpdates(updatedFiles.keys);
236 return _reuseCompiler(updater.reuseLibrary).then((Compiler compiler) async { 237 return _reuseCompiler(updater.reuseLibrary).then(
238 (CompilerImpl compiler) async {
237 _compiler = compiler; 239 _compiler = compiler;
238 FletchDelta delta = await updater.computeUpdateFletch(currentSystem); 240 FletchDelta delta = await updater.computeUpdateFletch(currentSystem);
239 _checkCompilationFailed(); 241 _checkCompilationFailed();
240 return delta; 242 return delta;
241 }); 243 });
242 } 244 }
243 245
244 FletchDelta computeInitialDelta() { 246 FletchDelta computeInitialDelta() {
245 FletchBackend backend = _compiler.backend; 247 FletchBackend backend = _compiler.backend;
246 return backend.computeDelta(); 248 return backend.computeDelta();
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 327
326 case "production": 328 case "production":
327 return IncrementalMode.production; 329 return IncrementalMode.production;
328 330
329 case "experimental": 331 case "experimental":
330 return IncrementalMode.experimental; 332 return IncrementalMode.experimental;
331 333
332 } 334 }
333 return null; 335 return null;
334 } 336 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698