Commit Graph

5497 Commits

Author SHA1 Message Date
johnmccutchan@google.com 727d29d6b6 Refactor VM service IDs:
- IDs are strings which can be concatenated together like paths.
- Isolate ID is now "/isolates/XXX"
- Function, field, class, library, and script IDs are now stable.
- Introduce <type-ref> tags.

R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31358 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-20 22:35:55 +00:00
turnidge@google.com 383468782e Keep track of current "pause" event in the debugger.
This will allow us (later) to make nice descriptions of the state of
an isolate, e.g. "isolate 7112 is paused due to breakpoint 2" or
"isolate 7112 is paused due to interrupt" or "isolate 7112 is
running".

Use a new Pause() function to call the event handler during a pause.
It does some shared checking, setup, teardown.

Minor change in isolate interrupt handling - before we were not
setting 'in_event_handler_' in this case.  Now we set 'pause_event_'
here, which will guard against recursive pauses in this case.

Reviewer: not sure what I think about all the names I used here.
"pause_event_" is very similar to PausedEvent but means something
different, as it includes pauses, interrupts, and (maybe) exceptions.
Dunno.

R=hausner@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31356 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-20 22:30:23 +00:00
srdjan@google.com cd92319223 Optimize string length one comparisons by comparing char codes only. Implemented for one byte strings only at the moment. Will add other string types/mixed compares later.
R=fschneider@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31347 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-20 20:11:38 +00:00
zra@google.com 3508d336dd Simplifies standalone VM Android build.
This change also avoids the need to
do another 'gclient runhooks' when switching
between Android and Linux builds, and between
IA32 and ARM Android builds.

gyp does not allow 'libraries' sections inside of
configurations. Therefore, since some architecture
specific paths, libraries, etc. must be specified
on the Android NDK's linker command line, to avoid
re-gyping when switching between Android IA32 and ARM,
this change moves the architecture specific linker
flags to a script, android_link.py.

To avoid re-gyping when swtiching between Linux and
Android, this change creates new configurations
that specify the target OS as well as the the target
architecture, e.g. ReleaseLinuxARM or ReleaseAndroidARM
instead of ReleaseARM.

This change also adds a --toolchain flag to build.py,
and removes obsoleted logic for setting up the Android
build.

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31340 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-20 17:51:34 +00:00
regis@google.com 3bdeaf9813 Add missing ResolveType call (fix issue 15738).
Remove unused parameter from ResolveType.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31336 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-20 14:26:53 +00:00
fschneider@google.com e994d8b697 Revert r31326.
TBR=johnmccutchan@google.com,

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31332 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-20 12:21:09 +00:00
ajohnsen@google.com 3bc42be527 Block other signals while handling a signal.
BUG=
R=sgjesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31331 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-20 12:12:17 +00:00
ajohnsen@google.com 969eaf8068 Fix watch move event when path is a not a file.
BUG=https://code.google.com/p/dart/issues/detail?id=15458
R=sgjesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31328 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-20 11:28:53 +00:00
fschneider@google.com fe726e1971 Use parallel move resolver for optimized try-catch.
This CL has no change in functionality and is purely clean up and
refactoring. Instead of manually generating the moves at throwing
instructions in try-catch, construct a parallel move and use the resolver
to emit the native code. This eliminates a lot of duplicated code
from all platforms.

It will also allow to re-use stack space that is currently allocated
separately for each individual try-catch in a function.

I added a few more unrelated minor changes in various parts of the VM
* Simpilify guard code generation
* Resolve refactoring TODO in deoptimization
* Improve names

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31326 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-20 09:41:42 +00:00
regis@google.com b5a2dea566 Convert InstantiatedTypeArguments to TypeArguments upon canonicalization.
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31325 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-20 09:20:55 +00:00
fschneider@google.com 21d0b251e0 Update double unboxing heuristic.
R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31324 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-20 09:18:40 +00:00
asiva@google.com 491035987f Change Dart_GetNativeBooleanArgument to use class Ids and direct
pointer comparision of the singleton objects to determine value.

