Siva Annamalai
f7d2b2e31e
- Fix for issue 25950 (add registration of a thread exit callback)
...
- Moved some of the file and entropy callbacks to class Dart from
class Isolate as they are not isolate specific.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/1807293002 .
2016-03-17 13:40:20 -07:00
Florian Schneider
1f7458ddf8
VM: Precompiled rodata snapshot.
...
For now only contains PC descriptors and stack maps and one-byte strings.
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1584443002 .
2016-02-15 09:15:26 +01:00
Todd Turnidge
991e5b2c7b
Add --trace-shutdown flag.
...
BUG=
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/1670623002 .
2016-02-12 11:09:23 -08:00
Ivan Posva
6249c2bcf3
- Remove the legacy debug protocol.
...
BUG=
R=hausner@google.com
Review URL: https://codereview.chromium.org/1497033003 .
2015-12-03 17:46:02 -08:00
Siva Annamalai
10f40ce373
1. Get rid of SwitchIsolateScope as it is not clear when this should be used and there is also a bug in that Thread::ExitIsolate is not called if saved_isolate is not NULL
...
2. Added Dart::ShutDownIsolate(Isolate* isolate) to take care of ensuring that the isolate is entered before shutting it down and deal with the asymmetry on the way out.
R=zra@google.com
Review URL: https://codereview.chromium.org/1427583009 .
2015-11-02 14:29:16 -08: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
Ryan Macnak
9764a9f037
-Setup heap page for precompiled instructions to make heap verifier etc happy.
...
-Pre-mark instructions when writing the snapshot.
-Write the megamorphic miss function to the snapshot.
-Add missing ExceptionHandlers for megamorphic miss code.
-Add missing C++ entry points.
-Relocate Function and Code entry_points_ when reading precompiled snapshot.
-Don't try to load a script again when running from a precompiled snapshot.
R=asiva@google.com
Review URL: https://codereview.chromium.org//1336763002 .
2015-09-16 11:22:57 -07:00
Zachary Anderson
7093f2996b
VM thread shutdown.
...
BUG=
R=iposva@google.com , turnidge@google.com
Review URL: https://codereview.chromium.org//1275353005 .
2015-09-15 12:49:52 -07:00
Ryan Macnak
c3abcd8f93
Add argument to Dart_Initialize for precompiled instructions.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//1311963002 .
2015-08-26 11:04:27 -07:00
Daniel Andersson
2789021e45
Fix --verify_handles mode by properly checking for the static API handles.
...
This was an omission from 9a5dc19140 .
Also set this flag and --verify_on_transition in CustomIsolateTest to extend coverage.
BUG=
R=asiva@google.com
Review URL: https://codereview.chromium.org//1173293007 .
2015-06-22 07:19:56 -07:00
Daniel Andersson
9a5dc19140
Move allocation of static API handles Dart_True, etc.
...
Instead of an unbalanced local scope, allocate them alongside the corresponding static VM handles.
BUG=
R=iposva@google.com
Review URL: https://codereview.chromium.org//1186353004 .
2015-06-17 12:46:32 -07:00
Ivan Posva
f5e3f94019
Fix http://dartbug.com/23578 :
...
- Complete revamp of isolate-specific flags.
- Associate flags with the isolate on creation.
- Dart_CreateIsolate and associate callback do take an
extra flags argument.
- Make sure to clear IC data array when clearing code.
BUG=23578
Review URL: https://codereview.chromium.org//1162033005
2015-06-07 17:57:34 +02:00
asiva@google.com
87c8a6ee76
First step towards splitting a full snapshot into a vm isolate snapshot and a
...
regular isolate snapsot.
- change gen_snapshot to split a full snapshot into a vm isolate snapshot
and an isolate snapshot
- change the build process and scripts to account for splitting the full
snapshot
R=hausner@google.com
Review URL: https://codereview.chromium.org//1023753006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44814 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-31 18:46:19 +00:00
johnmccutchan@google.com
172baa03ff
Service isolate rework take 2
...
Review URL: https://codereview.chromium.org//889443002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43306 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-29 18:31:27 +00:00
johnmccutchan@google.com
db271b0477
Revert r43217, r43215, r43208, r43207, and r43202.
...
Reverting because of some isolate spawn issues (on Windows, and pub bots).
Review URL: https://codereview.chromium.org//867113003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43219 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-27 22:56:18 +00:00
johnmccutchan@google.com
66aa470fc6
* Create vm-service isolate at Dart_Initialize time.
...
* Remove Service create callback.
* Simplify creation of service isolate.
* Creation is done on thread pool.
* Use vm-service isolate for loading in standalone embedder.
* Remove import of dart:io from builtin library.
performance changes:
no service isolate:
$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:27 | 100% | +12363 | - 0]
$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:27 | 100% | +12363 | - 0]
always start service isolate (as a thread pool task):
$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:45 | 100% | +12363 | - 0]
$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:44 | 100% | +12363 | - 0]
service does I/O (calls to Dart_LoadScript block until service is running):
$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:55 | 100% | +12363 | - 0]
$ ./tools/test.py -m release
Test configuration: none_vm_release_ia32
[01:55 | 100% | +12363 | - 0]
R=asiva@google.com
Review URL: https://codereview.chromium.org//584023004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43202 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-27 19:45:48 +00:00
johnmccutchan@google.com
c76b6eb1c2
Split service into VM and embedder specific bits.
...
Move most service sources into the VM.
R=asiva@google.com
Review URL: https://codereview.chromium.org//125103004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31809 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-14 22:34:43 +00:00
iposva@google.com
070d3dedf7
- Add a per-isolate pseudo random number generator to the
...
VM internals. This PRNG is not used to generate random
numbers in Dart code.
- Use the PRNG to generate JIT cookies for large constants
if needed during assembly.
- Add the possibility to set an external entropy source
for the PRNG through the C API.
R=asiva@google.com
Review URL: https://codereview.chromium.org//59773007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29950 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-06 00:59:46 +00:00
asiva@google.com
1cd2ad79ec
Fix for 12312 (Dartium crash when reloading after running tests).
...
Add framework for Dart_Cleanup which will cleanup stuff on exit.
Ideally the VM isolate should be shutdown in Dart_Terminate but we don't
seem to have a clean thread pool shutdown as a result of which there are
racing isolates.
R=iposva@google.com
Review URL: https://codereview.chromium.org//25674009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28248 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-03 22:17:48 +00:00
johnmccutchan@google.com
4aeef86a3d
Call shutdown callback before the isolate is destroyed
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//18862004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24844 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-09 14:59:01 +00:00
asiva@google.com
ea5a3919c5
Resubmit 22380 after fixing the windows build.
...
R=hausner@google.com
Review URL: https://codereview.chromium.org//14645025
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22396 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-03 22:50:26 +00:00
asiva@google.com
dab8758e7a
Revert 22380 to investigate windows build break.
...
Review URL: https://codereview.chromium.org//14927003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22382 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-03 18:26:34 +00:00
asiva@google.com
27e78fb6f8
Second step towards loading core library scripts directly from the sources
...
- Modify the library source generator to generate a source mapping array
The generated array is of the following format:
const char* dart::Bootstrap::corelib_source_paths_[] = {
"dart:core", "/workspace1/dart-all/dart/sdk/lib/core/core.dart",
"bool.dart", "/workspace1/dart-all/dart/sdk/lib/core/bool.dart",
...
...
};
- Read the source file using the source mapping array instead of relying on
a generated buffer containing the sources
- Modify the gyp files to ensure that all libraries are read directly
from the sources. This CL does not change the patch part yet.
Remove the source concatentation step in the gypi files for all the core
libraries.
R=hausner@google.com , iposva@google.com
Review URL: https://codereview.chromium.org//14786012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22380 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-03 18:12:24 +00:00
asiva@google.com
7ea520f10f
Create read only handles for empty_array and sentinel objects
...
(trying out a basic framework and will extend it to others once this
works).
Review URL: https://codereview.chromium.org//11648006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16416 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-21 02:33:05 +00:00
meh@google.com
1125aff405
Move generate_perf_events_symbols flag to VM (new issue with @google address)
...
Changes reviewed and approved here:
https://chromiumcodereview.appspot.com/11490026
Created a new issue using meh@google.com instead of meh@chromium.org so I can commit to trunk.
BUG=
Committed: https://code.google.com/p/dart/source/detail?r=16016
Review URL: https://codereview.chromium.org//11549011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16084 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-13 00:42:19 +00:00
meh@google.com
c9271a657a
Revert "Move generate_perf_events_symbols flag to VM (new issue with @google address)"
...
This reverts commit d4d38edbb889d186930c9346c867a0252f425e99.
BUG=
Review URL: https://codereview.chromium.org//11519025
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16017 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-12 03:41:30 +00:00
meh@google.com
9067ec4d33
Move generate_perf_events_symbols flag to VM (new issue with @google address)
...
Changes reviewed and approved here:
https://chromiumcodereview.appspot.com/11490026
Created a new issue using meh@google.com instead of meh@chromium.org so I can commit to trunk.
BUG=
Review URL: https://codereview.chromium.org//11549011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16016 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-12 02:55:21 +00:00
cshapiro@google.com
f5c4d7a381
Unify specification of file open, close, and write callbacks.
...
Review URL: https://codereview.chromium.org//11442024
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15807 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-06 21:56:31 +00:00
tball@google.com
bf5f0db5d0
Added support for isolate unhandled exceptions.
...
BUG=
Review URL: https://codereview.chromium.org//11413101
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15352 260f80e4-7a28-3924-810f-c04153c831b5
2012-11-26 23:31:47 +00:00
iposva@google.com
3d61f5d16a
Fix bug 6467:
...
- Do not attempt to Dart_ExitScope if no scope exists.
- Print more informative message if Dart_Initialization fails.
Review URL: https://codereview.chromium.org//11308166
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15242 260f80e4-7a28-3924-810f-c04153c831b5
2012-11-22 07:54:21 +00:00
cshapiro@google.com
772a399cab
Emit symbol maps for compiled code for use by the Linux perf tool.
...
Review URL: https://chromiumcodereview.appspot.com//10831005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9922 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-26 00:21:25 +00:00
turnidge@google.com
3f940819a7
Add a callback to inform embedders when an isolate is being shut down.
...
Review URL: https://chromiumcodereview.appspot.com//10450016
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9211 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-28 18:15:17 +00:00
fschneider@google.com
84027c4457
Add flow graph printing into a .cfg file with flag --print-flow-graph-file.
...
This CL adds a flag --print-flow-graph-file which produces one
.cfg-file per isolate when enabled. Currently it prints the final
flow graph before code generation.
I also added SuccessorAt and SuccessorCount to allow easy iteration
over the successors of a basic block.
Review URL: https://chromiumcodereview.appspot.com//10446116
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8322 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-06 11:09:02 +00:00
turnidge@google.com
9d72035ce5
Use the ThreadPool for all isolates and native ports. Previously,
...
each isolate or native port had a dedicated thread.
Refactored the MessageHandler api...
- Added a Run function to allow a MessageHandler to run on a
ThreadPool. These functions take a start and end callback to allow for
isolate initialization and shutdown.
- Made the queue private to the MessageHandler and moved all message
processing code inside the MessageHandler (got rid of all of the
different flavors of RunLoop). This helps remove some code
duplication and hides the details of how messages are handled.
- Moved all locking and notification out of MessageQueue and moved it
up to MessageHandler. Moved OOB support out of MessageQueue and up
to MessageHandler. These changes make the MessageQueue much
simpler.
- Refactored native port and isolate MessageHandlers to share more code.
- Improved --trace_isolates output.
- Added tests for MessageHandler.
Refactored lib/isolate code...
- Use the new MessageHandler::Run api.
- Got rid of the LongJump stuff in RunIsolate. No longer needed.
- Use the new StartIsolateScope/SwitchIsolateScope to make the code
less verbose and less error-prone.
- Store top-level isolate errors in the sticky_error.
Added StartIsolateScope/SwitchIsolateScope classes.
Review URL: https://chromiumcodereview.appspot.com//9924015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6762 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-19 19:47:27 +00:00
turnidge@google.com
0ddd4c04e9
Dart_PropagateError, take 2.
...
This change hopefully takes care of the non-mac build issues. The
checked mode failures are fixed in a separate cl.
Review URL: https://chromiumcodereview.appspot.com//9316071
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3863 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-02 19:05:06 +00:00
turnidge@google.com
ae88492093
Revert Dart_PropagateError until I can track down the problems in
...
checked mode tests.
Sorry for the hubbub.
Review URL: https://chromiumcodereview.appspot.com//9314053
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3823 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-01 23:39:28 +00:00
turnidge@google.com
9da62c5fea
Add Dart_PropagateError.
...
This function can be used in native functions to properly pass all
errors up the stack.
Set the long jump base in the Compiler instead of outside of the
compiler. A bunch of errors that used to be propagated through the
sticky_error are now propagated through return values. This includes
all of the DartEntry and DartLibraryCall functions.
In particular, we no longer use the long jump to cross dart frames.
Instead errors are propagated across dart frames using the same
mechanism that we use for unhandled exceptions. I've added assertions
to make sure that we only use the long jump when it is "safe".
Review URL: https://chromiumcodereview.appspot.com//9169102
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3815 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-01 22:34:16 +00:00
turnidge@google.com
e62f34ce77
Give isolates names to be used during debugging.
...
Implement --trace_isolates.
-------------
Sample output of --trace_isolates for the CrossIsolateMessageTest:
[+] Starting isolate:
isolate: CrossIsolateMessageTest.dart/main-7112
[+] Starting isolate:
isolate: CrossIsolateMessageTest.dart/CrossIsolate1.main-7114
[+] Starting isolate:
isolate: CrossIsolateMessageTest.dart/CrossIsolate2.main-7115
[>] Posting message:
source: CrossIsolateMessageTest.dart/main-7112
reply_port: 7117
dest: CrossIsolateMessageTest.dart/CrossIsolate2.main-7115
dest_port: 7115
[>] Posting message:
source: CrossIsolateMessageTest.dart/CrossIsolate2.main-7115
reply_port: 7118
dest: CrossIsolateMessageTest.dart/main-7112
dest_port: 7117
[>] Posting message:
source: CrossIsolateMessageTest.dart/main-7112
reply_port: 7119
dest: CrossIsolateMessageTest.dart/CrossIsolate1.main-7114
dest_port: 7114
[>] Posting message:
source: CrossIsolateMessageTest.dart/CrossIsolate1.main-7114
reply_port: 7120
dest: CrossIsolateMessageTest.dart/main-7112
dest_port: 7119
[>] Posting message:
source: CrossIsolateMessageTest.dart/main-7112
reply_port: 0
dest: CrossIsolateMessageTest.dart/CrossIsolate1.main-7114
dest_port: 7120
[>] Posting message:
source: CrossIsolateMessageTest.dart/CrossIsolate1.main-7114
reply_port: 0
dest: CrossIsolateMessageTest.dart/CrossIsolate2.main-7115
dest_port: 7118
[>] Posting message:
source: CrossIsolateMessageTest.dart/CrossIsolate2.main-7115
reply_port: 0
dest: CrossIsolateMessageTest.dart/main-7112
dest_port: 7116
[>] Posting message:
source: CrossIsolateMessageTest.dart/main-7112
reply_port: 0
dest: CrossIsolateMessageTest.dart/main-7112
dest_port: 7113
[-] Stopping isolate:
isolate: CrossIsolateMessageTest.dart/CrossIsolate2.main-7115
[-] Stopping isolate:
isolate: CrossIsolateMessageTest.dart/CrossIsolate1.main-7114
[-] Stopping isolate:
isolate: CrossIsolateMessageTest.dart/main-7112
Review URL: https://chromiumcodereview.appspot.com//9242035
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3416 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-18 21:46:27 +00:00
turnidge@google.com
0b833d4977
Add support for interrupting an isolate in the vm. Interrupts are
...
implemented by extending the existing support for stack overflow
checking in the vm. When an interrupt is scheduled for an isolate, we
overwrite the isolate's stack limit with a value guaranteed to cause a
stack overflow.
We support multiple kinds of interrupts, encoded in the low bits of
the stack limit.
Add Dart_InterruptIsolate and Dart_InterruptIsolateCallback to the
dart embedding api to allow the embedder to request and handle
interrupts.
Add EXPECT_SUBSTRING(needle, haystack) testing macro.
Review URL: http://codereview.chromium.org//8851008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2529 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-16 18:41:20 +00:00
turnidge@google.com
7c2a96158e
Stop using void* types in the dart embedding api.
...
Review URL: http://codereview.chromium.org//8761007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1988 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-01 18:18:06 +00:00
podivilov@google.com
c692646f07
Introduce Dart_SetVMFlags API function.
...
It should be possible to set command line arguments without providing isolate init callback.
Review URL: http://codereview.chromium.org//8713012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1972 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-01 11:59:35 +00:00
asiva@google.com
b53c955b37
- Refactor the isolate callback mechanism to also include creation of the
...
isolate, this enables creation of isolates using a snapshot
- remove source buffers of corelib, coreimpl-lib and builtin-lib from the binary
Review URL: http://codereview.chromium.org//8673002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1958 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-01 00:30:25 +00:00
asiva@google.com
aaffbd2561
Support command line parameters to specify a url to file name mapping. This is used during snapshot generation so that a URL is mapped to a physical file name.
...
Review URL: http://codereview.chromium.org//8439061
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1550 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-15 21:19:27 +00:00
asiva@google.com
8743e1cc2a
- Fix the snapshot generation python script to return an error code when snapshot generation fails and print the error message.
...
- Split isolate creation into CreateIsolate and InitializeIsolate so that we don't get SEGVs when there is a failure compiling the corelib dart sources during the bootstrap process
Review URL: http://codereview.chromium.org//8334031
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1225 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-04 22:08:13 +00:00
asiva@google.com
fdb5d9a607
Fix compilation warnings/errors seen with newer versions of gcc compiler.
...
Review URL: http://codereview.chromium.org//8222017
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@321 260f80e4-7a28-3924-810f-c04153c831b5
2011-10-11 00:37:11 +00:00
dgrove@google.com
4c0f559d23
Initial checkin.
...
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15 260f80e4-7a28-3924-810f-c04153c831b5
2011-10-05 05:20:07 +00:00