Module: Libv8::Arch

Included in:
Builder
Defined in:
ext/libv8/arch.rb

Class Method Summary collapse

Class Method Details

.arm?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'ext/libv8/arch.rb', line 32

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

.libv8_archObject



36
37
38
39
40
41
# File 'ext/libv8/arch.rb', line 36

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

.rubinius?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'ext/libv8/arch.rb', line 19

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

.x64?Boolean

TODO fix false positive on 64-bit ARM

Returns:

  • (Boolean)


24
25
26
27
28
29
30
# File 'ext/libv8/arch.rb', line 24

def x64?
  if rubinius?
    x86_64_from_build_cpu || x86_64_from_arch_flag
  else
    x86_64_from_byte_length
  end
end

.x86_64_from_arch_flagObject



15
16
17
# File 'ext/libv8/arch.rb', line 15

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

.x86_64_from_build_cpuObject



7
8
9
# File 'ext/libv8/arch.rb', line 7

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

.x86_64_from_byte_lengthObject



11
12
13
# File 'ext/libv8/arch.rb', line 11

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