R=rmacnak@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31311 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-20 00:15:13 +00:00
asiva@google.com 447f4e66d9 Fix build break (true is not defined on windows for C).
Review URL: https://codereview.chromium.org//108493003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31291 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-19 18:42:54 +00:00
asiva@google.com a576fec3c0 Allow the native resolver to setup whether it needs the Dart API scope to
be setup automatically or not when a native function is invoked.
This would allow the embedder to treat some native functions as leaf
functions whose invocation can be very light.

R=hausner@google.com, zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31286 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-19 17:47:56 +00:00
ajohnsen@google.com 38d0fad2c7 Signal handling, take 2.
BUG=
R=sgjesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31276 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-19 15:07:48 +00:00
ajohnsen@google.com f24f568571 Revert "Signal handling."
This reverts commit r31270.

BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31275 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-19 14:03:15 +00:00
ajohnsen@google.com e8d9794c70 Signal handling.
BUG=
R=sgjesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31270 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-19 13:08:26 +00:00
sgjesse@google.com d651bf7366 Handle failures to AcceptEx calls on Windows
R=ajohnsen@google.com
BUG=http://dartbug.com/11165

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31265 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-19 12:41:26 +00:00
ajohnsen@google.com 7a8abc62b7 Fix Stdout in checked mode.
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31263 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-19 12:26:27 +00:00
sgjesse@google.com c23414f9df Add missing include
TBR=ajohnsen@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31257 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-19 11:35:26 +00:00
ajohnsen@google.com 5e564f370d Add getter for hasTerminal, terminalColumns and terminalLines on stdin.
BUG=https://code.google.com/p/dart/issues/detail?id=15557
R=sgjesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31255 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-19 10:59:58 +00:00
ngeoffray@google.com 2015e5f204 Fix an old TODO.
R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31253 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-19 10:40:53 +00:00
johnmccutchan@google.com 50ef680923 Bucket unknown symbols by PC and demangle native symbols
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31247 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-19 00:29:51 +00:00
johnmccutchan@google.com 397a9a56e5 Add flag to control profiler rate
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31244 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-18 23:11:20 +00:00
iposva@google.com bceaf4b1eb - Promote objects early when a large percentage is being
copied during a scavenge.

R=zra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31238 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-18 20:52:35 +00:00
turnidge@google.com b640712e6b Handle vmservice messages while at breakpoint.
Allow rudimentary inspection of breakpoints from vmservice.

R=hausner@google.com, johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31233 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-18 17:45:17 +00:00
srdjan@google.com 761d4d04cd Constant propagation in LoadIndexed when inputs are array/string and index constants.
R=fschneider@google.com, johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31230 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-18 16:55:12 +00:00
fschneider@google.com f7149b05c8 Fix bug in double unboxing.
The state bit that record if a field is unboxed or not has to be checked
in unoptimized code as well, since that code does not change when deoptimizing.

I also compacted the kind_bits bit field in the Field class to start from bit 0.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31229 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-18 15:46:39 +00:00
fschneider@google.com 16098ce25a Fix invalid aliasing in type propagation of AssertAssignable.
We have to create a copy when computing the initial type for AssertAssignable
instead of using the CompileType of the input operand. Aliasing can cause
invalid elimination of checks after strengthening of asserts.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31227 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-18 15:30:07 +00:00
ajohnsen@google.com 5558bb0d1f Fix most UDP issues on Mac OS
We still do not test getting SO_BROADCAST, as it (at least on my laptop)
returns false even if it has just been turned on.

Setting SO_REUSEADDR for datagram sockets also behaves differently
compared to Linux and Windows.

IPv6 multicast as I could not test it on my laptop.

R=ajohnsen@google.com
BUG=http://dartbug.com/1975

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31223 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-18 12:23:40 +00:00
sgjesse@google.com 85fdbfb773 Add argument checking to InternetAddress constructor
R=ajohnsen@google.com
BUG=http://dartbug.com/15687

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31220 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-18 11:26:02 +00:00
zra@google.com aa4c080b5c Adds CPU message type to vm service.
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31209 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-17 22:22:12 +00:00
asiva@google.com 64a261fbbd Changes to interpret the optimizable bit based on whether the function
is native or not.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31207 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-17 22:07:41 +00:00
iposva@google.com 1e8061f060 - Remove the reply_port from the VM internal message object.
- Adjust all the uses of this API.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31205 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-17 21:11:18 +00:00
rmacnak@google.com 5e3a80268a Partially implement LibraryMirror.topLevelMembers.
BUG=http://dartbug.com/14632
R=asiva@google.com, gbracha@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31202 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-17 19:20:03 +00:00
rmacnak@google.com 7809fb4276 Remove dead isLocalPort from the VM mirrors implementation.
Review URL: https://codereview.chromium.org//115153007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31199 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-17 18:02:14 +00:00
iposva@google.com f39a3dc75f - Use named constant kNullable instead of true.
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31198 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-17 17:42:26 +00:00
zra@google.com 2d5603c93b Fixes Unimplemented crasher on MIPS.
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31197 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-17 17:34:09 +00:00
iposva@google.com e100129f8e - Use canonicalized type of non-parameterized classes when
available.
- Do not attempt to make types for objects of Context.

R=fschneider@google.com, regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31194 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-17 16:59:14 +00:00
johnmccutchan@google.com a961710bfa Fix signed unsigned comparison error
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31193 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-17 16:57:18 +00:00
johnmccutchan@google.com dc217a8aa0 Fix crash walking call stack on Linux.
BUG=
R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31192 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-17 16:48:55 +00:00
sgjesse@google.com 4ca4f0db07 Only store the address bytes for an internet address in Dart
We used to store the full C "struct sockaddr_storage" in the Dart
internet address. Changed this to be only the bytes for the
address. This removes opaque platform specific binary data from Dart
(e.g. on Mac OS the "struct sockaddr" has an initial length byte).

R=ajohnsen@google.com
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31191 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-17 15:35:11 +00:00
johnmccutchan@google.com 4a65b869d0 Only interrupt thread don't record sample. Narrowing in on flaky crash on Linux.
TBR

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31175 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-16 22:35:55 +00:00
johnmccutchan@google.com cd10e1cc75 Remove reference to ucontext_t until other Signal related functions on Android are implemented.
Review URL: https://codereview.chromium.org//103403007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31173 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-16 20:54:19 +00:00
srdjan@google.com 92e7e69b46 The name of InternalError class has changed to _InternalError.
Review URL: https://codereview.chromium.org//102763003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31172 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-16 20:05:00 +00:00
johnmccutchan@google.com dafc13d57f Add missing include file for Android build
Review URL: https://codereview.chromium.org//116013003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31171 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-16 19:54:46 +00:00
johnmccutchan@google.com 919dc2d6eb * Introduce ThreadInterrupter which calls a TLS set callback when thread is interrupted.
* Threads can only register and unregister themselves with ThreadInterrupter.
* Profiler is no longer involved in interrupting threads. It's just a callback and the buffer.
* Profiler operates lock free using an atomic operation to reserve sample in sample buffer.
* Linux, Mac, and Windows done.

R=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31170 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-16 18:52:15 +00:00
fschneider@google.com 6abd6e326e Add mutable double boxes for fields.
This allows the optimizing compiler to generate unboxed loads/stores
to fields containing double values. The double value is stored
in a reusable double object.

Unboxed loads/stores are generated for optimized code. Unoptimized code
allocates a new double on loads. To avoid performance regressions
for fields that are only written few times (e.g. only in the constructor)
I put a heuristic in place that
compares the usage count of setters and getters. Unboxed operations
are only generated if the setter is invoked a significant amount of
times (threshold is 10% of getter invocations).

The CL is so big because it changes the way LocationSummmary
is allocated: We now have a bit to generate different summaries
for optimized and unoptimized code.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31164 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-16 15:11:31 +00:00
ajohnsen@google.com 69d20ad7d3 Don't make timerfd non-blocking and add errno to error-mesage.
BUG=
R=sgjesse@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31162 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-16 14:48:33 +00:00
ajohnsen@google.com 7d4e2f9ac8 Alternative Timer implementation using simply list-based priority heap.
The current implementation is not memory-optimized yet, to make it
easier to review.

BUG=
R=fschneider@google.com, lrn@google.com, sgjesse@google.com

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31158 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-16 12:56:37 +00:00