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 i
th 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 i
th 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) --> T
This function requires Julia 1.7 or later.
See unsafe_load
.
Core.Intrinsics.atomic_pointerset
— FunctionCore.Intrinsics.atomic_pointerset(pointer::Ptr{T}, new::T, order::Symbol) --> pointer
This function requires Julia 1.7 or later.
See unsafe_store!
.
Core.Intrinsics.atomic_pointerswap
— FunctionCore.Intrinsics.atomic_pointerswap(pointer::Ptr{T}, new::T, order::Symbol) --> old
This function requires Julia 1.7 or later.
See unsafe_swap!
.
Core.Intrinsics.atomic_pointermodify
— FunctionCore.Intrinsics.atomic_pointermodify(pointer::Ptr{T}, function::(old::T,arg::S)->T, arg::S, order::Symbol) --> old
This function requires Julia 1.7 or later.
See 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)
This function requires Julia 1.7 or later.
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
.
This function requires Julia 1.11 or later.
Core.memoryrefoffset
— FunctionCore..memoryrefoffset(::GenericMemoryRef)
Return the offset index that was used to construct the MemoryRef
. See memoryref
.
This function requires Julia 1.11 or later.
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.
This function requires Julia 1.11 or later.
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.
This function requires Julia 1.11 or later.
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.
This function requires Julia 1.11 or later.
Core.memoryrefswap!
— FunctionCore.memoryrefswap!(::GenericMemoryRef, value, ordering::Symbol, boundscheck::Bool)
Atomically perform the operations to simultaneously get and set a MemoryRef
value.
This function requires Julia 1.11 or later.
See also swapproperty!
and Core.memoryrefset!
.
Core.memoryrefmodify!
— FunctionCore.memoryrefmodify!(::GenericMemoryRef, op, value, ordering::Symbol, boundscheck::Bool)::Pair
Atomically perform the operations to get and set a MemoryRef
value after applying the function op
.
This function requires Julia 1.11 or later.
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.
This function requires Julia 1.11 or later.
See also replaceproperty!
and Core.memoryrefset!
.
Core.memoryrefsetonce!
— FunctionCore.memoryrefsetonce!(::GenericMemoryRef, value,
success_order::Symbol, fail_order::Symbol=success_order, boundscheck::Bool) -> success::Bool
Atomically perform the operations to set a MemoryRef
to a given value, only if it was previously not set.
This function requires Julia 1.11 or later.
See also setpropertyonce!
and Core.memoryrefset!
.
Module bindings
Core.getbindingtype
Other
Core.IntrinsicFunction
— TypeCore.IntrinsicFunction <: Core.Builtin <: Function
The Core.IntrinsicFunction
function define some basic primitives for what defines the abilities and behaviors of a Julia program
Core.Intrinsics
— ModuleCore.Intrinsics
The Core.Intrinsics
module holds the Core.IntrinsicFunction
objects.
Core.IR
— ModuleCore.IR
The Core.IR
module exports the IR object model.