Age | Commit message (Collapse) | Author |
|
Implementation of generics for `#[op2]`, along with some refactoring to
improve the ergonomics of ops with generics parameters:
- The ops have generics on the struct rather than the associated
methods, which allows us to trait-ify ops (impossible when they are on
the methods)
- The decl() method can become a trait-associated const field which
unlocks future optimizations
Callers of ops need to switch from:
`op_net_connect_tcp::call::<TestPermission>(conn_state, ip_addr)` to
`op_net_connect_tcp::<TestPermission>::call(conn_state, ip_addr)`.
|
|
The following code:
```rust
use deno_core::op;
#[op]
fn ops_serde_v8(value: serde_v8::Value) {
//
}
fn main() {
//
}
```
...with the following `Cargo.toml`:
```toml
[package]
name = "playground"
version = "0.1.0"
edition = "2021"
[dependencies]
deno_core = "0.191.0"
serde_v8 = "0.102.0"
```
...will not compile with the error:
```
error[E0433]: failed to resolve: use of undeclared crate or module `v8`
--> src/main.rs:3:1
|
3 | #[op]
| ^^^^^ use of undeclared crate or module `v8`
|
= note: this error originates in the attribute macro `op` (in Nightly builds, run with -Z macro-backtrace for more info)
```
This PR is fixing the above issue by properly quoting
`deno_core::v8::Value` instead of `v8::Value`.
|
|
JsRuntimeForSnapshot (#19353)
Addresses
https://github.com/denoland/deno/pull/19308#discussion_r1212248194.
Removes force_op_registration as it is no longer necessary.
|
|
Performance:
```
async_ops.js: 760k -> 1030k (!)
async_ops_deferred.js: 730k -> 770k
Deno.serve bench: 118k -> 124k
WS test w/ third_party/prebuilt/mac/load_test 100 localhost 8000 0 0: unchanged
Startup time: approx 0.5ms slower (13.7 -> 14.2ms)
```
|
|
Co-authored-by: Levente Kurusa <lkurusa@kernelstuff.org>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
|
|
|
|
Relanding 4b6305f4f25fc76f974bbdcc9cdb139d5ab8f5f4
|
|
This reverts commit 4b6305f4f25fc76f974bbdcc9cdb139d5ab8f5f4.
|
|
This commit changes the build process in a way that preserves already
registered ops in the snapshot. This allows us to skip creating hundreds of
"v8::String" on each startup, but sadly there is still some op registration
going on startup (however we're registering 49 ops instead of >200 ops).
This situation could be further improved, by moving some of the ops
from "runtime/" to a separate extension crates.
---------
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
|
|
|
|
https://github.com/denoland/deno/pull/18023#discussion_r1125611859
|
|
Upgrade fast_call tests to full (both tier) codegen tests.
|
|
|