mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-07 08:08:50 +00:00
Add dummy packages purely for documentation of builtin and intrinsics
This commit is contained in:
@@ -0,0 +1,105 @@
|
|||||||
|
// This is purely for documentation
|
||||||
|
package builtin
|
||||||
|
|
||||||
|
nil :: nil;
|
||||||
|
false :: 0!==0;
|
||||||
|
true :: 0==0;
|
||||||
|
|
||||||
|
ODIN_OS :: ODIN_OS;
|
||||||
|
ODIN_ARCH :: ODIN_ARCH;
|
||||||
|
ODIN_ENDIAN :: ODIN_ENDIAN;
|
||||||
|
ODIN_VENDOR :: ODIN_VENDOR;
|
||||||
|
ODIN_VERSION :: ODIN_VERSION;
|
||||||
|
ODIN_ROOT :: ODIN_ROOT;
|
||||||
|
ODIN_DEBUG :: ODIN_DEBUG;
|
||||||
|
|
||||||
|
byte :: u8; // alias
|
||||||
|
|
||||||
|
bool :: bool;
|
||||||
|
b8 :: b8;
|
||||||
|
b16 :: b16;
|
||||||
|
b32 :: b32;
|
||||||
|
b64 :: b64;
|
||||||
|
|
||||||
|
i8 :: i8;
|
||||||
|
u8 :: u8;
|
||||||
|
i16 :: i16;
|
||||||
|
u16 :: u16;
|
||||||
|
i32 :: i32;
|
||||||
|
u32 :: u32;
|
||||||
|
i64 :: i64;
|
||||||
|
u64 :: u64;
|
||||||
|
|
||||||
|
i128 :: i128;
|
||||||
|
u128 :: u128;
|
||||||
|
|
||||||
|
rune :: rune;
|
||||||
|
|
||||||
|
f16 :: f16;
|
||||||
|
f32 :: f32;
|
||||||
|
f64 :: f64;
|
||||||
|
|
||||||
|
complex32 :: complex32;
|
||||||
|
complex64 :: complex64;
|
||||||
|
complex128 :: complex128;
|
||||||
|
|
||||||
|
quaternion128 :: quaternion128;
|
||||||
|
quaternion256 :: quaternion256;
|
||||||
|
|
||||||
|
int :: int;
|
||||||
|
uint :: uint;
|
||||||
|
uintptr :: uintptr;
|
||||||
|
|
||||||
|
rawptr :: rawptr;
|
||||||
|
string :: string;
|
||||||
|
cstring :: cstring;
|
||||||
|
any :: any;
|
||||||
|
|
||||||
|
typeid :: typeid;
|
||||||
|
|
||||||
|
// Endian Specific Types
|
||||||
|
i16le :: i16le;
|
||||||
|
u16le :: u16le;
|
||||||
|
i32le :: i32le;
|
||||||
|
u32le :: u32le;
|
||||||
|
i64le :: i64le;
|
||||||
|
u64le :: u64le;
|
||||||
|
i128le :: i128le;
|
||||||
|
u128le :: u128le;
|
||||||
|
|
||||||
|
i16be :: i16be;
|
||||||
|
u16be :: u16be;
|
||||||
|
i32be :: i32be;
|
||||||
|
u32be :: u32be;
|
||||||
|
i64be :: i64be;
|
||||||
|
u64be :: u64be;
|
||||||
|
i128be :: i128be;
|
||||||
|
u128be :: u128be;
|
||||||
|
|
||||||
|
// Procedures
|
||||||
|
len :: proc(array: Array_Type) -> int ---
|
||||||
|
cap :: proc(array: Array_Type) -> int ---
|
||||||
|
|
||||||
|
size_of :: proc($T: typeid) -> int ---
|
||||||
|
align_of :: proc($T: typeid) -> int ---
|
||||||
|
offset_of :: proc($T: typeid) -> uintptr ---
|
||||||
|
type_of :: proc(x: expr) -> type ---
|
||||||
|
type_info_of :: proc($T: typeid) -> ^runtime.Type_Info ---
|
||||||
|
typeid_of :: proc($T: typeid) -> typeid ---
|
||||||
|
|
||||||
|
swizzle :: proc(x: [N]T, indices: ..int) -> [len(indices)]T ---
|
||||||
|
|
||||||
|
complex :: proc(real, imag: Float) -> Complex_Type ---
|
||||||
|
quaternion :: proc(real, imag, jmag, kmag: Float) -> Quaternion_Type ---
|
||||||
|
real :: proc(value: Complex_Or_Quaternion) -> Float ---
|
||||||
|
imag :: proc(value: Complex_Or_Quaternion) -> Float ---
|
||||||
|
jmag :: proc(value: Quaternion) -> Float ---
|
||||||
|
kmag :: proc(value: Quaternion) -> Float ---
|
||||||
|
conj :: proc(value: Complex_Or_Quaternion) -> Complex_Or_Quaternion ---
|
||||||
|
|
||||||
|
expand_to_tuple :: proc(value: Struct_Or_Array) -> (A, B, C, ...) ---
|
||||||
|
|
||||||
|
min :: proc(values: ..T) -> T ---
|
||||||
|
max :: proc(values: ..T) -> T ---
|
||||||
|
abs :: proc(value: T) -> T ---
|
||||||
|
clamp :: proc(value, minimum, maximum: T) -> T ---
|
||||||
@@ -0,0 +1,126 @@
|
|||||||
|
// This is purely for documentation
|
||||||
|
package intrinsics
|
||||||
|
|
||||||
|
|
||||||
|
vector :: proc() ---
|
||||||
|
|
||||||
|
atomic_fence :: proc() ---
|
||||||
|
atomic_fence_acq :: proc() ---
|
||||||
|
atomic_fence_rel :: proc() ---
|
||||||
|
atomic_fence_acqrel :: proc() ---
|
||||||
|
|
||||||
|
atomic_store :: proc(dst: ^$T, val: $T) ---
|
||||||
|
atomic_store_rel :: proc(dst: ^$T, val: $T) ---
|
||||||
|
atomic_store_relaxed :: proc(dst: ^$T, val: $T) ---
|
||||||
|
atomic_store_unordered :: proc(dst: ^$T, val: $T) ---
|
||||||
|
|
||||||
|
atomic_load :: proc(dst: ^$T) -> T ---
|
||||||
|
atomic_load_acq :: proc(dst: ^$T) -> T ---
|
||||||
|
atomic_load_relaxed :: proc(dst: ^$T) -> T ---
|
||||||
|
atomic_load_unordered :: proc(dst: ^$T) -> T ---
|
||||||
|
|
||||||
|
atomic_add :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_add_acq :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_add_rel :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_add_acqrel :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_add_relaxed :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_sub :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_sub_acq :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_sub_rel :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_sub_acqrel :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_sub_relaxed :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_and :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_and_acq :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_and_rel :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_and_acqrel :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_and_relaxed :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_nand :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_nand_acq :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_nand_rel :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_nand_acqrel :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_nand_relaxed :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_or :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_or_acq :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_or_rel :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_or_acqrel :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_or_relaxed :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_xor :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_xor_acq :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_xor_rel :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_xor_acqrel :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_xor_relaxed :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
|
||||||
|
atomic_xchg :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_xchg_acq :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_xchg_rel :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_xchg_acqrel :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
atomic_xchg_relaxed :: proc(dst; ^$T, val: $T) -> T ---
|
||||||
|
|
||||||
|
atomic_cxchg :: proc(dst: ^$T, old, new: T) -> (T, /*option*/bool) ---
|
||||||
|
atomic_cxchg_acq :: proc(dst: ^$T, old, new: T) -> (T, /*option*/bool) ---
|
||||||
|
atomic_cxchg_rel :: proc(dst: ^$T, old, new: T) -> (T, /*option*/bool) ---
|
||||||
|
atomic_cxchg_acqrel :: proc(dst: ^$T, old, new: T) -> (T, /*option*/bool) ---
|
||||||
|
atomic_cxchg_relaxed :: proc(dst: ^$T, old, new: T) -> (T, /*option*/bool) ---
|
||||||
|
atomic_cxchg_failrelaxed :: proc(dst: ^$T, old, new: T) -> (T, /*option*/bool) ---
|
||||||
|
atomic_cxchg_failacq :: proc(dst: ^$T, old, new: T) -> (T, /*option*/bool) ---
|
||||||
|
atomic_cxchg_acq_failrelaxed :: proc(dst: ^$T, old, new: T) -> (T, /*option*/bool) ---
|
||||||
|
atomic_cxchg_acqrel_failrelaxed :: proc(dst: ^$T, old, new: T) -> (T, /*option*/bool) ---
|
||||||
|
|
||||||
|
atomic_cxchgweak :: proc(dst: ^$T, old, new: T) -> (T, /*option*/bool) ---
|
||||||
|
atomic_cxchgweak_acq :: proc(dst: ^$T, old, new: T) -> (T, /*option*/bool) ---
|
||||||
|
atomic_cxchgweak_rel :: proc(dst: ^$T, old, new: T) -> (T, /*option*/bool) ---
|
||||||
|
atomic_cxchgweak_acqrel :: proc(dst: ^$T, old, new: T) -> (T, /*option*/bool) ---
|
||||||
|
atomic_cxchgweak_relaxed :: proc(dst: ^$T, old, new: T) -> (T, /*option*/bool) ---
|
||||||
|
atomic_cxchgweak_failrelaxed :: proc(dst: ^$T, old, new: T) -> (T, /*option*/bool) ---
|
||||||
|
atomic_cxchgweak_failacq :: proc(dst: ^$T, old, new: T) -> (T, /*option*/bool) ---
|
||||||
|
atomic_cxchgweak_acq_failrelaxed :: proc(dst: ^$T, old, new: T) -> (T, /*option*/bool) ---
|
||||||
|
atomic_cxchgweak_acqrel_failrelaxed :: proc(dst: ^$T, old, new: T) -> (T, /*option*/bool) ---
|
||||||
|
|
||||||
|
|
||||||
|
// Constant type tests
|
||||||
|
|
||||||
|
type_base_type :: proc($T: typeid) -> type ---
|
||||||
|
type_core_type :: proc($T: typeid) -> type ---
|
||||||
|
type_elem_type :: proc($T: typeid) -> type ---
|
||||||
|
|
||||||
|
type_is_boolean :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_integer :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_rune :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_float :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_complex :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_quaternion :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_string :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_typeid :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_any :: proc($T: typeid) -> bool ---
|
||||||
|
|
||||||
|
type_is_endian_little :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_endian_big :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_numeric :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_ordered :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_ordered_numeric :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_indexable :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_sliceable :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_simple_compare :: proc($T: typeid) -> bool --- // easily compared using memcmp
|
||||||
|
type_is_dereferenceable :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_valid_map_key :: proc($T: typeid) -> bool ---
|
||||||
|
|
||||||
|
type_is_named :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_pointer :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_opaque :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_array :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_slice :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_dynamic_array :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_map :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_struct :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_union :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_enum :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_proc :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_bit_field :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_bit_field_value :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_bit_set :: proc($T: typeid) -> bool ---
|
||||||
|
type_is_simd_vector :: proc($T: typeid) -> bool ---
|
||||||
|
|
||||||
|
type_has_nil :: proc($T: typeid) -> bool ---
|
||||||
|
|
||||||
|
type_proc_parameter_count :: proc($T: typeid) -> int where type_is_proc(T) ---
|
||||||
|
type_proc_return_count :: proc($T: typeid) -> int where type_is_proc(T) ---
|
||||||
Reference in New Issue
Block a user