Commit Graph

2159 Commits

Author SHA1 Message Date
Regis Crelier 48bc8bbf33 Remove instantiator argument in generated code for type tests.
R=srdjan@google.com

Review URL: https://codereview.chromium.org/1533383003 .
2015-12-21 13:07:32 -08:00
John McCutchan 89c49b9e87 Add dart:developer.postEvent for posting events to the service protocol from Dart code
- Add dart:developer.postEvent for posting events to the service protocol.
- Add 'Extension' service protocol event stream.
- Unit test.
- Update service.md

- Bug fix for logging stream.

R=turnidge@google.com

Review URL: https://codereview.chromium.org/1537523002 .
2015-12-17 09:34:52 -08:00
Ivan Posva b6781b656a - Implement Platform.packageRoot and Platform.packageConfig based
on the new specification.

BUG=
R=lrn@google.com

Review URL: https://codereview.chromium.org/1529063006 .
2015-12-17 07:48:41 -08:00
Florian Schneider fbdce6a59e VM: Const-correctness fixes.
Three types of fixes:
1. Remove redundant const_cast
2. Remove const_cast by adding const when appropiate.
3. Remove const_cast by removing const (e.g. places where we call free with it)

For now I only fixed places where the fix is local enough - i.e. does not require
changed a large amount of code.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1526123002 .
2015-12-15 19:24:40 +01:00
John McCutchan a1ed9c6d17 Remove public dart:isolate dependency from dart:developer
- Move code from sdk/lib into runtime/lib.
- Remove dependency on dart:isolate from dart:developer.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1522203002 .
2015-12-14 13:26:05 -08:00
Zachary Anderson a0970835f0 Adds a special case for sending an int over a port with the native API.
This improves dart <=> C++ IPC round-trip-times for Mojo by 10-20%.

BUG=

Review URL: https://codereview.chromium.org/1499853004 .
2015-12-11 16:07:16 -08:00
Ryan Macnak 9387fead15 Use a monotonic clock in the implementation of Timer.
Ask the embedder for the current time, since it is the embedder who later compares the deadline with current time when deciding when to send a wake up message.

BUG=http://dartbug.com/25055
BUG=http://dartbug.com/25216
R=iposva@google.com, zra@google.com

Review URL: https://codereview.chromium.org/1519563003 .
2015-12-11 12:39:56 -08:00
Florian Loitsch 6c84c42e67 Add microsecond support to DateTime.
R=iposva@google.com, lrn@google.com

Review URL: https://codereview.chromium.org/1493033003 .
2015-12-09 00:46:46 +01:00
Regis Crelier 173c1aed51 Improve upper bound finalization in VM and fix #25122.
Add regression test.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1513493002 .
2015-12-08 14:38:27 -08:00
Ryan Macnak c99df050b1 Use a monotonic clock in the implementation of Stopwatch.
Rename OS::GetCurrentTraceMicros() to OS::GetCurrentMonotonicMicros().

BUG=http://dartbug.com/477
BUG=http://dartbug.com/12383
R=iposva@google.com

Review URL: https://codereview.chromium.org/1504523002 .
2015-12-08 10:12:05 -08:00
Ryan Macnak f380c23711 Throw an exception when attempting to use Isolate.spawnUri under precompilation.
R=srdjan@google.com

Review URL: https://codereview.chromium.org/1502473002 .
2015-12-04 10:13:15 -08:00
Matthias Hausner ad0f14e0ce Eliminate all but one top-level class per library.
Each script has an associated top-level class in which the top-level functions and fields are stored, and the reference to the script. All other fields in the TL class are unused. There are 380 TL classes in corelib alone; eliminating them saves space.

This CL eliminates all TL classes but one per library. All TL functions and fields in the library are stored in that TL class. Because scripts are not stored directly in functions and fields, but are accessible via their owner class, the owner of TL entities are now PatchClasses, rather than classes.

Before:
Size of vm isolate snapshot = 930813
New space (0k of 0k) Old space (1184k of 1624k)
VM Isolate: Number of symbols : 14909
Size of isolate snapshot = 261873
New space (0k of 2048k) Old space (987k of 1024k)

After:
Size of vm isolate snapshot = 931101
New space (0k of 0k) Old space (713k of 1156k)
VM Isolate: Number of symbols : 14907
Size of isolate snapshot = 256956
New space (0k of 1024k) Old space (514k of 768k)

R=iposva@google.com

Review URL: https://codereview.chromium.org/1410383020 .
2015-12-01 09:21:17 -08:00
Zachary Anderson 5ee95b085f Move tar archive parsing to C++
This gives a 30+ms speedup to startup.

Also uses HashMap instead of Map for assets.

BUG=
R=iposva@google.com

Review URL: https://codereview.chromium.org/1474603003 .
2015-11-25 14:39:19 -08:00
Siva Annamalai 01b69ebabc Move ApiLocalScope out of class ApiState into class Thread so that the API local handles and zone etc. are thread specific instead of being Isolate specific.
R=zra@google.com

Review URL: https://codereview.chromium.org/1473403003 .
2015-11-25 11:07:22 -08:00
Lasse R.H. Nielsen 027b8dca39 Add StackTrace.current getter.
R=floitsch@google.com, iposva@google.com, sra@google.com

Review URL: https://codereview.chromium.org/1448003002.
2015-11-24 08:26:03 +01:00
Todd Turnidge 08b3164bf3 Add the --i-like-slow-isolate-spawn flag for those who like slow spawning.
BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org/1469063003 .
2015-11-23 14:18:33 -08:00
Siva Annamalai 9e19d236ca - Add an OSThread structure which is the generic TLS structure for all C++
fields in a thread (i.e fields that are not Dart VM related)
- Split the Thread structure to be a pure Dart per thread structure and add
  a pointer to os_thread which points to the OSThread structure
- Change Schedule/UnSchedule to set the Dart Thread structure as the TLS of
  the thread when it is inside the Dart world and reset the TLS back to the
  OSThread strcuture when is exits the Dart World.
- Moved the stack_base and few stack size related functions to OSThread from Isolate

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

Review URL: https://codereview.chromium.org/1439483003 .
2015-11-19 13:45:10 -08:00
Todd Turnidge 71b3d5aba8 Start isolates in a separate thread.
R=asiva@google.com

Review URL: https://codereview.chromium.org/1447353002 .
2015-11-18 11:02:32 -08:00
Ivan Posva d97c7bdbde - Include sources in gen_snapshot and dart_no_snapshot to allow
creating full snapshots without having a full Dart SDK checkout.

BUG=
R=asiva@google.com, chinmaygarde@google.com

Review URL: https://codereview.chromium.org/1449163003 .
2015-11-17 14:58:09 -08:00
Zachary Anderson 157cbe9738 Use a List for outstanding load requests
Saves another ms during Isolate startup.

BUG=
R=hausner@google.com

Review URL: https://codereview.chromium.org/1452053003 .
2015-11-17 13:57:12 -08:00
Zachary Anderson 871e4a2788 Uses a HashMap to complete deferred library loads.
HashMap.forEach is a few ms faster to compile than LinkedHashMap.forEach,
and iteration order appears not to matter for _outstandingLoadRequests.

BUG=
R=hausner@google.com

Review URL: https://codereview.chromium.org/1453513002 .
2015-11-17 10:52:44 -08:00
Todd Turnidge 5817a6f187 Remove some prototype code that snuck into one of my commits.
BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/1435943003 .
2015-11-16 15:07:16 -08:00
Lasse R.H. Nielsen 50aa43569d Add "growable" parameter to List.filled constructor.
Fixes issue #24884
BUG= http://dartbug.com/24884
R=floitsch@google.com

Review URL: https://codereview.chromium.org/1440663003 .
2015-11-13 09:30:46 +01:00
John McCutchan 291befa1cd Redo TimelineTask API
A TimelineTask represents an asynchronous track of operations on the timeline.

