Commit graph

7959 commits

Author SHA1 Message Date
koda@google.com c026736cff Fix race in debug assertion.
Change order of initialization for the two-way pointers between Isolate and Thread.

This only affects the debug assertion in Isolate::mutator_thread().

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45814 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-15 16:28:26 +00:00
koda@google.com 0e04456696 Remove fake isolate from concurrent sweeper and extend lifetime of VM threads.
* Use real isolate in concurrent sweeper rather than shallow copy.

The only part of the isolate, other than the page being swept, used by the sweeper is the class table (via RawObject::Size), which is now safe to read concurrently (copy-on-write).

* Do not eagerly destroy a VM thread whenever it exits an isolate.

This extends the lifetime of a VM thread across entering/exiting multiple isolates. This is necessary in case an embedder callback executes during
compilation and switches/spawns isolates.

For embedder threads, since there is no API to signal "I'm done using the VM in this thread", this means we leak the (small) Thread structure.

For our own ThreadPool threads, we explicitly clean up.

BUG=23153
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45810 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-15 12:48:49 +00:00
hausner@google.com feae1f7b82 Compute accurate token count when loading from snapshot
With --compiler-stats, traverse heap at isolate shutdown to
find all token streams and compute the number of tokens in
the stream. This fixes incorrect token counts when loading
from snapshot.

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45806 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-15 00:11:01 +00:00
asiva@google.com 35cbf31ca1 Instead of aborting in Builtin::LoadAndCheckLibrary let the caller handle the error condition accordingly.
R=rmacnak@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45804 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-14 23:27:58 +00:00
johnmccutchan@google.com 3f694c96ba Attempt to fix Windows Dartium #2
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45802 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-14 22:47:21 +00:00
johnmccutchan@google.com 282fab7f41 Move stack walker construction outside of SEH try block
- Attempt to fix Dartium Windows build.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45798 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-14 22:22:59 +00:00
asiva@google.com 05d7eb5dfa Move symbol table from per isolate snapshot to vm isolate snapshot, this reduces the per isolate initial heap size
from New space (0k of 1024k) Old space (1274k of 1536k)
to New space (0k of 1024k) Old space (756k of 1280k)

R=hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45795 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-14 20:14:37 +00:00
turnidge@google.com 2757d6e686 Rework error handling in the service protocol and in Observatory.
In JSON RPC, error results and regular results are distinguished structurally.  We now do this in the service protocol instead of returning a regular result with the "Error" type.

VM:

- Add PrintError method to JSONStream.  Use this to generate all errors in the service protocol.

- Fix some bugs with "limit" parameter handling.

- Change return value for heap rpcs when they find a collected/expired reference.

- Update tests.

Observatory:

- Add app.handleExceptions -- this is a widely-used exception handler that puts up a notification when there is an uncaught/unexpected exception.  Added a top-level zone catch that uses this handler, as well as explicit uses of this handler at various points in the code.  Most pages use this implicitly or explictly, except for the debugger page, which displays exceptions in the console.

