Find a file
Alexander Markov da8cb470cc [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 df5e7aac17,
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>
2019-06-20 18:27:21 +00:00
.github Update new issue template. 2019-04-30 18:14:21 +00:00
build Fix builds targeting Android from a Windows host gen_snapshot. 2019-06-07 00:49:33 +00:00
client Remove old annotated_steps buildbot scripts and dispatcher 2017-05-23 16:17:02 +02:00
docs Updated spec_parser such that it runs with ANTLR v4 2019-03-19 14:06:26 +00:00
pkg [vm/bytecode] Represent classes, libraries, scripts and recursive types in bytecode 2019-06-20 18:27:21 +00:00
runtime [vm/bytecode] Represent classes, libraries, scripts and recursive types in bytecode 2019-06-20 18:27:21 +00:00
samples Normalize status files 2019-06-19 23:04:01 +00:00
samples-dev Fix runtime type error in Swarm 2019-04-24 06:57:16 +00:00
sdk [dart:_http] Require Cookie name and value to be valid. 2019-06-20 13:40:10 +00:00
tests [vm/bytecode] Represent classes, libraries, scripts and recursive types in bytecode 2019-06-20 18:27:21 +00:00
third_party [dart2js] Add support for BabelJS to test.py 2019-05-29 08:39:44 +00:00
tools [dart/fuzzer] Deprecate DBC nightly runs in fuzzer 2019-06-20 18:09:21 +00:00
utils Make KernelWorker support running in an isolate. 2019-06-17 16:23:59 +00:00
.clang-format VM: Re-format to use at most one newline between functions 2017-07-13 08:08:37 -07:00
.gitattributes Remove the Dart 1 tests. 2018-10-11 23:45:18 +00:00
.gitconfig [infra] Add documentation to .gitconfig 2018-06-11 18:24:16 +00:00
.gitignore gitignore visual studio project files 2019-03-05 10:53:17 +00:00
.gn Starting work on full GN build 2016-09-23 07:47:36 -07:00
.mailmap fix my name in .mailmap 2018-09-11 01:45:52 +00:00
.packages Move the test runner (i.e. "test.dart"/"test.py") to pkg/. 2019-06-14 23:35:10 +00:00
.vpython [infra] Add .vpython spec to fix gsutil on the bots (#31065) 2018-10-11 15:11:35 +00:00
AUTHORS [ VM ] Updated splay-tree licenses, added V8 project authors to AUTHORS 2019-04-30 19:50:46 +00:00
BUILD.gn [vm / library] Foreign function interface prototype 2019-02-13 12:42:47 +00:00
CHANGELOG.md [dart:_http] Require Cookie name and value to be valid. 2019-06-20 13:40:10 +00:00
codereview.settings Update codereview.settings to Gerrit (dart-review.googlesource.com) 2017-09-04 12:52:09 +00:00
CONTRIBUTING.md Change wiki link to follow contents moved. 2019-01-12 18:46:22 +00:00
DEPS Declare return types of Uint8List. 2019-06-20 06:43:44 +00:00
LICENSE
PATENTS
PRESUBMIT.py Don't check multitests for dartfmt in the presubmit. 2019-06-19 22:42:51 +00:00
README.dart-sdk
README.md Update README.md 2019-05-21 19:21:51 +00:00
WATCHLISTS Add fishythefish@ to dart2js watchlist. 2019-06-18 02:36:48 +00:00

Dart

A client-optimized language for fast apps on any platform

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 platforms illustration

License & patents

Dart is free and open source.

See LICENSE and PATENTS.

Using Dart

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.

Building Dart

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.

Contributing to Dart

The easiest way to contribute to Dart is to file issues.

You can also contribute patches, as described in Contributing.