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 — FunctionCore.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 — FunctionCore.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 — FunctionCore.Intrinsics.atomic_pointerref(pointer::Ptr{T}, order::Symbol) --> TSee unsafe_load.
Core.Intrinsics.atomic_pointerset — FunctionCore.Intrinsics.atomic_pointerset(pointer::Ptr{T}, new::T, order::Symbol) --> pointerSee unsafe_store!.
Core.Intrinsics.atomic_pointerswap — FunctionCore.Intrinsics.atomic_pointerswap(pointer::Ptr{T}, new::T, order::Symbol) --> oldSee unsafe_swap!.
Core.Intrinsics.atomic_pointermodify — FunctionCore.Intrinsics.atomic_pointermodify(pointer::Ptr{T}, function::(old::T,arg::S)->T, arg::S, order::Symbol) --> oldSee unsafe_modify!.
Core.Intrinsics.atomic_pointerreplace — FunctionCore.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 — FunctionCore.memorynew(::Type{T} where T <: GenericMemory, n::Int)Construct an uninitialized GenericMemory of length n.
See also Memory, Memory{T}(undef, n).
Core.memoryrefnew — FunctionCore.memoryrefnew(::GenericMemory)
Core.memoryrefnew(::GenericMemoryRef, index::Int, [boundscheck::Bool])Return a GenericMemoryRef for a GenericMemory. See memoryref.
Core.memoryrefoffset — FunctionCore..memoryrefoffset(::GenericMemoryRef)Return the offset index that was used to construct the MemoryRef. See memoryref.
Core.memoryrefget — FunctionCore.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! — FunctionCore.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 — FunctionCore.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! — FunctionCore.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! — FunctionCore.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! — FunctionCore.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! — FunctionCore.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 — FunctionCore.get_binding_type(module::Module, name::Symbol)Retrieve the declared type of the binding name from the module module.
Other
Core.IntrinsicFunction — TypeCore.IntrinsicFunction <: Core.Builtin <: FunctionThe Core.IntrinsicFunction function define some basic primitives for what defines the abilities and behaviors of a Julia program
Core.Intrinsics — ModuleCore.IntrinsicsThe Core.Intrinsics module holds the Core.IntrinsicFunction objects.
Core.IR — ModuleCore.IRThe Core.IR module exports the IR object model.
Base.quoted — Functionquoted(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 — Functionisa_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.