Commit Graph

2713 Commits

Author SHA1 Message Date
Dmitry Stefantsov 714dae5ac4 Fix a strong-mode issue in the io-library
Help the compiler to infer types by adding the explicit type argument.

Bug:
Change-Id: I19f0caaf324801d887c6e7a8c782eca667fae069
Reviewed-on: https://dart-review.googlesource.com/18822
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Samir Jindel <sjindel@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2017-11-07 13:44:19 +00:00
Paul Berry 49817352ab Fix strong mode issue in _SignalController.
_SignalController._controller needs to have runtime type
StreamController<ProcessSignal> to avoid an implicit downcast failure
in the getter _SignalController.stream.

Change-Id: Idb033897525e26e17d7cdad345ee0cb6080626a8
Reviewed-on: https://dart-review.googlesource.com/18682
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-11-04 16:44:16 +00:00
Adam Barth a30002cfbd [fuchsia] Update package() BUILD.gn syntax
Update the package() template to match the new syntax. This change keeps these
packages working the same way they do currently (i.e., being included in the
system image). In the future, we'll want to remove this annotation and separate
these packages from the system image.

Change-Id: I0f0de3a07afc68a36d07c2e1cc9aa5b22072bf65
Reviewed-on: https://dart-review.googlesource.com/18241
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Zach Anderson <zra@google.com>
2017-11-02 16:44:28 +00:00
Zachary Anderson 9ab8b55663 [gn] Split target arch/os defines from dart_config
This is a baby-step towards building an SDK targeting the host arch
during a cross-build. This will require a similar update to the use
of dart_config in the Flutter engine at //flutter/lib/io/BUILD.gn:19.

Change-Id: I8b871cceb53038cab8407264664c5ce545e6e010
Reviewed-on: https://dart-review.googlesource.com/17523
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2017-10-31 17:33:13 +00:00
Vyacheslav Egorov 4985165e76 [VM] Make "Hello, World!" run in strong mode (through DFE).
Includes the following changes:

