Martin Kustermann
779e51efc1
[vm] Remove Thread::{Enter,Exit}IsolateAsHelper
...
For every isolate there should be only one mutator with
a unique [Thread] object.
We change existing tests that use this functionality to instead use
`Thread::{Enter,Exit}IsolateGroupAsHelper`. It also results in a net
removal of code.
TEST=ci
Change-Id: Ic326e868a98ddedbab5b8c429252d38ea71bbf04
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/295940
Commit-Queue: Martin Kustermann <kustermann@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2023-04-19 09:36:41 +00:00
Ryan Macnak
2bfecc160b
[vm] Update to constexpr in runtime/vm.
...
TEST=build
Change-Id: I2dd8ae69764af27f480a19995b491e98f52476ae
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/293902
Reviewed-by: Liam Appelbe <liama@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2023-04-12 22:18:54 +00:00
Ryan Macnak
f9a6a5bdd2
[vm] Update NULL to nullptr in runtime/vm.
...
TEST=build
Change-Id: I2834ef7cf7cb7c8770f8167a2438cbedcee5c623
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/292063
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Alexander Aprelev <aam@google.com >
2023-04-10 18:15:12 +00:00
なつき
afe9219026
[infra] Support for Alpine Linux Sysroot
...
Closes https://github.com/dart-lang/sdk/pull/51044
TEST=manually tested by the contributor
GitOrigin-RevId: 86c85da0680047e08caf81cc4c12098ae85c0d2b
Change-Id: I591d7e17ce3a87cf8ce8380c9511f70d738d44c2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279267
Reviewed-by: Slava Egorov <vegorov@google.com >
Reviewed-by: Alexander Thomas <athom@google.com >
Commit-Queue: Slava Egorov <vegorov@google.com >
2023-01-19 10:36:51 +00:00
Aske Simon Christensen
fbfea6e022
[gardening] Fix memory leak in isolate test, flagged by asan
...
TEST=ci, asan
Change-Id: I8ed9d50f10eeb483deefb89ec84d6c71591833ac
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/234602
Reviewed-by: Martin Kustermann <kustermann@google.com >
Commit-Queue: Aske Simon Christensen <askesc@google.com >
2022-02-28 15:05:59 +00:00
Alexander Aprelev
eb6e485b34
[vm/isolate] Make resolvePackageUri optional in Isolate.spawn.
...
Fixes https://github.com/flutter/flutter/issues/14815
TEST=IsolateSpawn_FileUri,IsolateSpawn_PackageUri
Change-Id: I95075b8e5f4bc022eca37eefaf350e777a83dc6f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/234342
Reviewed-by: Siva Annamalai <asiva@google.com >
Commit-Queue: Alexander Aprelev <aam@google.com >
2022-02-25 19:37:53 +00:00
Ryan Macnak
7aa8716f6d
[vm, gc] Allow scavenge and marking to proceed even if workers are slow to start up.
...
This makes the ParallelScavenge and ParallelMark tasks safe to be run by an embedder-provided task runner that doesn't guarantee immediate execution.
TEST=ci
Change-Id: I485c1873a5eb7a208a9cc4fb32aa770c0ad6f773
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/214870
Reviewed-by: Liam Appelbe <liama@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2021-11-02 17:42:52 +00:00
Ryan Macnak
09cc09cb85
[vm] Don't block OOB messages or reload during field initialization; make interrupts lock-free.
...
- Account for initialization-in-progress sentinel when checking static field types for reload.
- Don't read the true stack limit when setting or clearing interrupts.
TEST=ci
Bug: https://github.com/dart-lang/sdk/issues/46596
Change-Id: I80adb4d7d69f01125b7eae8215b5da4d2e467bda
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/206662
Reviewed-by: Ben Konyi <bkonyi@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2021-07-14 00:09:10 +00:00
Daco Harkes
21af69a7a5
Revert "[vm] Don't block OOB messages during field initialization; make interrupts lock-free."
...
This reverts commit 4d789f60d1 .
Reason for revert: TSAN races
https://github.com/dart-lang/sdk/issues/46596
Original change's description:
> [vm] Don't block OOB messages during field initialization; make interrupts lock-free.
>
> TEST=ci
> Change-Id: I51d0f51995e197ab71c059f17d22259eea19c286
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/206566
> Commit-Queue: Ryan Macnak <rmacnak@google.com >
> Reviewed-by: Ben Konyi <bkonyi@google.com >
TBR=bkonyi@google.com ,rmacnak@google.com
Change-Id: I777f5a0bbeb3cd60e03aff46183b19ab4e286664
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/206545
Reviewed-by: Daco Harkes <dacoharkes@google.com >
Commit-Queue: Daco Harkes <dacoharkes@google.com >
2021-07-13 11:30:08 +00:00
Ryan Macnak
4d789f60d1
[vm] Don't block OOB messages during field initialization; make interrupts lock-free.
...
TEST=ci
Change-Id: I51d0f51995e197ab71c059f17d22259eea19c286
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/206566
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Ben Konyi <bkonyi@google.com >
2021-07-13 00:43:05 +00:00
Martin Kustermann
0f76981bb1
[vm/concurrency] Change references to class_table/object_store/heap from Isolate to IsolateGroup
...
As part of making the compiler and other subsystems independent
of `Isolate` we have to move various state from `Isolate` to
`IsolateGroup`.
The class_table and object_store were already moved to `IsolateGroup`.
This CL only replaces usages of `Isolate::{object_store,class_table}`
with the equivalent in `IsolateGroup`.
Issue https://github.com/dart-lang/sdk/issues/36097
TEST=Pure refactoring - relying on existing test coverage.
Change-Id: I34a0682d715b054d6c5faff077a513980f59a348
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/177126
Commit-Queue: Martin Kustermann <kustermann@google.com >
Reviewed-by: Alexander Aprelev <aam@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2021-01-06 15:22:11 +00:00
Ben Konyi
c4b7097e97
[ VM ] Migrate VM tests to support null safety and return errors from Dart_GetType and Dart_NewListOf when --null-safety is enabled
...
These methods return legacy types, which aren't valid with null safety
enabled.
Fixes https://github.com/dart-lang/sdk/issues/41154
Change-Id: I1181f0f3b9a8df156dea4dc4c82fef8afdf97ab9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/148685
Commit-Queue: Ben Konyi <bkonyi@google.com >
Reviewed-by: Siva Annamalai <asiva@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2020-05-26 22:40:52 +00:00
Ryan Macnak
9223b9d844
[vm, gc] Change CollectAllGarbage to ensure there is no floating garbage caused by incremental marking.
...
Fix vm/cc/OldGC_Unsync to not change FLAG_marker_tasks while incremental marking is in progress.
Fix vm/cc/IterateReadOnly to not mark the heap as read-only while marking or sweeping are in progress.
Remove unnecessary WaitForGCTasks leftover from background finalization.
Bug: https://github.com/dart-lang/sdk/issues/39299
Change-Id: Ib3340e514b44230b9735b74b1f2012ca9b998d50
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124824
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Siva Annamalai <asiva@google.com >
2019-11-14 02:08:35 +00:00
Ryan Macnak
6c933a4488
[vm] Fix some TSAN failures. Migrate remaining uses of AtomicOperations to std::atomic.
...
Change-Id: I195232311a146248c601ef84640758db59083d12
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/121200
Reviewed-by: Siva Annamalai <asiva@google.com >
Commit-Queue: Ryan Macnak <rmacnak@google.com >
2019-10-21 16:26:39 +00:00
Matthew Dempsky
303dfdf9b5
[vm] Use std::unique_ptr for ThreadPool::Task
...
Updates #37244 .
Change-Id: I32a5180a17fe43be5e18367d784cf756dffc6aeb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106009
Commit-Queue: Matthew Dempsky <mdempsky@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
2019-06-18 17:51:10 +00:00
Ryan Macnak
3379eefd5f
[vm] Remove DART_CHECK_VALID; add check for a current isolate to Dart_PropagateError.
...
Use DART_CHECK_VALID has been incorrect since the introduction of Isolate.kill and Dart_Cleanup because it crashes when given an unwind error.
Remove long-broken FullSnapshot1 test.
Change-Id: I1427249349e8138427bc7833980b5eff6ac466db
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98263
Commit-Queue: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Siva Annamalai <asiva@google.com >
2019-04-02 20:06:19 +00:00
Siva Chandra
6214cedaf5
Create isolate from the platform kernel when running VM tests under dartk.
...
This is take 2 with appropriate status files updates or fixes to the
tests.
This reverts commit 4925ed38ac .
Change-Id: I133b9ae307f0feed1b72ec5a0131facdc51ad4e9
Reviewed-on: https://dart-review.googlesource.com/41600
Commit-Queue: Siva Chandra <sivachandra@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2018-02-20 22:08:25 +00:00
Ryan Macnak
8753545178
[vm] Document ownership of Dart_CreateIsolate's error message.
...
Change-Id: Icab6f6d169445f66b6ba9469511164e6e21ef49a
Reviewed-on: https://dart-review.googlesource.com/18425
Reviewed-by: Zach Anderson <zra@google.com >
2017-11-03 18:10:53 +00: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
Ben Konyi
f2fd150ea0
Added new type of unit test, RAW_UNIT_TEST_CASE, which is used for tests that can be flaky if run while the VM is alive. Tests created using the RAW_UNIT_TEST_CASE macro will run after the VM has shutdown to avoid having any worker threads contaminating the test results.
...
BUG=
R=johnmccutchan@google.com
Review-Url: https://codereview.chromium.org/2666133002 .
2017-01-31 15:16:38 -08: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
Zachary Anderson
a1bcf051d8
clang-format runtime/vm
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/2481873005 .
2016-11-08 13:54:47 -08:00
John McCutchan
41d9f2d107
Add Thread TaskKind
...
BUG=
R=asiva@google.com , turnidge@google.com
Review URL: https://codereview.chromium.org/1814243002 .
2016-03-21 09:41:47 -07:00
Siva Annamalai
56e888d4cd
- Move
...
stack_limit_,
stack_overflow_flags_,
saved_stack_limit_,
stack_overflow_count_ and
other interrupts mask fields from Isolate structure to Thread structure
- Change the stack overflow check in the prolog to load the stack limit
from the THR register, this removes the back to back dependent loads to
load the stack limit from the Isolate structure
R=johnmccutchan@google.com , rmacnak@google.com
Review URL: https://codereview.chromium.org/1812753002 .
2016-03-17 12:57:36 -07:00
Ivan Posva
6b48855835
- Do not repeatedly allocate and release Monitor objects.
...
BUG=
R=asiva@google.com
Review URL: https://codereview.chromium.org/1703383002 .
2016-02-17 18:33:48 -08:00
Todd Turnidge
2b74ea304d
Don't allow oob message interrupts while executing constant expressions in the parser.
...
When this happens we can get complaints about circular dependencies
that don't really exist. We were seeing this occasionally on
developer_extension_test.dart.
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1666323002 .
2016-02-09 10:04:46 -08:00
Ivan Posva
6c2c928244
- Adjust expected error message.
...
TBR
Review URL: https://codereview.chromium.org/1584663008 .
2016-01-15 01:32:41 -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
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
Daniel Andersson
17a6b944d1
Add ThreadBarrier; use in GCMarker and unit test
...
Thread barrier with:
* fixed (at construction) number n of participating threads {T1,T2,T3,...,Tn}
* unknown number of rounds.
Requirements:
* there is some R such that each participating thread makes
R calls to Sync() followed by its one and only call to Exit().
Guarantees:
* for any two threads Ti and Tj and round number r <= R,
everything done by Ti before its r'th call to Sync() happens before
everything done by Tj after its r'th call to Sync().
Note:
* it's not required that the thread that constructs the barrier participates.
BUG=
Review URL: https://codereview.chromium.org//1337943004 .
2015-09-16 12:11:47 -07:00
Daniel Andersson
d9bb318a04
Reduce size of test StackLimitInterrupts to avoid Win timeouts.
...
TBR=johnmccutchan@google.com
BUG=
Review URL: https://codereview.chromium.org//1295433003 .
2015-08-13 12:03:15 -07:00
Daniel Andersson
086329fd9c
Safe and efficient stack-limit based interrupt checking in C++.
...
Remove potentially dangerous (but currently unused) Isolate::stack_limit() accessor.
Add method to test whether interrupts are scheduled, using relaxed memory ordering.
Document and test correct usage by adding a new unit test.
This will be used to periodically check for safepoints in C++ (which will then be equivalent to our generated code).
BUG=
R=iposva@google.com
Review URL: https://codereview.chromium.org//1277473004 .
2015-08-11 12:37:57 -07:00
Florian Schneider
ef7a55281f
VM: Load allocation-top and -end via Thread.
...
Cache a pointer to the isolate's Heap in the Thread object
and use it in generated code for allocation.
Change generated allocation code to load allocation-top and
end via THR (THR->heap.top). This is slightly slower than
embedding the address, but faster than loading it
via the Isolate (THR->isolate->heap.top)
BUG=
R=koda@google.com
Review URL: https://codereview.chromium.org//1263513002 .
2015-08-03 16:26:23 +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
ricow@google.com
69bed3d030
Revert revision 39617 "Create isolates in a separate thread."
...
This is breaking dartium with:
BrowserOutput.stderr:
../../dart/runtime/vm/dart_api_impl.cc:1614: error: Dart_EnterScope expects there to be a current isolate. Did you forget to call Dart_CreateIsolate or Dart_EnterIsolate?
R=vsm@google.com
Review URL: https://codereview.chromium.org//516863002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39638 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-28 09:52:59 +00:00
turnidge@google.com
3cd24f8ebf
Create isolates in a separate thread.
...
Previously the parent isolate waited for the child isolate to fully
load, which was not ideal. This change fixes that.
If you run on mac, you may need to raise your open file limit to make mandel_isolate_test pass:
ulimit -n 1024
Default open file limit on the mac is low.
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//507913003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39617 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-27 19:47:06 +00:00
zra@google.com
7d0b680f95
Adds Simulator Longjmp and enables many tests for arm64.
...
R=regis@google.com
Review URL: https://codereview.chromium.org//264753002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35603 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-30 23:07:47 +00:00
zra@google.com
2fe51715e5
Begins work on ARM64, first assembler test.
...
Most new code is in constants_arm64.h and
{assembler,disassembler,simulator}_arm64.{h,cc}
The rest of the CL just #def's out tests, modifies status files,
and adds UNIMPLEMENTED functions, etc.
R=regis@google.com
Review URL: https://codereview.chromium.org//221133002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34654 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-02 17:39:32 +00:00
lrn@google.com
3b3e87cabc
Revert "Rename internal library dart:_collection-dev to dart:_internal."
...
Dartium needs updating too.
Committed: https://code.google.com/p/dart/source/detail?r=31827
R=floitsch@google.com
Review URL: https://codereview.chromium.org//133273011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31877 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-16 12:06:38 +00:00
lrn@google.com
ead87f47e9
Revert "Rename internal library dart:_collection-dev to dart:_internal."
...
Dartium needs updating too.
Review URL: https://codereview.chromium.org//133273011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31827 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-15 12:27:44 +00:00
lrn@google.com
0098710559
Rename internal library dart:_collection-dev to dart:_internal.
...
BUG= http://dartbug.com/14140
R=floitsch@google.com
Review URL: https://codereview.chromium.org//133893007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31823 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-15 09:24:46 +00:00
floitsch@google.com
0c8ac24661
Isolate.spawn{Uri} only reports errors asynchronously.
...
It is generally considered bad style to throw synchronous and asynchronous errors. This CL catches all synchronous errors and reports them in the asynchronous future that is returned.
R=iposva@google.com , lrn@google.com
Review URL: https://codereview.chromium.org//88783002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31131 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-13 13:05:28 +00:00
floitsch@google.com
6a72655d1b
Very simple version of Isolates.
...
R=ajohnsen@google.com , iposva@google.com , kasperl@google.com , lrn@google.com
Review URL: https://codereview.chromium.org//27215002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29271 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-25 19:23:00 +00:00
hausner@google.com
1c5c3d55c4
Eliminate legacy support for throw without expression.
...
Issue 13533.
R=mlippautz@google.com
Review URL: https://codereview.chromium.org//23910003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27856 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-24 22:16:19 +00:00
zra@google.com
a49ab3a890
Adds support for debugger API on MIPS.
...
Enable debugger api tests on MIPS.
Enable isolate tests on MIPS.
Enable code descriptors tests on MIPS.
Enable snapshot tests on MIPS.
Enable heap tests on MIPS.
Review URL: https://codereview.chromium.org//14284020
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22042 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-25 18:03:15 +00:00