Commit Graph

3172 Commits

Author SHA1 Message Date
John McCutchan 1020392647 Add missing locking around loaders list
BUG=

Review URL: https://codereview.chromium.org/2039383002 .
2016-06-06 14:51:24 -07:00
John McCutchan 6fd8fd7987 Rework standalone to use a synchronous loader that does not invoke Dart code
- [x] The first caller of the tag handler blocks, recursive callers queue work and exit.
- [x] Use a NativeMessageHandler to receive I/O results from the service isolate.
- [x] Preserve load error message format.
- [x] Move packages map into service isolate.
- [x] Wire up Todd's native URI code.

R=turnidge@google.com

Review URL: https://codereview.chromium.org/1998963003 .
2016-06-06 14:15:01 -07:00
Lasse R.H. Nielsen c7e601c90d Revert "Add package-config tests where test is running in Isolate.spawn-isolates."
This reverts commit f3f6d1e00d.

Running a new process doesn't correctly pass empty command line parameters on Windows.

Committed: https://github.com/dart-lang/sdk/commit/151d1b67961d3be2a7dc8f5f76948ccbfe045fcb

R=floitsch@google.com

Committed: https://github.com/dart-lang/sdk/commit/2d8e63e9859a388cd1a3847ef5d20a32ace52c6c

Review URL: https://codereview.chromium.org/2038033002.
2016-06-06 08:46:58 +02:00
John McCutchan d47866964c Fix canonicalization of --url_mapping URIs in gen_snapshot
When gen_snapshot encounters a url that has been remapped with the --url_mapping command line argument it rewrites the library's url to be the mapped url before canonicalization. The new C++ API only does canonicalization with respect to the library's url (as returned by Dart_LibraryUrl) which is insufficient for gen_snapshot. The correct long-term fix is to alter the new C++ API to allow for the base url to be passed in directly rather than indirectly via Dart_LibraryUrl.

This CL just restores some deleted code and has gen_snapshot work like it did before. The standalone embedder still uses the C++ API during loading.

Review URL: https://codereview.chromium.org/2031103002 .
2016-06-02 14:52:42 -07:00
Todd Turnidge a7d46eb5a6 Canonicalize uris in C++ instead of Dart for the standalone embedder.
Adds Dart_DefaultCanonicalizeUrl() to the dart embedding api.

Motivation:

As we try to get source reloading working for the standalone embedder, things get simpler if an isolate doesn't run Dart code while it is loading Dart code.  We intend to solve this by moving the embedder tag handler calls to the service isolate.  But making a blocking rpc into the service isolate whenever a url needs to be canonicalized during parsing seems like it would slow things down and make things complicated.  By moving canonicalization into C++, we avoid this.

R=ahe@google.com, fschneider@google.com, johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2011543002 .
2016-06-02 12:29:57 -07:00
Ryan Macnak ef8baa8760 Add test harness option for app snapshots with unoptimized code.
./tools/test.py -m all -c dart2appjit -r dart_app --use-blobs

Rename 'dart_product' runtime to 'dart_app'.

Rename Dart_PrecompiledJITSnapshotBlob to Dart_CreateAppJITSnapshot and add documentation.

Remove out-of-date scripts in tools/precompilation.

R=fschneider@google.com

Review URL: https://codereview.chromium.org/1992703005 .
2016-05-26 10:37:47 -07:00
John McCutchan 78c82d5a0c Separate the list of dart:io entry point functions so it can easily be consumed by other embedders
BUG=

