Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(ops): Adding op2 macro and implementing in a couple of places #19534

Merged
merged 6 commits into from
Jun 24, 2023

Conversation

mmastrac
Copy link
Contributor

@mmastrac mmastrac commented Jun 16, 2023

This is a new op system that will eventually replace #[op].

Features

  • More maintainable, generally less-coupled code
  • More modern Rust proc-macro libraries
  • Enforces correct fast labelling for fast ops, allowing for visual scanning of fast ops
  • Explicit marking of #[string], #[serde] and #[smi] parameters.

This first version of op2 supports integer and Option parameters only, and allows us to start working on converting ops and adding features.

ops/op2/signature.rs Outdated Show resolved Hide resolved
@mmastrac mmastrac changed the title WIP: Refactor op signature parsing refactor(ops): Adding op2 macro as a new, more maintainable op system Jun 22, 2023
@mmastrac mmastrac changed the title refactor(ops): Adding op2 macro as a new, more maintainable op system refactor(ops): Adding op2 macro and implementing in a couple of places Jun 22, 2023
bartlomieju added a commit that referenced this pull request Jun 22, 2023
…19566)

`ZeroCopyBuf` was convenient to use, but sometimes it did hide details
that some copies were necessary in certain cases. Also it made it way to easy
for the caller to pass around and convert into different values. This commit
splits `ZeroCopyBuf` into `JsBuffer` (an array buffer coming from V8) and
`ToJsBuffer` (a Rust buffer that will be converted into a V8 array buffer).

As a result some magical conversions were removed (they were never used)
limiting the API surface and preparing for changes in #19534.
ops/op2/dispatch_fast.rs Outdated Show resolved Hide resolved
ops/op2/dispatch_fast.rs Outdated Show resolved Hide resolved
ops/op2/dispatch_fast.rs Show resolved Hide resolved
ops/op2/generator_state.rs Outdated Show resolved Hide resolved
ops/op2/mod.rs Show resolved Hide resolved
Copy link
Member

@bartlomieju bartlomieju left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mmastrac mmastrac merged commit 65d9bfb into denoland:main Jun 24, 2023
hardfist pushed a commit to hardfist/deno that referenced this pull request Aug 7, 2024
…enoland#19566)

`ZeroCopyBuf` was convenient to use, but sometimes it did hide details
that some copies were necessary in certain cases. Also it made it way to easy
for the caller to pass around and convert into different values. This commit
splits `ZeroCopyBuf` into `JsBuffer` (an array buffer coming from V8) and
`ToJsBuffer` (a Rust buffer that will be converted into a V8 array buffer).

As a result some magical conversions were removed (they were never used)
limiting the API surface and preparing for changes in denoland#19534.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants