dart-sdk/pkg/front_end
Erik Corry 8378b8fdbf VM: Reland Inline instance object hash code into object header on 64bit.
Inline instance object hash code into object header on 64 bit.

64 bit objects have 32 bits of free space in the header word.
This is used for the hash code in string objects. We take it
for the default hash code on all objects that don't override
the hashCode getter.

This is both faster and a memory reduction. Eg it makes the
MegaHashCode part of the Megamorphic benchmark 6 times faster.

This is a reland of https://codereview.chromium.org/2912863006/
It fixes issues with the 32 bit compare-swap instruction on
ARM64 and fixes a fragile tree shaking test that is sensitive
to which private methods are in the core libraries.

R=kustermann@google.com, vegorov@google.com
BUG=

Review-Url: https://codereview.chromium.org/2954453002 .
2017-06-22 14:56:24 +02:00
..
example/incremental_reload Remove deps from reloader 2017-06-14 10:57:25 -07:00
lib Refactor parseType in preparation for bigger changes. 2017-06-22 12:47:53 +02:00
test Properly type infer for-in loops when the iterator type is a type parameter. 2017-06-21 14:46:54 -07:00
testcases VM: Reland Inline instance object hash code into object header on 64bit. 2017-06-22 14:56:24 +02:00
tool Fix frontend tests after bac83e0973 2017-06-16 14:05:08 -07:00
analysis_options.yaml Move kernel baseline tests to front_end. 2017-04-19 10:57:58 +02:00
BUILD.gn Disable analysis on a few packages. (#29571) 2017-05-05 22:06:00 -07:00
LICENSE Create a README and pubspec for the front_end package. 2016-10-19 12:14:38 -07:00
messages.yaml translate fasta parser error to analyzer error 2017-06-20 13:18:48 -04:00
pubspec.yaml Remove pkg/front_end's remaining dependencies on pkg/analyzer. 2017-06-15 13:47:29 -07:00
README.md Prepare package:analyzer 0.30.0. 2017-05-03 14:34:55 -07:00

Front end for Dart

This package provides a low-level API for use by compiler back ends that wish to implement the Dart language. It is intended for eventual use by dev_compiler, dart2js, and the Dart VM. In addition, it will share implementation details with the analyzer package--this will be accomplished by having the analyzer package import (and re-export) parts of this package's private implementation.

End-users should use the [dartanalyzer][analyzercli] command-line tool to analyze their Dart code.

Integrators that want to write tools that analyze Dart code should use the [analyzer] package.

Note: The APIs in this package are in an early state; developers should be careful about depending on this package.