Add: julia-0.6.2
Former-commit-id: ccc667cf67d569f3fb3df39aa57c2134755a7551
This commit is contained in:
411
julia-0.6.2/share/julia/base/sysimg.jl
Normal file
411
julia-0.6.2/share/julia/base/sysimg.jl
Normal file
@@ -0,0 +1,411 @@
|
||||
# This file is a part of Julia. License is MIT: https://julialang.org/license
|
||||
|
||||
baremodule Base
|
||||
|
||||
using Core.Intrinsics
|
||||
ccall(:jl_set_istopmod, Void, (Bool,), true)
|
||||
function include(path::AbstractString)
|
||||
local result
|
||||
if INCLUDE_STATE === 1
|
||||
result = Core.include(path)
|
||||
elseif INCLUDE_STATE === 2
|
||||
result = _include(path)
|
||||
elseif INCLUDE_STATE === 3
|
||||
result = include_from_node1(path)
|
||||
end
|
||||
result
|
||||
end
|
||||
INCLUDE_STATE = 1 # include = Core.include
|
||||
|
||||
include("coreio.jl")
|
||||
|
||||
eval(x) = Core.eval(Base, x)
|
||||
eval(m, x) = Core.eval(m, x)
|
||||
VecElement{T}(arg) where {T} = VecElement{T}(convert(T, arg))
|
||||
convert(::Type{T}, arg) where {T<:VecElement} = T(arg)
|
||||
convert(::Type{T}, arg::T) where {T<:VecElement} = arg
|
||||
|
||||
# init core docsystem
|
||||
import Core: @doc, @__doc__, @doc_str
|
||||
if isdefined(Core, :Inference)
|
||||
import Core.Inference.CoreDocs
|
||||
Core.atdoc!(CoreDocs.docm)
|
||||
end
|
||||
|
||||
include("exports.jl")
|
||||
|
||||
if false
|
||||
# simple print definitions for debugging. enable these if something
|
||||
# goes wrong during bootstrap before printing code is available.
|
||||
# otherwise, they just just eventually get (noisily) overwritten later
|
||||
global show, print, println
|
||||
show(io::IO, x::ANY) = Core.show(io, x)
|
||||
print(io::IO, a::ANY...) = Core.print(io, a...)
|
||||
println(io::IO, x::ANY...) = Core.println(io, x...)
|
||||
end
|
||||
|
||||
## Load essential files and libraries
|
||||
include("essentials.jl")
|
||||
include("ctypes.jl")
|
||||
include("base.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("twiceprecision.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")
|
||||
include("refpointer.jl")
|
||||
include("checked.jl")
|
||||
importall .Checked
|
||||
|
||||
# buggy handling of ispure in type-inference means this should be
|
||||
# after re-defining the basic operations that they might try to call
|
||||
(::Type{T})(arg) where {T} = convert(T, arg)::T # Hidden from the REPL.
|
||||
|
||||
# vararg Symbol constructor
|
||||
Symbol(x...) = Symbol(string(x...))
|
||||
|
||||
# Define the broadcast function, which is mostly implemented in
|
||||
# broadcast.jl, so that we can overload broadcast methods for
|
||||
# specific array types etc.
|
||||
# --Here, just define fallback routines for broadcasting with no arguments
|
||||
broadcast(f) = f()
|
||||
broadcast!(f, X::AbstractArray) = (@inbounds for I in eachindex(X); X[I] = f(); end; X)
|
||||
|
||||
# array structures
|
||||
include("indices.jl")
|
||||
include("array.jl")
|
||||
include("abstractarray.jl")
|
||||
include("subarray.jl")
|
||||
|
||||
# Array convenience converting constructors
|
||||
Array{T}(m::Integer) where {T} = Array{T,1}(Int(m))
|
||||
Array{T}(m::Integer, n::Integer) where {T} = Array{T,2}(Int(m), Int(n))
|
||||
Array{T}(m::Integer, n::Integer, o::Integer) where {T} = Array{T,3}(Int(m), Int(n), Int(o))
|
||||
Array{T}(d::Integer...) where {T} = Array{T}(convert(Tuple{Vararg{Int}}, d))
|
||||
|
||||
Vector() = Array{Any,1}(0)
|
||||
Vector{T}(m::Integer) where {T} = Array{T,1}(Int(m))
|
||||
Vector(m::Integer) = Array{Any,1}(Int(m))
|
||||
Matrix{T}(m::Integer, n::Integer) where {T} = Matrix{T}(Int(m), Int(n))
|
||||
Matrix(m::Integer, n::Integer) = Matrix{Any}(Int(m), Int(n))
|
||||
|
||||
# numeric operations
|
||||
include("hashing.jl")
|
||||
include("rounding.jl")
|
||||
importall .Rounding
|
||||
include("float.jl")
|
||||
include("complex.jl")
|
||||
include("rational.jl")
|
||||
include("multinverses.jl")
|
||||
using .MultiplicativeInverses
|
||||
include("abstractarraymath.jl")
|
||||
include("arraymath.jl")
|
||||
|
||||
# define MIME"foo/bar" early so that we can overload 3-arg show
|
||||
struct MIME{mime} end
|
||||
macro MIME_str(s)
|
||||
:(MIME{$(Expr(:quote, Symbol(s)))})
|
||||
end
|
||||
|
||||
include("char.jl")
|
||||
include("strings/string.jl")
|
||||
|
||||
# SIMD loops
|
||||
include("simdloop.jl")
|
||||
importall .SimdLoop
|
||||
|
||||
# map-reduce operators
|
||||
include("reduce.jl")
|
||||
|
||||
## core structures
|
||||
include("reshapedarray.jl")
|
||||
include("bitarray.jl")
|
||||
include("intset.jl")
|
||||
include("associative.jl")
|
||||
include("dict.jl")
|
||||
include("set.jl")
|
||||
include("iterators.jl")
|
||||
using .Iterators: zip, enumerate
|
||||
using .Iterators: Flatten, product # for generators
|
||||
|
||||
# Definition of StridedArray
|
||||
StridedReshapedArray{T,N,A<:Union{DenseArray,FastContiguousSubArray}} = ReshapedArray{T,N,A}
|
||||
StridedArray{T,N,A<:Union{DenseArray,StridedReshapedArray},
|
||||
I<:Tuple{Vararg{Union{RangeIndex, AbstractCartesianIndex}}}} =
|
||||
Union{DenseArray{T,N}, SubArray{T,N,A,I}, StridedReshapedArray{T,N}}
|
||||
StridedVector{T,A<:Union{DenseArray,StridedReshapedArray},
|
||||
I<:Tuple{Vararg{Union{RangeIndex, AbstractCartesianIndex}}}} =
|
||||
Union{DenseArray{T,1}, SubArray{T,1,A,I}, StridedReshapedArray{T,1}}
|
||||
StridedMatrix{T,A<:Union{DenseArray,StridedReshapedArray},
|
||||
I<:Tuple{Vararg{Union{RangeIndex, AbstractCartesianIndex}}}} =
|
||||
Union{DenseArray{T,2}, SubArray{T,2,A,I}, StridedReshapedArray{T,2}}
|
||||
StridedVecOrMat{T} = Union{StridedVector{T}, StridedMatrix{T}}
|
||||
|
||||
# For OS specific stuff
|
||||
include(string((length(Core.ARGS)>=2 ? Core.ARGS[2] : ""), "build_h.jl")) # include($BUILDROOT/base/build_h.jl)
|
||||
include(string((length(Core.ARGS)>=2 ? Core.ARGS[2] : ""), "version_git.jl")) # include($BUILDROOT/base/version_git.jl)
|
||||
|
||||
include("osutils.jl")
|
||||
include("c.jl")
|
||||
include("sysinfo.jl")
|
||||
|
||||
if !isdefined(Core, :Inference)
|
||||
include("docs/core.jl")
|
||||
Core.atdoc!(CoreDocs.docm)
|
||||
end
|
||||
|
||||
# Core I/O
|
||||
include("io.jl")
|
||||
include("iostream.jl")
|
||||
include("iobuffer.jl")
|
||||
|
||||
# strings & printing
|
||||
include("intfuncs.jl")
|
||||
include("strings/strings.jl")
|
||||
include("parse.jl")
|
||||
include("shell.jl")
|
||||
include("regex.jl")
|
||||
include("show.jl")
|
||||
|
||||
# multidimensional arrays
|
||||
include("cartesian.jl")
|
||||
using .Cartesian
|
||||
include("multidimensional.jl")
|
||||
include("permuteddimsarray.jl")
|
||||
using .PermutedDimsArrays
|
||||
|
||||
# nullable types
|
||||
include("nullable.jl")
|
||||
|
||||
include("broadcast.jl")
|
||||
importall .Broadcast
|
||||
|
||||
# base64 conversions (need broadcast)
|
||||
include("base64.jl")
|
||||
importall .Base64
|
||||
|
||||
# version
|
||||
include("version.jl")
|
||||
|
||||
# system & environment
|
||||
include("libc.jl")
|
||||
using .Libc: getpid, gethostname, time
|
||||
include("libdl.jl")
|
||||
using .Libdl: DL_LOAD_PATH
|
||||
include("env.jl")
|
||||
|
||||
# Scheduling
|
||||
include("libuv.jl")
|
||||
include("event.jl")
|
||||
include("task.jl")
|
||||
include("lock.jl")
|
||||
include("threads.jl")
|
||||
include("weakkeydict.jl")
|
||||
|
||||
# I/O
|
||||
include("stream.jl")
|
||||
include("socket.jl")
|
||||
include("filesystem.jl")
|
||||
importall .Filesystem
|
||||
include("process.jl")
|
||||
include("multimedia.jl")
|
||||
importall .Multimedia
|
||||
include("grisu/grisu.jl")
|
||||
import .Grisu.print_shortest
|
||||
include("methodshow.jl")
|
||||
|
||||
# core math functions
|
||||
include("floatfuncs.jl")
|
||||
include("math.jl")
|
||||
importall .Math
|
||||
const (√)=sqrt
|
||||
const (∛)=cbrt
|
||||
|
||||
let SOURCE_PATH = ""
|
||||
global function _include(path)
|
||||
prev = SOURCE_PATH
|
||||
path = joinpath(dirname(prev),path)
|
||||
SOURCE_PATH = path
|
||||
Core.include(path)
|
||||
SOURCE_PATH = prev
|
||||
end
|
||||
end
|
||||
INCLUDE_STATE = 2 # include = _include (from lines above)
|
||||
|
||||
# reduction along dims
|
||||
include("reducedim.jl") # macros in this file relies on string.jl
|
||||
|
||||
# basic data structures
|
||||
include("ordering.jl")
|
||||
importall .Order
|
||||
|
||||
# Combinatorics
|
||||
include("sort.jl")
|
||||
importall .Sort
|
||||
|
||||
function deepcopy_internal end
|
||||
|
||||
# BigInts and BigFloats
|
||||
include("gmp.jl")
|
||||
importall .GMP
|
||||
include("mpfr.jl")
|
||||
importall .MPFR
|
||||
big(n::Integer) = convert(BigInt,n)
|
||||
big(x::AbstractFloat) = convert(BigFloat,x)
|
||||
big(q::Rational) = big(numerator(q))//big(denominator(q))
|
||||
|
||||
include("combinatorics.jl")
|
||||
|
||||
# more hashing definitions
|
||||
include("hashing2.jl")
|
||||
|
||||
# random number generation
|
||||
include("dSFMT.jl")
|
||||
include("random.jl")
|
||||
importall .Random
|
||||
|
||||
# (s)printf macros
|
||||
include("printf.jl")
|
||||
importall .Printf
|
||||
|
||||
# metaprogramming
|
||||
include("meta.jl")
|
||||
|
||||
# enums
|
||||
include("Enums.jl")
|
||||
importall .Enums
|
||||
|
||||
# concurrency and parallelism
|
||||
include("serialize.jl")
|
||||
importall .Serializer
|
||||
include("channels.jl")
|
||||
|
||||
# memory-mapped and shared arrays
|
||||
include("mmap.jl")
|
||||
import .Mmap
|
||||
|
||||
# utilities - timing, help, edit
|
||||
include("datafmt.jl")
|
||||
importall .DataFmt
|
||||
include("deepcopy.jl")
|
||||
include("interactiveutil.jl")
|
||||
include("summarysize.jl")
|
||||
include("replutil.jl")
|
||||
include("test.jl")
|
||||
include("i18n.jl")
|
||||
using .I18n
|
||||
|
||||
# frontend
|
||||
include("initdefs.jl")
|
||||
include("Terminals.jl")
|
||||
include("LineEdit.jl")
|
||||
include("REPLCompletions.jl")
|
||||
include("REPL.jl")
|
||||
include("client.jl")
|
||||
|
||||
# Stack frames and traces
|
||||
include("stacktraces.jl")
|
||||
importall .StackTraces
|
||||
|
||||
# misc useful functions & macros
|
||||
include("util.jl")
|
||||
|
||||
# dense linear algebra
|
||||
include("linalg/linalg.jl")
|
||||
importall .LinAlg
|
||||
const ⋅ = dot
|
||||
const × = cross
|
||||
|
||||
# statistics
|
||||
include("statistics.jl")
|
||||
|
||||
# irrational mathematical constants
|
||||
include("irrationals.jl")
|
||||
|
||||
# signal processing
|
||||
include("dft.jl")
|
||||
importall .DFT
|
||||
include("dsp.jl")
|
||||
importall .DSP
|
||||
|
||||
# Fast math
|
||||
include("fastmath.jl")
|
||||
importall .FastMath
|
||||
|
||||
# libgit2 support
|
||||
include("libgit2/libgit2.jl")
|
||||
|
||||
# package manager
|
||||
include("pkg/pkg.jl")
|
||||
|
||||
# profiler
|
||||
include("profile.jl")
|
||||
importall .Profile
|
||||
|
||||
# dates
|
||||
include("dates/Dates.jl")
|
||||
import .Dates: Date, DateTime, DateFormat, @dateformat_str, now
|
||||
|
||||
# sparse matrices, vectors, and sparse linear algebra
|
||||
include("sparse/sparse.jl")
|
||||
importall .SparseArrays
|
||||
|
||||
include("asyncmap.jl")
|
||||
|
||||
include("distributed/Distributed.jl")
|
||||
importall .Distributed
|
||||
include("sharedarray.jl")
|
||||
|
||||
# code loading
|
||||
include("loading.jl")
|
||||
|
||||
# worker threads
|
||||
include("threadcall.jl")
|
||||
|
||||
# deprecated functions
|
||||
include("deprecated.jl")
|
||||
|
||||
# Some basic documentation
|
||||
include("docs/helpdb.jl")
|
||||
include("docs/basedocs.jl")
|
||||
|
||||
# Documentation -- should always be included last in sysimg.
|
||||
include("markdown/Markdown.jl")
|
||||
include("docs/Docs.jl")
|
||||
using .Docs, .Markdown
|
||||
isdefined(Core, :Inference) && Docs.loaddocs(Core.Inference.CoreDocs.DOCS)
|
||||
|
||||
function __init__()
|
||||
# Base library init
|
||||
reinit_stdio()
|
||||
Multimedia.reinit_displays() # since Multimedia.displays uses STDOUT as fallback
|
||||
early_init()
|
||||
init_load_path()
|
||||
Distributed.init_parallel()
|
||||
init_threadcall()
|
||||
end
|
||||
|
||||
INCLUDE_STATE = 3 # include = include_from_node1
|
||||
include("precompile.jl")
|
||||
|
||||
end # baremodule Base
|
||||
|
||||
using Base
|
||||
importall Base.Operators
|
||||
|
||||
Base.isfile("userimg.jl") && Base.include("userimg.jl")
|
||||
Reference in New Issue
Block a user