Commit Graph

8053 Commits

Author SHA1 Message Date
Lasse R.H. Nielsen 5a843ebbf3 Add "checked" parameter to Isolate.spawnUri.
R=iposva@google.com

Review URL: https://codereview.chromium.org//1154673004
2015-06-03 12:32:52 +02:00
Srdjan Mitrovic defec9c960 --check_function_fingerprints is available only in dart_no_snapshot, i.e., it was not tested. Make it default true, catch failure at build time then
BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org//1166813002
2015-06-02 16:36:54 -07:00
Ivan Posva 63558e911e - Make sure to properly check for errors from sysctlbyname.
BUG=

Review URL: https://codereview.chromium.org//1150173004
2015-06-02 23:22:24 +02:00
Ryan Macnak a754930be6 Remove unused field map_ from LinkedHashMap::Iterator.
TBR=koda@google.com

Review URL: https://codereview.chromium.org//1162363003
2015-06-02 12:33:28 -07:00
Ryan Macnak eca0d72abe Provide a logical view of VM-internal maps in Observatory.
BUG=http://dartbug.com/20551
BUG=http://dartbug.com/21185
R=koda@google.com

Review URL: https://codereview.chromium.org//1150103005
2015-06-02 11:38:39 -07:00
Daniel Andersson 6090af8f0b Serialize maps without hashes.
Re-generate the indices after deserialization.

This is a more compact representation, and also fixes the issue with identity hash codes not being portable between isolates.

BUG=21675
R=asiva@google.com

Review URL: https://codereview.chromium.org//1151013005
2015-06-02 09:04:37 -07:00
Daniel Andersson bf8ccee760 Use kSmiBits rather than #ifdef to define hash map constant.
R=asiva@google.com

Review URL: https://codereview.chromium.org//1160963002
2015-06-02 06:00:28 -07:00
Ryan Macnak 98999e6a02 Misc Observatory patches:
- Address some editor hints.
 - Place eval box above fields and be much more generous in expanding fields.
 - Treat maps as plain instances so their refs aren't blank.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1159783004
2015-06-01 14:59:54 -07:00
Srdjan Mitrovic b611952ead Prevent excessive deoptimization when optimistically assuming Smi in typed data stores.
Moved ICData ahead of class Function, since class Function needs type ICData::DeoptReasonID.

BUG=
R=fschneider@google.com

Review URL: https://codereview.chromium.org//1149403005
2015-06-01 11:42:42 -07:00
Todd Turnidge f6d3d4681d Rename some service protocol errors.
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1164463005
2015-06-01 09:26:54 -07:00
John McCutchan 864f9a3c9b Cap the number of pending accepts on Windows
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//1151753008
2015-06-01 06:38:22 -07:00
Ivan Posva ccf44becd2 - Use #if defined(DEBUG)
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1152773003
2015-05-29 17:43:36 -07:00
Ryan Macnak 4102b0c446 Canonicalize mixin type during class finalization. Add asserts that most types are canonical.
R=regis@google.com

Review URL: https://codereview.chromium.org//1167583002
2015-05-29 15:29:04 -07:00
Ivan Posva 8f1506e817 - Determine whether the simulator is being used in globals.h
- Make sure to switch on HOST_ARCH_ and on USING_SIMULATOR
  where appropriate.
- Avoid allocating in new generation when running in the VM isolate.

BUG=
R=srdjan@google.com

Review URL: https://codereview.chromium.org//1156053006
2015-05-29 14:35:29 -07:00
Ryan Macnak c6ebef9526 Address hints in the Observatory.
R=turnidge@google.com

Review URL: https://codereview.chromium.org//1161553013
2015-05-29 13:42:31 -07:00
Regis Crelier 601da25b92 Fix issue 23500
BUG=
R=srdjan@google.com

Review URL: https://codereview.chromium.org//1146993003
2015-05-29 13:31:16 -07:00
Todd Turnidge 8adf7de6d1 Introduce Instance.kind.
Use this instead of subclassing Instance in the service protocol.

Revise many instance property names.

BUG=
R=johnmccutchan@google.com, rmacnak@google.com

Review URL: https://codereview.chromium.org//1162133002
2015-05-29 13:02:36 -07:00
Siva Annamalai 7af681ead9 Fix for issue 23547, return an proper ApiError instead of a string when we report outstanding typed data acquire errors.
BUG=23547
R=koda@google.com

Review URL: https://codereview.chromium.org//1156993012
2015-05-29 11:13:33 -07:00
Daniel Andersson 092d27cf34 Remove serializer whitelisting for 'dart:collection'
Since LinkedHashMap is now VM-internal, this exception is no longer needed.

BUG=22982
R=asiva@google.com

Review URL: https://codereview.chromium.org//1149933007
2015-05-29 09:17:55 -07:00
Srdjan Mitrovic d7d0d92ec3 Do not eagerly add guarded leaf classes with CHA; do not add them for private names.
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1158673004
2015-05-29 08:57:34 -07:00
Lasse R.H. Nielsen babcd4e9c0 Revert "Make EfficientLength public, as EfficientLengthIterable."
It's still not a good solution for detecting an Iterable with an efficient
length. It's not inherited by, e.g., a DelegatingIterable wrapper or similar
generic Iterable transformers.

Keep this as an internal optimization for quickly detecting the most common
efficient-length Iterable classes (List, Set, Queue, Map.keys/values), but
don't make it public.

A *real* solution would be adding a hasEfficientLength getter to Iterable, or
adding an efficientLength getter that may return null if it's not efficient.
This would something that a wrapper can attach to.

R=sgjesse@google.com

Review URL: https://codereview.chromium.org//1154263003
2015-05-29 12:52:45 +02:00
Florian Schneider 88d316fbc0 VM: Fix two incorrect function fingerprints.
The checking code was broken for a while, so this mismatch was not noticed.

BUG=
R=vegorov@google.com

Review URL: https://codereview.chromium.org//1156423002
2015-05-29 12:20:09 +02:00
Lasse R.H. Nielsen cf4eaae5a6 Change RangeError instances to use RangeError.range.
This avoids using the (sometimes confusing) "[...)" notation for half-open ranges.
Also change argument tests to simpler interval tests, and move error handling to the end of the functions.

Mostly in VM typed-data libraries.

R=sgjesse@google.com, srdjan@google.com

Committed: https://github.com/dart-lang/sdk/commit/932bcc6901d70492c6f1b8d000b9555a0db62f4b

Review URL: https://codereview.chromium.org//1132603003
2015-05-29 10:50:20 +02:00
Todd Turnidge 67adc6102d Add getVersion and setLibraryDebuggable RPCs to the service protocol.
BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1149373006
2015-05-28 13:34:23 -07:00
Daniel Andersson 74d511396e Revert 'Revert to use macro REG_MASK_BIT, now with parentheses.'
Turns out some compilers are allergic to negative shifts, even if it will obviously not be executed.

BUG=

Review URL: https://codereview.chromium.org//1160973002
2015-05-28 13:24:00 -07:00
Daniel Andersson df2d1c426b Revert to use macro REG_MASK_BIT, now with parentheses.
R=whesse@google.com

Review URL: https://codereview.chromium.org//1153893005
2015-05-28 13:03:37 -07:00
Ryan Macnak 2764bcefba Give structured information about imports and export in the service's library response.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1160943002
2015-05-28 11:37:20 -07:00
Todd Turnidge ab6b2218b0 Standardize on using "kind" to distinguish sub-varieties of a type.
- Event.eventType -> Event.kind.
- Sentinel.id -> Sentinel.kind.

We were already doing this for Code and will do so for Instance in
an upcoming cl.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1153193006
2015-05-28 11:04:32 -07:00
Srdjan Mitrovic 87cf4a4a76 Typo; fix windows build
BUG=

Review URL: https://codereview.chromium.org//1154423007
2015-05-28 10:32:03 -07:00
Todd Turnidge 3d02f21309 Service protocol cleanups.
- ServiceEvent -> Event, protocol only.
- Use camel-case for StepOption
- Hide FlagType but make it camel-case too.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1156803003
2015-05-28 10:24:09 -07:00
Srdjan Mitrovic ed73a3d151 With --noopt run unoptimized code through optimizer, more optimizations can be done later.
BUG=
R=fschneider@google.com

Review URL: https://codereview.chromium.org//1149713002
2015-05-28 10:05:46 -07:00
Daniel Andersson ea46192ca3 VM-internalize the default Map implementation.
Make the compact linked hash map, which is the default implementation for Map
(including map literals), a VM-internal class.

This makes it easy to have more efficient serialization of maps (although for
now, the implementation is straight-forward).

Refactor the compact hash class hierarchy to enable the VM-internal class and
the rest (also the Set classes) to share a maximal amount of code, by using
two different bases for implicit/explicit fields.

Remove existing proof-of-concept, C++-based internal VM-class.

BUG=http://dartbug.com/22982
R=asiva@google.com

Review URL: https://codereview.chromium.org//1151523002
2015-05-28 09:32:54 -07:00
Srdjan Mitrovic e68d22ce1e Do not emit debug check in optimized IC stubs
BUG=
R=fschneider@google.com

Review URL: https://codereview.chromium.org//1145063003
2015-05-28 09:32:12 -07:00
Todd Turnidge 563083696c Sundry service protocol cleanups before version 1.0.
Frame.depth -> Frame.index
Message.depth -> Message.index
Remove Message.type
Message.priority becomes private
frame -> frameIndex for evaluateInFrame
Class.finalized, Class.implemented, Class.patch Class.allocationStats become private
Instance.nativeFields becomes private
Field.value moves out of "ref" into full object
Field.value -> Field.staticValue
Move Function.static, Function.const to "ref"
Make Script.kind private in docs
Make Function.kind private

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1160873002
2015-05-28 09:30:55 -07:00
Florian Schneider 7759c171ed VM: Fix nosnapshot build
This makes --check-function-fingerprints work again.

