Project

General

Profile

Actions

Feature #21116

closed

Extract RJIT as a third-party gem

Added by k0kubun (Takashi Kokubun) 16 days ago. Updated 10 days ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:120891]

Description

Proposal

  • Extract the implementation of RJIT::C to ruby/rjit and publish it as a thirt-party gem rjit
  • Allow jit_exec() to call body->jit_entry even when --yjit is not given
  • Remove RJIT from the Ruby core
    • Remove --rjit flags and RubyVM::RJIT

Background

  • RJIT depends on fiddle, and fiddle has been extracted as a bundled gem. @hsbt (Hiroshi SHIBATA) and @nobu (Nobuyoshi Nakada) are struggling to maintain the dependency from the Ruby core to a bundled gem.
  • Integrating RJIT into the Ruby core has forced VM maintainers to update RJIT with every VM change, significantly increasing the maintenance burden.
  • I thought you couldn't implement the core of RJIT as a third-party gem when I introduced RJIT [Feature #19420]. However, now @tenderlovemaking (Aaron Patterson) and I think it's possible if we modify jit_exec() as explained in the proposal.

Related issues 2 (1 open1 closed)

Related to Ruby master - Feature #19420: Simplify MJIT implementationClosedActions
Related to Ruby master - Feature #21140: Add a method to get the address of certain JIT related functionsOpenActions
Actions

Also available in: Atom PDF

Like2
Like0Like0Like0Like0Like0Like0Like0