The old API allowed multiple isolates to emit events simultaneously on the same task or to start / finish events in any order. This isn't supported by our UI and probably many other tools that consume trace-event.

With this change, operations within a TimelineTask must complete in the reverse order of their start calls (aka a stack). You can pass a TimelineTask from one isolate to another but you must first complete all open operations before passing it.

Example:

var task = new TimelineTask();

task.start('Some phase');
await someFuture;
task.finish();

Also: Add support for instant events.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1412183008 .
2015-11-11 10:59:38 -08:00
Jacob Richman 27686cf808 Missed adding the isExternal property to all VM MethodMirror subclasses.
BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org/1407333007 .
2015-11-06 10:51:45 -08:00
Lasse R.H. Nielsen b13607d247 Split _uriEncode into JS and VM versions.
R=iposva@google.com, sra@google.com

Review URL: https://codereview.chromium.org/1416373007.
2015-11-05 13:00:37 +01:00
Florian Loitsch be025b8412 Revert "Remove deprecated dart:profiler library"
This reverts commit 535a9715ac.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/1415843008 .
2015-11-04 01:59:53 +01:00
Jacob Richman 688b69fb65 Support isExternal method on MethodMirror in the Dart VM. Not really intended for public consumption. switch to using isExternal and using anonymous.
BUG=
R=alanknight@google.com, asiva@google.com

Review URL: https://codereview.chromium.org/1421133003 .
2015-10-29 19:17:08 -07:00
Florian Schneider bcde4eee0b VM: Add double unary minus intrinsic.
Also remove an extra indirection in the unary minus operator for Double.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1422753004 .
2015-10-29 22:58:33 +01:00
Srdjan Mitrovic cd98aff665 Getting rid of Isolate::current_zone() usage. Pass thread instead of isolate where it makes sense.
BUG=
R=hausner@google.com, johnmccutchan@google.com

Review URL: https://codereview.chromium.org/1424703004 .
2015-10-26 15:31:50 -07:00
John McCutchan 2844eb86ca Service isolate requests Observatory assets from embedder
- Provide a new callback to Dart_Initialize that will be called when the service isolate needs the Observatory assets
- Move asset management code out of embedder and into common dart:_vmservice
- Use the tar format as the archive format
- Add build script to generate .cc file containing the archive
- Add a simple tar parser to service isolate

This makes it possible for embedders to not bake Observatory into their executable but instead load it off disk or over the network. The standalone embedder still links Observatory into the executable.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1411853003 .
2015-10-26 07:21:23 -07:00
Ivan Posva 1fa2ef874d - Rollback packageConfig/File/Spec updates for 1.13.
BUG=24691
R=sethladd@google.com

Review URL: https://codereview.chromium.org/1409343007 .
2015-10-22 16:22:17 -07:00
Siva Annamalai 99abe7d883 - Some cleanup of dynamic_type usage.
- Avoid egregious creation of handles in Class::CreateInvocationDispatcher

R=regis@google.com

Review URL: https://codereview.chromium.org/1409113006 .
2015-10-21 17:24:10 -07:00
John McCutchan f55de246ec More timeline cleanups
- Blocks are associated with threads and not isolates.
- Fix isolate filters when iterating over blocks and events.
- Always add the isolateNumber argument when serializing events.
- Add new (kSerializedJSON) EventType for events already serialized to JSON.
- Have events coming from Dart code use the standard event structure w/ type = kSerializedJSON.
- Remove now unused DartTimelineEvent and machinary.
- Dart and C++ events now use the same structures and system.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1411783004 .
2015-10-20 09:14:23 -07:00
Srdjan Mitrovic 465cf10a7c Remove some Isolate::current_zone() calls, as it gets the zone from mutator thread not the current thread
BUG=
R=zra@google.com

Review URL: https://codereview.chromium.org/1414493003 .
2015-10-19 10:27:36 -07:00
Regis Crelier 09954546fb Add a 'secure' constructor to Random in dart:math returning a cryptographically
secure random generator which reads from the entropy source provided by the
embedder for every generated random value.
Add a test.
Fixes #1746.

