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

Side by Side Diff: lib/src/compiler.dart

Issue 1327573002: make build_sdk more incremental (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 3 months 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
« no previous file with comments | « no previous file | tool/build_sdk.sh » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 /// Command line tool to run the checker on a Dart program. 5 /// Command line tool to run the checker on a Dart program.
6 library dev_compiler.src.compiler; 6 library dev_compiler.src.compiler;
7 7
8 import 'dart:async'; 8 import 'dart:async';
9 import 'dart:collection'; 9 import 'dart:collection';
10 import 'dart:math' as math; 10 import 'dart:math' as math;
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 checker.visitCompilationUnit(unit); 166 checker.visitCompilationUnit(unit);
167 if (checker.failure) failureInLib = true; 167 if (checker.failure) failureInLib = true;
168 } 168 }
169 169
170 if (failureInLib) { 170 if (failureInLib) {
171 _failure = true; 171 _failure = true;
172 if (!options.codegenOptions.forceCompile) return; 172 if (!options.codegenOptions.forceCompile) return;
173 } 173 }
174 174
175 if (_jsGen != null) { 175 if (_jsGen != null) {
176 // TODO(jmesserly): full incremental support would avoid checking as well,
Jennifer Messerly 2015/08/31 23:43:08 I'm already making good progress on addressing thi
177 // however, we'd lose compiler messages in that case.
178
179 // Note: analyzer's modification stamp is millisecondsSinceEpoch
180 int lastModifyTime = unitElements
181 .map((e) => context.getModificationStamp(e.source))
182 .reduce(math.max);
183 var outFile = new File(getOutputPath(library.source.uri));
184 if (outFile.existsSync() &&
185 outFile.lastModifiedSync().millisecondsSinceEpoch >= lastModifyTime) {
186 // Output already up to date.
187 return;
188 }
189
176 var unit = units.first; 190 var unit = units.first;
177 var parts = units.skip(1).toList(); 191 var parts = units.skip(1).toList();
178 _jsGen.generateLibrary(new LibraryUnit(unit, parts)); 192 _jsGen.generateLibrary(new LibraryUnit(unit, parts));
179 } 193 }
180 } 194 }
181 195
182 void _copyDartRuntime() { 196 void _copyDartRuntime() {
183 if (_sdkCopied) return; 197 if (_sdkCopied) return;
184 _sdkCopied = true; 198 _sdkCopied = true;
185 for (var file in defaultRuntimeFiles) { 199 for (var file in defaultRuntimeFiles) {
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 '_rtti.js', 468 '_rtti.js',
455 '_classes.js', 469 '_classes.js',
456 '_operations.js', 470 '_operations.js',
457 'dart_runtime.js', 471 'dart_runtime.js',
458 ]; 472 ];
459 files.addAll(corelibOrder.map((l) => l.replaceAll('.', '/') + '.js')); 473 files.addAll(corelibOrder.map((l) => l.replaceAll('.', '/') + '.js'));
460 return files; 474 return files;
461 }(); 475 }();
462 476
463 final _log = new Logger('dev_compiler.src.compiler'); 477 final _log = new Logger('dev_compiler.src.compiler');
OLDNEW
« no previous file with comments | « no previous file | tool/build_sdk.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698