Crypt Keeper
009ee7056c
Re-introduces internal fsapi.File with non-blocking methods ( #1613 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-08-07 15:50:38 +08:00
Crypt Keeper
2f2b6a9d2c
sysfs: Makes ReadFS and AdaptFS embeddable ( #1607 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-08-02 08:27:50 +08:00
Crypt Keeper
1f8c908f1c
Exposes writeable filesystem as experimentalsys.FS ( #1605 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-07-31 07:56:28 +08:00
Crypt Keeper
66070781b1
Supports compilation with GOOS=plan9 ( #1603 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-07-31 06:47:23 +08:00
Crypt Keeper
2382bbf730
sysfs: decouples FS and File from the syscall package ( #1602 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-07-30 16:06:22 +08:00
Crypt Keeper
8d3874d3c8
fsapi: migrates PollRead to Poll with Pflag ( #1599 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com >
Co-authored-by: Edoardo Vacchi <evacchi@users.noreply.github.com >
2023-07-30 10:56:17 +08:00
Crypt Keeper
180ff682d9
sysfs: changes PollRead to accept int32 timeoutMillis ( #1597 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
Co-authored-by: Takeshi Yoneda <takeshi@tetrate.io >
2023-07-28 10:01:00 +08:00
Crypt Keeper
b842d6cbfd
fsapi: adds Oflag to decouple from syscall package ( #1586 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-07-19 16:01:44 +08:00
Crypt Keeper
2f8dd23097
adds experimental sys.Errno to begin decoupling from the syscall package ( #1582 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-07-17 08:13:29 +08:00
Crypt Keeper
6efcf25505
Exposes sys.Stat_t as a portable alternative to syscall.Stat_t ( #1567 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-07-10 11:46:20 +08:00
Crypt Keeper
6a9088b46b
Centralizes docs on Ino, specifically zero ( #1560 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-07-07 08:33:50 +08:00
Crypt Keeper
0ec3c852d6
fs: pares down to functions used in wasip1 and wasip2 ( #1563 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-07-07 07:58:36 +08:00
Edoardo Vacchi
affca16f15
fs: empty guest path should bind to / ( #1565 )
...
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com >
2023-07-07 07:10:01 +08:00
Crypt Keeper
2c21f3aa8f
wasi: adds Go readdir integration tests for GOOS=wasip1 and TinyGo ( #1562 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-07-06 16:19:24 +08:00
Crypt Keeper
c2ee2242f6
fd_readdir: reverts to special cased dirent cache ( #1549 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-07-05 08:17:07 +08:00
Crypt Keeper
820685c4b2
Simplifies filesystem implementations ( #1548 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-07-01 06:53:09 +08:00
Crypt Keeper
221ed0373a
fs: stops pre-fetching the inode of dot-dot ("..") ( #1544 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-06-29 15:00:09 +02:00
Crypt Keeper
53ce5eea83
Allows wasip1 guests to use arbitrarily nested pre-opens ( #1536 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-06-27 10:02:57 +08:00
Edoardo Vacchi
97d0d70b73
wasi: add support for sockets ( #1493 )
...
Release CLI / Pre-release build (push) Has been cancelled
Release CLI / Pre-release test (macos-12) (push) Has been cancelled
Release CLI / Pre-release test (ubuntu-22.04) (push) Has been cancelled
Release CLI / Pre-release test (windows-2022) (push) Has been cancelled
Release CLI / Release (push) Has been cancelled
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com >
Signed-off-by: Adrian Cole <adrian@tetrate.io >
Co-authored-by: Crypt Keeper <64215+codefromthecrypt@users.noreply.github.com >
Co-authored-by: Achille <achille.roussel@gmail.com >
Co-authored-by: Adrian Cole <adrian@tetrate.io >
2023-06-02 20:45:42 +08:00
Edoardo Vacchi
e987e69a82
wasi: move Readdir logics from fdReaddirFn to Readdir methods ( #1483 )
...
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com >
2023-05-23 10:18:27 -07:00
Edoardo Vacchi
5da6dff27d
wasi: Move ReadDir out of the FileEntry structure. ( #1482 )
...
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com >
2023-05-19 16:03:28 +02:00
Crypt Keeper
34324031cb
extracts FS interfaces into fsapi package and consolidates impls ( #1477 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com >
Co-authored-by: Edoardo Vacchi <evacchi@users.noreply.github.com >
2023-05-17 07:19:54 +03:00
Crypt Keeper
2ad2921eed
Separates fs.File from os.File implementations of platform.File ( #1455 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-05-15 13:42:20 +08:00
Crypt Keeper
cd5c9ed37c
Clears O_CREATE when re-opening a file to set flags ( #1458 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-05-12 14:35:17 +08:00
Crypt Keeper
16baeaab47
Adds Readdir to platform.File and removes internal use of fs.FS ( #1454 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-05-11 10:04:34 +08:00
Crypt Keeper
745f2c9d8a
Adds IsNonblock SetNonblock PollRead to platform.File ( #1447 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-05-10 08:43:54 +08:00
Crypt Keeper
29c7c7667b
Adds IsDir and Seek to platform.File ( #1441 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-05-09 07:47:25 +08:00
Achille
99d45623c0
wasip1: support non-blocking mode on stdio ( #1443 )
...
Signed-off-by: Achille Roussel <achille.roussel@gmail.com >
2023-05-09 06:45:04 +08:00
Crypt Keeper
3bf7e342c2
Adds Utimens to platform.File ( #1440 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-05-08 11:14:28 +08:00
Crypt Keeper
76ef347b8c
Adds Read and Pread to platform.File ( #1439 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-05-08 07:54:06 +08:00
Crypt Keeper
b5198a46ff
Adds AccessMode Write and Pwrite to platform.File ( #1438 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-05-05 13:23:30 +08:00
Crypt Keeper
5380321eea
Adds Truncate to platform.File ( #1428 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-05-04 15:07:18 +08:00
Crypt Keeper
e5dc733df7
Adds Path to platform.File and refactors tests ( #1431 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com >
Co-authored-by: Edoardo Vacchi <evacchi@users.noreply.github.com >
2023-05-04 07:05:40 +08:00
Adrian Cole
cf5ebf6f6b
Use require.ErrnoEquals for more precise failures
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-05-03 13:54:12 +08:00
Crypt Keeper
c5871c772c
Adds Datasync to platform.File ( #1427 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-05-02 14:12:47 +08:00
Crypt Keeper
b79c45b91c
Adds Sync to platform.File ( #1426 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-05-02 13:16:50 +08:00
Crypt Keeper
18c793f8e6
Adds platform.File.Chmod ( #1423 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-05-01 19:18:56 +08:00
Crypt Keeper
1047ddee78
Adds platform.File.Chown ( #1422 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-05-01 18:32:13 +08:00
Crypt Keeper
493fe2d410
sysfs: stubs in approach to defining a new file type ( #1290 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-05-01 12:33:40 +08:00
Crypt Keeper
40341af448
fs: returns EBADF on negative file descriptor ( #1391 )
...
This changes file descriptors from uint32 to int32 and the
corresponding file table to reject negative values. This ensures
invalid values aren't mistaken for very large descriptor entries, which
can use a lot of memory as the table implementation isn't designed to
be sparse.
See https://pubs.opengroup.org/onlinepubs/9699919799/functions/dirfd.html#tag_16_90
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-04-21 16:08:35 +02:00
Edoardo Vacchi
ea336061c2
wasi: introduce platform.Select and use it for poll_oneoff ( #1346 )
...
Release CLI / Pre-release build (push) Has been cancelled
Release CLI / Pre-release test (macos-12) (push) Has been cancelled
Release CLI / Pre-release test (ubuntu-22.04) (push) Has been cancelled
Release CLI / Pre-release test (windows-2022) (push) Has been cancelled
Release CLI / Release (push) Has been cancelled
The PR introduces the `platform.Select()` API, wrapping `select(2)` on POSIX and emulated in some cases on Windows. RATIONALE.md contains a full explanation of the approach followed in `poll_oneoff` to handle Stdin and the other types of file descriptors, and the clock subscriptions.
It also introduces an abstraction (`StdioFilePoller`) to allow the simulation of different scenarios (waiting for input, input ready, timeout expired, etc.) when unit-testing interactive input.
This closes #1317 .
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com >
2023-04-18 16:31:34 +02:00
Takeshi Yoneda
2fc1fa9d79
Stop using pointer of function pointers in sys.Context ( #1301 )
...
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io >
2023-03-29 11:23:38 +09:00
Edoardo Vacchi
d63813a830
fs: stat and cache mode for stdio devices ( #1295 )
...
Ensure that stdio device modes are consistent with the given
file descriptors by stat'ing, instead of returning mocks.
* Use `Stat()` on `poll_oneoff()` too, instead of `IsTerminal()`,
thus avoiding a useless syscall.
* Delete leftover type decl `fileModeStat`.
* Remove IsPlatform()
* Propagate error when Stat() fails
Signed-off-by: Edoardo Vacchi <evacchi@users.noreply.github.com >
2023-03-28 12:48:24 +02:00
Crypt Keeper
244c5c5792
ensures we don't open a file to close it ( #1279 )
...
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-03-24 08:20:06 +09:00
Crypt Keeper
36bf277534
sysfs: requires all methods to return syscall.Errno ( #1264 )
...
This forces all syscall functions, notably filesystem, to return numeric
codes as opposed to mapping in two different areas. The result of this
change is better consolidation in call sites of `sysfs.FS`, while
further refactoring is needed to address consolidation of file errors.
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-03-22 07:47:57 +01:00
Crypt Keeper
046af4356e
wasi: removes constraint around closing a pre-open, and temporarily skips interesting_paths ( #1265 )
...
wasi-testsuite changed its mind on pre-open WebAssembly/wasi-testsuite#66
they also now explicitly forbid paths being passed in with a leading slash. Even when the config bug on WebAssembly/wasi-testsuite#67 is finished, this requires discussion if we want to EPERM on that.
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-03-21 23:43:59 +08:00
Adrian Cole
a43a0f11e4
Revert "sysfs: requires all methods to return syscall.Errno"
...
This reverts commit 4ea9d1a7b5 .
2023-03-21 22:22:36 +08:00
Adrian Cole
4ea9d1a7b5
sysfs: requires all methods to return syscall.Errno
...
This forces all syscall functions, notably filesystem, to return numeric
codes as opposed to mapping in two different areas. The result of this
change is better consolidation in call sites of `sysfs.FS`, while
further refactoring is needed to address consolidation of file errors.
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-03-21 22:20:28 +08:00
Crypt Keeper
c46a6eb4ae
sysfs: return st instead of accepting it ( #1261 )
...
This returns stat as a value instead of a pointer param. This is both
more efficient and faster. It is also more efficient than returning a
pointer to a stat.
Signed-off-by: Adrian Cole <adrian@tetrate.io >
2023-03-21 10:57:19 +08:00
Takeshi Yoneda
f0f5457577
sys/fs: removes redundant cachedStat allocation ( #1255 )
...
Signed-off-by: Takeshi Yoneda <takeshi@tetrate.io >
2023-03-20 10:12:07 +09:00