Review URL: https://codereview.chromium.org/2005293002 .
2016-05-24 09:47:38 -07:00
Todd Turnidge b3a1066c8e Simplify the canonicalization of dart-ext uris.
We used to stuff the path of the canonicalizing library into the uri
so that we could retrieve it later.  That isn't necessary, as the
library is still available when we import later.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2004933002 .
2016-05-23 10:25:25 -07:00
Zach Anderson 18ec8dddd9 Add back join of windows eventhandler threads
These threads are polluting the exit code despite using the better
ExitProcess call. Instead of adding back Thread::Join, I've instead
inlined the call into the eventhandler to make it easier to be sure
the open handles are closed.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/1989463003 .
2016-05-17 14:53:54 -07:00
Zach Anderson 5f59a954f8 Uses an open thread handle as the ThreadJoinId on Windows.
Also:
- Reaps exited threads in the thread pool before putting
a thread on the idle list so that a new arriving task
isn't blocked on a supposedly idle thread in the middle
of a join.
- Stops trying to join eventhandler threads on
Windows. Now that we're using the correct exit() call,
we probably don't have to worry about exit code pollution,
so joining the threads is unnecessary.

related #26400

R=asiva@google.com, iposva@google.com

Review URL: https://codereview.chromium.org/1978153002 .
2016-05-17 13:18:13 -07:00
Florian Loitsch 26250e0322 Remove output from gen-snapshot.
R=johnmccutchan@google.com, zra@google.com

Review URL: https://codereview.chromium.org/1986723003 .
2016-05-17 17:59:10 +02:00
Harry Terkelsen 1745ba77f5 fix all instances of "the the"
BUG=
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1980573003 .
2016-05-13 12:38:25 -07:00
Todd Turnidge a02995c3c3 Leave wiggle room in --observe documentation.
BUG=

Review URL: https://codereview.chromium.org/1975273002 .
2016-05-13 11:07:15 -07:00
Todd Turnidge bd3cdf4009 Improve the help message for --observe to be more explicit.
Closes #26340

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/1981453002 .
2016-05-13 10:51:51 -07:00
Florian Loitsch e3c3f099ea Fix strong mode errors in dart:io.
Still a lot of strong mode warnings left.

R=fschneider@google.com, sgjesse@google.com

Committed: https://github.com/dart-lang/sdk/commit/5216f1d67d09d289f7c7ceab56a64ce0dcb7d563

Reverted: https://github.com/dart-lang/sdk/commit/7503ecc8fdb32747b2b05b529219ce83da8f0b6c

Review URL: https://codereview.chromium.org/1904553006 .
2016-05-12 13:17:31 +02:00
Florian Loitsch 7503ecc8fd Revert "Fix strong mode errors in dart:io."
This reverts commit 5216f1d67d.

BUG=

Review URL: https://codereview.chromium.org/1966373002 .
2016-05-11 21:44:09 +02:00
Florian Loitsch 5216f1d67d Fix strong mode errors in dart:io.
Still a lot of strong mode warnings left.

R=fschneider@google.com, sgjesse@google.com

Review URL: https://codereview.chromium.org/1904553006 .
2016-05-11 14:30:32 +02:00
Zachary Anderson 57fea4f10b Adds a gn argument for boringssl path
Fixes Flutter build. There should be no need for Flutter to set the
flag. Mojo will need to set the flag.

R=jsimmons@google.com

Review URL: https://codereview.chromium.org/1955163002 .
2016-05-06 15:05:10 -07:00
Jason Simmons 7eb43c2134 Return a null Platform.executable and resolvedExecutable on Android
See https://github.com/flutter/flutter/issues/3648

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1953333002 .
2016-05-06 14:29:53 -07:00
Ryan Macnak 7546ef1709 Simplify command line options for creating snapshots.
Also makes codeless app snapshots work in debug and release modes.

dart --snapshot=file.snap [--snapshot-kind=script] script.dart
dart file.snap

dart_bootstrap --snapshot=dir --snapshot-kind=app-after-run script.dart
dart --run-app-snapshot=dir script.dart

dart_bootstrap --snapshot=dir --snapshot-kind=app-jit-after-run script.dart
dart --run-app-snapshot=dir script.dart

dart_bootstrap --snapshot=dir --snapshot-kind=app-aot script.dart
dart_precompiled_runtime --run-app-snapshot=dir script.dart

R=asiva@google.com

