Commit Graph

2563 Commits

Author SHA1 Message Date
Ryan Macnak 14ec8fa979 Use assembly instead of C array literals to link the core snapshot into the VM.
Allows for including instructions.

R=zra@google.com

Review-Url: https://codereview.chromium.org/2901163002 .
2017-05-24 14:38:15 -07:00
Zachary Anderson 61300d19c6 [dart:io] Re-limit the number of IO Service ports per Isolate
Previous change removed the limit, but this causes too many
threads to be spawned at the same time on Windows, which
crashes the VM. This change restores the limit, but continues
use of the free-list approach, which still avoids the blocking
problem fixed by the previous change.

fixes #29702

R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2903013002 .
2017-05-24 10:22:26 -07:00
Zachary Anderson 3310e0cebd [dart:io] Remove collisions from IO Service port dispatch
This change prevents IO Service requests from colliding on the same
IO Service port. If requests can collide, a request that could otherwise
be serviced immediately can become blocked on a request that is blocked.

To avoid collisions, this change maintains a free list of IO Service
ports. If the free list is empty, we allocate a new IO Service port.

R=bkonyi@google.com

Review-Url: https://codereview.chromium.org/2903593004 .
2017-05-23 23:58:07 -07:00
Siva Annamalai ae57eca504 Read builtin source files directly only under a flag which is off by default.
BUG=27860
R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2903693003 .
2017-05-23 18:14:00 -07:00
Vyacheslav Egorov 13f5616ef6 VM: Fix snapshoting slow-down caused by 99c6a18a1b.
Only reload packages map when we are actually doing the isolate reload.

Snapshotting creates and destroys and loader object every time it loads a dart
file - which means kInitLoader is on the hot path and we should avoid rereading
packages map.

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

Review-Url: https://codereview.chromium.org/2901093002 .
2017-05-23 22:01:45 +02:00
Zach Anderson 299c5f15fd [windows] Don't set/restore the code page if it's already been set
Fixes some messy ninja output during the build.

R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2894353002 .
2017-05-22 15:02:24 -07:00
Alexander Aprelev ddab610d53 Revert "Revert "Use Kernel frontend from run_vm_tests.""
This reverts commit 530a0df8f3.

This relands https://codereview.chromium.org/2881953002/ that had to be reverted because it caused Dartium build regression. Now fix for Dartium build on mac is in place with Dartium order file update(https://codereview.chromium.org/2887183003) and corresponding Dartium DEPS rollforward(https://codereview.chromium.org/2888283003/).

BUG=https://github.com/dart-lang/sdk/issues/28264
R=asiva@google.com

Review-Url: https://codereview.chromium.org/2898743003 .
2017-05-22 15:00:30 -07:00
Zachary Anderson 81e428fd39 [infra] Assembles the SDK using GN rather than create_sdk.py
This has a few advantages:
- We can track dependencies more precisely
- ninja can assemble things in parallel as they're ready rather than
  sequentially all at once.
- It is easier to customize SDKs depending on target platform, e.g.
  Fuchsia.

This CL also has a number of cleanups:
- Defining is_fuchsia and is_fuchsia host so we don't always have to check
- Piping through toolchain overrides in more places
- Fixing bugs in copy_tree.py, not using list_files.py, which is broken on Windows

related #29558

R=whesse@google.com

Review-Url: https://codereview.chromium.org/2848943003 .
2017-05-20 23:30:09 -07:00
Siva Annamalai 7aed6c0a74 Minor code reorg to ensure we don't include parts of the Library tag handler in the precompiled runtime builds.
R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2896523003 .
2017-05-19 13:41:23 -07:00
Siva Annamalai 92a516e703 Pull loader.[cc|h] file out of libdart_builtin rule and instead include it in each of the targets (dart|gen_snapshot|dart_bootstrap) that need it. It is not needed in dart_precompiled_runtime but to really remove it from there some refactoring of main.cc is needed. This CL does not address that.
R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2887153006 .
2017-05-19 13:27:43 -07:00
William Hesse 530a0df8f3 Revert "Use Kernel frontend from run_vm_tests."
This reverts commit d91f228766.
The commit causes a failure in
tools/build/mac/verify_order _ChromeMain "${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}":
unordered symbols in out/Release/Chromium Framework.framework/Versions/A/Chromium Framework:

BUG=
R=dmitryas@google.com

Review-Url: https://codereview.chromium.org/2884383005 .
2017-05-18 10:41:45 +02:00
Alexander Aprelev d91f228766 Use Kernel frontend from run_vm_tests.
With this change one can run run_vm_tests and pass to it reference to kernel parser snapshot. For example,

