Sha256: b1579df4b3f842d86be6bef289a39232661467800337132e0dd7bd90262fb35c

Contents?: true

Size: 816 Bytes

Versions: 81

Compression:

Stored size: 816 Bytes

Contents

require 'rbconfig'

module Libv8
  module Arch
    module_function

    def x86_64_from_build_cpu
      RbConfig::MAKEFILE_CONFIG['build_cpu'] == 'x86_64'
    end

    def x86_64_from_byte_length
      ['foo'].pack('p').size == 8
    end

    def x86_64_from_arch_flag
      RbConfig::MAKEFILE_CONFIG['ARCH_FLAG'] =~ /x86_64/
    end

    def rubinius?
      Object.const_defined?(:RUBY_ENGINE) && RUBY_ENGINE == "rbx"
    end

    # TODO fix false positive on 64-bit ARM
    def x64?
      if rubinius?
        x86_64_from_build_cpu || x86_64_from_arch_flag
      else
        x86_64_from_byte_length
      end
    end

    def arm?
      RbConfig::MAKEFILE_CONFIG['build_cpu'] =~ /^arm/
    end

    def libv8_arch
      if arm? then "arm"
      elsif x64? then "x64"
      else "ia32"
      end
    end
  end
end

Version data entries

81 entries across 80 versions & 4 rubygems

Version Path
libv8-3.16.14.19.1-x86_64-linux ext/libv8/arch.rb
libv8-3.16.14.19.1-x86_64-darwin ext/libv8/arch.rb
libv8-3.16.14.19.1-x86-linux ext/libv8/arch.rb
libv8-3.16.14.19.1-universal-darwin ext/libv8/arch.rb
libv8-3.16.14.19.1-armv7l-linux ext/libv8/arch.rb
libv8-3.16.14.19.1-arm-linux ext/libv8/arch.rb
libv8-3.16.14.19.1-amd64-freebsd-11 ext/libv8/arch.rb
libv8-3.16.14.19.1-amd64-freebsd-10 ext/libv8/arch.rb
libv8-3.16.14.19.1 ext/libv8/arch.rb
libv8-3.16.14.19-x86_64-darwin-18 ext/libv8/arch.rb
libv8-3.16.14.19-x86_64-darwin-17 ext/libv8/arch.rb
libv8-3.16.14.19-universal-darwin-17 ext/libv8/arch.rb
libv8-3.16.14.19-x86_64-darwin-16 ext/libv8/arch.rb
libv8-3.16.14.19-x86_64-darwin-15 ext/libv8/arch.rb
libv8-3.16.14.19-universal.x86_64-darwin-16 ext/libv8/arch.rb
libv8-3.16.14.19-universal.x86_64-darwin-15 ext/libv8/arch.rb
libv8-3.16.14.19-x86-linux ext/libv8/arch.rb
libv8-3.16.14.19-x86_64-linux ext/libv8/arch.rb
libv8-3.16.14.19 ext/libv8/arch.rb
libv8-3.16.14.19-armv7l-linux ext/libv8/arch.rb