Commit graph

38620 commits

Author SHA1 Message Date
Kevin Moore c790c11ac5 update changelog for 1.17.1 release
Review URL: https://codereview.chromium.org/2056973003 .
2016-06-10 10:35:40 -07:00
Brian Wilkerson 776000aac4 Enhance the tests for ComputeLibraryCycleTask
R=paulberry@google.com

Review URL: https://codereview.chromium.org/2052223003 .
2016-06-10 09:55:15 -07:00
Vyacheslav Egorov ec9b1c385a VM: Improve specialization of calls on receiver in AOT mode.
When encountering call this.m(...) we can check if m resolves to the same
method in all concrete subclasses of the receiver class. If it does then
we don't need any checks and can just use a StaticCall instead of InstanceCall.

This is allows us to improve code quality for cases like:

    class Base {
      var _field;

      foo() { _field = true; }
    }

    class A01 extends Base { }
    ...
    class A16 extends Base { }

Previously AOT would generate InstanceCall(get:_field) in the method foo.

However with this change we generate StaticCall(...) which subsequently gets
handled by the inliner.

R=fschneider@google.com
BUG=

Review URL: https://codereview.chromium.org/2055263002 .
2016-06-10 18:12:49 +02:00
Brian Wilkerson 51bb8b289e Fix the generation of URIs for scripts
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2052293002 .
2016-06-10 08:26:17 -07:00
Regis Crelier e803457081 Silence analyzer choking on new test.
Review URL: https://codereview.chromium.org/2057943002 .
2016-06-09 19:46:57 -07:00
Regis Crelier f4029bf3ee Capture instantiator in async function when required to check result type.
Add regression test (fixes #26668).

Review URL: https://codereview.chromium.org/2057903003 .
2016-06-09 19:14:14 -07:00
Florian Schneider 705e9e781d Fix more flakiness in pkg tests.
I already fixed similar failures.

I recommend eliminating all uses of pumpEventQueue.

BUG=#26556
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2059503002 .
2016-06-09 15:08:06 -07:00
Brian Wilkerson 279cb449e2 Fix a broken unit test
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2055983002 .
2016-06-09 14:03:17 -07:00
Konstantin Shcheglov a986d92eb4 Optimize computing library closures - reuse already created closures.
This is not the most efficient implementation, but it still makes
incremental analysis of an Analysis Server test module about 30% faster.

Now computing MD5 takes about 50% of total time.
Not sure what to do with this :-(

R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2046223004 .
2016-06-09 14:02:52 -07:00
Florian Schneider 82fac9b30b Fix incorrect new-space allocations in the parser during background compilation
Thess place were forgotten when changing all allocations in the background
compiler to old-space. New-space allocation is not allowed in the background
compiler thread.

I added assert to places that should only be reachable during unoptimized compilation.

BUG=#26669
R=asiva@google.com

Review URL: https://codereview.chromium.org/2056813002 .
2016-06-09 13:53:42 -07:00
pq 1eefb68c25 SDK summary creation generalization (pt 1).
Steps towards generalizing summary creation bits (to allow for, among other things, flutter SDK summary creation).  API is provisional (note still in `lib/src`).

Next up:
* move result writing out of `tool/` to allow for reuse
* `SummaryBuilder.forPackageMap(..)` factory (or similar) for use in the flutter SDK case

BUG=
R=brianwilkerson@google.com, paulberry@google.com

Review URL: https://codereview.chromium.org/2055543002 .
2016-06-09 12:06:36 -07:00
Vyacheslav Egorov 9d5e133114 VM: ProcessPendingWeakProperties must call VisitingOldObject(NULL) at the end.
TBR=asiva@google.com

Review URL: https://codereview.chromium.org/2057703002 .
2016-06-09 20:16:01 +02:00
pq 253ef8c391 Update DEPS (and analyzer) to latest package_config.
Once incremental analysis caching is enabled this will win us a 30% boost in analyzer CLI throughput. :)

BUG=
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2048323003 .
2016-06-09 10:09:39 -07:00
Brian Wilkerson 800a54354a Conditionally enable SDK summaries in server
R=pquitslund@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org/2020293004 .
2016-06-09 09:58:59 -07:00
Vyacheslav Egorov 97a8c4caff VM: Fix WeakProperty processing during parallel marking.
Previously if one marker marked the weak property and another marker marked its key then the first marker might stop marking before it sees that the key was marked.

Here is a possible concurrent execution, assuming P is a WeakProperty and K is P.key:

    (Marker A)                        (Marker B)
        |                                  |
[ mark property P     ]                    |
        |                                  |
[ drain marking stack ]                    |
[ no more work to do  ]                    |
        |                       [ mark K               ]
        |                       [ draing marking stack ]
        |                       [ no more work to do   ]
        |                                  |
        |                                  |
       ...                                ...
        |                                  |
    [Finalize]                         [Finalize]
        |
    [Clear P]

In this execution we end up clearing P even though P.key is marked.

To fix this issue without reintroducing central WeakProperty processing
we change the marking phase loop in such a way that markers consider the
marking done only if all of them agree that they have no more weak properties
with marked keys.

Essentially the marking loop now has a separate phase where all markers check
their pending weak properties. The decision to proceed to the next marking phase
(weak handles processing) is done in lock step using barrier - either all threads
advance to the next stage or one of the threads finds a weak property
with marked key and unmarked value and all threads resume marking.

BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org/2041413005 .
2016-06-09 18:50:23 +02:00
Zachary Anderson 6e90ca4e0a DBC: Eager deoptimization and CheckSmi instruction.
R=vegorov@google.com

Review URL: https://codereview.chromium.org/2039913006 .
2016-06-09 09:47:56 -07:00
Harry Terkelsen 3bb92ad12d rename operathor to operator now that vm bug is fixed
R=johnniwinther@google.com

Review URL: https://codereview.chromium.org/2052693002 .
2016-06-09 09:29:20 -07:00
William Hesse ee197d01fd Update status for test that passes on ARM.
This reverts commit 09b6d3cdc0, which
distinguished between the android ARM version, which passed, and the
linux ARM version, which didn't.  Both versions are now passing.

BUG=https://github.com/dart-lang/sdk/issues/24416
R=eernst@google.com, fschneider@google.com

Review URL: https://codereview.chromium.org/2050163003 .
2016-06-09 18:18:51 +02:00
Konstantin Shcheglov 979543e3a8 Issue 26629. Detect cache inconsistency in GetContentTask.
When it is detected, invalidate the outputs and throw an exception to
let Driver know that it should to recover.

R=brianwilkerson@google.com, paulberry@google.com
BUG= https://github.com/dart-lang/sdk/issues/26629

Review URL: https://codereview.chromium.org/2050573003 .
2016-06-09 08:31:04 -07:00
Konstantin Shcheglov d7ec8ca711 Make possible to don't track cache dependencies.
If 'trackCacheDependencies' is set to 'false', this makes DDC
compilation of Angular2 project about 10% faster.

Unfortunately I was not able to avoid creating ResultDescriptor(s) and
adding them into WorkItem.inputTargetedResults altogether. It is used
in AnalysisTask._findCyclicPath() to create InfiniteTaskLoopException
with additional information.

R=brianwilkerson@google.com, paulberry@google.com
BUG=

Review URL: https://codereview.chromium.org/2054453002 .
2016-06-09 08:23:15 -07:00
Brian Wilkerson f183ec3a45 Fix equality between subclasses of Source
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2050083002 .
2016-06-09 07:42:32 -07:00
Michael Thomsen 6b3247c277 Update 1.17 release date to actual ship date
BUG=
R=whesse@google.com

Review URL: https://codereview.chromium.org/2056593003 .
2016-06-09 14:32:40 +02:00
Lasse R.H. Nielsen 419873dcd3 Add tests for resolving missing packages, relative and absolute URIs.
R=floitsch@google.com

Review URL: https://codereview.chromium.org/2051433002 .
2016-06-09 11:35:15 +02:00
Johnni Winther 286b21133b Compute and cache element NativeBehavior during resolution.
NativeBehavior for method calls and field load/store are now computed
during resolution and apply as part of the world impact. This prepares
for (full) serialization/deserialization of native elements.

R=het@google.com

Review URL: https://codereview.chromium.org/2045223002 .
2016-06-09 09:50:51 +02:00
Harry Terkelsen ddac2a8a76 Revert "check that Class and typedef refs are const"
This reverts commit 8a6a6377e7.

BUG=

Review URL: https://codereview.chromium.org/2049343002 .
2016-06-08 16:32:30 -07:00
Harry Terkelsen 8a6a6377e7 check that Class and typedef refs are const
Fixes #26580

R=sra@google.com

Review URL: https://codereview.chromium.org/2049553002 .
2016-06-08 16:02:55 -07:00
Konstantin Shcheglov 32f032a874 Add AnalysisCache.flush() utility method.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2052553003 .
2016-06-08 14:52:23 -07:00
Konstantin Shcheglov f2c17362fd Issue 26639. Set source for mock 'dart:async' library.
R=brianwilkerson@google.com, danrubel@google.com
BUG= https://github.com/dart-lang/sdk/issues/26639

Review URL: https://codereview.chromium.org/2044383003 .
2016-06-08 12:08:41 -07:00
pq 435e38ab77 @required support for super and redirecting cons (#26642).
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/2045353002 .

Fixes: https://github.com/dart-lang/sdk/issues/26642
2016-06-08 11:19:43 -07:00
John McCutchan 4d5ad08d11 Enable on stack reload in standalone embedder
- [x] Implement Isolate::OnStackReload
- [x] Now that we don't invoke Dart code during loading, stop blocking class finalization during loading

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/2049833002 .
2016-06-08 11:00:31 -07:00
Konstantin Shcheglov c57052d2b4 Check versions of summaries and cache.
R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2048933002 .
2016-06-08 09:10:42 -07:00
Brian Wilkerson 0f9fb5d394 Slightly better debugging output (issue-26636)
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2053443002 .
2016-06-08 09:06:39 -07:00
Brian Wilkerson f772c64cfe Add bounds check in scope lookup (issue 26633)
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2047273004 .
2016-06-08 09:02:12 -07:00
Brian Wilkerson 27c0eeb0b2 Fix LUB computation in face of errors in code (issue 26631)
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2043173002 .
2016-06-08 07:54:54 -07:00
John McCutchan a66d2d0e49 Fix dart2js bot failure on new test (update status file)
BUG=

Review URL: https://codereview.chromium.org/2043193004 .
2016-06-08 07:45:08 -07:00
John McCutchan f040af9fff Really fix the analyzer bots
BUG=

Review URL: https://codereview.chromium.org/2043373002 .
2016-06-08 07:41:43 -07:00
John McCutchan 62af0fc5d6 Fix checked mode error
BUG=

Review URL: https://codereview.chromium.org/2039813005 .
2016-06-08 07:34:55 -07:00
John McCutchan 63233d7446 Update standalone.status for analyzer
BUG=

Review URL: https://codereview.chromium.org/2044003006 .
2016-06-08 07:24:51 -07:00
John McCutchan 8b4ac265c7 Fix Windows bots
BUG=

Review URL: https://codereview.chromium.org/2045243003 .
2016-06-08 07:20:42 -07:00
John McCutchan 3b2e14ab56 Fix deferred load errors
R=hausner@google.com

Review URL: https://codereview.chromium.org/2045023003 .
2016-06-08 07:12:52 -07:00
Erik Ernst c3dfe51295 Adds status entries for initializing_formal tests.
This CL should fix the problem that arose with commit
543a51ff3e. Here's the description from
that CL:

This CL adds tests for previously uncovered elements of the semantics
and includes fixes such that the desired behavior is obtained. In
particular, an `isInitializingFormal` element may now occur in contexts
where it wasn't expected until now, and changes were made to handle it.
It is also checked that a capture of an initializing formal (in a
function literal) captures the parameter, not the field.

R=johnniwinther@google.com

Review URL: https://codereview.chromium.org/2042293002 .
2016-06-08 10:50:33 +02:00
Konstantin Shcheglov 0f061f1987 Don't prevent 'isCycleFree' updating for resynthesized constructors.
We update it in ConstantEvaluationEngine which in general case does
not know whether the constructor is resynthesized or not.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org/2047103002 .
2016-06-07 19:21:03 -07:00
Ryan Macnak 7d9e75e0b6 Revert "Background finalization."
This reverts commit 082829a00b.

Review URL: https://codereview.chromium.org/2041373004 .
2016-06-07 17:21:06 -07:00
Siva Annamalai 6b9581e228 Move code that sends an isolate shutdown message to the service isolate to the block after we transition the thread state to ThreadInVM.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2047123002 .
2016-06-07 17:04:04 -07:00
Todd Turnidge 055231cee0 Allow embedder service request handlers to return JSON-RPC errors.
BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2041293003 .
2016-06-07 15:47:37 -07:00
pq df4ea53593 Package map processing tests.
Follow-up from https://codereview.chromium.org/2043963004/, where a number of test cases were identified.  In particular:

> - What if the package map is empty?
> - What if the package map doesn't have a package with an embedder file?
> - What is there is no package with an ext?
> - What if we don't find either one?
> - What happens if one or both of those files are invalid?

BUG=
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/2046493006 .
2016-06-07 15:04:30 -07:00
Ryan Macnak 082829a00b Background finalization.
Flutter gallery app on Nexus 4:
 max weak handle processing (main thread): 17.7ms -> 1.1ms
 max scavenge (main thread): 21.0ms -> 17.1ms

BUG=flutter/flutter#3804
R=asiva@google.com

Review URL: https://codereview.chromium.org/2012973002 .
2016-06-07 14:38:37 -07:00
Brian Wilkerson 4b6d9fdf39 Fix NPE when there is no keyword (issue 26630)
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2050463002 .
2016-06-07 14:14:02 -07:00
John Messerly 61a2bb4fdc Remove dead code in strong mode's warnings for null literals
This code should no longer be reachable. I think it was part of our early non-null primitive type experimentation. (Currently `null` literal is treated as bottom, so it should never be a downcast if casting from null.)

R=leafp@google.com

Review URL: https://codereview.chromium.org/2050443002 .
2016-06-07 14:03:34 -07:00
pq 995a19b26f Package map processing abstraction.
Babysteps towards a cleaner context creation story.

Comments welcome!

BUG=
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/2043963004 .
2016-06-07 14:01:18 -07:00