commit | da8cb470cc94830a98d49532e8d5d1a5b3d80f8b | [log] [tgz] |
---|---|---|
author | Alexander Markov <alexmarkov@google.com> | Thu Jun 20 18:27:21 2019 +0000 |
committer | commit-bot@chromium.org <commit-bot@chromium.org> | Thu Jun 20 18:27:21 2019 +0000 |
tree | 0b4f1048f80d43ac40a2bf80deefa7bb0a9b4894 | |
parent | 85a4fdb81a7fc4e49a9a675684d0359122600a09 [diff] |
[vm/bytecode] Represent classes, libraries, scripts and recursive types in bytecode Size of a large application: Before: 26628600 After: 21480120 (-19.3%) Size of snapshots: isolate_snapshot_framework.bin Before: 9322496 After: 6782976 (-27.2%) isolate_snapshot_product_framework.bin Before: 9166848 After: 6602752 (-27.9%) Regressions in tests: 1) Test language_2/type_alias_equality_test/04 fails similarly to default mode, as VM does not implement comparison of function types according to the specification. Previously this test was passing as function types were canonicalized in bytecode, which was not always correct. This CL fixes the problem with canonicalization of function types in bytecode and the test starts failing again. 2) Tests standalone_2/entrypoints_verification_test, standalone_2/io/test_extension_test, standalone_2/io/test_extension_fail_test fail as native extensions are not supported in bytecode yet. These tests start passing after df5e7aac17365b0bcca8fe6d4fb6c4838e2d67ba, which switched bytecode tests to kernel service (on x64), because kernel service doesn't drop ASTs. This CL switches from reading AST library declarations to bytecode even if AST is not removed, so tests fail again. Change-Id: I8b7ba44bfa49d0b1599b2509553ff7c831a4e244 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104700 Reviewed-by: Ryan Macnak <rmacnak@google.com> Reviewed-by: Martin Kustermann <kustermann@google.com> Reviewed-by: Régis Crelier <regis@google.com> Commit-Queue: Alexander Markov <alexmarkov@google.com>
Dart is:
Optimized for UI: Develop with a programming language specialized around the needs of user interface creation
Productive: Make changes iteratively: use hot reload to see the result instantly in your running app
Fast on all platforms: Compile to ARM & x64 machine code for mobile, desktop, and backend. Or compile to JavaScript for the web
Dart has 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.
Visit the dart.dev to learn more about the language, tools, getting started, and more.
Browse pub.dev for more packages and libraries contributed by the community and the Dart team.
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 on our wiki.
The easiest way to contribute to Dart is to file issues.
You can also contribute patches, as described in Contributing.