- Disable type checking in the service isolate when strong mode is 
turned on. We don't yet have strong mode clean vmservice Kernel 
binary available (Issue #31203);
- Introduce new Dart VM API to allow creating List<T> (T in {String, int}).
Current API only allows to create List<dynamic> and in strong mode 
List<dynamic> is not assignable to List<T>. For now we limit this API to 
a fixed number of core types for performance considerations (type 
arguments can be canonicalized and cache ahead of time). We will
extend the API allowing creation of arbitrary List<T> if we will
discover the need for it later;
- Use this new API to fix CreateRuntimeOptions to create List<String>
and not List<dynamic>;
- Likewise fix OneByteString_splitWithCharCode to return List<String>
and not List<dynamic>;

Additionally this CL refactors how getters and setters are created
in object_store.h removing 500 lines of largely boilerplate code.

Bug: https://github.com/dart-lang/sdk/issues/31052
Change-Id: I3fdcd2d54ff3f307db0913c67a7c2f009ea9d7a7
Reviewed-on: https://dart-review.googlesource.com/15884
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2017-10-24 11:43:48 +00:00
Ryan Macnak 1ed184b13b [vm] Invoke Platform::Initialize in gen_snapshot.
Should improve crash behavior on Windows.

Change-Id: I2771abeed3efd137092a80af7d65bc5add69aa6a
Reviewed-on: https://dart-review.googlesource.com/15985
Reviewed-by: Zach Anderson <zra@google.com>
2017-10-23 22:19:39 +00:00
Vyacheslav Egorov 0fe889dbd7 [VM] Pass --strong down to DFE isolate
Bug: https://github.com/dart-lang/sdk/issues/31147
Change-Id: Id8dbdadc1f69213604572efc815d45675d49734e
Reviewed-on: https://dart-review.googlesource.com/15883
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2017-10-23 11:27:47 +00:00
Sean Klein e4b72146ca Reduce usage of LP_CLONE_FDIO_CWD
To pass a CWD to a child through launchpad, simply set
the PWD environment variable, and the child will open
their CWD relative to their root handle when they initialize.

Change-Id: I24cd01c05e705c5a0ec2dfbaae4dbe8de42d7ed4
Reviewed-on: https://dart-review.googlesource.com/15421
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Zach Anderson <zra@google.com>
2017-10-20 03:50:27 +00:00
Adam Barth 5d7970dde9 Add package() declaration for Fuchsia
This declaration lets us add the dart command line program to the Fuchsia
system image.

Change-Id: I5a1049a47693bd0c0a1287a652758ae7047a4f06
Reviewed-on: https://dart-review.googlesource.com/15008
Reviewed-by: Zach Anderson <zra@google.com>
2017-10-19 15:39:56 +00:00
Vyacheslav Egorov 528bc96858 [VM] Cleanup static typing issues in IO implementation
Bug: https://github.com/dart-lang/sdk/issues/31052
Change-Id: I11788f267f99fe5a8d871b8500ca70abe04c7146
Reviewed-on: https://dart-review.googlesource.com/13040
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
2017-10-16 10:05:06 +00:00
Zachary Anderson dcd275fa74 [dart:io] Begins work on mocking support
Change-Id: I770ed9485a934af07e570fbad3f3fb84ebef973d
Reviewed-on: https://dart-review.googlesource.com/3302
Commit-Queue: Zach Anderson <zra@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-10-10 17:39:12 +00:00
Ryan Macnak 3609522166 printf format checking is a compiler feature, not a platform feature.
Change-Id: Ib3e0beb814b5cae6f2b4be13f055069f682674f5
Reviewed-on: https://dart-review.googlesource.com/11645
Reviewed-by: Zach Anderson <zra@google.com>
2017-10-09 22:26:01 +00:00
Zachary Anderson 11177ce405 [android] Fix build
Change-Id: I33fe71898d0d1defd9c55f0a53a1b0748ddfb820
Reviewed-on: https://dart-review.googlesource.com/12345
Reviewed-by: Zach Anderson <zra@google.com>
2017-10-09 19:31:40 +00:00
Zachary Anderson 7fd15110fe [dart:io] chdir, getcwd when in a namespace
This change does a couple things:
- When there is a non-default namespace, on Linux, Android, and Fuchsia
  the current working directory is per-Isolate.
- On Fuchsia, it caches the fd from fdio_ns_t instead of recomputing it
  on every fs access.

Change-Id: I3735330884de51ca853a17d66dcfcfa984b9a041
Reviewed-on: https://dart-review.googlesource.com/9367
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Zach Anderson <zra@google.com>
2017-10-09 19:14:58 +00:00
James Robinson d7874036a9 [fuchsia] Update path to netconfig header, add explicit build dep
This updates the include path by which the runtime include fuchsia's
netconfig header to its current location and adds an explicit GN build
dependency on the target defining the interface so we can configure
include paths in a nicer way.

Change-Id: I2bddc452e5ded5de44c7a7087ac5457f0f07609b
Reviewed-on: https://dart-review.googlesource.com/11761
Reviewed-by: Zach Anderson <zra@google.com>
2017-10-06 16:32:22 +00:00
Peter von der Ahé 16aa720d27 Remove compiling platform.dill from patch_sdk.dart
This separates compiling platform.dill files from the patch_sdk.dart
script. The motivation for that is that I'm working on reading patch
files directly from Fasta, so we can completely remove the build step
for generating patched_sdk and dart2js_patched_sdk.

Short-term this should allow Paul to add a strong-mode version of
platform.dill without causing to many conflicts with my work on
patches.

Change-Id: I1150845b2986348d4fffe27092701d8a9b57ea54
Reviewed-on: https://dart-review.googlesource.com/11506
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2017-10-06 15:34:37 +00:00
Zachary Anderson c9f72348fd [dart:io] Extra error checking in File_Close
related #30990

Change-Id: I5201bf62ed57309dc0c501abb3c5a3dbd6a67963
Reviewed-on: https://dart-review.googlesource.com/11562
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2017-10-05 19:36:11 +00:00
Alexander Aprelev d822bdb797 Prefix scripts from core builtin libraries so the URIs are unique.
After https://dart-review.googlesource.com/c/sdk/+/7588 we ended up with two crypto.dart files in the core prebuilt libraries(io and _http), which caused problem with coverage tool that relied on the fact that script uris can uniquely identify files. https://github.com/dart-lang/coverage/issues/194 was filed to handle non-unique uris.
This CL ensures that core builtin libraries URIs stays unique by prefixing them with 'dart:' library prefix. This makes core builtin libraries scripts have names similarly structured to script names for other core libraries.

Bug:
Change-Id: I79960f4f24e6e958836df866365355584c28df27
Reviewed-on: https://dart-review.googlesource.com/11140
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2017-10-05 15:47:43 +00:00
Peter von der Ahé e8aef37eac Clean up patches so they can be compiled by Fasta.
Change-Id: Ie436375c78496366accf0ba82938e54cbe30b143
Reviewed-on: https://dart-review.googlesource.com/3001
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2017-10-05 14:05:50 +00:00
Zachary Anderson 0951ab163b [dart:io] Don't use fexecve. It is weird.
fexecve overwrites argv[0] for cases in which the exec'd binary should
close the fd itself rather than the calling process. This makes it
inappropriate for use in the VM. Instead the VM should use
execveat, however it hasn't been added to the C Library everywhere,
yet.

fixes #30971

Change-Id: I82085f24ded2f0b846d9193ca55903686e1f3585
Reviewed-on: https://dart-review.googlesource.com/10205
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2017-10-03 20:15:03 +00:00
Siva Annamalai 1e15e6f2d7 Fix for flutter issue 11260 (flutter/flutter#11260)
Do not rely on the udp_receive_buffer field from IsolateData as a buffer for
reading data in the recvfrom call.

Bug:
Change-Id: I43d19f624fd2a406429cc5387bd536524472b4f7
Reviewed-on: https://dart-review.googlesource.com/10212
Reviewed-by: Zach Anderson <zra@google.com>
2017-10-03 15:09:31 +00:00
Doug Evans 2695ed7489 [fuchsia runtime] Use zircon/system/ulib/trace
Change-Id: Ia05fea6ad80e95f90205ede398bcd9203fb8a451
Reviewed-on: https://dart-review.googlesource.com/10203
Reviewed-by: Zach Anderson <zra@google.com>
2017-10-03 14:53:32 +00:00
George Kulakowski daa92a9401 [fuchsia] Remove some unneeded reinterpret_casts around port syscalls
Shortly, the zx_port_queue and zx_port_wait system calls will take
pointers to zx_port_packet_t instead of void. They currently take void
as the last vestiges of the ports v1 and v2 compatibility story.

All callers are passing actual pointers to zx_port_packet_t, so there
is no real code change.

Change-Id: I8f61791846c7693d70edc8c37c1973e8637949bb
Reviewed-on: https://dart-review.googlesource.com/9796
Reviewed-by: Zach Anderson <zra@google.com>
2017-10-02 18:02:14 +00:00
Alexey Knyazev 698b388982 Fix typos in gen_snapshot usage.
Closes https://github.com/dart-lang/sdk/pull/30919

Change-Id: I30ce344914c4a72ce340a06a0c7fad4a6b037781
Reviewed-on: https://dart-review.googlesource.com/9375
Reviewed-by: Kevin Moore <kevmoo@google.com>
2017-09-28 22:20:25 +00:00
Peter von der Ahé 327d8d1b0d Fix various warnings found in runtime patches.
Change-Id: I2dd82849df1bfe32c99577f6604e6a4501759697
Reviewed-on: https://dart-review.googlesource.com/7709
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2017-09-22 13:12:48 +00:00
Zach Anderson 490fd101e5 [windows] Fix hang on crash?
Try passing another flag to SetErrorMode(), which seems to work locally.
On the bots, who knows?

related #30202, #30850

Change-Id: Id3f14bc883008f8f0e743617d1ae5a1cc62e34a0
Reviewed-on: https://dart-review.googlesource.com/7631
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2017-09-21 21:01:54 +00:00
Zachary Anderson 2948f8c1b7 Reland: [dart:io] Moves Http code into a separate library.
This moves Http code into dart:_http. dart:io then imports and
re-exports dart:_http. This is the first stage of moving
dart:_http into its own pub package.

This CL was reverted due to a failure in the Flutter engine build
which happened due to an incomplete change in gen_snapshot.cc, and to
update sdk/lib/libraries.yaml and sdk/lib/libraries.json

Change-Id: Ie90c77ef631aea7a163774b58e8ccbaf71a24d3c
Reviewed-on: https://dart-review.googlesource.com/7588
Reviewed-by: Zach Anderson <zra@google.com>
2017-09-21 19:21:25 +00:00
Zach Anderson 64bf1b49b0 Revert "[dart:io] Moves Http code into a separate library."
Reverting for broken Flutter build and kernel platform compilation test. It looks like the new _http library is missing from various snapshots. Not sure why this didn't fail locally.

This reverts commit ac9ff3f3af.

Change-Id: I7fbc2f842cf1380793e7af9fb869cacd14682885
Reviewed-on: https://dart-review.googlesource.com/7600
Reviewed-by: Zach Anderson <zra@google.com>
2017-09-21 15:57:59 +00:00
Zachary Anderson ac9ff3f3af [dart:io] Moves Http code into a separate library.
This moves Http code into dart:_http. dart:io then imports and
re-exports dart:_http. This is the first stage of moving
dart:_http into its own pub package.

Change-Id: Icd33232a97b3d75511ef7ec88b01fd47cdcf5a23
Reviewed-on: https://dart-review.googlesource.com/6420
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-09-21 15:10:22 +00:00
Zachary Anderson 08f2633022 [Fuchsia] Remove vm service hacks
Change-Id: Ia012ed493dc15f847db2b8798435944dff637c8e
Reviewed-on: https://dart-review.googlesource.com/7441
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2017-09-21 15:00:39 +00:00
Florian Loitsch 38bf70d7ac Use generic functions in zones.
Migrated from https://chromiumcodereview.appspot.com/2893893002/

Change-Id: I0bd6dc1438eb1e6762e7760a08b5a760b07d4b10
Reviewed-on: https://dart-review.googlesource.com/4942
Reviewed-by: Florian Loitsch <floitsch@google.com>
Commit-Queue: Florian Loitsch <floitsch@google.com>
2017-09-20 15:46:06 +00:00
Ryan Macnak 913d828db0 [standalone] Restore --snapshot without --snapshot-kind generating a script snapshot.
Broken in d7845c6a6f

Issue #30790

Change-Id: Ifbe95a88e5b06d6d7fd1061bd26975262ac97515
Reviewed-on: https://dart-review.googlesource.com/6765
Reviewed-by: Zach Anderson <zra@google.com>
Reviewed-by: Kevin Moore <kevmoo@google.com>
2017-09-19 00:27:08 +00:00
Zachary Anderson 63067123df [standalone] Restore behavior of malformed -D option
fixes #30726

Change-Id: I9ac18e19b9d588df906eaea4de86ada0a3edc2c6
Reviewed-on: https://dart-review.googlesource.com/6166
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Zach Anderson <zra@google.com>
2017-09-18 21:04:48 +00:00
George Kulakowski 5923ff4900 Reorder Fuchsia file headers and gn format
These were left out of order by the mechanical changes that were part
of Fuchsia's Magenta->Zircon rename.

Change-Id: I41c81eb889c6076ffe82102018721e5abc74e7ac
Reviewed-on: https://dart-review.googlesource.com/6165
Reviewed-by: Zach Anderson <zra@google.com>
2017-09-15 20:28:49 +00:00
George Kulakowski 7800d2a995 Rename Magenta to Zircon, along with related abbreviations
Change-Id: Ic4215ceb00f5a60d21ec1398fd398a9f78a9eb94
Reviewed-on: https://dart-review.googlesource.com/6100
Reviewed-by: Zach Anderson <zra@google.com>
2017-09-15 14:54:18 +00:00
Alexander Aprelev 1fe2e4ffd1 Introduce callback parameter for Dart_ReadKernelBinary that would free kernel memory.
This is needed to support cases where memory with kernel binary was
allocated outside of Dart VM(for example, in Flutter Engine) has to be
released using appropriate mechanism too.

Bug:
Change-Id: I863db9e5a33469ba8fb5c1f8789c6498ddfbb385
Reviewed-on: https://dart-review.googlesource.com/5121
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2017-09-13 04:37:07 +00:00
Zachary Anderson 2275b6531f [Fuchsia] Use SSL_CTX_set_default_verify_paths() for trusted root certs
Change-Id: I72b6eaa1dde0b02d1db1d380d187e46b9499a6f4
Reviewed-on: https://dart-review.googlesource.com/5297
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2017-09-12 21:27:03 +00:00
Zachary Anderson 15ba173993 [Fuchsia] Rename MG-nnn -> ZX-nnn
Change-Id: Ia84cd53ef3dcfd13a7feb22178583e00705a4e4b
Reviewed-on: https://dart-review.googlesource.com/5290
Reviewed-by: Zach Anderson <zra@google.com>
2017-09-12 20:28:12 +00:00
Zachary Anderson 3470145529 [Fuchsia] Update to use new tracing API
Change-Id: Ied0bc594fe16f427be10444ad5739a30b7003acc
Reviewed-on: https://dart-review.googlesource.com/4062
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2017-09-12 16:42:07 +00:00
Zachary Anderson 80d64d22c2 [standalone] Fix -D parsing leak
Change-Id: I39e398a0343b77238fbcab630bf8d64564a743ef
Reviewed-on: https://dart-review.googlesource.com/5040
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
2017-09-11 21:49:54 +00:00
Zachary Anderson d7845c6a6f [standalone] Clean up command line argument parsing
fixes #30534

Change-Id: I5e721e5d24de32f0cb85f7bd96890913cf788f81
Reviewed-on: https://dart-review.googlesource.com/4608
Commit-Queue: Zach Anderson <zra@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2017-09-11 18:58:39 +00:00
Zachary Anderson fc41a57a93 [dart:io] Allow an embedder to disallow certain operaions
Fuchsia's Dart and Flutter content handlers share the implementation of
dart:io with the command line embedder, but would like to disable
some operations that don't make sense for them, like exiting thoe whole
process, which may be hosting multiple unrelated Isolates.
Change-Id: I825ece49c685471ff85802873b1c0f974c507aed
Reviewed-on: https://dart-review.googlesource.com/3687
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2017-09-08 05:02:07 +00:00
Ryan Macnak 8e89cd046f [gen_snapshot] Allow blank lines and shell-style comments in entry point manifests.
Change-Id: I7074e2bd16c951c978bbdd90defd7af2d7978791
Reviewed-on: https://dart-review.googlesource.com/3760
Reviewed-by: Zach Anderson <zra@google.com>
2017-09-07 21:52:06 +00:00
Zachary Anderson 05dc2936bb [Fuchsia] Update include path for netconfig.h
Change-Id: I0853256e0684d2c312d8d8747c203ba9adb36e72
Reviewed-on: https://dart-review.googlesource.com/3308
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Zach Anderson <zra@google.com>
2017-09-05 19:23:09 +00:00
Ryan Macnak a456515c6e [ios] Use mach_absolute_time instead of boot time for the monotonic clock.
Allows for direct conversion between ftl::TimePoint and Dart_TimelineGetMicros().

Change-Id: I253c9f109f9b80f86aee8e8ed5202a4d6e8b7a85
Reviewed-on: https://dart-review.googlesource.com/3301
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2017-09-05 16:49:35 +00:00
Vyacheslav Egorov 8a179fb953 [VM, Compiler] Move compiler to a separate folder.
New folder structure (nested under vm/):

- compiler/
-   jit/         - JIT specific code
-   aot/         - AOT specific code
-   backend/     - all middle-end and back-end code (IL, flow graph)
-   assembler/   - assemblers and disassemblers
-   frontend/    - front ends (AST -> IL, Kernel -> IL)

compiler/README.md would be the documentation root for the compiler
pipeline

Bug: https://github.com/dart-lang/sdk/issues/30575
Change-Id: I2dfd9688793bff737f7632ddc77fca766875ce36
Reviewed-on: https://dart-review.googlesource.com/2940
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
2017-09-04 15:15:18 +00:00
Zachary Anderson e2bce948ed [dart:io] Adds Platform.operatingSystemVersion
fixes #30018

R=rmacnak@google.com

Review-Url: https://codereview.chromium.org/3006873002 .
2017-09-01 22:08:48 -07:00
Terry Lucas 0585e74b63 Fixed analyzer test to use dart2js not dartium
R=paulberry@google.com

Committed: https://github.com/dart-lang/sdk/commit/704de3bb3e27313c0eb6eb5ebc03173a5396dd1e
Review-Url: https://codereview.chromium.org/3004153002 .
2017-09-01 09:03:16 -07:00
William Hesse a8cab7a205 Revert "Removed Dartium SDK libs"
This reverts commit 4a58918382.
That commit seems to have broken docgen on the html libraries.

BUG=
TBR=terry@google.com

Review-Url: https://codereview.chromium.org/3004173002 .
2017-09-01 00:47:57 +02:00
Carlo Bernaschina 05367c3db8 Update iOS FileSystemWatcher::WatchPath signature
TBR=zra@google.com

Review-Url: https://codereview.chromium.org/3011703002 .
2017-08-31 09:46:28 -07:00