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

Side by Side Diff: dart/site/try/poi/poi.dart

Issue 622373002: Compile only functions that have changed. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Merged with r40934. Created 6 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | 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) 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 trydart.poi; 5 library trydart.poi;
6 6
7 import 'dart:async' show 7 import 'dart:async' show
8 Completer, 8 Completer,
9 Future; 9 Future;
10 10
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 DartType; 53 DartType;
54 54
55 import 'package:compiler/implementation/scanner/scannerlib.dart' show 55 import 'package:compiler/implementation/scanner/scannerlib.dart' show
56 EOF_TOKEN, 56 EOF_TOKEN,
57 IDENTIFIER_TOKEN, 57 IDENTIFIER_TOKEN,
58 KEYWORD_TOKEN, 58 KEYWORD_TOKEN,
59 PartialClassElement, 59 PartialClassElement,
60 PartialElement, 60 PartialElement,
61 Token; 61 Token;
62 62
63 import 'package:compiler/implementation/js/js.dart' show
64 prettyPrint;
65
63 /// Enabled by the option --enable-dart-mind. Controls if this program should 66 /// Enabled by the option --enable-dart-mind. Controls if this program should
64 /// be querying Dart Mind. 67 /// be querying Dart Mind.
65 bool isDartMindEnabled = false; 68 bool isDartMindEnabled = false;
66 69
67 /// Iterator over lines from standard input (or the argument array). 70 /// Iterator over lines from standard input (or the argument array).
68 Iterator<String> stdin; 71 Iterator<String> stdin;
69 72
70 /// Enabled by the option --simulate-mutation. When true, this program will 73 /// Enabled by the option --simulate-mutation. When true, this program will
71 /// only prompt for one file name, and subsequent runs will read 74 /// only prompt for one file name, and subsequent runs will read
72 /// FILENAME.N.dart, where N starts at 1, and is increased on each iteration. 75 /// FILENAME.N.dart, where N starts at 1, and is increased on each iteration.
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 poiTask = new PoiTask(cachedCompiler); 420 poiTask = new PoiTask(cachedCompiler);
418 cachedCompiler.tasks.add(poiTask); 421 cachedCompiler.tasks.add(poiTask);
419 } 422 }
420 423
421 if (!isFullCompile) { 424 if (!isFullCompile) {
422 printFormattedTime( 425 printFormattedTime(
423 'Analyzing changes and updating elements took', sw.elapsedMicroseconds); 426 'Analyzing changes and updating elements took', sw.elapsedMicroseconds);
424 } 427 }
425 sw.reset(); 428 sw.reset();
426 429
427 Future<bool> compilation = cachedCompiler.run(updater.uri); 430 Future<bool> compilation;
431
432 if (updater.hasPendingUpdates) {
433 List<Element> updatedElements = updater.applyUpdates();
434 compilation = new Future(() {
435 cachedCompiler.progress.reset();
436 for (Element element in updatedElements) {
437 cachedCompiler.enqueuer.resolution.addToWorkList(element);
438 }
439 cachedCompiler.processQueue(cachedCompiler.enqueuer.resolution, null);
440
441 cachedCompiler.phase = Compiler.PHASE_DONE_RESOLVING;
442
443 for (Element element in updatedElements) {
444 cachedCompiler.enqueuer.codegen.addToWorkList(element);
445 }
446 cachedCompiler.processQueue(cachedCompiler.enqueuer.codegen, null);
447
448 for (Element element in updatedElements) {
449 var node = cachedCompiler.enqueuer.codegen.generatedCode[element];
450 print(prettyPrint(node, cachedCompiler).getText());
451 }
452
453 return !cachedCompiler.compilationFailed;
454 });
455 } else {
456 compilation = cachedCompiler.run(updater.uri);
457 }
428 458
429 return compilation.then((success) { 459 return compilation.then((success) {
430 printVerbose('Compiler queue processed in ${sw.elapsedMicroseconds}us'); 460 printVerbose('Compiler queue processed in ${sw.elapsedMicroseconds}us');
431 if (isVerbose) { 461 if (isVerbose) {
432 for (final task in cachedCompiler.tasks) { 462 for (final task in cachedCompiler.tasks) {
433 int time = task.timingMicroseconds; 463 int time = task.timingMicroseconds;
434 if (time != 0) { 464 if (time != 0) {
435 printFormattedTime('${task.name} took', time); 465 printFormattedTime('${task.name} took', time);
436 } 466 }
437 } 467 }
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
757 787
758 modelx.ImportScope importScope(modelx.LibraryElementX element) { 788 modelx.ImportScope importScope(modelx.LibraryElementX element) {
759 return element.importScope; 789 return element.importScope;
760 } 790 }
761 791
762 class PoiTask extends CompilerTask { 792 class PoiTask extends CompilerTask {
763 PoiTask(Compiler compiler) : super(compiler); 793 PoiTask(Compiler compiler) : super(compiler);
764 794
765 String get name => 'POI'; 795 String get name => 'POI';
766 } 796 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698