Siva Annamalai
e1f107973d
Delete code related to FLAG_i_like_slow_isolate_spawn which was only used in dartium.
...
Change-Id: I7dd9d8d825253146c9b1c04216cc63fbf7aa9ba7
Reviewed-on: https://dart-review.googlesource.com/11251
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2017-10-05 00:56:43 +00:00
Ryan Macnak
ad7780d5c3
[vm] Ensure IMMEDIATE operations on Isolate.current take effect before returning to Dart code.
...
Change-Id: I18ced559a9eb0d4c93d98f82014892a15667d608
Reviewed-on: https://dart-review.googlesource.com/5600
Reviewed-by: Zach Anderson <zra@google.com >
2017-09-14 16:53:34 +00:00
Alexander Markov
bc937b3b6b
Reapply CL "Option to truncate integers to 64 bits, part 2"
...
This is the 2nd attempt to land the CL
abed3c2a70
Original review: https://codereview.chromium.org/2982823002
No extra changes were made. Large literals in the Dart core library
which caused failures during the previous attempt to land this CL have
been fixed separately.
Description of the CL:
In --limit-ints-to-64-bits mode:
* Integer constructors return Integer::null if integer is out of range.
* Error is reported for integer literals which are out of range.
* Dart API is revised to return errors if integers are out of range.
Bigint::IsDisabled() method is introduced to be able to enable/disable
Bigints independently of --limit-ints-to-64-bits mode in future.
Deprecated constructor Integer::NewFromUint64 is replaced with
Integer::New in certain cases.
R=regis@google.com
Issue: https://github.com/dart-lang/sdk/issues/30103
Review-Url: https://codereview.chromium.org/2980223002 .
2017-07-17 12:20:17 -07:00
Alexander Markov
776aef9ff0
Revert "Option to truncate integers to 64 bits, part 2"
...
This reverts commit abed3c2a70 .
TBR
Review-Url: https://codereview.chromium.org/2977143002 .
2017-07-14 14:40:58 -07:00
Alexander Markov
abed3c2a70
Option to truncate integers to 64 bits, part 2
...
In --limit-ints-to-64-bits mode:
* Integer constructors return Integer::null if integer is out of range.
* Error is reported for integer literals which are out of range.
* Dart API is revised to return errors if integers are out of range.
Bigint::IsDisabled() method is introduced to be able to enable/disable
Bigints independently of --limit-ints-to-64-bits mode in future.
Deprecated constructor Integer::NewFromUint64 is replaced with
Integer::New in certain cases.
R=zra@google.com
Issue: https://github.com/dart-lang/sdk/issues/30103
Review-Url: https://codereview.chromium.org/2982823002 .
2017-07-14 13:24:53 -07:00
Zachary Anderson
6cd8a79078
VM: Re-format to use at most one newline between functions
...
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2974233002 .
2017-07-13 08:08:37 -07:00
Ryan Macnak
76df24b076
CoreJIT snapshots without training.
...
Only include OSR and field guards in the features descriptor for JIT code to avoid gen_snapshot and dart having different default values.
Disabled since core snapshots with code break tests with non-default flags for type checks, assertions, strict errors, OSR, or field guards.
R=zra@google.com
Review-Url: https://codereview.chromium.org/2902313004 .
2017-05-31 13:49:12 -07:00
Martin Kustermann
89de0c9267
Reland "VM: Fix memory leaks during isolate spawning"
...
R=vegorov@google.com
Review-Url: https://codereview.chromium.org/2649283003 .
2017-01-24 12:04:41 +01:00
Martin Kustermann
50150deaf6
Revert "VM: Fix memory leaks during isolate spawning"
...
This reverts commit d7e884b05f .
Review-Url: https://codereview.chromium.org/2654443003 .
2017-01-24 10:32:59 +01:00
Martin Kustermann
d7e884b05f
VM: Fix memory leaks during isolate spawning
...
Fixes #28351
R=rmacnak@google.com
Review-Url: https://codereview.chromium.org/2650693004 .
2017-01-24 09:59:13 +01:00
Ryan Macnak
b46af1e75f
Refactor snapshots pieces to include a section for loading instructions into the heap of a regular isolate.
...
Progress toward allowing each isolate to load a different snapshot.
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2622053002 .
2017-01-23 10:25:02 -08:00
Ryan Macnak
26a364f998
Support spawnUri in app snapshots.
...
- Don't mark core_isolate_snapshot_buffer as a const pointer.
- Update app snapshots without code to not rewrite the VM isolate snapshot, as already done by app snapshots with code.
Fixes #28368
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2637193002 .
2017-01-17 15:59:41 -08:00
Ryan Macnak
12a3699301
Revert "Support spawnUri in app snapshots."
...
Failures on IA32.
This reverts commit c6ecfe1746 .
Review-Url: https://codereview.chromium.org/2631893002 .
2017-01-13 15:52:36 -08:00
Ryan Macnak
c6ecfe1746
Support spawnUri in app snapshots.
...
Don't mark core_isolate_snapshot_buffer as a const pointer.
Fixes #28368
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2623423007 .
2017-01-13 15:18:27 -08:00
Ryan Macnak
f89056f6cd
Revert "Support spawnUri in app snapshots."
...
This reverts commit 593d4504b0 .
This reverts commit 113aa64b98 .
This reverts commit 422afa2ead .
Review-Url: https://codereview.chromium.org/2633543003 .
2017-01-13 11:02:44 -08:00
Ryan Macnak
593d4504b0
Support spawnUri in app snapshots.
...
Fixes #28368
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2628283002 .
2017-01-13 10:37:51 -08:00
Ryan Macnak
2ec03cba70
Fix leak of message snapshot buffer when attempting to send an illegal object.
...
Fix leak with FLAG_enable_debug_break.
R=asiva@google.com , fschneider@google.com
Review-Url: https://codereview.chromium.org/2629533002 .
2017-01-11 16:50:04 -08:00
Zachary Anderson
2e4dfd3a2d
clang-format runtime/lib
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/2468093007 .
2016-11-04 12:14:41 -07:00
Ryan Macnak
257b3a82b8
JIT precompilated snapshots.
...
(Precompiled snapshots with unoptimized code.)
+ ./out/ReleaseX64/dart --package-root=./out/ReleaseX64/packages ./pkg/compiler/lib/src/dart2js.dart /usr/local/google/home/rmacnak/hello.dart
Dart file (/usr/local/google/home/rmacnak/hello.dart) compiled to JavaScript: out.js
real 0m3.299s
user 0m3.197s
sys 0m0.831s
+ ./out/ProductX64/dart_bootstrap --full-snapshot-after-run=/usr/local/google/home/rmacnak/dart3/sdk/app --package-root=./out/ReleaseX64/packages ./pkg/compiler/lib/src/dart2js.dart /usr/local/google/home/rmacnak/hello.dart
Dart file (/usr/local/google/home/rmacnak/hello.dart) compiled to JavaScript: out.js
+ ./out/ProductX64/dart --run-full-snapshot=/usr/local/google/home/rmacnak/dart3/sdk/app --package-root=./out/ReleaseX64/packages ./pkg/compiler/lib/src/dart2js.dart /usr/local/google/home/rmacnak/hello.dart
vm-service: Isolate creation error: (null)
Dart file (/usr/local/google/home/rmacnak/hello.dart) compiled to JavaScript: out.js
real 0m1.979s
user 0m1.806s
sys 0m0.581s
+ ./out/ReleaseX64/dart_bootstrap --use_blobs --gen-precompiled-jit-snapshot=/usr/local/google/home/rmacnak/dart3/sdk --package-root=./out/ReleaseX64/packages ./pkg/compiler/lib/src/dart2js.dart /usr/local/google/home/rmacnak/hello.dart
Dart file (/usr/local/google/home/rmacnak/hello.dart) compiled to JavaScript: out.js
VMIsolate(CodeSize): 2699304
Isolate(CodeSize): 5930097
Instructions(CodeSize): 9440176
Total(CodeSize): 18069577
+ ./out/ReleaseX64/dart --use_blobs --run-precompiled-jit-snapshot=/usr/local/google/home/rmacnak/dart3/sdk --package-root=./out/ReleaseX64/packages ./pkg/compiler/lib/src/dart2js.dart /usr/local/google/home/rmacnak/hello.dart
Dart file (/usr/local/google/home/rmacnak/hello.dart) compiled to JavaScript: out.js
real 0m0.994s
user 0m1.259s
sys 0m0.229s
R=asiva@google.com , fschneider@google.com
Review URL: https://codereview.chromium.org/1938653002 .
2016-05-04 18:47:36 -07:00
Ivan Posva
8d18298fed
- Remove Isolate::Flags structure and store flags directly in isolate.
...
- Make enable_asserts, enable_type_checks, error_on_bad_override and
error_on_bad_type release mode flags only.
BUG=
R=fschneider@google.com
Review URL: https://codereview.chromium.org/1737693003 .
2016-02-25 18:06:56 -08:00
Siva Annamalai
e72c1fb47d
Implement safepointing of threads :
...
- uses thread execution status transition to track when a thread is in a safepoint or needs to block for a safepoint
- introduces a monitor per Thread object
- uses a per thread safepoint handshake between the thread requesting a safepoint and the requested thread.
The ThreadRegistry class now contains only the thread list for an isolate and the functionality of scheduling a thread onto an Isolate and unscheduling it from teh isolate. We could fold this functionality into the Isolate class in a different CL.
R=rmacnak@google.com , zra@google.com
Review URL: https://codereview.chromium.org/1541073002 .
2016-02-01 10:57:34 -08:00
Regis Crelier
7f57ebcfa1
Remove signature classes from the VM.
...
They were used as the class of closure instances and as the type class of
function types.
All closure instances now have class _Closure and function types are represented
by a new class FunctionType extending AbstractType.
Fix issue 24567 and add regression test.
R=asiva@google.com , rmacnak@google.com
Review URL: https://codereview.chromium.org/1584223006 .
2016-01-19 16:32:59 -08:00
Ivan Posva
28412d153e
- Fix Isolate.spawn when running from snapshot.
...
- Avoid access to Isolate.resolvePackageUri when not needed. Fixes Dartium based test.
TBR
Review URL: https://codereview.chromium.org/1591573004 .
2016-01-14 23:24:07 -08:00
Ivan Posva
6d066c7e53
Add package config support to dart:isolate
...
- Add "static Future<Uri> get packageRoot;",
"static Future<Uri> get packageConfig;" and
"static Future<Uri> resolvePackageUri(Uri packageUri)" to Isolate class.
- Added "Uri packageRoot, Uri packageConfig, bool automaticPackageResolution: false" parameters to spawnUri.
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1553233002 .
2016-01-12 18:19:04 -08:00
Zachary Anderson
1ce512b69f
Fix Shutdown race.
...
This CL fixes a race during VM shutdown in which the embedder's
isolate creation callback is passed an invalid isolate data pointer.
BUG=http://dartbug.org/25351
R=asiva@google.com
Review URL: https://codereview.chromium.org/1560853002 .
2016-01-08 12:30:57 -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
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
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
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
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
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
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
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
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
Ivan Posva
fe03640e85
- Implement VM parts of https://codereview.chromium.org/1240743003/
...
- Pass additional state in the IsolateSpawnState to set
error and exit handlers, as well as fatal errors on isolate start.
BUG=
R=floitsch@google.com
Review URL: https://codereview.chromium.org//1244733002 .
2015-07-20 16:46:54 +02: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
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
Daniel Andersson
6542a451c3
Refactor Isolate -> Thread in NativeArguments and exception handler jump.
...
Further reduces the one-to-one assumption about isolates and threads: native entries now ask the thread for its isolate, rather than the other way around.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//1156143003
2015-05-26 16:49:51 -07:00
John McCutchan
51d8bae199
Revert "Hide Isolate pointer from embedder"
...
This reverts commit 014e694ba7 .
Revert "Fix fall out from hide isolate pointer change"
This reverts commit 966aafbc81 .
Revert "Fix build"
This reverts commit d7b03ba7b0 .
BUG=
Review URL: https://codereview.chromium.org//1140263005
2015-05-19 11:41:42 -07:00
John McCutchan
014e694ba7
Hide Isolate pointer from embedder
...
BUG=
R=iposva@google.com
Review URL: https://codereview.chromium.org//1130753006
2015-05-18 14:06:10 -07:00
turnidge@google.com
fb591fc36a
Continue improving the documentation for the vm service protocol.
...
Clean up the protocol a bit as I go.
---
Addendum:
Clean up inconsistencies between field and function ownership in the protocol.
Change the names of implicit closure functions (!)
Review URL: https://codereview.chromium.org//1057333004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44923 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-06 19:24:47 +00:00
koda@google.com
f4419287aa
Prepares for multiple threads by further decoupling Thread from Isolate.
...
- Replace Isolate::SetCurrent with more explicit Thread::Enter/ExitIsolate.
- Lazily initialize Thread instances when entering an isolate, to avoid new API calls for embedders.
R=asiva@google.com
Review URL: https://codereview.chromium.org//1041523002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44835 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-01 17:48:11 +00:00
koda@google.com
9c181ec6d5
Thread/Isolate refactoring: new(Isolate*) -> new(Zone*)
...
Refactor all remaning cases where the current zone is used through new(Isolate*) and remove this interface.
Removing this interface is needed to move towards multiple threads per isolate, and also makes the caller more aware of the scope of the zone used, reducing the risk of use-after-free.
Make the current thread and the stack zone created around native/runtime entries directly available in their body, saving an indirection (and optimized away if unused).
R=iposva@google.com
Review URL: https://codereview.chromium.org//982873004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44541 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-17 19:24:26 +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
asiva@google.com
ca1c3241c4
Fix for issue 21398.
...
Accept only 'literal-like' objects when sending messages to isolates
spawned using spawnURI. Allow all objects for isolates spawned using
spawnFunction.
R=iposva@google.com
Review URL: https://codereview.chromium.org//834233003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42793 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-12 23:14:30 +00:00
iposva@google.com
fd69128004
- Allow an isolate to be started in paused state.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//822803003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42576 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-30 23:52:37 +00:00
lrn@google.com
cf724d70a9
Add Isolate.current getter, returning the current isolate as an Isolate object.
...
R=floitsch@google.com
Review URL: https://codereview.chromium.org//771993003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42499 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-19 07:04:29 +00:00
iposva@google.com
320ffa23a1
- Implement hashCode and == for Capability.
...
R=lrn@google.com
Review URL: https://codereview.chromium.org//778983002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42102 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-04 12:17:48 +00:00