Commit Graph

1043 Commits

Author SHA1 Message Date
Ryan Macnak 3678a3bd42 [build] Use separate out directories for each sanitizer.
Bug: https://github.com/dart-lang/sdk/issues/39611
Change-Id: Ie0aeaff758234220c2f0267b462d14f4c076bdf6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127821
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2019-12-11 18:12:47 +00:00
Alexander Thomas 057e4dc697 [co19] Run co19 nnbd tests on analyzer-nnbd
Change-Id: Id61e001f3a288f82a1123ac3817352d1af46a845
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126560
Reviewed-by: Paul Berry <paulberry@google.com>
2019-12-11 10:20:17 +00:00
William Hesse 37b6b86b90 [infra] Change the name of the num_chunks attribute sent to pubsub.
The results were sent to pubsub with a num_messages attribute, but
the receiver was expecting it to be called num_chunks.

Change-Id: I924386137006367773bcace91578e3dfedd3763c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127881
Reviewed-by: Alexander Thomas <athom@google.com>
2019-12-10 13:23:02 +00:00
Nicholas Shahan 2015c55277 [dartdevc] Remove ability to run analyzer based DDC
This is the first step in deleting legacy DDC!
* Default all invocations of DDC to run the kernel version.
* Disable all tests that run analyzer DDC.
* Detect the most likely case when invoked with an analyzer
  summary and print instruction to update build_web_compilers
  dependency.

I will follow up with deletions, and a rename of the test configurations/
builders to reclaim the names (ddc vs ddk, dartdevc vs dartdevk).

Issue #38777

Change-Id: I1477f0274b6b7f345a5e19d2b3f93797c454a09e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127067
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Mark Zhou <markzipan@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2019-12-09 22:11:22 +00:00
Alexander Thomas cb94390c63 [infra] Improve efficiency of cloning the Flutter repositories
Sometimes the flutter-analyze builder is flaky because cloning Flutter
exhausts the "short term ls-remote rate limit". "--single-branch"
reduces how many remotes need to be fetched.

Also in this CL:
* Use dart.googlesource.com.
* Apply the same changes to the flutter-frontend builder.

Error example:
https://logs.chromium.org/logs/dart/buildbucket/cr-buildbucket.appspot.com/8894556948308224672/+/steps/analyze_flutter/0/stdout

Change-Id: I50df781a652602c7dd1b40b938c558b04bd3f86f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127642
Reviewed-by: Jonas Termansen <sortie@google.com>
2019-12-09 17:50:04 +00:00
Jonas Termansen ae14121ce7 [benchmark] Test addition of the whole d8 directory to builds.
Change-Id: I152c86b3e0e48944940291b8f2c0c5a20f9a4c1b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127142
Reviewed-by: Stephen Adams <sra@google.com>
2019-12-05 12:29:31 +00:00
William Hesse 05406716bd [infra] Add count of test result messages sent to Pub/Sub
Cut message size in half, to help address timeouts when processing messages.

Bug: https://github.com/dart-lang/dart_ci/issues/46
Change-Id: I3eb7470c7ae31297ed7ecf4879206a5c26b48b22
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126651
Reviewed-by: Alexander Thomas <athom@google.com>
2019-12-02 09:48:15 +00:00
Jonas Termansen 47ce35faf8 [benchmark] Exclude large front end tests and fix tensorflow exclusion.
This change updates tools/bots/try_benchmarks.sh to exclude the front_end
testcases directory, which contains very large binary files (186 MB) that
are not needed to run benchmarks. It also fixes the exclusion pattern for
the very large tensorflow language models (116 MB) that moved to another
directory.

While here, also synchronize back the removal of the profile tarball step
which was removed 3 months ago.

Change-Id: I76260eaf8db95d59be3b57eaecc86548c9d21b9c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126723
Reviewed-by: Martin Kustermann <kustermann@google.com>
2019-11-29 13:17:53 +00:00
Erik Ernst 521b168441 [co19] Add tests/co19_2/co19_2-co19.status to test_matrix.json
Change-Id: Ib6f63726dea188114131aae0b406c77c59c8f767
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125966
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2019-11-21 14:50:55 +00:00
Paul Berry b431b2fb0d Point analyzer NNBD bot to language rather than language_2
Change-Id: I0672163cb355b06dbd970d744955816b6d43ee0f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125766
Commit-Queue: Paul Berry <paulberry@google.com>
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Auto-Submit: Paul Berry <paulberry@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
2019-11-20 21:50:15 +00:00
Martin Kustermann 635aaa8adf [vm/dart2native] Bundle product-mode vm_platform.dill with the dart-sdk and let dart2native use it
Currently we bundle only one platform file, which dart2native uses as
well as other tools. Since the platform file has annotations already
evaluated, our AOT compiler ends up including service related
functionality in the AOT snapshot.

