| commit | 42ec219908a0ce38b0f16593302f96cad6f38e9b | [log] [tgz] |
|---|---|---|
| author | Ryan Macnak <rmacnak@google.com> | Fri May 17 18:03:42 2024 +0000 |
| committer | Commit Queue <dart-scoped@luci-project-accounts.iam.gserviceaccount.com> | Fri May 17 18:03:42 2024 +0000 |
| tree | 1b6c6be1ea1efde123c205ad6ae243fed17a0c20 | |
| parent | 03ea9eb5247bda8c7e23fc52c46caed30f8bd4ed [diff] |
Revert "[vm, gc] Incremental compaction." This reverts commit bc0f02e4c8ccdc7efcdbbc9a138652f833762359. Reason for revert: https://github.com/dart-lang/sdk/issues/55754 Original change's description: > [vm, gc] Incremental compaction. > > At the beginning of a major GC cycle, select some mostly-empty pages to be evacuated. Mark the pages and the objects on these pages. Apply a write barrier for stores creating old -> evacuation candidate pointers, and discover any such pointers that already exist during marking. > > At the end of a major GC cycle, evacuate objects from these pages. Forward pointers of objects in the remembered set and new-space. Free the evacuated pages. > > This compaction is incremental in the sense that creating the remembered set is interleaved with mutator execution. The evacuation step, however, is stop-the-world. > > Write-barrier elimination for x.slot = x is removed. Write-barrier elimination for x.slot = constant is removed in the JIT, kept for AOT but snapshot pages are marked as never-evacuate. > > TEST=ci > Bug: https://github.com/dart-lang/sdk/issues/52513 > Change-Id: Icbc29ef7cb662ef8759b8c1d7a63b7af60766281 > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/357760 > Reviewed-by: Alexander Aprelev <aam@google.com> > Commit-Queue: Ryan Macnak <rmacnak@google.com> Bug: https://github.com/dart-lang/sdk/issues/52513 Change-Id: I565ad6c0fca283d33f605c10f181bc0a59e7d2b2 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/366965 Reviewed-by: Ryan Macnak <rmacnak@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Alexander Aprelev <aam@google.com> Auto-Submit: Ryan Macnak <rmacnak@google.com> Reviewed-by: Alexander Aprelev <aam@google.com>
Dart is:
Approachable: Develop with a strongly typed programming language that is consistent, concise, and offers modern language features like null safety and patterns.
Portable: Compile to ARM, x64, or RISC-V machine code for mobile, desktop, and backend. Compile to JavaScript or WebAssembly for the web.
Productive: Make changes iteratively: use hot reload to see the result instantly in your running app. Diagnose app issues using DevTools.
Dart's flexible compiler technology lets you run Dart code in different ways, depending on your target platform and goals:
Dart Native: For programs targeting devices (mobile, desktop, server, and more), Dart Native includes both a Dart VM with JIT (just-in-time) compilation and an AOT (ahead-of-time) compiler for producing machine code.
Dart Web: For programs targeting the web, Dart Web includes both a development time compiler (dartdevc) and a production time compiler (dart2js).
Dart is free and open source.
See LICENSE and PATENT_GRANT.
Visit dart.dev to learn more about the language, tools, and to find codelabs.
Browse pub.dev for more packages and libraries contributed by the community and the Dart team.
Our API reference documentation is published at api.dart.dev, based on the stable release. (We also publish docs from our beta and dev channels, as well as from the primary development branch).
If you want to build Dart yourself, here is a guide to getting the source, preparing your machine to build the SDK, and building.
There are more documents in our repo at docs.
The easiest way to contribute to Dart is to file issues.
You can also contribute patches, as described in Contributing.
Future plans for Dart are included in the combined Dart and Flutter roadmap on the Flutter wiki.