R=lrn@google.com

Review URL: https://codereview.chromium.org/1398453004 .
2015-10-15 10:16:03 -07:00
Srdjan Mitrovic e520dd567f Remove isolate argument from handle allocation: Part I
BUG=
R=hausner@google.com

Review URL: https://codereview.chromium.org/1393373003 .
2015-10-12 11:32:08 -07:00
Ivan Posva 60eab65aa0 - Implement package map parameter when spawning isolate.
BUG=
R=lrn@google.com

Review URL: https://codereview.chromium.org/1403693002 .
2015-10-12 09:05:37 -07:00
Lasse R.H. Nielsen 57f4827c76 Rename [packages] to [packageMap] as Isolate.spawnUri parameter.
This matches the static [packageMap] getter on Isolate.

Fixes issue #24545.
BUG= http://dartbug.com/24545
R=floitsch@google.com

Review URL: https://codereview.chromium.org/1401713002.
2015-10-12 16:31:48 +02:00
John McCutchan 1a0066816d Add support for emitting asynchronous timeline events from Dart code
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1397823002 .
2015-10-09 10:21:02 -07:00
Zachary Anderson bb7f3a7501 Fixes RawReceivePort.hashCode
BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org/1386253003 .
2015-10-08 13:06:49 -07:00
John McCutchan 4831a1a315 Properly split dart:_vmservice across sdk and runtime
- This is needed to satisfy the GN build system (mojo, flutter).
- It also makes dart:_vmservice even more regular with othe rlibraries.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1396603002 .
2015-10-07 13:19:55 -07:00
John McCutchan 535a9715ac Remove deprecated dart:profiler library
Fixes #24510

R=turnidge@google.com

Review URL: https://codereview.chromium.org/1398433002 .
2015-10-07 10:01:33 -07:00
Srdjan Mitrovic 8c7a94e9f4 Preparation for moving reusable handles to thread and more cleanups: isolate -> thread based handle allocation.
BUG=
R=koda@google.com

Review URL: https://codereview.chromium.org/1384403002 .
2015-10-06 10:17:12 -07:00
John McCutchan 150e8d2757 Move dart:_vmservice native entries into bootstrap natives
With this CL the dart:_vmservice library is made regular with respect to other dart: builtin libraries.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1390803002 .
2015-10-06 09:16:39 -07:00
John McCutchan af0ab36f7c Make dart:_vmservice a proper builtin library
- Drops custom resource table for sources.
- Stops loading dart:vmservice library by sources.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1387043002 .
2015-10-06 07:58:14 -07:00
Lasse R.H. Nielsen da8baacae4 Make root-zone handleUncaughtError rethrow with the correct stack.
Adds _rethrow function which reifies the stack trace of an async
error on the VM. There is no corresponding JS functionality, it still
just throws an AsyncError wrapper.

Fixes issue #24163
BUG= http://dartbug.com/24163
R=iposva@google.com, turnidge@google.com

Review URL: https://codereview.chromium.org//1383983002.
2015-10-05 08:16:52 +02:00
Ivan Posva ba6c0ace3e - Add getters for the current packageRoot or packageMap to the Isolate class.
- Simplify loading in builtin.dart.

BUG=
R=asiva@google.com, lrn@google.com

Review URL: https://codereview.chromium.org//1334353002 .
2015-10-03 06:53:13 -07:00
John McCutchan 7b01e5fa11 Fix Mac dartium build
BUG=

Review URL: https://codereview.chromium.org/1380103006 .
2015-10-01 11:26:41 -07:00
John McCutchan 03b41129a2 Add Timeline to dart:developer
- This CL only adds support for synchronous blocks of time. A follow up CL will add asynchronous blocks of time.
- Reports true thread id to tracing system. This is an improvement over Mojo's tracing helper.
- Dart events are included in individual isolate traces and global traces obtained via the embedders API.
- Dart events are included in the write to disk path (--timeline_dir).

R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1377663002 .
2015-10-01 09:30:47 -07:00