Bartek Iwańczuk
b67df0f07b
refactor: Add "deno_fs" extension crate ( #18040 )
...
This commit factors out APIs related to file system from "runtime/"
to a separate "deno_fs" extension crate.
2023-03-10 12:57:09 +09:00
Bartek Iwańczuk
02026506f5
refactor(runtime): factor out deno_io extension crate ( #18001 )
...
This is a prerequisite to factor out FS ops to a separate crate.
2023-03-10 12:47:08 +09:00
Bartek Iwańczuk
073dcf2ea5
refactor(runtime): factor out FsPermissions for fs ops ( #18012 )
...
This will help us with moving fs ops to a separate extension crate.
2023-03-10 12:47:00 +09:00
Divy Srivastava
eda8c83d8b
feat(ops): reland fast zero copy string arguments ( #17996 )
...
Reland https://github.com/denoland/deno/pull/16777
The codegen is disabled in async ops and when fallback to slow call is
possible (return type is a Result) to avoid hitting this V8 bug:
https://github.com/denoland/deno/issues/17159
2023-03-10 12:46:24 +09:00
Kamil Ogórek
f82e917860
ref(core): Refactor core:fs error mapping to use unified format ( #17719 )
2023-02-16 21:21:03 +02:00
Kamil Ogórek
0164959d34
fix(ops): Always close cancel handles for read_async/write_async ( #17736 )
...
Fixes https://github.com/denoland/deno/issues/17734
2023-02-11 14:19:13 +02:00
David Sherret
f5840bdcd3
chore: upgrade to Rust 1.67 ( #17548 )
...
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-01-27 10:43:16 -05:00
Divy Srivastava
d5634164cb
chore: use rustfmt imports_granularity option ( #17421 )
...
Closes https://github.com/denoland/deno/issues/2699
Closes https://github.com/denoland/deno/issues/2347
Uses unstable rustfmt features. Since dprint invokes `rustfmt` we do not
need to switch the cargo toolchain to nightly. Do we care about
formatting stability of our codebase across Rust versions? (I don't)
2023-01-14 23:18:58 -05:00
Divy Srivastava
ae2981d7ac
fix(runtime/fs): preserve permissions in copyFileSync for macOS ( #17412 )
...
Fixes https://github.com/denoland/deno/issues/16921
2023-01-14 13:45:30 +00:00
Leo Kettmeir
c41d4ff90e
feat(core): allow specifying name and dependencies of an Extension ( #17301 )
2023-01-08 23:48:46 +01:00
Bartek Iwańczuk
fac6447815
refactor(permissions): add PermissionsContainer struct for internal mutability ( #17134 )
...
Turns out we were cloning permissions which after prompting were discarded,
so the state of permissions was never preserved. To handle that we need to store
all permissions behind "Arc<Mutex<>>" (because there are situations where we
need to send them to other thread).
Testing and benching code still uses "Permissions" in most places - it's undesirable
to share the same permission set between various test/bench files - otherwise
granting or revoking permissions in one file would influence behavior of other test
files.
2023-01-07 17:25:34 +01:00
Yiyu Lin
896dd56b7a
refactor(cli,core,ext,rt): remove some unnecessary clone
or malloc
( #17274 )
2023-01-05 14:29:50 -05:00
David Sherret
10e4b2e140
chore: update copyright year to 2023 ( #17247 )
...
Yearly tradition of creating extra noise in git.
2023-01-02 21:00:42 +00:00
linbingquan
f46df3e359
chore: update to Rust 1.66.0 ( #17078 )
2022-12-17 23:20:15 +01:00
Bartek Iwańczuk
585ec1218f
Revert "feat(ops): Fast zero copy string arguments ( #16777 )" ( #17063 )
...
This reverts commit 9b2b8df927
.
Closes https://github.com/dsherret/ts-morph/issues/1372
Closes https://github.com/denoland/deno/issues/16979
2022-12-15 15:26:10 +00:00
Leo Kettmeir
5d9bb8b4b0
feat: support createNew
in Deno.writeFile
( #17023 )
2022-12-13 05:12:49 +01:00
Divy Srivastava
9b2b8df927
feat(ops): Fast zero copy string arguments ( #16777 )
...
Uses SeqOneByteString optimization to do zero-copy `&str` arguments in
fast calls.
- [x] Depends on https://github.com/denoland/rusty_v8/pull/1129
- [x] Depends on
https://chromium-review.googlesource.com/c/v8/v8/+/4036884
- [x] Disable in async ops
- [x] Make it work with owned `String` with an extra alloc in fast path.
- [x] Support `Cow<'_, str>`. Owned for slow case, Borrowed for fast
case
```rust
#[op]
fn op_string_len(s: &str) -> u32 {
str.len() as u32
}
```
2022-12-02 05:29:15 +00:00
David Sherret
6962808f4b
chore: fix windows-only clippy errors ( #16703 )
2022-11-18 12:54:01 -05:00
Aaron O'Mullan
238590aa9f
chore: use Rust 1.65.0 ( #16688 )
2022-11-18 02:59:10 +01:00
Colin Ihrig
378e6a8c03
feat: stabilize Deno.utime() and Deno.utimeSync() ( #16421 )
2022-10-25 15:23:36 -04:00
Colin Ihrig
ffff814540
feat: stabilize Deno.futime() and Deno.futimeSync() ( #16415 )
2022-10-25 14:03:05 -04:00
Bartek Iwańczuk
212b7dd6da
feat: Add requesting API name to permission prompt ( #15936 )
...
Co-authored-by: Leo Kettmeir <crowlkats@toaxl.com>
2022-09-27 22:36:33 +02:00
Divy Srivastava
72af1496d9
perf: use fast ops for tty ( #15976 )
2022-09-23 09:35:45 +05:30
David Sherret
a43e9bebeb
chore: fix recent windows only clippy issues ( #15993 )
2022-09-22 10:33:52 -04:00
Divy Srivastava
698a340ad7
perf: fs optimizations - part 1 ( #15873 )
2022-09-22 14:39:25 +05:30
Divy Srivastava
1cdd2504b1
perf(runtime): flatten arguments for write_file ops ( #15776 )
2022-09-05 17:20:48 +05:30
Divy Srivastava
9e576dff7c
perf(runtime): optimize Deno.file open & stream ( #15496 )
2022-08-19 15:54:40 +05:30
David Sherret
667812a297
fix(cli): synchronize async stdio/file reads and writes ( #15092 )
...
Fixes a regression where async writes and reads could get out of order.
2022-07-13 11:16:42 -04:00
David Sherret
0ea6b51bf0
fix: stdout and stderr encoding on Windows ( #14559 )
2022-05-11 12:48:38 -04:00
David Sherret
11c13fb981
refactor: remove unused Option
s on StdFileResource.fs_file
( #14549 )
2022-05-10 10:13:08 -04:00
Aaron O'Mullan
1d51b1649e
fix(runtime): lossy utf8 readTextFile ( #14456 )
2022-05-01 19:13:05 -07:00
Aaron O'Mullan
8b8b21b553
perf(runtime): read entire files in single ops ( #14261 )
...
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2022-04-27 16:03:44 +02:00
Divy Srivastava
1c05e41f37
perf(runtime): bypass tokio file and bump op buffer size to 64K ( #14319 )
2022-04-19 20:11:31 +05:30
David Sherret
a64e63c361
perf: move Deno.writeTextFile and like functions to Rust ( #14221 )
...
Co-authored-by: Luca Casonato <hello@lcas.dev>
2022-04-18 18:00:14 -04:00
Aaron O'Mullan
88d0f01948
feat(ops): custom arity ( #13949 )
...
Also cleanup & drop ignored wildcard op-args
2022-03-14 23:38:53 +01:00
Divy Srivastava
b4e42953e1
feat(core): codegen ops ( #13861 )
...
Co-authored-by: Aaron O'Mullan <aaron.omullan@gmail.com>
2022-03-14 18:44:15 +01:00
Ryan Dahl
1fb5858009
chore: update copyright to 2022 ( #13306 )
...
Co-authored-by: Erfan Safari <erfanshield@outlook.com>
2022-01-07 22:09:52 -05:00
David Sherret
d44011a69e
fix(runtime): require full read and write permissions to create symlinks ( #12554 )
2021-10-29 17:05:55 -04:00
Feng Yu
668b400ff2
feat(runtime): improve error messages of runtime fs ( #11984 )
...
This commit annotates errors returned from FS Deno APIs to include
paths that were passed to the API calls.
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2021-10-11 15:21:18 +02:00
Leo K
77a00ce1fb
chore: various op cleanup ( #12329 )
2021-10-05 22:38:27 +02:00
Tilman Roeder
93d83a84db
feat(unstable): Add file locking APIs ( #11746 )
...
This commit adds following unstable APIs:
- Deno.flock()
- Deno.flockSync()
- Deno.funlock()
- Deno.funlockSync()
2021-08-24 15:21:31 +02:00
Aaron O'Mullan
2ca454b402
refactor(ops): return BadResource errors in ResourceTable calls ( #11710 )
...
* refactor(ops): return BadResource errors in ResourceTable calls
Instead of relying on callers to map Options to Results via `.ok_or_else(bad_resource_id)` at over 176 different call sites ...
2021-08-15 13:29:19 +02:00
Yusuke Tanaka
8f00b5542c
chore: upgrade Rust to 1.54.0 ( #11554 )
2021-07-30 15:03:41 +02:00
Ryan Dahl
9c42b5e03b
Remove various unnecessary allow(clippy) declarations ( #10971 )
2021-06-15 19:22:28 +02:00
Aaron O'Mullan
d5f39fd121
cleanup(ops): remove unused ZeroCopyBuf arg-types ( #10530 )
2021-05-08 14:37:42 +02:00
Aaron O'Mullan
8377957666
refactor(runtime): use Extensions ( #10461 )
2021-05-02 19:22:57 -04:00
Aaron O'Mullan
46b1c653c0
refactor(deno): remove concept of bin & json ops ( #10145 )
2021-04-12 15:55:05 -04:00
Casper Beyer
875ac73f1e
feat(runtime): stabilize Deno.fstat and Deno.fstatSync ( #10108 )
...
This commit stabilizes Deno.fstat and Deno.fstatSync
which are well known system calls and have a stable interface.
2021-04-12 11:27:38 +02:00
crowlKats
fefe93c91b
feat(runtime/permissions): prompt fallback ( #9376 )
...
Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2021-04-12 11:15:43 +09:00
Casper Beyer
f5a9474952
feat: stabilize Deno.ftruncate and Deno.ftruncateSync ( #10126 )
...
This stabilizes Deno.ftruncate and Deno.ftruncateSync.
This is a well known system call and the interface is
not going to change. Implicitly requires write permissions
as the file has to be opened with write to be truncated.
2021-04-11 14:05:22 +02:00