BUG=
R=vegorov@google.com

Review URL: https://codereview.chromium.org//1161473003
2015-05-28 15:12:20 +02:00
Florian Schneider e0621416f8 Remove unused pc descriptor types.
kClosureCall and kOptStaticCall are not needed anymore.
Closure calls are implemented as instance calls - the ClosureCall instruction
 only occurs in the synthetic FunctionImpl.call dispatcher - and does not correspond
to a source location where breakpoints can be set.

kOptStaticCall is not needed because breakpoints can only be set in unoptimized
code. kOther is used instead.

This also removes an unused PC descriptor at closure calls from unoptimized
code.

BUG=
R=vegorov@google.com

Review URL: https://codereview.chromium.org//1160063002
2015-05-28 14:27:37 +02:00
Lasse R.H. Nielsen 9e175d27d7 Revert "Change RangeError instances to use RangeError.range."
Method hashes needs to be updated.

Review URL: https://codereview.chromium.org//1160903002
2015-05-28 10:46:15 +02:00
Lasse R.H. Nielsen 932bcc6901 Change RangeError instances to use RangeError.range.
This avoids using the (sometimes confusing) "[...)" notation for half-open ranges.
Also change argument tests to simpler interval tests, and move error handling to the end of the functions.

Mostly in VM typed-data libraries.

R=sgjesse@google.com

Review URL: https://codereview.chromium.org//1132603003
2015-05-28 10:34:03 +02:00
Florian Schneider 96e4c4d3c6 VM: Fix bugs with missing deoptimization environment and int32x4 constructor
It can occur that we don't have exact type information at UnboxUint32 instructions,
but range information concludes that the instruction can't deoptimize. In this case,
we can assume the input must be a smi or mint if the range fits into mint range.

The generated coe for this case was missing on x64 and arm64. It was already added
for ia32, ARM and MIPS (see https://codereview.chromium.org//770303002)

The optimized instruction of the Int32x4 constructor was incorrectly using uint32 as
input representation, instead of int32.

R=iposva@google.com, vegorov@google.com

Review URL: https://codereview.chromium.org//1148943004
2015-05-28 10:09:49 +02:00
Ivan Posva 0358f722ba - Include original, loaded URI in error message.
- Update error string comparison in pub.

BUG=

Review URL: https://codereview.chromium.org//1156983003
2015-05-28 00:14:39 -07:00
Ryan Macnak 7c02eae5ec Actually use canonicalized parameter and return types.
149.4kB -> 43.5kB (-70%) of Type, TypeArgument and TypeParameter in hello world

R=regis@google.com

Review URL: https://codereview.chromium.org//1162513002
2015-05-27 18:11:44 -07:00
Ivan Posva 42257ab482 - Avoid trying to write to final fields.
BUG=

Review URL: https://codereview.chromium.org//1154213006
2015-05-27 17:44:41 -07:00
Srdjan Mitrovic fc3cd69c05 Load deferred classes eagerly when generating script snapshots
BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org//1155183003
2015-05-27 17:11:35 -07:00
Ivan Posva 2abc21a1bf - Avoid using a streamed receive port for single messages.
- Only open a single receive port for a set of load requests.
- Store information about load requests in a map, which will be able to hold
  other relevant information about the request.

BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org//1154173006
2015-05-27 16:59:43 -07:00
Regis Crelier 1761a60735 Fix restoring of async try context in catch clause (issue 23498).
Add regression test.

Merge branch 'master' into dart1

Fix issue 23498

BUG=
R=srdjan@google.com

Review URL: https://codereview.chromium.org//1160663004
2015-05-27 13:58:57 -07:00
Ryan Macnak 13592ca9b7 Fix use-after-free deleting from linked list.
TBR=koda@google.com

Review URL: https://codereview.chromium.org//1151263004
2015-05-27 13:22:05 -07:00
Srdjan Mitrovic 91651f8805 Remove value check from ICData checks/house-keeping
BUG=
R=johnmccutchan@google.com, vegorov@google.com

Review URL: https://codereview.chromium.org//1153963002
2015-05-27 13:17:28 -07:00
Todd Turnidge 95dc56e27e Make several service protocol RPCs private.
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1159003002
2015-05-27 11:25:56 -07:00
Todd Turnidge 38ef2ac7e1 Emit json-rpc version in service protocol responses.
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1147913004
2015-05-27 10:42:56 -07:00
Ryan Macnak 74dfae69e3 Reapply "Per-closure breakpoints; restructure breakpoint implementation to keep a list of conditions."
Fix copying breakpoints over to a new location when a latent location is resolved.

Fix bad assumption that BreakpointLocationAtLine always returns non-null result.

Review URL: https://codereview.chromium.org//1149983003
2015-05-27 09:59:33 -07:00