From 0b2aea861cde3c001e59eafb19f4fa1fa615a5a5 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Thu, 22 Dec 2022 14:30:07 -0800 Subject: [PATCH] Polish the public docs for MJIT [ci skip] Now every private interface is cleaned up, and the public interface is documented. --- .document | 1 + mjit.rb | 7 ++++++- tool/ruby_vm/views/lib/ruby_vm/mjit/instruction.rb.erb | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.document b/.document index 7c6d9967b1..d5f7a5543a 100644 --- a/.document +++ b/.document @@ -18,6 +18,7 @@ gc.rb io.rb kernel.rb marshal.rb +mjit.rb numeric.rb nilclass.rb pack.rb diff --git a/mjit.rb b/mjit.rb index 7391451a6c..d15abac888 100644 --- a/mjit.rb +++ b/mjit.rb @@ -1,12 +1,15 @@ module RubyVM::MJIT + # Return true if MJIT is enabled. def self.enabled? Primitive.cexpr! 'RBOOL(mjit_enabled)' end + # Stop generating JITed code. def self.pause(wait: true) Primitive.cexpr! 'mjit_pause(RTEST(wait))' end + # Start generating JITed code again after pause. def self.resume Primitive.cexpr! 'mjit_resume()' end @@ -20,7 +23,9 @@ if RubyVM::MJIT.enabled? return # miniruby doesn't support MJIT end - RubyVM::MJIT::C = Object.new # forward declaration for ruby_vm/mjit/compiler + # forward declaration for ruby_vm/mjit/compiler + RubyVM::MJIT::C = Object.new # :nodoc: + require 'ruby_vm/mjit/c_type' require 'ruby_vm/mjit/instruction' require 'ruby_vm/mjit/compiler' diff --git a/tool/ruby_vm/views/lib/ruby_vm/mjit/instruction.rb.erb b/tool/ruby_vm/views/lib/ruby_vm/mjit/instruction.rb.erb index dac53668a0..4b20e896a2 100644 --- a/tool/ruby_vm/views/lib/ruby_vm/mjit/instruction.rb.erb +++ b/tool/ruby_vm/views/lib/ruby_vm/mjit/instruction.rb.erb @@ -1,4 +1,4 @@ -module RubyVM::MJIT +module RubyVM::MJIT # :nodoc: all Instruction = Struct.new( :name, :bin,