71 lines
1.5 KiB
Julia
71 lines
1.5 KiB
Julia
# This file is a part of Julia. License is MIT: https://julialang.org/license
|
|
|
|
Main.Core.eval(Main.Core, :(baremodule Inference
|
|
using Core.Intrinsics
|
|
import Core: print, println, show, write, unsafe_write, STDOUT, STDERR
|
|
|
|
ccall(:jl_set_istopmod, Void, (Bool,), false)
|
|
|
|
eval(x) = Core.eval(Inference, x)
|
|
eval(m, x) = Core.eval(m, x)
|
|
|
|
const include = Core.include
|
|
# conditional to allow redefining Core.Inference after base exists
|
|
isdefined(Main, :Base) || ((::Type{T})(arg) where {T} = convert(T, arg)::T)
|
|
|
|
function return_type end
|
|
|
|
## Load essential files and libraries
|
|
include("essentials.jl")
|
|
include("ctypes.jl")
|
|
include("generator.jl")
|
|
include("reflection.jl")
|
|
include("options.jl")
|
|
|
|
# core operations & types
|
|
include("promotion.jl")
|
|
include("tuple.jl")
|
|
include("pair.jl")
|
|
include("traits.jl")
|
|
include("range.jl")
|
|
include("expr.jl")
|
|
include("error.jl")
|
|
|
|
# core numeric operations & types
|
|
include("bool.jl")
|
|
include("number.jl")
|
|
include("int.jl")
|
|
include("operators.jl")
|
|
include("pointer.jl")
|
|
const checked_add = +
|
|
const checked_sub = -
|
|
|
|
# core array operations
|
|
include("indices.jl")
|
|
include("array.jl")
|
|
include("abstractarray.jl")
|
|
|
|
include("hashing.jl")
|
|
include("nofloat_hashing.jl")
|
|
|
|
# map-reduce operators
|
|
macro simd(forloop)
|
|
esc(forloop)
|
|
end
|
|
include("reduce.jl")
|
|
|
|
## core structures
|
|
include("bitarray.jl")
|
|
include("intset.jl")
|
|
include("associative.jl")
|
|
|
|
# core docsystem
|
|
include("docs/core.jl")
|
|
|
|
# compiler
|
|
include("inference.jl")
|
|
ccall(:jl_set_typeinf_func, Void, (Any,), typeinf_ext)
|
|
|
|
end # baremodule Inference
|
|
))
|