Review URL: https://codereview.chromium.org/1947783003 .
2016-05-06 12:40:04 -07:00
Zachary Anderson d55b87d622 Fixes GN boringssl deps path
The Mojo tree already DEPSes in boringssl into its //third_party. To
avoid DEPSing in two boringssl's, we need to look for the one there.
(The GN 'check' routine requires the sources to be found even if
noone depends on them.) Flutter will need to move its boringssl
DEPS from //dart/third_party/boringssl to //third_party/boringssl
to match.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/1952383002 .
2016-05-05 16:07:11 -07:00
Ryan Macnak 257b3a82b8 JIT precompilated snapshots.
(Precompiled snapshots with unoptimized code.)

+ ./out/ReleaseX64/dart --package-root=./out/ReleaseX64/packages ./pkg/compiler/lib/src/dart2js.dart /usr/local/google/home/rmacnak/hello.dart
Dart file (/usr/local/google/home/rmacnak/hello.dart) compiled to JavaScript: out.js

real	0m3.299s
user	0m3.197s
sys	0m0.831s

+ ./out/ProductX64/dart_bootstrap --full-snapshot-after-run=/usr/local/google/home/rmacnak/dart3/sdk/app --package-root=./out/ReleaseX64/packages ./pkg/compiler/lib/src/dart2js.dart /usr/local/google/home/rmacnak/hello.dart
Dart file (/usr/local/google/home/rmacnak/hello.dart) compiled to JavaScript: out.js
+ ./out/ProductX64/dart --run-full-snapshot=/usr/local/google/home/rmacnak/dart3/sdk/app --package-root=./out/ReleaseX64/packages ./pkg/compiler/lib/src/dart2js.dart /usr/local/google/home/rmacnak/hello.dart
vm-service: Isolate creation error: (null)
Dart file (/usr/local/google/home/rmacnak/hello.dart) compiled to JavaScript: out.js

real	0m1.979s
user	0m1.806s
sys	0m0.581s

+ ./out/ReleaseX64/dart_bootstrap --use_blobs --gen-precompiled-jit-snapshot=/usr/local/google/home/rmacnak/dart3/sdk --package-root=./out/ReleaseX64/packages ./pkg/compiler/lib/src/dart2js.dart /usr/local/google/home/rmacnak/hello.dart
Dart file (/usr/local/google/home/rmacnak/hello.dart) compiled to JavaScript: out.js
VMIsolate(CodeSize): 2699304
Isolate(CodeSize): 5930097
Instructions(CodeSize): 9440176
Total(CodeSize): 18069577
+ ./out/ReleaseX64/dart --use_blobs --run-precompiled-jit-snapshot=/usr/local/google/home/rmacnak/dart3/sdk --package-root=./out/ReleaseX64/packages ./pkg/compiler/lib/src/dart2js.dart /usr/local/google/home/rmacnak/hello.dart
Dart file (/usr/local/google/home/rmacnak/hello.dart) compiled to JavaScript: out.js

real	0m0.994s
user	0m1.259s
sys	0m0.229s

R=asiva@google.com, fschneider@google.com

Review URL: https://codereview.chromium.org/1938653002 .
2016-05-04 18:47:36 -07:00
Ivan Posva 964f95a020 - Fix loading of dart:html.
- Remove debug print in VM service.

BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org/1952903002 .
2016-05-04 17:43:58 -07:00
Ivan Posva 2268bb8530 - Fix build.
BUG=

Review URL: https://codereview.chromium.org/1946953002 .
2016-05-03 20:45:05 -07:00
Ivan Posva 3884fd4e4b - Allow for loading dart:html and friends into the standalone
dart_bootstrap binary to evaluate startup and compilation
  performance.

BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org/1916793003 .
2016-05-03 20:33:14 -07:00
Martin Kustermann 620b896e2f Initial support to test.dart for running precompiler tests on android devices
Steps to make this work:

a) Make sure you have an android sdk checkout:

  => See https://github.com/dart-lang/sdk/wiki/Building-Dart-SDK-for-Android

b) Building using android-toolchain crosscompiler:

  $ ./tools/build.py -mrelease -aarm --os=android dart_precompiled_runtime

  => Notice --os=android

