The finalizers associate each native object with a Dart object that owns
them. The finalizers need to be in native code, so I had to go back to
the old approach of linking Wasmer and my native code into a single .so.
TEST=I tried running the wasm tests using asan, but it didn't detect any
leaks even before the finalizers. So I put printfs in all the
set_finalizer and finalizer functions and manually verified that all the
finalizers were being run.
Bug: https://github.com/dart-lang/sdk/issues/37882
Change-Id: I38303ae0c6c446a23562c1b157c92ccc9af2dc34
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/172680
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Liam Appelbe <liama@google.com>
This reverts commit 9d0ae7d017 as it broke dart->flutter roller's flutter license script.
Change-Id: If523b9b88631e1eca0fef3612387005921481222
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/166981
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
Broadly speaking, the new API is very similar to the old one. The only
public facing change is that you can't make a memory by itself anymore.
You need to construct if from a store, which is owned by a module.
The new API no longer passes structs by value, so I was able to delete
the wasmer_wrapper.cc, and the files I had copied from the wasmer repo.
The new API is also a lot more verbose, so it made more sense to write
a script to generate the FFI boilerplate, rather that write it all
manually.
All the migrated tests that were passing before this refactor are still
passing.
Bug: https://github.com/dart-lang/sdk/issues/37882
Change-Id: I52ca54b982a27f1d851c630d3e09833b8810060c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/164081
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Liam Appelbe <liama@google.com>
The sources assignment filter is considered a misfeature of gn
and is planned for removal (see discussion at [1]).
Convert dart BUILD.gn rules to manually filter the files that
are build using explicit `if` expressions. Remove obsolete call
to set_sources_assignment_filter() to filter '*_test.*' files
as no such files are present in the variables used to build the
`sources` value.
[1]: https://groups.google.com/a/chromium.org/g/gn-dev/c/oQcYStl_WkI/m/roukYTxSDAAJ
Bug: gn:125
Change-Id: I591fbb746cf694f7d2a5a330f81652380acf5c11
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/166629
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Since FFI doesn't support structs by value yet, this thin wrapper
library just provides versions of the import/export name functions that
return the name by pointer. Also, I've used these functions to allow
looking up functions by name, and added a function that prints a
module's imports and exports (which is handy for debugging).
Change-Id: Iff386e0b843bd8ab3763c99d3dc445ffedb12d6a
BUG: https://github.com/dart-lang/sdk/issues/37882
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/161765
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Liam Appelbe <liama@google.com>
This is a reland of 2bafc322fd
Original change's description:
> [vm/wasm] Boilerplate for package:wasm
>
> So far this just builds the wasmer library, copies it into the sdk
> directory, loads the library, and allows you to compile WASM modules.
> You can't actually do anything with the modules yet.
>
> Bug: https://github.com/dart-lang/sdk/issues/37882
> Change-Id: I7d7cfe5721bbe38a6afe76f326518e714d236ed4
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/158367
> Commit-Queue: Liam Appelbe <liama@google.com>
> Reviewed-by: Ryan Macnak <rmacnak@google.com>
Bug: https://github.com/dart-lang/sdk/issues/37882
Change-Id: I8056df1e301acde2772ba2273148faa53d03173e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/159321
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Liam Appelbe <liama@google.com>
This reverts commit 2bafc322fd.
Reason for revert: Build failures on Flutter HHH CI bots and golem (Dart VM ARMv8, Flutter).
Original change's description:
> [vm/wasm] Boilerplate for package:wasm
>
> So far this just builds the wasmer library, copies it into the sdk
> directory, loads the library, and allows you to compile WASM modules.
> You can't actually do anything with the modules yet.
>
> Bug: https://github.com/dart-lang/sdk/issues/37882
> Change-Id: I7d7cfe5721bbe38a6afe76f326518e714d236ed4
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/158367
> Commit-Queue: Liam Appelbe <liama@google.com>
> Reviewed-by: Ryan Macnak <rmacnak@google.com>
TBR=rmacnak@google.com,asiva@google.com,liama@google.com
Change-Id: I2c5b390987bf45704a3de98e050f4bcf1cb235d8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: https://github.com/dart-lang/sdk/issues/37882
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/159243
Reviewed-by: Tess Strickland <sstrickl@google.com>
Commit-Queue: Tess Strickland <sstrickl@google.com>
So far this just builds the wasmer library, copies it into the sdk
directory, loads the library, and allows you to compile WASM modules.
You can't actually do anything with the modules yet.
Bug: https://github.com/dart-lang/sdk/issues/37882
Change-Id: I7d7cfe5721bbe38a6afe76f326518e714d236ed4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/158367
Commit-Queue: Liam Appelbe <liama@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Cleanup handwritten code now that we do have a generator.
We don't need package:ffigen in the DEPS, because we don't run it
anywhere in the SDK build or tests. It is a dev dependency and the
generated file is checked in.
Change-Id: I02784ca5895b4e878a0fed696a34c546a71c2702
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152141
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Jonas Jensen <jonasfj@google.com>
This should fix the Windows failures from the 1.3.5 roll.
Change-Id: If0470b63ae301b5ce3a8a92458cf7388d5b5ddf6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/144686
Commit-Queue: William Hesse <whesse@google.com>
Auto-Submit: Bob Nystrom <rnystrom@google.com>
Reviewed-by: William Hesse <whesse@google.com>
This reverts commit 334dd63dac.
Reason for revert: There are unit test failures on Windows, including crashes of the formatter.
Original change's description:
> Update dart_style to 1.3.5.
>
> The main change is not directly user visible: it brings in the new
> Command used by the new "dart" tool to invoke the formatter. But there
> are also a handful of minor formatting changes.
>
> Change-Id: If7ce92e5a97d527749030714397b7b56773d9987
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142541
> Commit-Queue: William Hesse <whesse@google.com>
> Reviewed-by: William Hesse <whesse@google.com>
> Auto-Submit: Bob Nystrom <rnystrom@google.com>
TBR=whesse@google.com,rnystrom@google.com,athom@google.com
Change-Id: If6afb82e83c2e491c63e5fa0859b10daaa7d4f33
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/144563
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: William Hesse <whesse@google.com>
The main change is not directly user visible: it brings in the new
Command used by the new "dart" tool to invoke the formatter. But there
are also a handful of minor formatting changes.
Change-Id: If7ce92e5a97d527749030714397b7b56773d9987
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142541
Commit-Queue: William Hesse <whesse@google.com>
Reviewed-by: William Hesse <whesse@google.com>
Auto-Submit: Bob Nystrom <rnystrom@google.com>
doesn't show these formatting changes as diffs.
Change-Id: I69ccbf4adabc66d88371cece785a2c1bce60f133
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138962
Reviewed-by: Ryan Macnak <rmacnak@google.com>
This works on all browsers, in d8, and supports both dartdevk and
dart2js. In the case of dart2js, this also expands minified names and
inlined data.
The result is presented to users as a separate section, so the original
JS stack trace is printed as is, and a second deobfuscated stack trace
is printed afterwards.
Change-Id: I10af5e0241a8c87ad8db48234ce52cfb51a27411
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132966
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
This is a reland of b71d2d9996
Original change's description:
> [llvm] Add initial scaffolding
>
> This change adds the gclient and GN changes needed to build
> an executable using LLVM in the Dart tree as well as a basic
> testing framework based on llvm-lit.
>
> Change-Id: I9009a98ff95043cc3754966f31697ba7f1712310
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106434
> Commit-Queue: Jake Ehrlich <jakehehrlich@google.com>
> Reviewed-by: Alexander Thomas <athom@google.com>
> Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Change-Id: I73cd24455c373bcc4d0f5675af6a3b1e0f947f67
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/110683
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
This reverts commit 524fdc13a9.
Reason for revert: I still broke flutter somehow. I got the same error. Looking into it now.
Original change's description:
> Reland "[llvm] Add initial scaffolding"
>
> This is a reland of b71d2d9996
>
> Original change's description:
> > [llvm] Add initial scaffolding
> >
> > This change adds the gclient and GN changes needed to build
> > an executable using LLVM in the Dart tree as well as a basic
> > testing framework based on llvm-lit.
> >
> > Change-Id: I9009a98ff95043cc3754966f31697ba7f1712310
> > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106434
> > Commit-Queue: Jake Ehrlich <jakehehrlich@google.com>
> > Reviewed-by: Alexander Thomas <athom@google.com>
> > Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
>
> Change-Id: Ib3cd3299ed463133616c666285f9a58fa387b5bd
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107829
> Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
> Commit-Queue: Jake Ehrlich <jakehehrlich@google.com>
TBR=vegorov@google.com,kustermann@google.com,athom@google.com,phosek@google.com,ajcbik@google.com,jakehehrlich@google.com
Change-Id: I8b18549ec4a030518633ec7f75d2fd2ceea87256
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107837
Reviewed-by: Jake Ehrlich <jakehehrlich@google.com>
Commit-Queue: Jake Ehrlich <jakehehrlich@google.com>
This is a reland of b71d2d9996
Original change's description:
> [llvm] Add initial scaffolding
>
> This change adds the gclient and GN changes needed to build
> an executable using LLVM in the Dart tree as well as a basic
> testing framework based on llvm-lit.
>
> Change-Id: I9009a98ff95043cc3754966f31697ba7f1712310
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106434
> Commit-Queue: Jake Ehrlich <jakehehrlich@google.com>
> Reviewed-by: Alexander Thomas <athom@google.com>
> Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Change-Id: Ib3cd3299ed463133616c666285f9a58fa387b5bd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107829
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Jake Ehrlich <jakehehrlich@google.com>
This reverts commit b71d2d9996.
Reason for revert: Somehow this broke flutter because gclient doesn't seem to have generated the needed file
Original change's description:
> [llvm] Add initial scaffolding
>
> This change adds the gclient and GN changes needed to build
> an executable using LLVM in the Dart tree as well as a basic
> testing framework based on llvm-lit.
>
> Change-Id: I9009a98ff95043cc3754966f31697ba7f1712310
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106434
> Commit-Queue: Jake Ehrlich <jakehehrlich@google.com>
> Reviewed-by: Alexander Thomas <athom@google.com>
> Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
TBR=vegorov@google.com,kustermann@google.com,athom@google.com,phosek@google.com,ajcbik@google.com,jakehehrlich@google.com
Change-Id: I877abfe211dc6c3efd94cc2350d028bf54df9d9f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107688
Reviewed-by: Jake Ehrlich <jakehehrlich@google.com>
Commit-Queue: Jake Ehrlich <jakehehrlich@google.com>
This change adds the gclient and GN changes needed to build
an executable using LLVM in the Dart tree as well as a basic
testing framework based on llvm-lit.
Change-Id: I9009a98ff95043cc3754966f31697ba7f1712310
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106434
Commit-Queue: Jake Ehrlich <jakehehrlich@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
This adds support for BabelJS to test.py's dart2js compiler
configuration. When --babel is specified directly or through a named
configuration, test.py will run an additional step after dart2js that
post-processes the javascript output by running it through BabelJS with
the specified Babel configuration. BabelJS is added to the DEPS in its
standalone form. d8 is used to run BabelJS standalone to avoid adding
a dependency on NodeJS. d8 can only write to stdout but not to files or
stderr, which makes it necessary to change the test_runner to handle
commands that expect their output to be piped to a file.
Changes:
* Add --babel option to test.py.
* Add babel option to pkg/smith.
* Switch IE11 builder to use babel transformation.
* Fix option list comparison bugs in pkg/smith.
* Change dart2js compiler configuration to generate files using the
test name rather than just "out.js" (update test that relied on this).
* Remove runtime_configuration dependency on test_suite.
* Remove obsolete blocks adding --preview-dart-2 dart2js arguments.
* Make dart2js' compiler configuration more like DDC's.
* Remove createCommand method that is no longer used.
* Remove support for "OtherResources" which was only used for
dart:isolate tests on dart2js and DDC.
* Skip co19_2 tests that are slow to transform with babel.
* Simplify the timeout handling in the test runner with Future.timeout.
Change-Id: I32e4917b2a57ecbe684538e40d744f0101c552a0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/90402
Commit-Queue: Alexander Thomas <athom@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Change-Id: I1f1f86ec56d34c32d574f4862578d8a7888b6ac9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96903
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
Auto-Submit: Alexander Thomas <athom@google.com>
Change-Id: Id353fa11a8f86415569a505ef5ecd7bf03fb51e1
Reviewed-on: https://dart-review.googlesource.com/c/90487
Commit-Queue: Alexander Thomas <athom@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
dart binary would instantiate CrashpadClient if DART_CRASHPAD_HANDLER
and DART_CRASHPAD_CRASHES_DIR environment variables are set.
- DART_CRASHPAD_HANDLER should contain the path to the crashpad_handler
binary that would handle the crash and write minidump;
- DART_CRASHPAD_CRASHES_DIR should contain the path to the crashpad database
which would be used to store minidumps.
Rewrite --copy-crash-dumps support on windows to use Crashpad integration
instead of editing Windows registry.
Embedding crashpad required to roll a new zlib version because Crashpad
depends on the zlib. This version of zlib is buildable with its own
BUILD.gn so our custom BUILD.gn is removed.
Change-Id: I048aad16b234e1d750f0a24782b04e3b6e19703d
Reviewed-on: https://dart-review.googlesource.com/c/81007
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
This reverts commit 787194e738.
Reason for revert: Broke windows bots.
Original change's description:
> [infra] Upgrade gsutil to a new version (#31065)
>
> Change-Id: Ie78c6295a5b11cc12adc07a65f716638bcc71495
> Reviewed-on: https://dart-review.googlesource.com/c/79208
> Reviewed-by: Martin Kustermann <kustermann@google.com>
> Commit-Queue: Martin Kustermann <kustermann@google.com>
TBR=kustermann@google.com,athom@google.com
Change-Id: I75c0a2731f80e969fdcd06a6ca2ed72a0407dfbc
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/79214
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
* Use 64bit d8 on Windows & Mac.
* Default to 64bit d8 on Linux.
Change-Id: Ia03275e48ed0e30bcb2a7b390e7007e34e92cfc5
Reviewed-on: https://dart-review.googlesource.com/c/78640
Commit-Queue: Alexander Thomas <athom@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
- make Dart2 the default option for the command line VM
- add option --no-preview-dart-2 as a fallback option to run dart1
- change test scripts to use the executable dart for testing dart2 mode instead of
pkg/vm/tool/dart2
- adjust numerous build and test configurations
Change-Id: Id813fa5b71a89c7ec9335d3f6e83cfc9f35f86e7
Reviewed-on: https://dart-review.googlesource.com/58240
Commit-Queue: Siva Annamalai <asiva@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
It hasn't been updated in nearly 2 years. This update adds support for
more modern C++'s.
Change-Id: Ie3cbf95db6073d838a3a4cdbb72c3f50e0777c01
Reviewed-on: https://dart-review.googlesource.com/55265
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Zach Anderson <zra@google.com>