out/DebugX64/run_vm_tests --dfe=out/DebugX64/gen/kernel-service.dart.snapshot Debugger_RemoveBreakpoint

As this represents first step, this change enables only tests in debugger_test.cc to run with kernel frontend. There will be follow-up cls that enable all of the VM tests to use kernel frontend.

BUG=https://github.com/dart-lang/sdk/issues/28264
R=asiva@google.com

Review-Url: https://codereview.chromium.org/2881953002 .
2017-05-17 21:25:56 -07:00
Ryan Macnak 98d31056a7 Change build.py to be like ninja.py and only use a single GN/Ninja invocation to cross-build the SDK. This step alone would fix #29580. This breaks cross-building the SDK with GYP.
Remove hack in bin/snapshot_utils.cc that avoided building a true app-jit snapshot for ARM, ARM64 and MIPS because of the multiple invocations above.

Add GN flags to choose to build script snapshots instead of app-jit snapshots, avoiding a slow training run inside a simulator.

Fixes #29580.

R=zra@google.com

Review-Url: https://codereview.chromium.org/2871713002 .
2017-05-08 13:06:09 -07:00
Zachary Anderson 4b4b8e8783 [Fuchsia] Allows non-regular files to be opened.
Fuchsia has lots of different file types that aren't covered by all of
the things that stat() understands, so we have to switch to
blacklisting directories.

See the discussion on https://codereview.chromium.org/2844493004/

R=abarth@google.com

Review-Url: https://codereview.chromium.org/2856913004 .
2017-05-02 14:47:33 -07:00
Erik Corry aa6353b6da Dart SDK Spelling b, c, and d.
R=kmillikin@google.com
BUG=

Review-Url: https://codereview.chromium.org/2850783002 .
2017-05-01 08:28:10 +02:00
Zachary Anderson be9c9f2237 [dart:io] Make Platform.localeName fall back on en_US if LANG is not defined
LANG is not defined on Fuchsia buildbots, causing some build-breakage.

R=pylaligand@google.com

Review URL: https://codereview.chromium.org/2843343002 .
2017-04-26 23:22:15 -07:00
Ryan Macnak 06080dae96 Fix some assertion failures on Fuchsia
- Fix longjmp asserts to work with -fsanitize=safe-stack.
 - Remove outdated asserts in gen_snapshot assuming generation of a core snapshot.
 - Move depfile resolution so it happens outside of the tag handler.

Issue #29458

R=asiva@google.com, johnmccutchan@google.com, zra@google.com

Review-Url: https://codereview.chromium.org/2837873005 .
2017-04-26 15:34:31 -07:00
Kevin Millikin d3fa66a559 Fix the front end compiler tests.
The front end tests run in a mode where the script is compiled to
Kernel, linked with the platform libraries, and written to disk as a
single binary containing both the script and platfrom libraries.

Ensure that this mode continues to work.

BUG=
R=asiva@google.com

Review-Url: https://codereview.chromium.org/2842913002 .
2017-04-26 00:41:44 +02:00
Kevin Millikin 71aa457a96 Fix broken precompiled runtime build.
In the precompiled runtime, none of the Kernel AST node classes are
defined.  Guard the code for reading Kernel programs by an #ifdef.

BUG=
R=zra@google.com

Review-Url: https://codereview.chromium.org/2838973002 .
2017-04-25 21:27:31 +02:00
Kevin Millikin 917cb4d80a Use a fully qualified type name.
BUG=

Review-Url: https://codereview.chromium.org/2841983002 .
2017-04-25 20:22:08 +02:00
Kevin Millikin 385f8fb054 Read platform.dill in the VM.
1. A --platform flag is added to dart to give a path to a Kernel
   binary for the platform libraries (as produced by building the
   runtime_kernel target).

2. This binary is used for bootstrapping.  Since it contains libraries
   other then the VM's bootstrap libraries, they are also loaded.

3. The frontend does not send any library with a dart: import URI
   scheme.  Note that it does not (yet) prune the canonical name
   table, which will contain a lot of unnecessary names used for
   internal linkages in the platform libraries.

4. There is a single dependency in the platform libraries on the
   script: _getMainClosure in dart:_builtin.  This is patched after
   the script is loaded.

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

Review-Url: https://codereview.chromium.org/2786083002 .
2017-04-25 20:04:25 +02:00
Zachary Anderson d6cc48b8e1 [Fuchsia] Switch service protocol to bind to ipv6
This should work now.

R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2842783002 .
2017-04-25 09:53:49 -07:00
Zachary Anderson bdb4eb6338 [dart:io][windows] Implements RawSynchronousSocket
related #29343
fixes #29333

R=asiva@google.com

Review-Url: https://codereview.chromium.org/2830273002 .
2017-04-21 23:29:52 -07:00
Erik Corry 4b9bba55b4 Stoppp using trippple consonants
R=ahe@google.com
BUG=

Review-Url: https://codereview.chromium.org/2833073002 .
2017-04-21 17:50:13 +02:00
Jacob Richman b67e83eea3 Format all remaining unformatted runtime files other than multitests.
BUG=
R=johnmccutchan@google.com

Review-Url: https://codereview.chromium.org/2829463003 .
2017-04-18 15:34:03 -07:00
Zachary Anderson 9ce608e89d [dart:io] Adds ProcessInfo.{max,current}Rss. Adds OS::MaxRSS on Fuchsia.
R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2822943002 .
2017-04-17 14:41:40 -07:00
Zach Anderson d42f61155f [fuchsia] Use new mx_deadline_after interface
BUG=
R=zra@google.com

Review-Url: https://codereview.chromium.org/2822833002 .
2017-04-17 13:49:49 -07:00
Ryan Macnak b810cb2fe5 Ensure resolved packages before _Dart_kResolveAsFilePath.
R=johnmccutchan@google.com

Review-Url: https://codereview.chromium.org/2820853002 .
2017-04-14 15:55:03 -07:00
Ben Konyi 9745386d63 Added sync_socket_unsupported.cc to sources file
BUG=

Review-Url: https://codereview.chromium.org/2814293002 .
2017-04-12 15:22:41 -07:00
Ben Konyi 7549bc6b48 Added missing sync_socket_unsupported.cc and fixed issues in test which were causing analysis errors
BUG=
R=zra@google.com

Review-Url: https://codereview.chromium.org/2814283002 .
2017-04-12 15:13:10 -07:00
John McCutchan 9af072399e Fix reload bots
BUG=

Review-Url: https://codereview.chromium.org/2812373003 .
2017-04-12 14:36:38 -07:00
Ben Konyi 6fbdd19ddb Various fixes for sync socket implementation.
Revert "Revert "Added sync_socket.h include in sync_socket_win.cc""

This reverts commit 2bd6168e1ebf35f6dbd9b2724339362c493377fc.

Revert "Revert "Added synchronous socket implementation to dart:io.""

This reverts commit a47bce03f5502dac7fb12e777e87b5aa1cfc830b.

BUG=
R=zra@google.com

Review-Url: https://codereview.chromium.org/2814773004 .
2017-04-12 14:20:48 -07:00
John McCutchan 99c6a18a1b Attempt 2 -- Fix updating packages map on reload and add a regression test
- [x] Update the isolate's .packages path when requested.
- [x] Always refresh package map when loader is initialized.
- [x] Add regression test.

Review-Url: https://codereview.chromium.org/2810223003 .
2017-04-12 14:02:19 -07:00
Ben Konyi b439bd9a54 Revert "Added synchronous socket implementation to dart:io."
This reverts commit a1f87ebdb8.

Revert "Added sync_socket.h include in sync_socket_win.cc"

This reverts commit bdec13e865.

BUG=

Review-Url: https://codereview.chromium.org/2812153002 .
2017-04-11 15:18:46 -07:00
Ben Konyi bdec13e865 Added sync_socket.h include in sync_socket_win.cc
BUG=
R=zra@google.com

Review-Url: https://codereview.chromium.org/2809153003 .
2017-04-11 15:14:35 -07:00
Ben Konyi a1f87ebdb8 Added synchronous socket implementation to dart:io.
BUG=
R=zra@google.com

Review-Url: https://codereview.chromium.org/2803543006 .
2017-04-11 14:41:09 -07:00
Zachary Anderson d52a6a39d5 [dart:io] Fix crash in fetching the error message from BoringSSL
fixes #29307

R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2812623005 .
2017-04-11 11:04:44 -07:00
Zachary Anderson 6756e4d3ce [fuchsia] Fix shutdown crash
R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2812753002 .
2017-04-10 15:46:08 -07:00
Ryan Macnak 42ec925a9e GN: Add libdart_jit and dart_api.
libdart_jit is always the JIT, unlike libdart which is either the JIT or AOT runtime depending on dart_runtime_mode. Clients of libdart will be updated to explicitly choose libdart_jit or libdart_precompiled_runtime.

dart_api allows libraries such as tonic or intermediate components of the Flutter engine to be agnostic as to whether they're in a JIT or AOT runtime, allowing the final executable making the choice without having to deal with a conflicting dependency brought in by a library.

Remove dead libdart_embedder_noio.

Replace all used of dart_nosnapshot* with dart_nosnapshot_with_precompiler*. We don't care about binary size of their clients, so it's better to have fewer targets.

R=zra@google.com

Review-Url: https://codereview.chromium.org/2814513003 .
2017-04-10 13:44:25 -07:00
John McCutchan 94df115e4b Revert "Fix updating packages map on reload and add a regression test"
This reverts commit 7a2d67f3ba.

BUG=

Review-Url: https://codereview.chromium.org/2808953003 .
2017-04-10 12:30:38 -07:00
John McCutchan 80c27841a3 Fix logic bug in loader code
BUG=

Review-Url: https://codereview.chromium.org/2815433002 .
2017-04-10 11:13:46 -07:00
John McCutchan d75edfb408 Attempt to fix loader hangs
I cannot reproduce locally so I'm going off scraps from the buildbot logs

BUG=

Review-Url: https://codereview.chromium.org/2814543002 .
2017-04-10 10:12:04 -07:00
John McCutchan 7a2d67f3ba Fix updating packages map on reload and add a regression test
- [x] Update the isolate's .packages path when requested.
- [x] Always refresh package map when loader is initialized.
- [x] Add regression test.

BUG=
R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2797923008 .
2017-04-10 08:59:10 -07:00
James Robinson 92e9a2b7c2 Declare dependency from dart_io targets to zlib
runtime/bin/filter.cc uses zlib and is included in all of the dart_io
variants, so those targets should declare a dependency on zlib. This
dependency was being picked up incidentally by other targets before.

R=zra@google.com

Review-Url: https://codereview.chromium.org/2797253003 .
2017-04-05 16:41:28 -07:00
Ben Konyi 7520a2acae Removed duplicate variable definitions in socket_unsupport and socket_base_unsupported.
TBR=zra@google.com
BUG=

Review-Url: https://codereview.chromium.org/2803793002 .
2017-04-05 13:18:40 -07:00
Ben Konyi a89332d0f6 Fixed incorrect call to get a StdHandle in socket_base_win.cc caused by a bad rebase.
TBR=zra@google.com

BUG=

Review-Url: https://codereview.chromium.org/2797323002 .
2017-04-05 13:09:45 -07:00
Ben Konyi ddc4f30d75 Re-land socket refactor with fixes for Windows.
BUG=
R=zra@google.com

Review-Url: https://codereview.chromium.org/2797993005 .
2017-04-05 12:45:31 -07:00
Zachary Anderson 8c9c54d833 [dart:io] Don't close stdin with a socket finalizer
If an Isolate touches the 'stdio' getter, a _NativeSocket with
attached finalizer is created for it. Previously, when such an
Isolate exited, the finalizer would close the underlying
file descriptor. This CL changes the finalizer for stdin such
that the native objects will be cleaned up, but the underlying
file descriptor will not be closed. The underlying file
descriptor will now only be closed if the stdin stream
subscription is explicitly canceled.

Accessing the stdin getter after the stream is explicitly
canceled will result in a FileSystemException.

See also: https://github.com/dart-lang/test/issues/583

fixes #29229

R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/2791423002 .
2017-04-04 13:57:42 -07:00
Ben Konyi 0386f7ab6f Reverting until bots clear up.
Revert "Pulled a significant portion of Socket implementation into BaseSocket in order to prepare for the synchronous socket impementations which will also use these common methods."

This reverts commit 0422920142.

Revert "Updated incorrect call to Write in process_win.cc"

This reverts commit 9e1435148b.

Revert "Fixed incorrect call to Write from process_win.cc"

This reverts commit 11dcab2bed3c9ec8ec76bc200206ac202a4a5681.

Fixed incorrect call to Write from process_win.cc

BUG=

Review-Url: https://codereview.chromium.org/2791163004 .
2017-04-03 17:25:47 -07:00
Ben Konyi 418ef46bfa Fixed incorrect call to Write from process_win.cc
Updated incorrect call to Write in process_win.cc

TBR=zra@google.com
BUG=

Review-Url: https://codereview.chromium.org/2798463002 .
2017-04-03 17:17:26 -07:00