Core.Builtins
The following builtin functions are considered unstable, but provide the basic definitions for what defines the abilities and behaviors of a Julia program. They are typically accessed through a higher level generic API.
Raw access to memory
Core.Intrinsics.pointerref — Function
Core.Intrinsics.pointerref(p::Ptr{T}, i::Int, align::Int)Load a value of type T from the address of the ith element (1-indexed) starting at p. This is equivalent to the C expression p[i-1].
The alignment must be a power of two, or 0, indicating the default alignment for T. If p[i-1] is out of bounds, invalid, or is not aligned, the behavior is undefined. An alignment of 1 is always safe.
See also unsafe_load.
Core.Intrinsics.pointerset — Function
Core.Intrinsics.pointerset(p::Ptr{T}, x::T, i::Int, align::Int)Store a value of type T to the address of the ith element (1-indexed) starting at p. This is equivalent to the C expression p[i-1] = x.
The alignment must be a power of two, or 0, indicating the default alignment for T. If p[i-1] is out of bounds, invalid, or is not aligned, the behavior is undefined. An alignment of 1 is always safe.
See also unsafe_store!.
Core.Intrinsics.atomic_pointerref — Function
Core.Intrinsics.atomic_pointerref(pointer::Ptr{T}, order::Symbol) --> TSee unsafe_load.
Core.Intrinsics.atomic_pointerset — Function
Core.Intrinsics.atomic_pointerset(pointer::Ptr{T}, new::T, order::Symbol) --> pointerSee unsafe_store!.
Core.Intrinsics.atomic_pointerswap — Function
Core.Intrinsics.atomic_pointerswap(pointer::Ptr{T}, new::T, order::Symbol) --> oldSee unsafe_swap!.
Core.Intrinsics.atomic_pointermodify — Function
Core.Intrinsics.atomic_pointermodify(pointer::Ptr{T}, function::(old::T,arg::S)->T, arg::S, order::Symbol) --> oldSee unsafe_modify!.
Core.Intrinsics.atomic_pointerreplace — Function
Core.Intrinsics.atomic_pointerreplace(pointer::Ptr{T}, expected::Any, new::T, success_order::Symbol, failure_order::Symbol) --> (old, cmp)See unsafe_replace!.
Managed memory
Core.memorynew — Function
Core.memorynew(::Type{T} where T <: GenericMemory, n::Int)Construct an uninitialized GenericMemory of length n.
See also Memory, Memory{T}(undef, n).
Core.memoryrefnew — Function
Core.memoryrefnew(::GenericMemory)
Core.memoryrefnew(::GenericMemoryRef, index::Int, [boundscheck::Bool])Return a GenericMemoryRef for a GenericMemory. See memoryref.
Core.memoryrefoffset — Function
Core..memoryrefoffset(::GenericMemoryRef)Return the offset index that was used to construct the MemoryRef. See memoryref.
Core.memoryrefget — Function
Core.memoryrefget(::GenericMemoryRef, ordering::Symbol, boundscheck::Bool)Return the value stored at the MemoryRef, throwing a BoundsError if the Memory is empty. See ref[]. The memory ordering specified must be compatible with the isatomic parameter.
Core.memoryrefset! — Function
Core.memoryrefset!(::GenericMemoryRef, value, ordering::Symbol, boundscheck::Bool)Store the value to the MemoryRef, throwing a BoundsError if the Memory is empty. See ref[] = value. The memory ordering specified must be compatible with the isatomic parameter.
Core.memoryref_isassigned — Function
Core.memoryref_isassigned(::GenericMemoryRef, ordering::Symbol, boundscheck::Bool)Return whether there is a value stored at the MemoryRef, returning false if the Memory is empty. See isassigned(::Base.RefValue), Core.memoryrefget. The memory ordering specified must be compatible with the isatomic parameter.
Core.memoryrefswap! — Function
Core.memoryrefswap!(::GenericMemoryRef, value, ordering::Symbol, boundscheck::Bool)Atomically perform the operations to simultaneously get and set a MemoryRef value.
See also swapproperty! and Core.memoryrefset!.
Core.memoryrefmodify! — Function
Core.memoryrefmodify!(::GenericMemoryRef, op, value, ordering::Symbol, boundscheck::Bool)::PairAtomically perform the operations to get and set a MemoryRef value after applying the function op.
See also modifyproperty! and Core.memoryrefset!.
Core.memoryrefreplace! — Function
Core.memoryrefreplace!(::GenericMemoryRef, expected, desired,
success_order::Symbol, fail_order::Symbol=success_order, boundscheck::Bool) -> (; old, success::Bool)Atomically perform the operations to get and conditionally set a MemoryRef value.
See also replaceproperty! and Core.memoryrefset!.
Core.memoryrefsetonce! — Function
Core.memoryrefsetonce!(::GenericMemoryRef, value,
success_order::Symbol, fail_order::Symbol=success_order, boundscheck::Bool) -> success::BoolAtomically perform the operations to set a MemoryRef to a given value, only if it was previously not set.
See also setpropertyonce! and Core.memoryrefset!.
Module bindings
Core.get_binding_type — Function
Core.get_binding_type(module::Module, name::Symbol)Retrieve the declared type of the binding name from the module module.
Other
Core.IntrinsicFunction — Type
Core.IntrinsicFunction <: Core.Builtin <: FunctionThe Core.IntrinsicFunction function define some basic primitives for what defines the abilities and behaviors of a Julia program
Core.Intrinsics — Module
Core.IntrinsicsThe Core.Intrinsics module holds the Core.IntrinsicFunction objects.
Base.quoted — Function
quoted(x)Return x made safe for inserting as a constant into IR. Note that this does not make it safe for inserting into an AST, since eval will sometimes copy some types of AST object inside, and even may sometimes evaluate and interpolate any $ inside, depending on the context.
Base.isa_ast_node — Function
isa_ast_node(x)Return false if x is not interpreted specially by any of inference, lowering, or codegen as either an AST or IR special form.