Change-Id: I28db796fadcc111d97d3589bf3988ea0bbb8e18a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/366682
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
This commit is contained in:
Devon Carew
2024-05-16 18:19:40 +00:00
committed by Commit Queue
parent 3bdc1f9c59
commit 2837647bea
66 changed files with 5895 additions and 25 deletions
+1 -1
View File
@@ -251,7 +251,7 @@ On Isolate shutdown, native finalizers are run, but regular finalizers are not.
## Become
Become is an operation that atomically forwards the identity of a set of objects. A heap walk is performed where every pointer to a _before_ object is replaced with a pointer to an _after_ object, and each after object gains the identity hash of the corresponding before object. In the Dart VM, it is only used during [reload](https://github.com/dart-lang/sdk/wiki/Hot-reload) to map the old program and instances with the old sizes onto the new program and instances with the new sizes.
Become is an operation that atomically forwards the identity of a set of objects. A heap walk is performed where every pointer to a _before_ object is replaced with a pointer to an _after_ object, and each after object gains the identity hash of the corresponding before object. In the Dart VM, it is only used during [reload](../../docs/Hot-reload.md) to map the old program and instances with the old sizes onto the new program and instances with the new sizes.
This operation dates back to the early Smalltalk implementations. It was O(1) because pointers were indirect through an object table and was used to resize collections.
+7 -5
View File
@@ -122,23 +122,23 @@ A set of isolates that are sharing the same program and the same heap. Isolates
A message that is delivered at any interrupt check, such as at function entry or the back-edge of a loop, rather than only when returning to the message loop.
## [Hot reload](https://github.com/dart-lang/sdk/wiki/Hot-reload)
## [Hot reload](../../docs/Hot-reload.md)
Changing a running program while retaining its current state: globals, frames, and objects transitively reachable from such.
## [AddressSanitizer, ASAN](https://github.com/dart-lang/sdk/wiki/Debugging-Dart-VM-with-AddressSanitizer)
## [AddressSanitizer, ASAN][debugging-asan]
Instrumentation to detect use-after-free and other similar issues.
## [MemorySanitizer, MSAN](https://github.com/dart-lang/sdk/wiki/Debugging-Dart-VM-with-AddressSanitizer)
## [MemorySanitizer, MSAN][debugging-asan]
Instrumentation to detect use of uninitialized memory and other similar issues.
## [ThreadSanitizer, TSAN](https://github.com/dart-lang/sdk/wiki/Debugging-Dart-VM-with-AddressSanitizer)
## [ThreadSanitizer, TSAN][debugging-asan]
Instrumentation to detect use of data races and other similar issues.
## [UndefinedBehaviorSanitizer, UBSAN](https://github.com/dart-lang/sdk/wiki/Debugging-Dart-VM-with-AddressSanitizer)
## [UndefinedBehaviorSanitizer, UBSAN][debugging-asan]
Instrumentation to detect undefined behavior such as signed integer overflow.
@@ -177,3 +177,5 @@ The Dart VM has simulators for ARM, ARM64, RV32GC and RV64GC, but not for IA32 o
A commonly used sequence of machine code that has been factored out into a separate procedure to be called when needed instead of being repeated inline.
## [Type arguments, type argument vector](types.md#typearguments)
[debugging-asan]: https://github.com/dart-lang/sdk/tree/main/docs/Debugging-Dart-VM-with-AddressSanitizer.md