0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-02-02 20:55:35 -05:00
denoland-deno/cli
Aapo Alasuutari 2164f6b1eb
perf(ops): Monomorphic sync op calls (#15337)
Welcome to better optimised op calls! Currently opSync is called with parameters of every type and count. This most definitely makes the call megamorphic. Additionally, it seems that spread params leads to V8 not being able to optimise the calls quite as well (apparently Fast Calls cannot be used with spread params).

Monomorphising op calls should lead to some improved performance. Now that unwrapping of sync ops results is done on Rust side, this is pretty simple:

```
opSync("op_foo", param1, param2);
// -> turns to
ops.op_foo(param1, param2);
```

This means sync op calls are now just directly calling the native binding function. When V8 Fast API Calls are enabled, this will enable those to be called on the optimised path.

Monomorphising async ops likely requires using callbacks and is left as an exercise to the reader.
2022-08-11 15:56:56 +02:00
..
args fix(task): subcommand parser skips global args (#15297) 2022-08-10 11:55:34 -04:00
bench perf(ops): Monomorphic sync op calls (#15337) 2022-08-11 15:56:56 +02:00
cache refactor(emit/cache): move cli version into emit hash (#15348) 2022-07-30 12:09:12 -04:00
compat feat: add ext/node for require support (#15362) 2022-08-09 21:06:01 +02:00
dts feat(ext/ffi): Add static method variants to Deno.UnsafePointerView (#15146) 2022-08-05 21:57:12 +05:30
lsp fix(permissions): ignore empty values (#15447) 2022-08-10 21:13:53 +02:00
npm feat: add initial internal npm client and dependency resolver (#15446) 2022-08-10 15:23:58 -04:00
ops refactor: allocate IDs for tests (#14729) 2022-07-15 13:09:22 -04:00
schemas chore(cli): update config file schema to include test config (#15246) 2022-07-19 15:10:41 -04:00
tests perf(ops): Monomorphic sync op calls (#15337) 2022-08-11 15:56:56 +02:00
tools feat: add initial internal npm client and dependency resolver (#15446) 2022-08-10 15:23:58 -04:00
tsc perf(ops): Monomorphic sync op calls (#15337) 2022-08-11 15:56:56 +02:00
auth_tokens.rs chore: update copyright to 2022 (#13306) 2022-01-07 22:09:52 -05:00
build.rs Revert "refactor(snapshots): to their own crate (#14794)" (#15076) 2022-07-05 00:12:41 +02:00
Cargo.toml feat: add initial internal npm client and dependency resolver (#15446) 2022-08-10 15:23:58 -04:00
cdp.rs docs: turn bare URLs into clickable links (#15347) 2022-07-30 12:20:29 +02:00
checksum.rs chore: update copyright to 2022 (#13306) 2022-01-07 22:09:52 -05:00
deno.ico fix(cli): add icon and metadata to deno.exe on Windows (#6693) 2020-07-15 21:54:38 +02:00
deno_dir.rs feat: emit files on demand and fix racy emit (#15220) 2022-07-19 11:58:18 -04:00
diagnostics.rs Remove unstable Deno.sleepSync (#14719) 2022-06-13 21:28:00 +02:00
diff.rs refactor: update comment in diff.rs (#15142) 2022-07-10 22:49:18 -04:00
display.rs refactor: add cli/display.rs module (#13879) 2022-03-09 00:19:02 +01:00
emit.rs refactor: reuse FastInsecureHasher in get_check_hash (#15354) 2022-07-30 11:43:03 -04:00
errors.rs chore: remove all pub(crate)s from the cli crate (#14083) 2022-03-23 09:54:22 -04:00
file_fetcher.rs refactor: upgrade to deno_ast 0.15 (#14680) 2022-05-20 16:40:55 -04:00
file_watcher.rs fix(permissions): ignore empty values (#15447) 2022-08-10 21:13:53 +02:00
fmt_errors.rs refactor: remove redundant qualification of symbols in Rust (#15201) 2022-07-15 07:52:44 +10:00
fs_util.rs feat: add initial internal npm client and dependency resolver (#15446) 2022-08-10 15:23:58 -04:00
graph_util.rs fix(cli): allow configurations files to also be json modules (#15444) 2022-08-11 07:33:42 +10:00
http_cache.rs chore(tests): use custom temp dir creation for the tests (#14153) 2022-04-01 11:15:37 -04:00
http_util.rs docs: turn bare URLs into clickable links (#15347) 2022-07-30 12:20:29 +02:00
lockfile.rs chore(tests): use custom temp dir creation for the tests (#14153) 2022-04-01 11:15:37 -04:00
logger.rs chore: remove all pub(crate)s from the cli crate (#14083) 2022-03-23 09:54:22 -04:00
main.rs refactor(runtime): split up MainWorker and WebWorker's preload_module method into two separate methods (#15451) 2022-08-10 18:10:51 -04:00
module_loader.rs feat: emit files on demand and fix racy emit (#15220) 2022-07-19 11:58:18 -04:00
proc_state.rs feat: emit files on demand and fix racy emit (#15220) 2022-07-19 11:58:18 -04:00
README.md Remove deno_typescript (#6813) 2020-07-20 19:49:57 -04:00
resolver.rs feat(vendor): support using an existing import map (#14836) 2022-06-14 10:05:37 -04:00
standalone.rs fix(permissions): ignore empty values (#15447) 2022-08-10 21:13:53 +02:00
text_encoding.rs feat: emit files on demand and fix racy emit (#15220) 2022-07-19 11:58:18 -04:00
tsc.rs fix(cli): allow configurations files to also be json modules (#15444) 2022-08-11 07:33:42 +10:00
unix_util.rs build: require safety comments on unsafe code (#13870) 2022-06-26 00:13:24 +02:00
version.rs chore: update copyright to 2022 (#13306) 2022-01-07 22:09:52 -05:00
windows_util.rs chore: fix Windows specific clippy errors (#15212) 2022-07-15 12:30:25 -04:00

Deno CLI Crate

crates docs

This provides the actual deno executable and the user-facing APIs.

The deno crate uses the deno_core to provide the executable.