Code to read the `jl_compileropts` structure in julia at runtime
June 7, 2014 ยท View on GitHub
#!/usr/bin/env julia
immutable jl_compileropts build_path::ASCIIString cpu_target::ASCIIString code_coverage::Int8 check_bounds::Int8 int_literals::Int32 end
function load_compileropts() opts_addr = cglobal(:jl_compileropts)
build_path = unsafe_load(convert(Ptr{Ptr{Uint8}}, opts_addr))
if build_path != C_NULL
build_path = bytestring(build_path)
else
build_path = ""
end
opts_addr += sizeof(Ptr{Uint8})
cpu_target = unsafe_load(convert(Ptr{Ptr{Uint8}}, opts_addr))
if cpu_target != C_NULL
cpu_target = bytestring(cpu_target)
else
cpu_target = ""
end
opts_addr += sizeof(Ptr{Uint8})
code_coverage = unsafe_load(convert(Ptr{Int8}, opts_addr))
opts_addr += sizeof(Int8)
check_bounds = unsafe_load(convert(Ptr{Int8}, opts_addr))
opts_addr += sizeof(Int8)
int_literals = unsafe_load(convert(Ptr{Int32}, opts_addr))
opts_addr += sizeof(Int32)
return jl_compileropts(build_path, cpu_target, code_coverage, check_bounds, int_literals)
end
println("cpu_target: $(load_compileropts().cpu_target)")