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

[GR-32682] [GR-52145] Add initial version of the Bytecode DSL. #9556

Merged
merged 4 commits into from
Nov 27, 2024

Conversation

graalvmbot
Copy link
Collaborator

@graalvmbot graalvmbot commented Aug 23, 2024

This pull request introduces Bytecode DSL, a new framework for implementing bytecode interpreters. Bytecode DSL consumes a user-provided specification (including a set of node-like operations) to generate a bytecode interpreter.

Tips for reviewing:

  1. The first commit is the one of interest. The next two two commits are migration code, and the ones after are bug/gate/feedback fixes (which will be squashed into the first commit before merge). It may be helpful to read some of the docs and tutorials to get started.
  2. The generated code is intended to be human readable, so it may be helpful to check out and build the test interpreters directly if you wish to look at generated code.
  3. @Bind.DefaultExpression was added in this PR. The changes are (unfortunately) too entangled with Bytecode DSL to easily pull out, so some of the changes here just remove redundant bind expressions.

Also read the changelog: https://github.com/oracle/graal/pull/9556/files#diff-0152a89226e848ea31c4005b3c57079db79ff8112c4278d28237c8b9ed24dc16

Features:

  • Tiered Interpretation (uncached -> cached)
  • Boxing elimination + Quickening
  • Reparsing (Lazy sources and Instrumentation)
  • Serialization/Deserialization
  • Coroutines
  • Tag and Bytecode Based Instrumentation
  • Local or Global Scoping of Variables
  • AST node proxying (for migration)
  • Several Tutorials & Guides

Continuation from:
#6697

@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Aug 23, 2024
@graalvmbot graalvmbot force-pushed the mdsouza/GR-32682-bytecode-dsl branch from b40cfe9 to 9e57dc7 Compare August 28, 2024 14:52
@graalvmbot graalvmbot changed the title [GR-32682] Bytecode DSL [GR-32682][GR-52145] Add initial version of the Bytecode DSL. Sep 5, 2024
@graalvmbot graalvmbot force-pushed the mdsouza/GR-32682-bytecode-dsl branch from b2da720 to e3611c3 Compare September 6, 2024 19:41
@graalvmbot graalvmbot force-pushed the mdsouza/GR-32682-bytecode-dsl branch from 2b4c31c to d1e0b09 Compare September 25, 2024 20:21
@graalvmbot graalvmbot force-pushed the mdsouza/GR-32682-bytecode-dsl branch 2 times, most recently from 2288bd8 to ab347b2 Compare October 24, 2024 20:32
@graalvmbot graalvmbot force-pushed the mdsouza/GR-32682-bytecode-dsl branch from 035e774 to 86be22a Compare October 30, 2024 18:29
@graalvmbot graalvmbot changed the title [GR-32682][GR-52145] Add initial version of the Bytecode DSL. [GR-32682] [GR-52145] Add initial version of the Bytecode DSL. Nov 1, 2024
@graalvmbot graalvmbot force-pushed the mdsouza/GR-32682-bytecode-dsl branch from c4b9198 to 961aa71 Compare November 5, 2024 20:48
@graalvmbot graalvmbot force-pushed the mdsouza/GR-32682-bytecode-dsl branch 3 times, most recently from 64af3a5 to 7aa5dc9 Compare November 21, 2024 15:53
@graalvmbot graalvmbot force-pushed the mdsouza/GR-32682-bytecode-dsl branch 2 times, most recently from 5b90d0f to a5d51b0 Compare November 25, 2024 20:29
@graalvmbot graalvmbot force-pushed the mdsouza/GR-32682-bytecode-dsl branch from a5d51b0 to dc55205 Compare November 27, 2024 03:28
DSouzaM and others added 4 commits November 27, 2024 09:52
Co-authored-by: Christian Humer <[email protected]>
Co-authored-by: Nikola Bebić <[email protected]>
Co-authored-by: Christian Humer <[email protected]>
Co-authored-by: Nikola Bebić <[email protected]>
Co-authored-by: Christian Humer <[email protected]>
Co-authored-by: Nikola Bebić <[email protected]>
@graalvmbot graalvmbot force-pushed the mdsouza/GR-32682-bytecode-dsl branch from dc55205 to 59b5d42 Compare November 27, 2024 15:05
@graalvmbot graalvmbot closed this Nov 27, 2024
@graalvmbot graalvmbot deleted the mdsouza/GR-32682-bytecode-dsl branch November 27, 2024 23:15
@graalvmbot graalvmbot merged commit 7ea55ad into master Nov 27, 2024
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
OCA Verified All contributors have signed the Oracle Contributor Agreement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants