Commit Graph

1589 Commits

Author SHA1 Message Date
Jacob Richman a429090901 Fix undefined method errors adding no-op stubs for methods needed by dart2js but irrelevant in ddc. We could later optimize ddc by providing a custom dart:html that doesn't use these methods. Fixes https://github.com/dart-lang/dev_compiler/issues/506
BUG=

Review URL: https://codereview.chromium.org/1905803002 .
2016-04-20 18:03:29 -07:00
Jacob Richman 5dd5c364d6 Fix all dart:html strong mode errors except for spurious FINAL_NOT_INITIALIZED_CONSTRUCTOR warnings.
BUG=
R=jmesserly@google.com, vsm@google.com

Review URL: https://codereview.chromium.org/1887233005 .
2016-04-20 15:31:41 -07:00
John Messerly 261d7bf63a a few small dart:_runtime cleanups
R=vsm@google.com

Review URL: https://codereview.chromium.org/1896343002 .
2016-04-20 12:52:32 -07:00
Vijay Menon 5cb361db25 Fix for node modules
We weren't emitting the actual program.  :-)

Seems to work really well - using for easy command line testing.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1893293003 .
2016-04-19 14:28:43 -07:00
Harry Terkelsen 7e32a93b26 emit 'this.x' when 'super.x' accesses a field
BUG=https://github.com/dart-lang/dev_compiler/issues/501
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1895903002 .
2016-04-18 14:44:23 -07:00
Jacob MacDonald 4e54ff0181 Move all args to per-request for the worker, and add a test
BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1896613002 .
2016-04-18 11:17:08 -07:00
John Messerly 4e958f5f54 Support reading summaries in DDC
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1893603003 .
2016-04-15 13:52:18 -07:00
Jacob MacDonald cb358696e1 dont reuse the analysis context across worker requests
BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1892553003 .
2016-04-15 10:54:06 -07:00
Jacob MacDonald 308fa5ccb4 Add bazel worker support to the dev compiler.
BUG=
R=jmesserly@google.com, vsm@google.com

Review URL: https://codereview.chromium.org/1884073003 .
2016-04-15 06:51:40 -07:00
John Messerly b8d55ce95d add command test, fix relative paths
R=vsm@google.com

Review URL: https://codereview.chromium.org/1886393003 .
2016-04-14 12:35:05 -07:00
John Messerly 7950a0a88e Fix DDC build
this was a last minute fix for relative paths, but it went wrong and broke the SDK build

Review URL: https://codereview.chromium.org/1887163002 .
2016-04-14 11:58:16 -07:00
John Messerly 0c148ecef4 Implement modular compilation
Highlights
* compile one module at a time
* use summaries to speed up compiles
* use command runner so we can add more commands later
* some long needed renames and file organization
* various other technical debt has been addressed

Lowlights
* lost node.js runner/tests (node output format still supported)
* possibly lost some closure support/workarounds (format still supported)
* needs more end-to-end tests of the new system

R=vsm@google.com

Review URL: https://codereview.chromium.org/1879373004 .
2016-04-14 11:28:12 -07:00
vsmenon fae421eb2b Update devc.dart 2016-04-01 09:10:25 -07:00
Vijay Menon d54ed38046 Work around dart:html inconsistency
We're hitting a runtime bug on requestAnimationFrame when we compile
against the latest dart:html in the analyzer (45) but run against the
DDC one (based on 39).

Adding the new type name by hand as a workaround until we roll, but
longer term we'll need to compile and run against the same sdk.

R=alanknight@google.com, leafp@google.com

Review URL: https://codereview.chromium.org/1849133003 .
2016-04-01 09:06:58 -07:00
vsmenon 8c336dbfff Update devc.dart 2016-03-31 15:33:14 -07:00
Vijay Menon 1d1438cec7 Regen against latest analyzer
A couple notes:
- regress_18535_test started failing at runtime.  It's using unimplemented mirrors code, so perhaps a static failure before.
- typed_data_sublist_type_dart started failing at runtime.  It was inferring Is<EfficientLength> with the type omitted. :-(
- my local chrome is newer than the one on travis failing on generators.  not seeing that error.

TBR=jmesserly@google.com

Review URL: https://codereview.chromium.org/1847163002 .
2016-03-31 13:18:42 -07:00
John Messerly e8bee43919 More analyzer updates, and handle negative_tests
Also fixes node_test to not overwrite main SDK log

R=vsm@google.com

Review URL: https://codereview.chromium.org/1840203002 .
2016-03-29 15:16:44 -07:00
John Messerly 63a119bd86 fix to run against latest analyzer
hard part was dealing with the new for-each changes
the good news is the new for-each logic simplifes our await-for checking

R=leafp@google.com, rnystrom@google.com

Review URL: https://codereview.chromium.org/1840713003 .
2016-03-28 14:22:36 -07:00
Leaf Petersen 569c4f9045 Tweaks to compile against latest analyzer. Also changes the travis
setup to only override analyzer dependencies when $ANALYZER is
explicitly set to master.

BUG=
R=rnystrom@google.com

Review URL: https://codereview.chromium.org/1808123006 .
2016-03-18 20:57:00 -07:00
Leaf Petersen 8a833f1e3a Add generic types to Stream.transform in the DDC sdk.
https://github.com/dart-lang/sdk/issues/25860

Main SDK fix to follow.

BUG=
R=rnystrom@google.com

Review URL: https://codereview.chromium.org/1808393002 .
2016-03-17 17:49:15 -07:00
John Messerly 73159b6c1e Remove code that requires whole-program compile
This change removes functionality that is not part of the core Dart Dev
Compiler, in particular those features that were not designed for
incremental/modular compilation.

For a while, the primary way to use DDC will be as a compiler invoked by
a build system, e.g. make or bazel or some node.js based-build system.

We'd love to see the user functionality provided by these return.
In particular, a well designed server+watcher system would be a huge
boost to productivity!

I'll see about moving over HTML reporting to Analyzer CLI. It has a lovely UI.
Thanks to everyone who contributed these features.

The following features were removed:

* DDC transformer. Transformers require whole world, in memory files.
* DDC server. The server has its own mini-build system.
* Various kinds of reporting. These should be moved to Analyzer CLI.

Note: batch compiler and the node runner are left for now.

R=vsm@google.com

Review URL: https://codereview.chromium.org/1788973002 .
2016-03-15 11:30:50 -07:00
vsmenon 72c02ea2f9 Update devc.dart 2016-03-15 10:34:38 -07:00
Leaf Petersen 2fae28ee43 Resolve obvious deprecation warnings on bleeding edge
BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1797063002 .
2016-03-15 10:15:34 -07:00
Vijay Menon 5b4fdead8d Fixes #479
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1803033002 .
2016-03-15 10:13:25 -07:00
John Messerly 8de2cf84bc simplify function coercions -- DDC can generate function types in place
R=leafp@google.com

Review URL: https://codereview.chromium.org/1783603009 .
2016-03-14 10:37:57 -07:00
Vijay Menon 5007e1a562 Fix internal NSM helper to use a Dart Symbol
Not sure if this entirely handles #470, but it does fix the breaking example.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1754773002 .
2016-03-11 09:05:56 -08:00
Vijay Menon d530938a2b Various cleanup
- Allow just analysis given html file
- Checked mode fix for html-report
- Clear pubspec.lock for transformer test
- Format run

R=jmesserly@google.com, ochafik@google.com

Review URL: https://codereview.chromium.org/1762283003 .
2016-03-09 12:58:22 -08:00
John Messerly b8ae9f9b77 a few small refactorings to closure workarounds
* factor the class heritage workaround so it's out of the way & easier to remove later.
* always emit type parameters in the AST, and pass the flag to the printer to skip printing them.
* cleanup an unnecessary sync* method for closure field decls.
* also, reformats. I think I forgot to do that in previous CL.

R=vsm@google.com

Review URL: https://codereview.chromium.org/1767803002 .
2016-03-08 15:56:18 -08:00
John Messerly aad19229e2 DDC: remove dumpInfo flag
I was hoping to get rid of SummaryReporter altogether, but it looks like it's still used by server mode.

R=vsm@google.com

Review URL: https://codereview.chromium.org/1778623002 .
2016-03-08 15:47:03 -08:00
Vijay Menon 883972e37a Fix deprecation message
TBR=jmesserly@google.com

Review URL: https://codereview.chromium.org/1775673002 .
2016-03-07 15:33:01 -08:00
John Messerly 93251ee241 upgrade to latest analyzer
fixes https://github.com/dart-lang/dev_compiler/issues/471

Changes here are:
* Analyzer now infers list/map literals
* Analyzer changed how isPotentiallyMutated* APIs work, so we need to track current function
* Another fix to arrow functions. We shouldn't skip generating covariant arg checks. If there were any, we use `=> { block }` form rather than `=> expr` form.

R=vsm@google.com

Review URL: https://codereview.chromium.org/1757343002 .
2016-03-03 11:32:54 -08:00
John Messerly d3932e1c50 Add a few more known non-null cases
Improves handling of identifiers and known elements, the `identical` function, and generative constructors.

R=ochafik@google.com, vsm@google.com

Review URL: https://codereview.chromium.org/1752193002 .
2016-03-02 13:32:27 -08:00
John Messerly e1c5f6ddcd use Source.isInSystemLibrary
Just a small cleanup to use the property instead of comparing the URI

R=vsm@google.com

Review URL: https://codereview.chromium.org/1749213006 .
2016-03-02 13:07:34 -08:00
John Messerly 67b24939cd refactor/simplify nullable inference code
Some of the high level changes are:
* visit catch body, fixes #463
* handle temps created by the compiler. These were in some cases treated incorrectly as non-null (see tests diff)
* compute nullable in the same pass as visiting assignments
* simplify visiting += and ++, fix ++ (it was dead code, #463)
* simplify _isNullable
* if we fail to see a variable declaration, treat it as nullable
* stack trace in catch is treated as non-null

R=vsm@google.com

Review URL: https://codereview.chromium.org/1751963002 .
2016-03-01 16:44:05 -08:00
Vijay Menon 243a0377db Search html extension types lazily
This speeds up compile of helloworld (non html) by 2x, and tools/test.sh by about 30%.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1752133002 .
2016-03-01 15:20:44 -08:00
Vijay Menon 316d1b6695 Fix #465
This preserves the type when cloning an AdjacentStrings node.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1756563002 .
2016-03-01 13:08:05 -08:00
Vijay Menon 3c049a8f3d Fix #469
The real issue here is static type errors in dart:html code, which we need to cleanup.  But it doesn't appear to ever make sense to use the static type here.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1754783002 .
2016-03-01 13:01:27 -08:00
John Messerly ae404442ca a little refactoring around identifiers/parameters
Main goal here is to isolate some code that was treating parameter declarations differently from other SimpleIdentifiers.

(We're going to need to emit generic method instantiations for SimpleIdentifiers in some cases, so it's going to be important to split out parameters from other expressions)

R=vsm@google.com

Review URL: https://codereview.chromium.org/1744453002 .
2016-02-26 10:00:15 -08:00
John Messerly abf6065dc2 more function refactoring
Two more small bug caught/fixed in the process:
* Dart lambdas must generate as `=>` functions or we'll get the wrong `this`
* Another case where generators we using destructuring in a mismatched way

R=vsm@google.com

Review URL: https://codereview.chromium.org/1736723002 .
2016-02-24 16:54:07 -08:00
John Messerly ca46b80811 simplify generation of functions
fixes incorrect destructuring codegen, and encapsulates type parameter comments better in _emitFunctionBody

R=vsm@google.com

Review URL: https://codereview.chromium.org/1729933002 .
2016-02-24 09:18:46 -08:00
John Messerly d959316526 refactor: avoid parts
we try to avoid "parts" except in js_ast (because that will be split out into its own package)

R=vsm@google.com

Review URL: https://codereview.chromium.org/1724463003 .
2016-02-22 16:01:35 -08:00
vsmenon 9586a5d217 Update devc.dart 2016-02-22 15:08:17 -08:00
Vijay Menon c75d51d6bf Fixes #460
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1718353002 .
2016-02-22 15:03:56 -08:00
vsmenon c222c45599 Update devc.dart 2016-02-19 15:04:31 -08:00
Vijay Menon ce985ef38d Support StackTrace.current
This was recently added to the Dart SDK.  Breaking Angular in DDC via stack_trace package.

R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1720473002 .
2016-02-19 14:25:21 -08:00
vsmenon de5b729e4a Update devc.dart 2016-02-18 16:07:50 -08:00
Vijay Menon 93a627bf44 Wrapperless dart:html and friends
This reuses the dart2js code.

R=jacobr@google.com, jmesserly@google.com

Review URL: https://codereview.chromium.org/1700153002 .
2016-02-18 13:57:59 -08:00
Olivier Chafik 09845fbaf7 Use dart.global instead of window in debugger.dart
BUG=
R=vsm@google.com

Review URL: https://codereview.chromium.org/1706973002 .
2016-02-18 16:38:00 +00:00
Vijay Menon 07155de9df Fix additional hint
Missed this locally, but hitting travis.  Probably need to update locally.

TBR=jmesserly@google.com

Review URL: https://codereview.chromium.org/1703263002 .
2016-02-17 13:31:21 -08:00
Vijay Menon a9bcaf6c5b Fix travis
This also regens based on the latest analyzer.  Looks like most improvements on the code.

See #456

TBR=jmesserly@google.com

Review URL: https://codereview.chromium.org/1710583002 .
2016-02-17 13:12:52 -08:00