| commit | bfc1a445273ee21ad80d3cb52597a4606b591233 | [log] [tgz] |
|---|---|---|
| author | Tess Strickland <sstrickl@google.com> | Tue Aug 27 09:28:51 2024 +0000 |
| committer | Commit Queue <dart-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Aug 27 09:28:51 2024 +0000 |
| tree | 82f3b286151710444edb91fb82c3bf65996f3977 | |
| parent | 56230ca6cdf00cd57ff9623a9dbe08ed442a1f47 [diff] |
[vm] Improvements in the BitField API. If no position is specified, then the bitfield starts at bit 0. The default size for bool BitFields is 1 instead of the remaining bits in the container. If the size of the value type is smaller than the remaining bits in the container, then the size of the value type is used as the default size instead. If a signed value is used in a non-sign-extended BitField, only the magnitude of the value is stored, not the sign bit. This means the actual size of the bitfield may be one less than the requested size in this case. If the requested size of the bitfield is larger than the size of the value type, a compile-time error is thrown. (For signed types, the requested size is allowed to be the size of the entire value, even if only the magnitude bits are stored.) Rework uses of BitFields to avoid using separate constants for bit positions/sizes except for macro-defined bitfields (which now are universally bool, and so size 1). TEST=vm/cc/BitFields_Defaults Change-Id: I40711c929d2e5165ce40823772beb49e8cfdb820 Cq-Include-Trybots: luci.dart.try:vm-aot-dwarf-linux-product-x64-try,vm-aot-linux-debug-x64c-try,vm-aot-linux-release-x64-try,vm-aot-mac-release-arm64-try,vm-aot-linux-release-simarm_x64-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/381644 Reviewed-by: Ryan Macnak <rmacnak@google.com> Commit-Queue: Tess Strickland <sstrickl@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.