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
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
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
Jacob Richman
4360e99d18
Revert "Fix observatory tests broken by running dartfmt."
...
This reverts commit b1f7e6d94673b098c93c187fe3efc45c15f27edc.
BUG=
Committed: https://github.com/dart-lang/sdk/commit/62be0eacfbb36bdc92a05c7c35bb4506621b6a3a
Review-Url: https://codereview.chromium.org/2767533002 .
2017-03-21 10:07:26 -07:00
Jacob Richman
62be0eacfb
Revert "Fix observatory tests broken by running dartfmt."
...
This reverts commit b1f7e6d94673b098c93c187fe3efc45c15f27edc.
BUG=
Review-Url: https://codereview.chromium.org/2767533002 .
2017-03-20 22:19:22 -07:00
Jacob Richman
88f8aacd5f
Re-apply rolled back CL to apply dartfmt to runtime.
...
Fix observatory tests broken by running dartfmt due to line and column changes.
Temporarily reverted formatting for evaluate_activation_test.dart as dartfmt doesn't yet handle multitests.
BUG=
R=johnmccutchan@google.com
Review-Url: https://codereview.chromium.org/2759973004 .
2017-03-20 21:44:59 -07:00
Ryan Macnak
ea4744a06f
Revert "Run dartfmt on all files under runtime."
...
This reverts commit 15f393f189 .
The change caused many service test failures due to changed line numbers.
TBR=jacobr@google.com
Review-Url: https://codereview.chromium.org/2762583003 .
2017-03-20 13:42:55 -07:00
Jacob Richman
15f393f189
Run dartfmt on all files under runtime.
...
I've omitted files where the formatter output is significantly uglier
than the original code and I'll send those files in a separate CL
with options for how to make the code look reasonable while still
taking advantage of the formatter.
BUG=
R=johnmccutchan@google.com
Review-Url: https://codereview.chromium.org/2751423005 .
2017-03-20 13:13:50 -07: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
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
Kevin Millikin
50348f5f22
Fixes to patch files necessary to use the analyzer
...
The analyzer has a stricter patch parser than the VM. Patch files
cannot change signatures of patched members. Specifically, they cannot
change:
- the return type
- a parameter's name
- a parameter to an initializing formal
- an optional parameter's default value
BUG=
R=asiva@google.com
Review-Url: https://codereview.chromium.org/2612043002 .
2017-01-05 12:23:51 +01:00
Matthias Hausner
1a6d1eca32
Implement @patch annotation for patch class members
...
Allow members of patch classes to be annotated with @patch. The VM
ignores the annotation. I simply replaces the original method
if the name matches, or reports an error if field names match.
Adding a bit is_patched to members to do more checking remains a
TODO. There are currently no unused bits available, and I don’t want
to increase the size of Function objects for this.
BUG=
R=asiva@google.com
Review URL: https://codereview.chromium.org/2230383003 .
2016-08-10 12:54:57 -07:00
Matthias Hausner
e11ca24053
Use metadata annotation @patch for patch classes
...
Annotate patch classes and top-level patch functions with @patch
instead of the pseudo-keyword patch. This allows the analyzer
to read patch files, and matches the syntax that dart2js uses.
The deprecated syntax is still supported, but a warning is printed when detected.
BUG=
Review URL: https://codereview.chromium.org/2220883004 .
2016-08-09 09:48:03 -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
paulberry@google.com
8edfda7956
Avoid race in _FileSystemWatcher if subscription closed while event queued.
...
BUG=dartbug.com/22769
R=ajohnsen@google.com , sgjesse@google.com
Review URL: https://codereview.chromium.org//1006683002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44459 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-13 12:53:07 +00:00
sgjesse@google.com
0518874077
Add error handling when initializing the file system watcher
...
R=kustermann@google.com , wibling@google.com
BUG=
Review URL: https://codereview.chromium.org//939643002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43838 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-18 13:20:15 +00:00
rmacnak@google.com
cc2e1e4bd1
Make _FileSystemWatcher.watch private.
...
It doesn't verify the path is a string before running native code, so when invoked via mirrors it will hit an uncatchable API error instead of a Dart exception.
R=asiva@google.com
Review URL: https://codereview.chromium.org//897703002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43487 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-04 21:39:38 +00: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
ajohnsen@google.com
146f95135e
Use 'Directory.watch' on Windows in pkg/watcher, instead of pooling.
...
This is a close copy of MacOS, except for the special handling on mac, and the extra watcher on Windows for detecting if the watched folder is deleted.
BUG=https://code.google.com/p/dart/issues/detail?id=14428,https://code.google.com/p/dart/issues/detail?id=18108,http://code.google.com/p/dart/issues/detail?id=19189
R=kasperl@google.com , sgjesse@google.com
Review URL: https://codereview.chromium.org//312743002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36988 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-04 10:23:32 +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
ajohnsen@google.com
140fddd06e
Make event-handlers edge-triggered and move socket-state to Dart.
...
This eliminates to pause/resume calls made in the previous one-shot based model.
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//169383003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32780 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-19 09:44:26 +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
30834031f1
Fix type-error from previous commit.
...
BUG=
Review URL: https://codereview.chromium.org//104393002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30850 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-04 11:00:08 +00:00
ajohnsen@google.com
abdc2ade9d
Rewrite file-system-watcher to better handle the different system APIs.
...
BUG=http://code.google.com/p/dart/issues/detail?id=14941
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//98773002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30848 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-04 10:35:00 +00:00
ajohnsen@google.com
7f9dfb1890
Fix move-watched-dir for MacOS.
...
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//46183007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29536 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-30 12:24:10 +00:00
ajohnsen@google.com
7a1fdfe99a
Fix file-system-entity watching on Windows.
...
This includes disabling a test, as Windows have no way of detecting when the watched directory is deleted.
BUG=
Review URL: https://codereview.chromium.org//47213007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29379 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-28 17:57:22 +00:00
ajohnsen@google.com
2101ba9c12
Add 'isDir' to FileSystemEvent.
...
BUG=https://code.google.com/p/dart/issues/detail?id=14425
R=whesse@google.com
Review URL: https://codereview.chromium.org//48613002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29371 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-28 17:14:43 +00:00
ajohnsen@google.com
9ffff34ddb
Correctly pass errors to the stream, when watching file system entities.
...
BUG=https://code.google.com/p/dart/issues/detail?id=14470
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//47723003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29356 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-28 12:08:49 +00:00
ajohnsen@google.com
483228ef66
If a move has matching target/destination, signal the event as create or delete.
...
BUG=https://code.google.com/p/dart/issues/detail?id=14424
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//48513003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29354 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-28 12:07:46 +00:00
ajohnsen@google.com
e02b5a3fa4
Make FileSystemEntity.watch return a broadcast stream.
...
BUG=https://code.google.com/p/dart/issues/detail?id=14378
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//39943002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29170 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-24 12:30:20 +00:00
ajohnsen@google.com
103eac574c
Remove FileException, DirectoryException and LinkException from dart:io and use FileSystemException instaed.
...
BUG=https://code.google.com/p/dart/issues/detail?id=12461
R=nweiz@google.com , sgjesse@google.com
Review URL: https://codereview.chromium.org//26968003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29168 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-24 12:17:20 +00:00
ajohnsen@google.com
4894d4548c
Fix issue where we would double unwatch the path.
...
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//39773002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29164 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-24 10:26:00 +00:00
ajohnsen@google.com
fdea26c768
Close file watcher when target is deleted.
...
BUG=http://code.google.com/p/dart/issues/detail?id=14374
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//39613002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29159 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-24 08:12:16 +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
ajohnsen@google.com
47239cb3a2
Move delete/deleteSync up to FileSystemEntity, with a shared documentation.
...
This also means that FileSystemEntity.delete(recursive: true) now will
delete any object on disk, much like 'rm -r', without the need of
wrapping it in a Directory object.
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//23889008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27196 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-05 14:54:38 +00:00
ajohnsen@google.com
7c53dfaf3f
Make file system watcher compile on Mac OS 106, and add a runtime-call to test if the system supports the feature.
...
BUG=
R=kustermann@google.com , sgjesse@google.com
Review URL: https://codereview.chromium.org//23483030
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27064 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-03 15:42:02 +00:00
ajohnsen@google.com
6c5229abda
Move _FileSystemWatcher to IO patch since it extends NativeFieldWrapperClass1.
...
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//23615005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27051 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-03 13:13:36 +00:00
ajohnsen@google.com
38bae0af02
Add FileSystemWatcher class to dart:io.
...
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//19263003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27048 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-03 12:43:08 +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
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
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
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
asiva@google.com
69d0484d2a
- Use dart:typedata types in the Dart API calls.
...
- Change the dart/io code to not use dart:scalarlist
Review URL: https://codereview.chromium.org//12730013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19848 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-12 10:57:48 +00:00