c) Testing using attached android phones:

  $ export PATH=$PATH:$PWD/third_party/android_tools/sdk/platform-tools
  $ ./tools/test.py -mrelease -aarm --system=android -cprecompiler -rdart_precompiled --use-blobs

  => Notice --system=android

Failing tests on android can be marked in status files via:

[ $compiler == precompiler && $runtime == dart_precompiled && $system == android ]

R=whesse@google.com

Review URL: https://codereview.chromium.org/1922163002 .
2016-05-02 12:41:22 +02:00
Ryan Macnak 3ae8c18359 Fix gcc 4.9 build errors.
(-Werror=clobbered and -Wconversion-null)

BUG=http://dartbug.com/26309
R=srdjan@google.com

Review URL: https://codereview.chromium.org/1932253002 .
2016-04-29 10:34:03 -07:00
Zachary Anderson b1ece64035 Enable BoringSSL for Android in GN build
BUG=
R=iposva@google.com

Review URL: https://codereview.chromium.org/1846343002 .
2016-04-26 09:13:33 -07:00
Zachary Anderson ba550f1c43 Fixes NetworkInterface.list crash on Android
Previously, Socket::ListInterfaces failed to set the os_error out
parameter causing a crash in the caller. This change sets an error here.

I've also added NetworkInterface.listSupported, which returns false on
Android, and true everywhere else. ifaddrs.h continues not to exist in
the NDK, so in order to support NetworkInterface.list, we'd have to
reimplement it, or find a suitable reimplementation somewhere.

related #26329

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/1916223003 .
2016-04-26 07:48:58 -07:00
Ryan Macnak f262fad639 Option to output precompiled instructions as a blob for use with mmap instead of assembly for use in a shared library.
BUG=http://dartbug.com/26199
R=fschneider@google.com

Review URL: https://codereview.chromium.org/1915853004 .
2016-04-25 16:19:34 -07:00
John McCutchan 0cfd4f5cd5 GN Build fixes for Flutter + gen_snapshot fix
1. Add "dart_runtime_mode" GN argument. This is an enum with three valid values: "release", "profile", and "develop".
   *) "release" builds product precompiled-runtime.
   *) "profile" builds non-product precompiled-runtime.
   *) "develop" builds non-product non-precompiled-runtime.

2. Remove the redundant "dart_product" GN argument.

3. Kill all *precompiled_runtime static library variants and the related config.

4. Always include the precompiler in gen_snapshot.

5. Support multiple --embedder_entry_points_manifest arguments to gen_snapshot.

6. Update our test harness to use gen_snapshot and pass the same kinds of command line arguments the Flutter folks are using.

7. ASSERT that both DART_PRECOMPILED_RUNTIME and DART_PRECOMPILER are not set at the same time.

R=fschneider@google.com, rmacnak@google.com

Review URL: https://codereview.chromium.org/1903583002 .
2016-04-22 07:00:03 -07:00
Zachary Anderson ccfd19bfd7 Fixes memory leak of async directory lister
R=iposva@google.com

Review URL: https://codereview.chromium.org/1893033002 .
2016-04-21 07:57:02 -07:00
Zachary Anderson 943c69f408 Fix file fuzz test failure
R=iposva@google.com

Review URL: https://codereview.chromium.org/1903733006 .
2016-04-20 14:05:27 -07:00
Zachary Anderson 218545ba10 Fixes leak of native File objects.
Also employs the same reference counting technique as secure sockets to
avoid the IO Service touching dangling pointers.

R=iposva@google.com

Review URL: https://codereview.chromium.org/1892623002 .
2016-04-20 10:08:37 -07:00
Zachary Anderson 1336e6149f Search for a native extension for the host architecture
R=iposva@google.com

Review URL: https://codereview.chromium.org/1896203002 .
2016-04-20 08:02:16 -07:00
Florian Schneider e905d64058 VM: Remove redundant build target dart_product.
It has been replaced by out/Product<arch>/dart