This CL bundles the product-mode vm_platform.dill as well, which will
reduce dart2native-created apps slightly.

Change-Id: I223811b30704cde1739739d97a8ea2d34a681292
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125665
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Clement Skau <cskau@google.com>
2019-11-20 16:50:09 +00:00
Paul Berry 5eb0d5979a Add new bot configuration for analyzer NNBD
Change-Id: Iadc5d79cf5fb1bbf0d5c8f459770995751616cc0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125540
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
2019-11-19 00:33:23 +00:00
Sigmund Cherem d2c63991ae Improve NNBD testing support
The goal of this change is to make it possible to start iterating on nnbd tests
for DDC. This keeps the current philosophy of keeping NNBD and non-NNBD build
configurations separate, except that NNBD builds are allowed to consume library
sources from the non-nnbd sdk.

This change addresses the first set of errors that are encountered when trying
to build a fully NNBD configuration:
  * CFE has issues with type promotion, for that reason we remove
    `--enable-experiment=non-nullable` in vm build rules, and we use a smaller
    training data when creating the dartdevc app-jit snapshot.
  * We'd hit compile-time errors with nnbd libraries with inconsistent
  patchfiles. To avoid that, the libarries.json points to the non-nnbd SDK
  sources for most dart:* libraries.

Change-Id: Ie6226b3bd8a92b4a1632dd84a5db2f04238fd4f8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125080
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
2019-11-14 18:28:20 +00:00
Martin Kustermann ab5cf0f854 [vm] Ensure create_sdk GN build has working dart2native iff AOT is supported
This CL

   * adds a GN flag "include_dart2native" off by-default (switched on explicitly for our GN build)
   * ensures every GN build of the "create_sdk" target has a working dart2native (except ia32)
   * removes not-working dart2native script from ia32 dart-sdk (no AOT support in ia32)
   * removes the "dartaotruntime" GN target, since it is the same as "dart_precompiled_runtime"

This should ensure every downstream consumer of the "create_sdk" GN target will
have a working version of dart2native.

For the particular "dart-sdk" we create on dart-sdk-{linux,windows,mac}
we will override the default AOT compiler&runtime with the product mode,
which produces smaller AOT snapshots and has smaller AOT runtime (making
the native executables significantly smaller)

Change-Id: Ib5042589297cdb055c41dc56abdff86a4612ef5c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123724
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Michael Thomsen <mit@google.com>
2019-11-04 12:01:56 +00:00
Paul Berry 499815842c Create a package to hold code shared between front_end and analyzer.
Previously such shared code was in the front_end package, but that
created problems because there is a lot of code in front_end that
isn't intended to be shared with the analyzer (including, notably, the
dependency on kernel).

This CL just moves over the flow_analysis logic to the new shared
package.  Follow-up CLs will move over other shared logic and tests.
The end goal is that the analyzer package will no longer have a
dependency on front_end.

Change-Id: I5642d6565204422d79808ca47648462db85e442a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123624
Reviewed-by: Jens Johansen <jensj@google.com>
2019-10-31 13:05:53 +00:00
Nicholas Shahan f99a28407f [dartdevc] Temporarily run NNBD tests with a "hybrid" SDK
- Adds a temporary modular test suite to prevent regressions on NNBD tests.
- New modular tests build the standard SDK with the dart:_runtime library from
  the NNBD fork.
- Unblocks DDC development while the forked SDK is in a state that does not
  build.

Change-Id: If422f5d19237f9d11e26aad503f1be960b331c57
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123541
Reviewed-by: Mark Zhou <markzipan@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2019-10-30 20:10:13 +00:00
Samir Jindel c885bdde1d [vm] DBC is obsolete. Remove dead code.
Change-Id: Ica33af158cca53c8e951e4b2582de83660e8a60d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/121851
Commit-Queue: Samir Jindel <sjindel@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2019-10-27 18:18:29 +00:00
Alexander Markov 5e44c0b016 [test tool] Enable dart:mirrors support on vm-dartkb-*-simarm64 bots
In order to support Dart annotations (available through dart:mirrors),
bytecode options should include 'annotations' flag.

