Find a file
Tess Strickland 3e40abbc09 [vm/aot] Reland "Keep column information when possible for precompiled mode."
Changes:

Doing this always in precompiled mode meant increased data segment sizes
when CodeSourceMaps are stored, since encoded line/column information is
larger in the LEB-like encoding used. Now we only store column
information when we produce non-symbolic stacks, since the increased
space needed to store the columns is instead in DWARF sections and can
be stripped or elided.

Original description:

Previously, we passed line number information to the stack trace printer
and to DWARF by changing the non-special positions in the CodeSourceMap
to line numbers in precompiled mode. However, doing this lost column
information.

We get the column information back in the majority of cases by encoding
the line number and column information when neither is too large to pack
together into 30 bits. (Here, 20 bits for line and 10 bits for column.)
Otherwise, we just store the line information as before, though due to
using a bit to encode whether column info exists, it's reduced to 30
bits. If the line info is too big for that, we just return kNoSourcePos.

Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-nnbd-linux-release-x64-try,vm-kernel-precomp-linux-release-x64-try,vm-kernel-precomp-linux-product-x64-try,vm-kernel-precomp-linux-debug-x64-try,vm-kernel-precomp-linux-release-simarm_x64-try
Change-Id: Ia8baee71468da6100a170fa305d03059ffd17f78
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151822
Commit-Queue: Tess Strickland <sstrickl@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2020-06-19 13:50:03 +00:00
.dart_tool [dart2js] Fix sdk yaml files. 2020-06-17 18:13:19 +00:00
.github Update new issue template. 2019-04-30 18:14:21 +00:00
benchmarks [benchmarks] Disable omit_local_variable_types analyzer hint 2020-06-19 13:43:23 +00:00
build Reland "Revert "Add an --os=fuchsia option to build.py:"" 2020-06-18 00:24:31 +00:00
client Remove old annotated_steps buildbot scripts and dispatcher 2017-05-23 16:17:02 +02:00
docs process docs: Add link to experimental flags yaml file 2020-05-30 02:28:22 +00:00
pkg [vm/aot] Reland "Keep column information when possible for precompiled mode." 2020-06-19 13:50:03 +00:00
runtime [vm/aot] Reland "Keep column information when possible for precompiled mode." 2020-06-19 13:50:03 +00:00
samples [vm/ffi] Expose a subset of dart_(native_)api.h for dynamic linking. 2020-06-18 07:30:43 +00:00
samples-dev/swarm Unittest is finally going the way of the dinosaurs. 2020-03-20 17:40:42 +00:00
sdk [js_runtime] Remove js_rti.dart 2020-06-18 21:11:12 +00:00
tests [vm/aot] Reland "Keep column information when possible for precompiled mode." 2020-06-19 13:50:03 +00:00
third_party Add README.google and change browser-compat-data DEPS 2020-05-29 18:59:34 +00:00
tools Fix bug in utils.py, causing SDK bots to fail 2020-06-18 18:21:36 +00:00
utils add all flutter/flutter_test/test isolate deps to the allow list 2020-06-17 04:58:30 +00:00
.clang-format VM: Re-format to use at most one newline between functions 2017-07-13 08:08:37 -07:00
.gitattributes Migrate language_2/string to null safety. 2020-06-17 21:14:43 +00:00
.gitconfig [infra] Add documentation to .gitconfig 2018-06-11 18:24:16 +00:00
.gitignore Cleanup- remove the Dart Editor directories from the .gitignore file 2020-01-10 00:50:06 +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 Remove references to removed tools/gardening 2020-05-12 18:42:30 +00:00
.style.yapf Mass format python with yapf 2019-08-05 20:34:31 +00:00
.vpython [infra] Add .vpython spec to fix gsutil on the bots (#31065) 2018-10-11 15:11:35 +00:00
AUTHORS [runtime/vm] ARM64: Support unaligned memory accesses for regex. 2019-10-15 20:11:40 +00:00
BUILD.gn [Core Libraries] Eliminate the fork in the core libraries. 2020-06-16 23:37:36 +00:00
CHANGELOG.md Improve the changelog entry for linter 2020-06-11 18:44:11 +00:00
codereview.settings Update codereview.settings to Gerrit (dart-review.googlesource.com) 2017-09-04 12:52:09 +00:00
CONTRIBUTING.md Fix a number of outdated URLs across a number of markdown files 2020-05-29 09:23:45 +00:00
DEPS Roll benchmarks-internal to 4fa1b8ae571aaf1762346a3e0e893aca643af030 2020-06-19 11:22:25 +00:00
LICENSE Remove third_party licenses from LICENSE 2019-08-21 07:43:34 +00:00
PATENT_GRANT Rename patent file 2019-08-16 12:03:17 +00:00
PRESUBMIT.py [Core Libraries] Eliminate the fork in the core libraries. 2020-06-16 23:37:36 +00:00
README.dart-sdk Add dart2native to sdk README 2020-01-20 09:32:58 +00:00
README.md Fix a number of outdated URLs across a number of markdown files 2020-05-29 09:23:45 +00:00
sdk_args.gni [Core Libraries] Eliminate the fork in the core libraries. 2020-06-16 23:37:36 +00:00
WATCHLISTS [dartdevc] Migrate tests/compiler/dartdevc_native to tests/dartdevc_2. 2020-06-17 18:14:00 +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'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 platforms illustration

License & patents

Dart is free and open source.

See LICENSE and PATENT_GRANT.

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.