[ General rule, when a function returns a Future, generally let the error pass through.  If a function does async work but doesn't return the Future, then it should handle errors explicitly by calling app.handleExceptions, etc. ]

- Fixed notifications.  They were generally broken.  Some hard-coded type names needed to be fixed, some hacks needed to be removed.

- Add a new class RpcException and a variety of subclasses which capture the error cases when making an rpc.

- Redo refresh buttons so their callbacks return Futures instead of taking a "done" closure.  Cleaner.  Allows us to move error handling outside of the callback.

- Drop ServiceError, ServiceException and the associated views.

- Redo notifications so that event and exception notifications are supported.

- No longer null out the vm when it is disconnected.

- Remove notifications when we visit the vm-connect page.  Only show the "Proceeding will lose current page" dialog when we aren't on the vm-connect page already.

- Improve error message on cpu profile page when profiling is disabled on the VM.

- Allow variables to wrap on debugger page.

- Make eval-box and eval-link tolerant of errors during rpc.  Make the errors display nicely.

- When a breakpoint is marked "not possible", make sure it disappears.  This got broken during script view refactor.

- Drop vm's errors and exceptions streams.  No longer needed.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45792 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-14 19:34:37 +00:00
asiva@google.com 6f2330f004 Use regular sources to load dart:io and builtin library instead of linking in the standalone dart snapshot for accessing these. This ensures that we can use the regular dartium snapshot to create the vmservice isolate.
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45788 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-14 17:40:09 +00:00
koda@google.com 9b4219332b Tool to compute BMU plots from GC logs.
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45786 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-14 16:42:53 +00:00
johnmccutchan@google.com f01c1490f7 Revert 45783
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45784 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-14 00:32:32 +00:00
johnmccutchan@google.com 95515238cc Move 'dart:profiler' contents into 'dart:developer' and remove 'dart:profiler'
BUG=
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45783 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-13 23:48:04 +00:00
rmacnak@google.com 69eea9a3c4 Add annotations for field and class declarations.
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45781 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-13 21:06:42 +00:00
rmacnak@google.com 848ad67ee1 Revert "Delta encode pc descriptors."
32% regression on dart2js. Edge counters need to be redone first.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45776 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-13 20:24:47 +00:00
johnmccutchan@google.com 84b615d4fc Use Structured Exception Handler on Windows to gracefully handle guard page faults
- set profile_vm flag to be true by default to make sure crashes on bots are taken care of.

R=koda@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45771 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-13 19:36:53 +00:00
karlklose@google.com 9b32c9e673 Implement raw list checks.
R=asgerf@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45762 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-13 11:58:45 +00:00
johnmccutchan@google.com f4c3119a2e Add Service ID zones to service protocol
- Add ServiceIdZone interface for getting temporary ids.
- Add RingServiceIdZone which uses the isolate's object id ring.
- Add GrowableServiceIdZone which uses a growable array.
- Unit tests for ServiceIdZones.
- JSONStream has a service id zone.
- Default service id zone is ring with eager id allocation.
- All service RPCs can include a _serviceIdZone parameter.
- Value of _serviceIdZone can be Ring.NewId or Ring.ExistingId.
- All ObjectIdRing usage in object.cc has been replaced with `jsobj.AddServiceId("id", *this);`
- Add a policy for id reuse to ObjectIdRing::GetIdForObject
- ObjectIdRing can dump its contents to JSON.
- Add _dumpRingRequests RPC which dumps the isolate's ring.
- _getCrashDump includes complete object id ring.

R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45754 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-12 23:48:01 +00:00
hausner@google.com 9db5059098 Fix CompilerStats info
Move the counters and timers into the isolate. Statically allocated data
does not work anymore now that we always have multiple isolates.

Remove unused counters, add some counters to measure size of compiled code
and meta info.

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45751 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-12 23:03:48 +00:00
srdjan@google.com 365c48ab92 Forgot to remove a dead flag.
R=hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45744 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-12 18:59:13 +00:00
asiva@google.com c363448f55 Fix build bot failures.
Review URL: https://codereview.chromium.org//1128333005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45743 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-12 18:55:43 +00:00
asiva@google.com 579fc0fd2e Some more cleanup of the finger print checking code.
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45742 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-12 18:14:18 +00:00
asgerf@google.com f5f1eb643d dart2js cps: Introduce GetStatic/SetStatic.
The GetStatic is used for reading static fields and tearing off
static methods.

Invoking a static getter/setter (not from a field) is still an
InvokeStatic, which IMO is the way it should remain.

BUG=
R=karlklose@google.com

Committed: https://code.google.com/p/dart/source/detail?r=45735

Reverted: https://code.google.com/p/dart/source/detail?r=45737

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45738 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-12 14:19:40 +00:00
asgerf@google.com 961c805398 Revert "dart2js cps: Introduce GetStatic/SetStatic."
This reverts commit 28e4518df87c72cb8e23fe6d73b7750ad0f2183a.

TBR=karlklose@google.com

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45737 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-12 13:53:15 +00:00
asgerf@google.com 2c90643171 dart2js cps: Introduce GetStatic/SetStatic.
The GetStatic is used for reading static fields and tearing off
static methods.

Invoking a static getter/setter (not from a field) is still an
InvokeStatic, which IMO is the way it should remain.

BUG=
R=karlklose@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45735 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-12 13:35:49 +00:00
lrn@google.com 5351182e38 Add Map.unmodifiable constructor.
R=sgjesse@google.com, sra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45733 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-12 11:09:13 +00:00
johnmccutchan@google.com 8c10ef0558 Show tooltip with local variable value in Observatory debugger
- Add LocalVariableAnnotation to script-inset
- Tweak shortName for a closure
- Teach Script how to find local variable locations (not perfect yet)
- Send tokenPos and endTokenPos for debugger local variables

Performance improvements:
- Reduced script-inset update/computeAnnotations calls from 5 to 1 for each stack frame that is opened

R=rmacnak@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45725 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-12 02:41:43 +00:00
iposva@google.com d0763f97f3 - Add --trace-loading to trace resolution and loading.
- Remove unused --print-script option.

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45720 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-11 22:58:32 +00:00
rmacnak@google.com ab784887a7 Delta encode pc descriptors.
328.3kB -> 160.1kB (-51.2%) for mirrors_reader_test

R=fschneider@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45715 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-11 20:27:21 +00:00
asiva@google.com 8f9eee3f22 - Use conditional code inclusion for the dart_no_snapshot and dart executables using the MACRO DART_NO_SNAPSHOT
- Do some minor modifications to the intrinsifier code to not do redundant fingerprint checks and avoid code duplication.

These changes result in a text segment size savings of about 110k.

Old Sizes:
   text    data     bss     dec     hex filename
3801418    7696   19261 3828375  3a6a97 (TOTALS)

New sizes:
   text    data     bss     dec     hex filename
3690342    7696   19261 3717299  38b8b3 (TOTALS)

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45704 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-11 18:31:55 +00:00
iposva@google.com f469f59b60 Reland r45669:
- Refactor builtin.dart before any further work in this file.

Change to original submission is to not doubly sanitize the
Windows path when setting the working directory.

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45703 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-11 18:23:20 +00:00
karlklose@google.com 0eaa4d4717 cps-ir: Support compilation of methods that use interceptor calling convention.
This is a modified version of sra@'s CL https://codereview.chromium.org/1020243002/ with kmillikin@'s comments addressed.

R=sigurdm@google.com, kmillikin@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45680 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-11 12:38:14 +00:00
iposva@google.com 16a29667dd - Revert r45669 to address Windows issues.
R=vegorov@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45672 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-09 00:59:00 +00:00
iposva@google.com 7f5cdff385 - Refactor builtin.dart before any further work in this file.
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45669 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-08 23:58:01 +00:00
rmacnak@google.com aba09abcb5 Update debugger_inspect_test for move to top-level method.
TBR=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45667 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-08 23:10:22 +00:00
koda@google.com 2c4dfb60c8 Don't attempt to walk the native stack by default.
This was unintentially enabled by default as a consequence of
https://codereview.chromium.org/1104323003/

BUG=23368
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45666 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-08 22:34:17 +00:00
rmacnak@google.com 016214f002 Add Debugger.inspect. 1976 here we come!
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45664 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-08 22:18:43 +00:00
johnmccutchan@google.com 1f851efdbb Rename 'dart:debugger' to 'dart:developer'
- Rename 'dart:debugger' to 'dart:developer'
- Make 'breakHere' and 'breakHereIf' top level functions.

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45658 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-08 21:24:57 +00:00
rmacnak@google.com 7be0dddfca Remove dead --use_jscre flag.
Review URL: https://codereview.chromium.org//1135833003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45655 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-08 20:31:37 +00:00
rmacnak@google.com d36add736d Make copying from script insets omit line numbers and breakpoint indicators.
Review URL: https://codereview.chromium.org//1137523002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45652 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-08 19:58:29 +00:00
srdjan@google.com cae3b352a5 Fix occasional assert failure when disassembling: move assert to proper place.
Review URL: https://codereview.chromium.org//1133833003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45649 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-08 17:08:46 +00:00
srdjan@google.com 3ac643115f Remove unneeded flag declaratiosn (enable_type_checks, enable_asserts).
R=hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45647 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-08 16:48:43 +00:00
srdjan@google.com 4cce388543 Add flag --support_debugger, controls emitting single stepping checks. Disable in --noopt, 6% gain.
R=fschneider@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45641 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-08 10:33:12 +00:00
srdjan@google.com c969e016f3 After sudying IrregExp compilation, it seems too complicated to do lazy local var descriptors for those. The amount of eagerly generated descriptors is small enough that it IMO does not warrant the additional complexity. Cleaned up, removed the flag.
R=hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45631 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-08 07:04:21 +00:00
srdjan@google.com e47ecf48c0 Eagerly create local var descriptors for artificially created methods (they cannot be regularly parsed).
R=hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45606 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-07 19:04:28 +00:00
johnmccutchan@google.com 655545c881 Only add -lrt on Linux, not on Mac
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45603 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-07 17:40:01 +00:00
asiva@google.com b5336c5726 Unify processing of Keywords and predefined symbols in the same loop and add accessors for keyword symbol handles.
R=hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45602 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-07 17:28:02 +00:00
regis@google.com 52b19e2b14 Make sure the bound of a mixin type parameter is finalized before instantiating
it during finalization (fix issue 23385).
Print more info in ToCString() for an unresolved type.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45598 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-07 16:08:11 +00:00
johnmccutchan@google.com 95064c2d0d Fix Observatory rebuild
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45589 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-07 12:45:33 +00:00
ricow@google.com e92f697236 Remove dart2dart support from testing scripts and status files
I will leave it to the dart2js people to remove the support from the dart2js tools (there is also a bunch of comments still in code, do a git grep)

R=kustermann@google.com, floitsch@google.com, kmillikin@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45588 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-07 11:29:55 +00:00
srdjan@google.com ba038822fb Reenable eager local var descriptors until issue with one test resolved.
Review URL: https://codereview.chromium.org//1130133002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45584 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-07 06:33:56 +00:00