Building and testing product mode works via the -mproduct flag
with build.py/test.py.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/1902073003 .
2016-04-20 12:29:21 +02:00
Zachary Anderson 8caa5a6dcb Allow opening a named pipe on MacOS and Linux.
fixes #26237

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1883293005 .
2016-04-15 11:19:37 -07:00
Zach Anderson 522ce88fe6 Implements remaining SecurityContext calls for iOS
BUG=
R=asiva@google.com, iposva@google.com

Review URL: https://codereview.chromium.org/1852783003 .
2016-04-13 10:27:39 -07:00
William Hesse 3eded1245b Rename libchrome_zip to libzip_dart in build.
A condition was added to the libzip target in Chromium, renaming
the output from libzip to libchrome_zip to avoid collisions
with builtin libzip.  We copied this to our libzip_dart target,
so there was a collision in the Dartium build with two products
called libchrome_zip.  Removing this lets our copy be called
libzip_dart.

BUG=
R=iposva@google.com, terry@google.com

Review URL: https://codereview.chromium.org/1883593002 .
2016-04-13 00:15:37 +02:00
Srdjan Mitrovic 706ea55404 Fix background compilation issues when creating snapshots.
- Stop background compilation early enough
- Restore symbol table after completing snapshot writing.
- Create symbols instead fo strinfs (error caught with --no-use_lib_cache)

BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org/1852393004 .
2016-04-04 16:40:46 -07:00
Zach Anderson b0475caa7f Allows adding trusted certs on iOS.
BUG=
R=iposva@google.com

Review URL: https://codereview.chromium.org/1845273004 .
2016-03-31 15:51:14 -07:00
Zach Anderson 08450dc432 Begin work on ios secure sockets
BUG=
R=iposva@google.com

Review URL: https://codereview.chromium.org/1839123003 .
2016-03-31 12:55:31 -07:00
John McCutchan ad0878d1a8 Remove redundant timeline API
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1848683002 .
2016-03-31 09:13:54 -07:00
Zachary Anderson a742ea06b3 Try to fix Windows Dartium build again
BUG=

Review URL: https://codereview.chromium.org/1843793004 .
2016-03-30 07:55:40 -07:00
Zachary Anderson 9f43293f27 Fix build
TBR

BUG=

Review URL: https://codereview.chromium.org/1844693002 .
2016-03-29 13:48:24 -07:00
Zachary Anderson c44617fca7 Fix Dartium Windows build
BUG=

Review URL: https://codereview.chromium.org/1844613003 .
2016-03-29 13:32:51 -07:00
Ryan Macnak f0d4f3151c Precompilation:
- Fix crash sending full class responses.
  - Don't wait for service isolate startup.
  - Add timeline events for deserializing and premarking the VM isolate.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/1835633002 .
2016-03-29 12:30:47 -07:00
Zachary Anderson 7308e58c3f Really remove io support when dart:io is unsupported.
Previously we would compile in implementaitions of native calls for
IO functions that would never be used. This CL provides implementations
that throw a Dart exception if they're called by mistake. It also uses
a DART_IO_DISABLED preprocessor define to clean up the build files and
check that we're not including code we shouldn't.

R=iposva@google.com, johnmccutchan@google.com

Review URL: https://codereview.chromium.org/1839463002 .
2016-03-29 11:22:03 -07:00
Zach Anderson 5cee7ff634 Fixes handling of short reads/writes for Mac SSL
The SecureTransport API is a bit finicky about the return code
and length from SSL{Read,Write}Callback. I think I've got it
right now, but we'll have to keep an eye on it.

Also a small tweak to avoid an extra trip through the event loop
before putting a write event on the secure socket stream.

related #26104

R=iposva@google.com

Review URL: https://codereview.chromium.org/1842703003 .
2016-03-29 10:30:09 -07:00
Ryan Macnak 8606e22993 Precompilation: don't start the service isolate in product mode. Remove vm service tree shaking roots from product mode.
precompiled dart2js arm 20331349 -> 19685177 (-3.17%)

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/1834743003 .
2016-03-24 14:35:03 -07:00