1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-22 15:06:54 -05:00
denoland-deno/ext
Divy Srivastava 0910be4d64
feat(ops): relational ops (#18023)
Join two independent ops into one. A fast impl of one + a slow callback
of another. Here's an example showing optimized paths for latin-1 via
fast call and the next-best fallback using V8 apis.

```rust
#[op(v8)]
fn op_encoding_encode_into_fallback(
  scope: &mut v8::HandleScope,
  input: serde_v8::Value,
// ...

#[op(fast, slow = op_encoding_encode_into_fallback)]
fn op_encoding_encode_into(
  input: Cow<'_, str>,
// ...
```

Benchmark results of the fallback path:
```
time target/release/deno run -A --unstable ./cli/tests/testdata/benches/text_encoder_into_perf.js
________________________________________________________
Executed in   70.90 millis    fish           external
   usr time   57.76 millis    0.23 millis   57.53 millis
   sys time   17.02 millis    1.28 millis   15.74 millis

target/release/deno_main run -A --unstable ./cli/tests/testdata/benches/text_encoder_into_perf.js
________________________________________________________
Executed in  154.00 millis    fish           external
   usr time   67.14 millis    0.26 millis   66.88 millis
   sys time   38.82 millis    1.47 millis   37.35 millis
```
2023-03-05 13:30:22 +05:30
..
broadcast_channel chore: forward v1.31.1 release commit to main (#17939) 2023-02-24 22:37:46 -05:00
cache chore: forward v1.31.1 release commit to main (#17939) 2023-02-24 22:37:46 -05:00
console fix(core): introduce SafeRegExp to primordials (#17592) 2023-03-01 08:14:16 +09:00
crypto chore: forward v1.31.1 release commit to main (#17939) 2023-02-24 22:37:46 -05:00
fetch fix(core): introduce SafeRegExp to primordials (#17592) 2023-03-01 08:14:16 +09:00
ffi fix(ext/ffi): Remove deno_core::OpState qualifiers, fix ops returning pointer defaults (#17959) 2023-02-28 08:26:48 +02:00
flash chore: forward v1.31.1 release commit to main (#17939) 2023-02-24 22:37:46 -05:00
http chore: forward v1.31.1 release commit to main (#17939) 2023-02-24 22:37:46 -05:00
io refactor(runtime): remove 40_files.js, 40_write_file.js and 40_read_file.js (#18018) 2023-03-05 03:37:37 +00:00
napi chore: forward v1.31.1 release commit to main (#17939) 2023-02-24 22:37:46 -05:00
net chore: forward v1.31.1 release commit to main (#17939) 2023-02-24 22:37:46 -05:00
node refactor(runtime): remove 40_files.js, 40_write_file.js and 40_read_file.js (#18018) 2023-03-05 03:37:37 +00:00
tls chore: forward v1.31.1 release commit to main (#17939) 2023-02-24 22:37:46 -05:00
url feat(ops): reland fast zero copy string arguments (#17996) 2023-03-03 19:04:10 +05:30
web feat(ops): relational ops (#18023) 2023-03-05 13:30:22 +05:30
webgpu chore: forward v1.31.1 release commit to main (#17939) 2023-02-24 22:37:46 -05:00
webidl fix(core): introduce SafeRegExp to primordials (#17592) 2023-03-01 08:14:16 +09:00
websocket chore: forward v1.31.1 release commit to main (#17939) 2023-02-24 22:37:46 -05:00
webstorage feat(ops): reland fast zero copy string arguments (#17996) 2023-03-03 19:04:10 +05:30