Sha256: b7d377dec9913d0664f5af583e1cab1fb04b5ec4da19cda432d7da07a0a558b2

Contents?: true

Size: 889 Bytes

Versions: 15

Compression:

Stored size: 889 Bytes

Contents

# frozen_string_literal: true

require "ruby-next"
require "ruby-next/utils"
require "ruby-next/language"

RubyNext::Language.runtime!

# Patch bootsnap to transform source code.
# Based on https://github.com/kddeisz/preval/blob/master/lib/preval.rb
load_iseq = RubyVM::InstructionSequence.method(:load_iseq)

if load_iseq.source_location[0].include?("/bootsnap/")
  Bootsnap::CompileCache::ISeq.singleton_class.prepend(
    Module.new do
      def input_to_storage(source, path)
        return super unless RubyNext::Language.transformable?(path)
        source = RubyNext::Language.transform(source, rewriters: RubyNext::Language.current_rewriters)

        RubyNext.debug_source(source, path)

        RubyVM::InstructionSequence.compile(source, path, path).to_binary
      rescue SyntaxError
        raise Bootsnap::CompileCache::Uncompilable, "syntax error"
      end
    end
  )
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
ruby-next-core-0.10.5 lib/ruby-next/language/bootsnap.rb
ruby-next-core-0.10.4 lib/ruby-next/language/bootsnap.rb
ruby-next-core-0.10.3 lib/ruby-next/language/bootsnap.rb
ruby-next-core-0.10.2 lib/ruby-next/language/bootsnap.rb
ruby-next-core-0.10.1 lib/ruby-next/language/bootsnap.rb
ruby-next-core-0.10.0 lib/ruby-next/language/bootsnap.rb
ruby-next-core-0.9.2 lib/ruby-next/language/bootsnap.rb
ruby-next-core-0.9.1 lib/ruby-next/language/bootsnap.rb
ruby-next-core-0.9.0 lib/ruby-next/language/bootsnap.rb
ruby-next-core-0.9.0.pre lib/ruby-next/language/bootsnap.rb
ruby-next-core-0.8.0 lib/ruby-next/language/bootsnap.rb
ruby-next-core-0.7.0 lib/ruby-next/language/bootsnap.rb
ruby-next-core-0.6.0 lib/ruby-next/language/bootsnap.rb
ruby-next-core-0.5.3 lib/ruby-next/language/bootsnap.rb
ruby-next-core-0.5.2 lib/ruby-next/language/bootsnap.rb