Alexander Aprelev
99e8f560af
Revert "Revert "Reintroduce incremental compiler wrapper that supports accept protocol.""
...
This reverts commit 2d4c606e63 .
The fix for the debug buildbot breakage now consists of skipping wide to utf8 conversion
altogether, instead move uri to path conversion directly into newly added File::OpenUri method.
Change-Id: Id3d7457d6a6b5045e5f38678548f4d7bed6d2c43
Reviewed-on: https://dart-review.googlesource.com/39801
Commit-Queue: Alexander Aprelev <aam@google.com >
Reviewed-by: Zach Anderson <zra@google.com >
2018-02-07 20:58:51 +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
Zachary Anderson
d0295c873c
[dart:io] Namespaces for file IO
...
Fuchsia requires the ability to sandbox Isolates w.r.t. file IO.
When a new Isolate starts, Fuchsia will pass the Isolate an object
called a namespace. We can translate the namespace object into a
file descriptor suitable for passing to the *at() family of
POSIX file system calls. The file system calls will then
have visibility only into the specified namespace.
We also plumb Namespaces through on all the other platforms as well to
make the change easier to test and so that in the future we can
implement e.g. per-isolate cwds.
This change adds a new internal class to dart:io called _Namespace,
which is implemented in a patch file. See:
sdk/lib/io/namespace_impl.dart
runtime/bin/namespace_patch.dart
The embedder can set up a non-default namespace by calling
_Namespace._setupNamespace during Isolate setup.
Instances of _Namespace have a native field that holds a pointer
to a native Namespace object. See:
runtime/bin/namespace.h
Calls from e.g. file_impl.dart are now also passed a
_Namespace object. The implementations in e.g. file.cc and
file_linux.cc then extract the namespace, and use it to compute a
file descriptor and path suitable for passing to e.g. openat().
related US-313
R=asiva@google.com , rmacnak@google.com
Review-Url: https://codereview.chromium.org/3007703002 .
2017-08-30 09:34:36 -07:00
Zach Anderson
141b6351ba
[dart:io][windows] Use WriteFile instead of _write
...
This CL changes File::Write on Windows to call directly to WriteFile()
instead of using _write(). This avoids a number of complexities:
1. Don't need to bother with text vs. binary mode.
2. Don't need to check both errno and GetLastError if _write() fails.
3. Don't need to convert to a wchar_t* for console output since we've
already set the code page to UTF8.
fixes #29101
R=fschneider@google.com
Review-Url: https://codereview.chromium.org/2761673002 .
2017-03-29 13:19:25 -07:00
Ryan Macnak
781fd36086
Add an option to gen_snapshot for creating a Makefile describing a snapshot's dependencies. This option may be used when generating any snapshot kind, or without generating a snapshot.
...
- Factor out MallocGrowableArray from vm to platform.
- Add File::Print.
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2715463003 .
2017-02-23 12:40:48 -08:00
Zach Anderson
bc07953866
[dart:io][windows] Make unicode characters display correctly.
...
This change has two pieces.
- Set the console code page to UTF8.
- This makes strings printed with print() display correctly
- Set the file translation mode to _O_WTEXT when writing to a
stdout or stderr that is connected to a console.
- This makes strings printed with e.g. stdout.writeln()
display correctly.
fixes #28571
R=asiva@google.com , fschneider@google.com
Review-Url: https://codereview.chromium.org/2698813002 .
2017-02-21 22:47:03 -08:00
Ryan Macnak
a317b90d63
Cleanup app snapshots on isolate/vm exit.
...
R=zra@google.com
Review-Url: https://codereview.chromium.org/2694103004 .
2017-02-16 13:54:57 -08:00
Zachary Anderson
3f5458cdcb
[dart:io] Adds functions to set file access and modification time
...
fixes #27877
R=asiva@google.com , floitsch@google.com
Review-Url: https://codereview.chromium.org/2681683005 .
2017-02-09 09:45:25 -08:00
Zachary Anderson
479a97b129
clang-format runtime/bin
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/2480793002 .
2016-11-04 12:30:56 -07:00
Zachary Anderson
103881d01c
Make header include guards great again
...
i.e. #ifndef VM_WHATEVER -> #ifndef RUNTIME_VM_WHATEVER
This lets us remove a hack from the PRESUBMIT.py script that existed
for reasons that are no longer valid, and sets us up to add some
presubmit checks for the GN build.
R=asiva@google.com , rmacnak@google.com
Review URL: https://codereview.chromium.org/2450713004 .
2016-10-26 00:26:03 -07:00
Zach Anderson
b6ea87c444
[windows] Make most file_win.cc functions use malloc for string conversions.
...
They have been using Dart_ScopeAllocate(), which makes them impossible
to use outside of a scope.
Also turn on inlining in the GN Debug windows build to match the gyp build
and speed things up a bit.
R=asiva@google.com , rmacnak@google.com
Review URL: https://codereview.chromium.org/2439173002 .
2016-10-21 14:55:37 -07:00
Zach Anderson
df260e5fe7
Fix crashes on debug windows
...
Review URL: https://codereview.chromium.org/2426053002 .
2016-10-18 09:37:04 -07:00
Ryan Macnak
3d00ecdc8f
Reapply "Use a single file for app snapshots."
...
- Don't read script to check for an app snapshot if it is a pipe. Fixes loading source from a pipe.
- Fix windows and fushsia builds.
R=asiva@google.com
Review URL: https://codereview.chromium.org/2416973003 .
2016-10-14 09:57:54 -07:00
Ryan Macnak
6839a23240
Revert "Use a single file for app snapshots."
...
This reverts commit 4f8b16df3b .
Review URL: https://codereview.chromium.org/2410303008 .
2016-10-13 15:29:23 -07:00
Ryan Macnak
4f8b16df3b
Use a single file for app snapshots.
...
For blobs, put all four pieces into a single file with a header describing their offsets.
For dynamic libraries, move the vm isolate and isolate pieces into the dynamic library as additional read-only sections.
Automatically detect if the script argument is an app snapshot and initialize the VM appropriately, similar to automatic detection of script snapshots.
R=asiva@google.com
Review URL: https://codereview.chromium.org/2405393002 .
2016-10-13 14:33:56 -07:00
Zachary Anderson
678cb048ed
Adds blocking file locks.
...
Fixes #26665
R=sgjesse@google.com
Review URL: https://codereview.chromium.org/2050413002 .
2016-06-13 07:58:09 -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
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
45661a7091
Cleanup in //runtime/bin
...
R=iposva@google.com
Review URL: https://codereview.chromium.org/1800863002 .
2016-03-16 10:01:00 -07:00
Zachary Anderson
c75a817ee0
Fixes some memory leaks in //runtime/bin
...
Also some style cleanups.
Decided to fix these leaks by using Dart_ScopeAllocate
instead of malloc and new. Leaks are noted in the CL.
I haven't finished looking over all the code in
//runtime/bin yet, but this CL was getting big.
Review URL: https://codereview.chromium.org/1781883002 .
2016-03-14 11:08:52 -07:00
Todd Turnidge
b243fa53cf
Redo the interface for capture stdio.
...
Flutter doesn't care to import tons of our include files.
BUG=
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/1460863002 .
2015-11-19 09:24:23 -08:00
Todd Turnidge
1d2d1ce0fc
Don't use global variables for capturing stdio.
...
BUG=
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/1458983002 .
2015-11-18 12:47:34 -08:00
Søren Gjesse
eaeecf2ed1
Add file modes for opening a file write only
...
Added two new file modes WRITE_ONLY and WRITE_ONLY_APPEND. The current
file modes WRITE and WRITE_APPEND are kept as the read/write mode with
no change. Kept the same overall handling of create/truncate/append
semantics for the new file modes.
R=ager@google.com , ahe@google.com
BUG=
Review URL: https://codereview.chromium.org//1193653002 .
2015-06-18 15:19:26 +02:00
sgjesse@google.com
218e366f89
Add support for file locking
...
This adds support for file locking in dart:io.
BUG=http://dartbug.com/17045
R=kustermann@google.com , lrn@google.com
Review URL: https://codereview.chromium.org//833623004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42733 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-09 13:06:37 +00:00
iposva@google.com
14ecdbd66a
- Separate the thread implementation used in bin/ and vm/
...
to allow us to make VM specific changes.
R=asiva@google.com
Review URL: https://codereview.chromium.org//463993002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39172 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-12 23:19:53 +00:00
ajohnsen@google.com
7aed60d005
Show actualy FD for files in Observatory.
...
BUG=
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//296403005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36656 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-27 09:18:43 +00:00
iposva@google.com
781f737c6a
First round of http://dartbug.com/15922 :
...
- Address warnings about 64-bit to 32-bit conversions.
- Remove heap profiler.
R=asiva@google.com
Review URL: https://codereview.chromium.org//139043003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31867 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-16 05:05:35 +00:00
ajohnsen@google.com
fe6b63d5e4
Add File.copy(Sync) to dart:io.
...
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//105133004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31125 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-13 12:04:24 +00:00
ajohnsen@google.com
7fef1ff77a
Add support for working with large files on unix systems, in dart:io.
...
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//63363010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30399 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-19 11:38:20 +00:00
whesse@google.com
5b95688b5f
dart:io | Remove unused asynchronous file request enums.
...
BUG=
R=ajohnsen@google.com
Review URL: https://codereview.chromium.org//25173004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28056 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-30 15:23:38 +00:00
ajohnsen@google.com
a347038cd7
Merge services into a shared IOService in dart:io, and use a native port.
...
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//24395013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27883 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-25 15:03:24 +00:00
whesse@google.com
4fc5c84809
Recommit add FileSystemEntity.resolveSymbolicLinks
...
This was reverted in r27481 because of a failure on the debug Windows VM buildbot.
BUG=dartbug.com/1016
Review URL: https://codereview.chromium.org//23480093
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27612 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-18 12:29:47 +00:00
whesse@google.com
31c85401eb
Revert "dart:io | Change File.fullPath to FileSystemEntity.resolveSymbolicLinks."
...
This reverts commit r27475.
BUG=dartbug.com/1016
Review URL: https://codereview.chromium.org//23658048
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27481 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-13 15:00:26 +00:00
whesse@google.com
f9ba5f494d
dart:io | Change File.fullPath to FileSystemEntity.resolveSymbolicLinks.
...
BUG=dartbug.com/1016
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//23444037
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27475 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-13 11:15:12 +00:00
sgjesse@google.com
78e9b8ef87
dart:io | Add rename to Link
...
R=whesse@google.com
BUG=
Review URL: https://codereview.chromium.org//17848003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24468 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-26 14:09:29 +00:00
sgjesse@google.com
7ce40aa3a0
dart:io | Add File.rename
...
R=ajohnsen@google.com
BUG=
Committed: https://code.google.com/p/dart/source/detail?r=24029
Review URL: https://codereview.chromium.org//17033003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24030 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-14 13:34:54 +00:00
sgjesse@google.com
7841206de5
Change File.directory to not do any IO
...
Removed the File.directory and File.directorySync methods and added a
File.directory getter. The File.directory getter does not do any IO,
but just calculates the directory of the file from the path.
R=whesse@google.com
BUG=http://dartbug.com/9926
Review URL: https://codereview.chromium.org//15832003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23349 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-29 12:38:27 +00:00
whesse@google.com
fb8471244f
dart:io | Add FileSystemEntity.stat() and FileStat class.
...
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//15018011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22685 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-14 16:26:13 +00:00
whesse@google.com
0ae62a79dc
dart:io | Implement truly asynchronous version of FileSystemEntity.type().
...
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//14907002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22364 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-03 12:02:10 +00:00
whesse@google.com
396011beae
dart:io | Add asynchronous versions of the methods of FileSystemEntity and Link.
...
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//14642012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22354 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-03 08:39:16 +00:00
smok@google.com
ebbc2020a2
Put everything in runtime/bin into '::dart::bin' namespace.
...
Review URL: https://codereview.chromium.org//14341015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22032 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-25 14:22:30 +00:00
ajohnsen@google.com
b4eacbf8aa
Rename RandomAccessFile.readList and RandomAccessFile.writeList to RandomAccessFile.readInto and RandomAccessFile.writeFrom.
...
BUG=
Review URL: https://codereview.chromium.org//14018007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21466 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-15 15:44:41 +00:00
whesse@google.com
7e65824c01
dart:io | Add asynchronous Link.create implementation.
...
BUG=
Review URL: https://codereview.chromium.org//13800002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21077 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-08 15:12:47 +00:00
ajohnsen@google.com
e75df511a6
Change how File/Directory/Link .delete works.
...
Now:
- File.delete works iff path is File or Link.
- Directory.delete works iff path is Directory or Link.
- Link.delete works iff path Link.
This now matches .exists.
BUG=
Review URL: https://codereview.chromium.org//13654002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21045 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-08 07:44:18 +00:00
sgjesse@google.com
e40ce105af
Fix a number of issues with determining the type of stdio
...
* Fix checked mode exception when _getSocketType returns an OSError
* Treat any character device as terminal (this includes /dev/null)
* Fix detecting of file redirection af file
* Don't turn an unkonwn device type into an OSError (wth value for an unknown was -1)
Expanded an existing test to catch some of this.
R=ager@google.com
BUG=https://code.google.com/p/dart/issues/detail?id=9637
Review URL: https://codereview.chromium.org//13636003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20960 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-05 11:13:24 +00:00
whesse@google.com
2bc9a79282
Add FileSystemEntity.identical, to test if two file system objects are the same.
...
BUG=
Review URL: https://codereview.chromium.org//12850010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20307 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-21 09:44:56 +00:00
whesse@google.com
428b58d01c
dart:io | Add Link.targetSync on all platforms.
...
BUG=
Review URL: https://codereview.chromium.org//12812010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20195 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-19 11:19:03 +00:00
whesse@google.com
2987d5397d
dart:io | Add Link class, as sibling to File and Directory.
...
BUG=
Committed: https://code.google.com/p/dart/source/detail?r=19772
Reverted: https://code.google.com/p/dart/source/detail?r=19777
Review URL: https://codereview.chromium.org//12691002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19995 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-14 09:37:44 +00:00
whesse@google.com
43c13f4ed4
dart:io | Revert addition of Link class, because it conflicts with a Link class in dart2js.
...
BUG=
Review URL: https://codereview.chromium.org//12555005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19777 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-11 11:59:57 +00:00
whesse@google.com
31c6f8d3e5
dart:io | Add Link class, as sibling to File and Directory.
...
BUG=
Review URL: https://codereview.chromium.org//12691002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19772 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-11 10:34:52 +00:00