Several lib_2/mirrors tests start to pass on vm-dartkb-*-simarm64
bots after this change.

There are two new failures on vm-dartkb-*-simarm64 bots which matches
the behavior of other bots (due to https://github.com/dart-lang/sdk/issues/39077).

Change-Id: Ie2dcdc66f7ee95b33537294663eaa96014bf881f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/122703
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2019-10-25 18:02:57 +00:00
Alexander Thomas e62c7ae3bb [infra] Add legacy AST mode builder to the test-matrix.json
This also removes the now redundant bytecode testing from the dartkb
builders.

Replace the useKernelBytecode boolean option with a more flexible
genKernelOptions string list option.

See also See also https://dart-review.googlesource.com/c/sdk/+/122321/ for the
corresponding Luci config updates.

Change-Id: Iabb207bc02637b758c42c00ae9175bd52f46559f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/122320
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2019-10-25 15:11:00 +00:00
Nicholas Shahan eaac08be3a [dartdevc] Setup NNBD weak mode test configuration
- Copy the strong mode subtype test and change the requirement to weak mode.
  Later commits will update the test to add extra weak mode expectations.
- Update the normalization tests to run in both modes.

Change-Id: I5ccff181f12756aab003c2e6db43b52ead257b19
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/122589
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2019-10-23 20:58:47 +00:00
Nicholas Shahan 199a42f3c1 [dartdevc] Cache the results of subtype checks
- Save the canonical instance of a nullable or legacy types on the canonical
  instance of the non-nullable type.
- Add additional normalization when creating nullable and legacy types.

Issue: #38109
Change-Id: I1132917965db3b00f87b891a0800da46e2cc6b3d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/122061
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2019-10-21 19:59:18 +00:00
Jonas Termansen 7b39f438ed [benchmark] Test that precompiler2 --no-gen-bytecode continues to work.
Change-Id: I3819c5a4dd6b4df96bc34322432aeb078ab2724f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/122151
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2019-10-21 17:21:40 +00:00
Karl Klose 74d0282179 [infra] Run test suites in pkg/front_end/test with custom test runner
Some tests in pkg/frontend/test are actually test suites written using the
pkg/testing framework.

This change runs these suites using a custom test runner instead of simply
running the test file, which makes the individual test results, timings and
logs available to the test system.

Change-Id: Iae5f37d9bd1b3e9b26c66443fe10e5cca6a6b6bf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118540
Commit-Queue: Karl Klose <karlklose@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2019-10-21 09:03:19 +00:00
Karl Klose 6b19f37b5a [infra] Change option name in modular test runner to be consistent with test.py
Change-Id: I16baa346daceb8f8c9c807f17ea587f68b227909
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/121301
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Karl Klose <karlklose@google.com>
2019-10-21 08:13:44 +00:00
Karl Klose 15ec4a3803 [infra] Make front_end tests unapprovable using a blacklist
Before, the front_end tests were run in a step disguised as not using test.py so that the test results would not be analzyed and could not be approved.

This CL uses a blacklist instead to prevent approve_results.dart from appoving failures in these tests.

Change-Id: I9c4d1f236e3cde3143e3092100a5553caf4b1487
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116781
Commit-Queue: Karl Klose <karlklose@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
2019-10-21 07:22:04 +00:00
Nicholas Shahan ba728b1368 [dartdevc] Copy nnbd subtype test to run on nnbd strong configurations
Remove shards from builder configuration for now because there is currently only
one test.

Change-Id: I5dcce5601ed46e36b28f9cab9bede1d81c1a42ba
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/121865
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2019-10-17 17:10:22 +00:00
Ben Konyi 0b045aea2b [ VM ] Removed tests/standalone along with any references in build bot / test runner configurations
Deleted irrelevant tests and migrated valid tests to Dart 2

Change-Id: If37611e051b7e2f128c53267f606d480d7fe23a5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/121902
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2019-10-17 00:41:16 +00:00
Nicholas Shahan 2e23776552 [dartdevc] Add new bot configuration for nnbd strong
At this time I have a single test in another cl designed to run with the nnbd
fork of the SDK in strong checking mode so I'm creating this single
configuration for that purpose. As I understand, all other tests that do not
require nnbd-strong will be skipped on this configuration.

I can expand this into more configurations when we have more tests coming online.

I don't think it is important to run these on all OS/browsers at the moment.

Issue: #38665
Change-Id: I284691022c1505d8a6e388fbc1b75f0074cc7164
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/121652
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2019-10-15 22:50:53 +00:00
Clement Skau 0cada76a06 [SDK] Removes dart2aot.
Bug: https://github.com/dart-lang/sdk/issues/38834
Change-Id: Iff1247186271643ea557a0aaec1e6b8438676c59
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/121706
Auto-Submit: Clement Skau <cskau@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2019-10-15 17:53:38 +00:00
Alexander Aprelev 5f198ae1c8 [vm/benchmarks] Add IsolateSpawn spawn latency and memory benchmarks.
The benchmark spawns an isolate that compiles hello world app with dart2js, measures time it takes for spawned isolate to get up and running, measures delta rss when isolate is spawned.

This also adds analysis_options.yaml that helps with keeping the code lint-free.

Change-Id: I5f1ffa9706766cd00bf1ea3fdad76957952de8a1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119538
Reviewed-by: Jonas Termansen <sortie@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
2019-10-11 19:52:12 +00:00
Martin Kustermann 109e7b0786 [vm] Ensure the new arm_x64 architecture will get $builder_tag == crossword set
This will cause status file entries such as

    [ $arch == arm || $arch == arm64 || $builder_tag == crossword || $compiler != dartkp ]
    dart/v8_snapshot_profile_writer_test: SkipByDesign

to correctly skip tests which shouldn't run in crossword configurations.

Issue https://github.com/dart-lang/sdk/issues/38783

Change-Id: I30082549e98107a7b3aac79837aeba5b5853df46
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/121062
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Samir Jindel <sjindel@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2019-10-10 11:00:58 +00:00
Ryan Macnak 71ecb73a2b [vm] Fix one MSAN failure; add UBSAN configuration.
Change-Id: I5b1d43836f3eb09983195fc3792f369aa3f8079f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/120750
Reviewed-by: Chinmay Garde <chinmaygarde@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2019-10-09 23:38:30 +00:00
Karl Klose 8d2eced550 [infra] Update tools/bots/README.md
Change-Id: I5d3d5bb1c13ec9b186b7577b0602c65b99eaa059
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/120643
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Karl Klose <karlklose@google.com>
2019-10-08 11:27:09 +00:00
Jens Johansen aece1c1e92 Update compile_flutter.sh after vm -> frontend_server rename
This will hopefully make the flutter-frontend bot green again.
This can be seen as a follow up to
https://dart-review.googlesource.com/c/sdk/+/120321
where the test was moved.

TBR.

Change-Id: Ia5915dfdf29ac2d6b8b15c8eb976e590dc3e3d37
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/120640
Reviewed-by: Jens Johansen <jensj@google.com>
2019-10-08 06:56:21 +00:00
Ryan Macnak d5feab0c53 [vm] Create builds for LeakSanitizer, MemorySanitizer and ThreadSanitizer.
Change-Id: I65905ec76fcde8b7f4063cb5b80a3d034b453153
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/120323
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Chinmay Garde <chinmaygarde@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2019-10-07 16:24:22 +00:00
Samir Jindel db352304ec [vm] Test AOT on Android with the 64->32 bit cross-compiler.
We introduce a new architecture ARM_X64, which is the same as ARM except that
the host-targeting-host binaries are compiled for X64 instead of X86.

Issue https://github.com/dart-lang/sdk/issues/38709

Change-Id: I00a2b1cc71948adec9f66c7b2ee61e9e5ac53d2a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/120121
Commit-Queue: Samir Jindel <sjindel@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2019-10-07 10:35:45 +00:00
Robert Nystrom e919e89d0b Add an "--nnbd" flag to build.py.
This treats whether or not to use the forked NNBD SDK as a build flag
similar to mode or architecture. When this flag is passed, it appends
"NNBD" to the main output directory, like xcodebuild/ReleaseX64NNBD.

It also defines a "use_nnbd" flag that is available inside BUILD.gn
files to determine whether or not to use the forked SDK. This flag
currently isn't used. Implementation teams will need to edit their
build steps to take that into account.

In order to use this mode on the bots, we'll need to tweak the bot
scripts to figure out whether the mode is enabled or not. There are a
couple of TODOs in the Python scripts for that. I'm not sure how that
should be specified in dart_sdk.py.

This CL does not remove my previous change to allow building the NNBD
fork next to dart-sdk in the same root output directory. I'll revert
those changes in a different CL once this one lands.

Change-Id: I3bd28f273106ee90caf9474b2fadad120b2c2d0b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119602
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2019-10-03 00:11:32 +00:00
Clement Skau 0f7a3cd611 [SDK] Adds dart2native to the test_matrix vm-kernel fileset.
Change-Id: Ic60bc7f908937226a56d7c4fa13c6733abecc1c4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119641
Auto-Submit: Clement Skau <cskau@google.com>
Reviewed-by: Samir Jindel <sjindel@google.com>
Commit-Queue: Clement Skau <cskau@google.com>
2019-10-02 15:54:50 +00:00
Clement Skau bb600e99e2 [SDK] Make dart2native default output .exe, not .dart.exe.
Bug: https://github.com/dart-lang/sdk/issues/38530
Change-Id: I485bfe52e82932f5e886e6b3aaee6f8b079ed91e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119146
Reviewed-by: Michael Thomsen <mit@google.com>
Commit-Queue: Clement Skau <cskau@google.com>
2019-09-30 09:13:22 +00:00
Samir Jindel 85948bd799 [vm/elf] Run strip --strip-unneeded on ELF snapshots during testing.
Android's strip can make incorrect assumptions about the ELF it's processing,
which has caused bugs leaking into Flutter:

- https://github.com/dart-lang/sdk/issues/37146
- https://github.com/flutter/flutter/issues/41010

These kinds of bugs may be difficult to reproduce and have subtle effects.
We should run strip ourselves on the CQ to catch them earlier.

Change-Id: I1ba39aa7996749f90d3f7373f668c797d2e300d7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118388
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2019-09-27 13:24:46 +00:00
Ryan Macnak 7901c508c8 [build] Enable ASAN leak detection during the build, not just tests.
Fix two leaks in gen_snapshot.cc.

Change-Id: Ie05771bf0386371842d327c9927319f207603cc1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119065
Reviewed-by: Liam Appelbe <liama@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2019-09-26 23:19:42 +00:00
Samir Jindel 9a683de40d [vm] Support testing assembly snapshots for ARM.
We have had several bugs propagate to Flutter end-users due to our lack of testing of
AOT Assembly snapshots on ARM (SIMARM_X64 in particular), causing reverts of SDK commits
and disrupting the Dart -> Flutter roll.

This leverages our custom ELF loader to load the generated ELF objects, which cannot be
loaded by dlopen() because they are marked with the ARM ABI.

For example, see:
  - https://github.com/flutter/flutter/issues/40114
  - https://github.com/flutter/flutter/issues/41228

Also do some tree-shaking of the snapshot writers for dart_precompiled_runtime.

Fixes https://github.com/dart-lang/sdk/issues/38433.

Change-Id: I5990769c623b8a13131b1848349af2c0a026272b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118569
Reviewed-by: Clement Skau <cskau@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Samir Jindel <sjindel@google.com>
2019-09-25 17:09:16 +00:00
Jonas Termansen 8cbc4f3982 [benchmark] Add support for benchmarking DDC.
This change adds the required support to benchmark DDC just like dart2js.

The ddb tool gains the following options:

  --compile-vm-options=VM-OPTIONS
      The value of the DART_VM_OPTIONS environment variable set when running
      dartdevc. This option is required to measure the memory use of
      dartdevc while compiling.

  --packages=PACKAGES-FILE
      The .packages file to use when compiling. This option is required for
      special benchmarks with a .packages in a subdirectory and is generally
      useful.

  --out=OUTPUT-FILE
      Write the compiled javascript to this path and the other generated
      files along it. This option makes the benchmark configuration easier
      and is generally useful.

The dartdevc and dartdevc.bat scripts in the released Dart SDK now gains
support for the DART_VM_OPTIONS environment variable, just like the dart2js
scripts. This feature is needed to measure the memory usage of the Dart VM
executing dartdevc.

tools/bots/try_benchmarks.sh now tests that ddb can compile and run
benchmarks using the needed features.

Change-Id: Ib1ef07b0888a8c0cf900fe2fbb5697aab733db08
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118440
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Jonas Termansen <sortie@google.com>
2019-09-25 09:48:00 +00:00
Samir Jindel 362ef8e67c [vm/aot] Add a custom ELF loader in dart_precompiled_runtime.
Also switch some CQ bots using blobs to ELF. Once all embedders have migrated, we will remove blobs
support entirely.

Change-Id: Ie5e8c1187ad6c1af362b5715daafd3641bc8cc0e
Cq-Include-Trybots:luci.dart.try:vm-kernel-precomp-linux-debug-x64-try,vm-kernel-precomp-linux-release-simarm-try,vm-kernel-precomp-linux-release-simarm64-try,vm-kernel-precomp-bare-linux-release-simarm-try,vm-kernel-precomp-mac-debug-simarm_x64-try,vm-kernel-precomp-mac-release-simarm64-try,vm-kernel-precomp-win-release-x64-try,vm-kernel-precomp-android-release-arm-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116620
Commit-Queue: Samir Jindel <sjindel@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2019-09-24 15:03:19 +00:00
Clement Skau f546362691 [SDK] Adds dart2exe to create standalone executables.
Tested:
  ./tools/build.py --arch x64 --mode release --verbose create_sdk copy_gen_kernel_snapshot copy_dart2aot
  ./tools/build.py --arch x64 --mode product --verbose copy_gen_snapshot copy_dartaotruntime
  cp -r out/ProductX64/dart-sdk/bin/{dartaotruntime,utils/} out/ReleaseX64/dart-sdk/bin/
  out/ReleaseX64/dart-sdk/bin/dart2native ~/src/hello_world.dart
  ~/tmp/hello_world.exe

  dart tools/bots/aot_smoke_tests.dart

  python tools/test.py -n dartkp-linux-release-x64 vm/dart/run_appended_aot_snapshot_test

Change-Id: I149fcd18405cdf0a87b8f4b4072c0f0e8f98c067
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117140
Commit-Queue: Clement Skau <cskau@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2019-09-23 12:00:08 +00:00
Jens Johansen 2a94546f94 Fix flutter-frontend bot and future problems in flutter HHH bot
Two things before this CL was wrong:
* The script didn't apply paches
* The patch we needed to apply wasn't applied because a dart roll in the
  engine was done basically at the same time that the change requiring
  the patch was landed. The dart-roll did not include it, but the change
  applied the patch the the before-dart-roll-dart-version.

This CL fixes it by applying patches in the flutter-frontend script,
and copying the patch to apply to both dart-revisions.

Change-Id: If3187090778c59cf0ebdf7ab4858189c6b8904b0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117941
Reviewed-by: Jens Johansen <jensj@google.com>
2019-09-19 06:59:21 +00:00
Vijay Menon bd28bad820 [dartdevc] add modular tests for old ddc
Change-Id: Iff068cc4e737e9a6993c6f724fc0b6853ed1d5fc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/113621
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2019-09-18 17:21:53 +00:00
Alexander Thomas e9c3eebef1 [infra] Add handling of signed SDK directories to promote.py
Copy the signed SDK directory to release first (if it exists). Then copy
only those unsigned files that have no signed counterparts.

* Add --version alias and remove SVN reference from --revision help.
* Fix --dry-run.
* Add new base_directory to GCS namer.

b/139027087

Change-Id: I4163eb56494bfa92ab1e5686cf089136d63881fe
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/115860
Reviewed-by: William Hesse <whesse@google.com>
2019-09-09 07:10:41 +00:00
Karl Klose 269af100f9 [infra] With multiple test results, use the first instead of the last in createResultsMap
Change-Id: I48ac4ab6ec1b60a4b6ecec3976a1bba7483f6e12
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/115682
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Karl Klose <karlklose@google.com>
2019-09-05 08:43:10 +00:00
Alexander Thomas b158490fb2 [infra] Add precomp-android-arm64 builder to the test matrix
TBR=whesse@google.com

Change-Id: Ib6579c5c3b2f8695f4998577782e33875da02358
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/115200
Reviewed-by: Alexander Thomas <athom@google.com>
2019-09-01 19:01:47 +00:00