Docs!

void sll_allocator_collapse(void** pointer,sll_size_t size);
Description: Docs!
Arguments:
pointer ->
size ->
Return Value: No return value
(check_output) void* sll_allocator_from_memory(void* pointer,sll_size_t size);
Description: Docs!
Arguments:
pointer ->
size ->
Return Value:
(check_output) void* sll_allocator_init(sll_size_t size);
Description: Docs!
Arguments:
size ->
Return Value:
void sll_allocator_move(void** pointer,sll_bool_t direction);
Description: Docs!
Arguments:
pointer ->
direction ->
Return Value: No return value
void sll_allocator_release(void* pointer);
Description: Docs!
Arguments:
pointer ->
Return Value: No return value
void sll_allocator_resize(void** pointer,sll_size_t size);
Description: Docs!
Arguments:
pointer ->
size ->
Return Value: No return value

Docs!

#define SLL_PARSE_ARGS_TYPE_INT -> sll_number_type_t
Description: Docs!
#define SLL_PARSE_ARGS_TYPE_FLOAT -> sll_number_type_t
Description: Docs!
#define SLL_PARSE_ARGS_TYPE_COMPLEX -> sll_number_type_t
Description: Docs!
#define SLL_PARSE_ARGS_TYPE_CHAR -> sll_bool_t
Description: Docs!
#define SLL_PARSE_ARGS_TYPE_STRING -> sll_bool_t
Description: Docs!
typedef unsigned char sll_number_type_t;
Description: Docs!
typedef void* sll_arg_state_t;
Description: Docs!
typedef union _SLL_NUMBER_DATA{
sll_integer_t int_; sll_float_t float_; sll_complex_t complex_; } sll_number_data_t;
Description: Docs!
Fields:
int_ ->
float_ ->
complex_ ->
typedef struct _SLL_NUMBER{
sll_number_type_t type; sll_number_data_t data; } sll_number_t;
Description: Docs!
Fields:
type ->
data ->
typedef union _SLL_CHAR_STRING_DATA{
sll_char_t char_; const sll_string_t* string; } sll_char_string_data_t;
Description: Docs!
Fields:
char_ ->
string ->
typedef struct _SLL_CHAR_STRING{
sll_bool_t type; sll_char_string_data_t data; } sll_char_string_t;
Description: Docs!
Fields:
type ->
data ->
void sll_free_args(sll_arg_state_t arg_state);
Description: Docs!
Arguments:
arg_state ->
Return Value: No return value
(check_output) sll_arg_count_t sll_parse_arg_count(const sll_char_t* format);
Description: Docs!
Arguments:
format ->
Return Value:
(check_output) sll_arg_state_t sll_parse_args(const sll_char_t* format,const sll_object_t* args,sll_arg_count_t arg_count,...);
Description: Docs!
Arguments:
format ->
args ->
arg_count ->
Return Value:
(check_output) sll_arg_state_t sll_parse_args_list(const sll_char_t* format,const sll_object_t* args,sll_arg_count_t arg_count,va_list* va);
Description: Docs!
Arguments:
format ->
args ->
arg_count ->
va ->
Return Value:

Docs!

#define SLL_MAX_ARRAY_LENGTH -> sll_array_length_t
Description: Docs!
#define SLL_INIT_ARRAY(sll_array_t* out) -> void
Description: Docs!
Arguments:
out ->
Return Value: No return value
#define SLL_INIT_ARRAY_STRUCT -> sll_array_t
Description: Docs!
void sll_array_clone(const sll_array_t* array,sll_array_t* out);
Description: Docs!
Arguments:
array ->
out ->
Return Value: No return value
(check_output) sll_compare_result_t sll_array_compare(const sll_array_t* a,const sll_array_t* b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_compare_result_t sll_array_compare_map(const sll_array_t* array,const sll_map_t* map,sll_bool_t inv);
Description: Docs!
Arguments:
array ->
map ->
inv ->
Return Value:
void sll_array_create(sll_array_length_t length,sll_array_t* out);
Description: Docs!
Arguments:
length ->
out ->
Return Value: No return value
void sll_array_create_zero(sll_array_length_t length,sll_array_t* out);
Description: Docs!
Arguments:
length ->
out ->
Return Value: No return value
void sll_array_duplicate(const sll_array_t* array,sll_integer_t count,sll_array_length_t extra,sll_array_t* out);
Description: Docs!
Arguments:
array ->
count ->
extra ->
out ->
Return Value: No return value
(check_output) sll_bool_t sll_array_includes(const sll_array_t* array,sll_object_t object);
Description: Docs!
Arguments:
array ->
object ->
Return Value:
(check_output) sll_char_t sll_array_parse_char(const sll_array_t* array);
Description: Docs!
Arguments:
array ->
Return Value:
(check_output) sll_float_t sll_array_parse_float(const sll_array_t* array);
Description: Docs!
Arguments:
array ->
Return Value:
(check_output) sll_integer_t sll_array_parse_int(const sll_array_t* array);
Description: Docs!
Arguments:
array ->
Return Value:
void sll_array_range(sll_integer_t start,sll_integer_t end,sll_integer_t step,sll_array_t* out);
Description: Docs!
Arguments:
start ->
end ->
step ->
out ->
Return Value: No return value
void sll_array_to_map(const sll_array_t* array,sll_map_t* out);
Description: Docs!
Arguments:
array ->
out ->
Return Value: No return value
void sll_free_array(sll_array_t* array);
Description: Docs!
Arguments:
array ->
Return Value: No return value
typedef unsigned int sll_array_length_t;
Description: Docs!
typedef struct _SLL_ARRAY{
sll_array_length_t length; struct _SLL_OBJECT** data; } sll_array_t;
Description: Docs!
Fields:
length ->
data ->

Docs!

void sll_array_combinations(const sll_array_t* a,const sll_array_t* b,sll_array_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value
void sll_array_combinations_string(const sll_array_t* array,const sll_string_t* string,sll_array_t* out);
Description: Docs!
Arguments:
array ->
string ->
out ->
Return Value: No return value
(check_output) sll_object_t sll_array_get(const sll_array_t* array,sll_array_length_t index);
Description: Docs!
Arguments:
array ->
index ->
Return Value:
(check_output) sll_object_t sll_array_pop(const sll_array_t* array,sll_array_t* out);
Description: Docs!
Arguments:
array ->
out ->
Return Value:
void sll_array_push(const sll_array_t* array,sll_object_t object,sll_array_t* out);
Description: Docs!
Arguments:
array ->
object ->
out ->
Return Value: No return value
void sll_array_remove(const sll_array_t* array,sll_object_t object,sll_array_t* out);
Description: Docs!
Arguments:
array ->
object ->
out ->
Return Value: No return value
void sll_array_remove_multiple(const sll_array_t* array,sll_object_t* object_data,sll_array_length_t object_count,sll_array_t* out);
Description: Docs!
Arguments:
array ->
object_data ->
object_count ->
out ->
Return Value: No return value
void sll_array_replace(const sll_array_t* array,sll_object_t key,sll_object_t value,sll_array_t* out);
Description: Docs!
Arguments:
array ->
key ->
value ->
out ->
Return Value: No return value
void sll_array_resize(const sll_array_t* array,sll_integer_t delta,sll_array_t* out);
Description: Docs!
Arguments:
array ->
delta ->
out ->
Return Value: No return value
void sll_array_set(const sll_array_t* array,sll_array_length_t index,sll_object_t object);
Description: Docs!
Arguments:
array ->
index ->
object ->
Return Value: No return value
(check_output) sll_object_t sll_array_shift(const sll_array_t* array,sll_array_t* out);
Description: Docs!
Arguments:
array ->
out ->
Return Value:
void sll_array_unshift(const sll_array_t* array,sll_object_t object,sll_array_t* out);
Description: Docs!
Arguments:
array ->
object ->
out ->
Return Value: No return value

Docs!

void sll_array_and(const sll_array_t* a,const sll_array_t* b,sll_array_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value
(check_output) sll_array_length_t sll_array_count(const sll_array_t* array,sll_object_t object);
Description: Docs!
Arguments:
array ->
object ->
Return Value:
(check_output) sll_array_length_t sll_array_count_multiple(const sll_array_t* array,const sll_object_t* object_data,sll_array_length_t object_count);
Description: Docs!
Arguments:
array ->
object_data ->
object_count ->
Return Value:
(check_output) sll_bool_t sll_array_equal(const sll_array_t* a,const sll_array_t* b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_bool_t sll_array_equal_map(const sll_array_t* array,const sll_map_t* map);
Description: Docs!
Arguments:
array ->
map ->
Return Value:
void sll_array_extend(const sll_array_t* base,const sll_array_t* new,sll_array_t* out);
Description: Docs!
Arguments:
base ->
new ->
out ->
Return Value: No return value
void sll_array_join_arrays(const sll_array_t*const* array_data,sll_array_length_t array_count,sll_object_t infix,sll_array_t* out);
Description: Docs!
Arguments:
array_data ->
array_count ->
infix ->
out ->
Return Value: No return value
void sll_array_op(const sll_array_t* a,const sll_array_t* b,sll_binary_operator_t operator,sll_array_t* out);
Description: Docs!
Arguments:
a ->
b ->
operator ->
out ->
Return Value: No return value
void sll_array_op_map(const sll_array_t* array,const sll_map_t* map,sll_binary_operator_t operator,sll_bool_t inv,sll_map_t* out);
Description: Docs!
Arguments:
array ->
map ->
operator ->
inv ->
out ->
Return Value: No return value
void sll_array_or(const sll_array_t* a,const sll_array_t* b,sll_array_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value
void sll_array_reverse(const sll_array_t* array,sll_array_t* out);
Description: Docs!
Arguments:
array ->
out ->
Return Value: No return value
void sll_array_select(const sll_array_t* array,sll_integer_t start,sll_integer_t end,sll_integer_t step,sll_array_t* out);
Description: Docs!
Arguments:
array ->
start ->
end ->
step ->
out ->
Return Value: No return value
void sll_array_split(const sll_array_t* array,sll_object_t object,sll_array_t* out);
Description: Docs!
Arguments:
array ->
object ->
out ->
Return Value: No return value
void sll_array_xor(const sll_array_t* a,const sll_array_t* b,sll_array_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value

Docs!

(api_call) (check_output) sll_array_length_t sll_api_array_count(const sll_array_t* array,sll_object_t elem);
Description: Docs!
API Signature: #ao|D
Arguments:
array ->
elem ->
Return Value:
(api_call) void sll_api_array_create(sll_array_length_t length,sll_array_t* out);
Description: Docs!
API Signature: D|a
Arguments:
length ->
out ->
Return Value: No return value
(api_call) (check_output) sll_array_length_t sll_api_array_extend(sll_array_t* array,const sll_array_t* new);
Description: Docs!
API Signature: a#a|D
Arguments:
array ->
new ->
Return Value:
(api_call) (check_output) sll_integer_t sll_api_array_index(const sll_array_t* array,sll_object_t elem);
Description: Docs!
API Signature: #ao|i
Arguments:
array ->
elem ->
Return Value:
(api_call) void sll_api_array_join(const sll_array_t*const* array,sll_arg_count_t length,sll_object_t elem,sll_array_t* out);
Description: Docs!
API Signature: #a+o|a
Arguments:
array ->
length ->
elem ->
out ->
Return Value: No return value
(api_call) (check_output) sll_object_t sll_api_array_pop(sll_array_t* array);
Description: Docs!
API Signature: a|o
Arguments:
array ->
Return Value:
(api_call) sll_array_length_t sll_api_array_push(sll_array_t* array,sll_object_t elem);
Description: Docs!
API Signature: ao|D
Arguments:
array ->
elem ->
Return Value:
(api_call) sll_array_length_t sll_api_array_remove(sll_array_t* array,sll_object_t elem);
Description: Docs!
API Signature: ao|D
Arguments:
array ->
elem ->
Return Value:
(api_call) void sll_api_array_replace(const sll_array_t* array,sll_object_t old,sll_object_t new,sll_array_t* out);
Description: Docs!
API Signature: #aoo|a
Arguments:
array ->
old ->
new ->
out ->
Return Value: No return value
(api_call) void sll_api_array_reverse(const sll_array_t* array,sll_array_t* out);
Description: Docs!
API Signature: #a|a
Arguments:
array ->
out ->
Return Value: No return value
(api_call) (check_output) sll_object_t sll_api_array_shift(sll_array_t* array);
Description: Docs!
API Signature: a|o
Arguments:
array ->
Return Value:
(api_call) void sll_api_array_split(const sll_array_t* array,sll_object_t key,sll_array_t* out);
Description: Docs!
API Signature: #ao|a
Arguments:
array ->
key ->
out ->
Return Value: No return value
(api_call) sll_array_length_t sll_api_array_unshift(sll_array_t* array,sll_object_t elem);
Description: Docs!
API Signature: ao|D
Arguments:
array ->
elem ->
Return Value:
(api_call) void sll_api_audit__init(sll_integer_t callback);
Description: Docs!
API Signature: i|
Arguments:
callback ->
Return Value: No return value
(api_call) void sll_api_audit_audit(const sll_string_t* name,const sll_string_t* format,const sll_object_t* args,sll_arg_count_t arg_count);
Description: Docs!
API Signature: #s#so!|
Arguments:
name ->
format ->
args ->
arg_count ->
Return Value: No return value

Docs!

#define SLL_MAX_ASSEMBLY_INSTRUCTION_TYPE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_MAX_INSTRUCTION_INDEX -> sll_instruction_index_t
Description: Docs!
#define SLL_MAX_VARIABLE_INDEX -> sll_variable_index_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_GET_TYPE(sll_assembly_instruction_type_t instruction) -> sll_assembly_instruction_type_t
Description: Docs!
Arguments:
instruction ->
Return Value:
#define SLL_ASSEMBLY_INSTRUCTION_FLAG_IS_ANONYMOUS(sll_assembly_instruction_type_t instruction) -> sll_bool_t
Description: Docs!
Arguments:
instruction ->
Return Value:
#define SLL_ASSEMBLY_INSTRUCTION_FLAG_IS_INPLACE(sll_assembly_instruction_type_t instruction) -> sll_bool_t
Description: Docs!
Arguments:
instruction ->
Return Value:
#define SLL_ASSEMBLY_INSTRUCTION_FLAG_IS_RELATIVE(sll_assembly_instruction_type_t instruction) -> sll_bool_t
Description: Docs!
Arguments:
instruction ->
Return Value:
#define SLL_INIT_ASSEMBLY_DATA_STRUCT -> sll_assembly_data_t
Description: Docs!
#define SLL_ASSEMBLY_FUNCTION_GET_ARGUMENT_COUNT(const sll_assembly_function_t* function) -> sll_arg_count_t
Description: Docs!
Arguments:
function ->
Return Value:
#define SLL_ASSEMBLY_FUNCTION_IS_VAR_ARG(const sll_assembly_function_t* function) -> sll_bool_t
Description: Docs!
Arguments:
function ->
Return Value:
#define SLL_ASSEMBLY_VARIABLE_GET_INDEX(sll_variable_index_t variable) -> sll_variable_index_t
Description: Docs!
Arguments:
variable ->
Return Value:
#define SLL_ASSEMBLY_VARIABLE_IS_TLS(sll_variable_index_t variable) -> sll_bool_t
Description: Docs!
Arguments:
variable ->
Return Value:
typedef unsigned char sll_assembly_instruction_type_t;
Description: Docs!
typedef signed int sll_relative_instruction_index_t;
Description: Docs!
typedef unsigned int sll_debug_data_length_t;
Description: Docs!
typedef unsigned int sll_instruction_index_t;
Description: Docs!
typedef unsigned int sll_variable_index_t;
Description: Docs!
typedef union _SLL_ASSEMBLY_INSTRUCTION_DATA_JUMP_TARGET{
sll_instruction_index_t abs; sll_relative_instruction_index_t rel; } sll_assembly_instruction_data_jump_target_t;
Description: Docs!
Fields:
abs ->
rel ->
typedef struct _SLL_ASSEMBLY_INSTRUCTION_DATA_JUMP{
sll_assembly_instruction_data_jump_target_t target; void* _instruction; } sll_assembly_instruction_data_jump_t;
Description: Docs!
Fields:
target ->
_instruction ->
typedef struct _SLL_ASSEMBLY_INSTRUCTION_DATA_VAR_ACCESS{
sll_variable_index_t variable; sll_arg_count_t arg_count; } sll_assembly_instruction_data_var_access_t;
Description: Docs!
Fields:
variable ->
arg_count ->
typedef union _SLL_ASSEMBLY_INSTRUCTION_DATA{
sll_integer_t int_; sll_compressed_integer_t compressed_int; sll_float_t float_; sll_char_t char_; sll_complex_t complex_; sll_string_index_t string_index; sll_variable_index_t variable; sll_assembly_instruction_data_jump_t jump; sll_arg_count_t arg_count; sll_array_length_t array_length; sll_map_length_t map_length; sll_object_type_t type; sll_assembly_instruction_data_var_access_t variable_access; sll_stack_offset_t stack_offset; void* _next_instruction; } sll_assembly_instruction_data_t;
Description: Docs!
Fields:
int_ ->
compressed_int ->
float_ ->
char_ ->
complex_ ->
string_index ->
variable ->
jump ->
arg_count ->
array_length ->
map_length ->
type ->
variable_access ->
stack_offset ->
_next_instruction ->
typedef struct _SLL_ASSEMBLY_INSTRUCTION{
sll_assembly_instruction_type_t type; sll_assembly_instruction_data_t data; }* sll_assembly_instruction_t;
Description: Docs!
Fields:
type ->
data ->
typedef struct _SLL_ASSEMBLY_FUNCTION{
sll_instruction_index_t instruction_index; sll_arg_count_t arg_count; } sll_assembly_function_t;
Description: Docs!
Fields:
instruction_index ->
arg_count ->
typedef struct _SLL_ASSEMBLY_FUNCTION_TABLE{
sll_assembly_function_t* data; sll_function_index_t length; } sll_assembly_function_table_t;
Description: Docs!
Fields:
data ->
length ->
typedef struct _SLL_DEBUG_LINE_DATA{
sll_instruction_index_t delta_instruction_index; sll_file_offset_t line; } sll_debug_line_data_t;
Description: Docs!
Fields:
delta_instruction_index ->
line ->
typedef struct _SLL_DEBUG_DATA{
sll_debug_line_data_t* data; sll_debug_data_length_t length; } sll_debug_data_t;
Description: Docs!
Fields:
data ->
length ->
typedef struct _SLL_ASSEMBLY_STACK_DATA{
void* start; void* end; sll_assembly_instruction_t next_instruction; sll_size_t count; } sll_assembly_stack_data_t;
Description: Docs!
Fields:
start ->
end ->
next_instruction ->
count ->
typedef struct _SLL_ASSEMBLY_DATA{
sll_time_t time; sll_assembly_instruction_t first_instruction; sll_instruction_index_t instruction_count; sll_variable_index_t variable_count; sll_variable_index_t tls_variable_count; sll_assembly_function_table_t function_table; sll_string_table_t string_table; sll_debug_data_t debug_data; sll_assembly_stack_data_t _instruction_stack; } sll_assembly_data_t;
Description: Docs!
Fields:
time ->
first_instruction ->
instruction_count ->
variable_count ->
tls_variable_count ->
function_table ->
string_table ->
debug_data ->
_instruction_stack ->
void sll_free_assembly_data(sll_assembly_data_t* assembly_data);
Description: Docs!
Arguments:
assembly_data ->
Return Value: No return value
void sll_generate_assembly(const sll_source_file_t* source_file,sll_assembly_data_t* out);
Description: Docs!
Arguments:
source_file ->
out ->
Return Value: No return value
void sll_print_assembly(const sll_assembly_data_t* assembly_data,sll_file_t* out);
Description: Docs!
Arguments:
assembly_data ->
out ->
Return Value: No return value

Docs!

#define SLL_ASSEMBLY_INSTRUCTION_TYPE_POP -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_POP_TWO -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_ROT -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_ROT_POP -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_DUP -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PUSH_INT -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PUSH_INT_COMPRESSED -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PUSH_MINUS_ONE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PUSH_ZERO -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PUSH_ONE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PUSH_TWO -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PUSH_THREE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PUSH_FOUR -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PUSH_FLOAT -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PUSH_COMPLEX -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PUSH_CHAR -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PUSH_EMPTY_STRING -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PUSH_LABEL -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PUSH_STACK -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_LOAD -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_LOADS -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PACK -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PACK_ZERO -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PACK_ONE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_MAP -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_MAP_ZERO -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_STORE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_STORE_POP -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_STORE_MINUS_ONE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_STORE_ZERO -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_STORE_ONE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_STORE_TWO -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_STORE_THREE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_STORE_FOUR -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_LOOKUP -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_LOOKUP_STR -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_JMP -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_JB -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_JBE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_JA -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_JAE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_JE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_JNE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_JZ -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_JNZ -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_JSE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_JSNE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_JI -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_JNI -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_JT -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_NOT -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_BOOL -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_INC -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_DEC -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_ADD -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_SUB -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_MULT -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_DIV -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_FDIV -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_MOD -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_AND -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_OR -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_XOR -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_INV -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_SHR -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_SHL -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_LENGTH -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_COPY -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_DEEP_COPY -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_ACCESS -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_ACCESS_TWO -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_ACCESS_THREE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_ACCESS_VAR -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_ASSIGN -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_ASSIGN_TWO -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_ASSIGN_THREE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_ASSIGN_VAR_ACCESS -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_CAST -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_CAST_TYPE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_TYPEOF -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_NAMEOF -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_NAMEOF_TYPE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_DECL -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_DECL_ZERO -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_NEW -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_NEW_DECL -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PRINT -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PRINT_CHAR -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PRINT_STR -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_PRINT_VAR -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_CALL -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_CALL_POP -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_CALL_ZERO -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_CALL_ONE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_CALL_ARRAY -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_REF -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_RET -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_RET_INT -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_RET_ZERO -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_RET_FLOAT -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_RET_CHAR -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_RET_STR -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_RET_VAR -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_DEL -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_LOAD_DEL -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_THREAD_ID -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_THREAD_WAIT -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_THREAD_LOCK -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_THREAD_SEMAPHORE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_THREAD_BARRIER_EQ -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_THREAD_BARRIER_GEQ -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_THREAD_EXIT -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_READ_BLOCKING -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_READ_BLOCKING_CHAR -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_CHANGE_STACK -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_RESERVED0 -> sll_assembly_instruction_type_t
Description: Internally used as `ASSEMBLY_INSTRUCTION_TYPE_DBG`
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_RESERVED1 -> sll_assembly_instruction_type_t
Description: Internally used as `ASSEMBLY_INSTRUCTION_TYPE_DBG_FUNC`
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_RESERVED2 -> sll_assembly_instruction_type_t
Description: Internally used as `ASSEMBLY_INSTRUCTION_TYPE_FUNC_START`
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_RESERVED3 -> sll_assembly_instruction_type_t
Description: Internally used as `ASSEMBLY_INSTRUCTION_TYPE_LABEL_TARGET`
#define SLL_ASSEMBLY_INSTRUCTION_TYPE_RESERVED4 -> sll_assembly_instruction_type_t
Description: Internally used as `ASSEMBLY_INSTRUCTION_TYPE_NOP`
#define SLL_ASSEMBLY_INSTRUCTION_FLAG_ANONYMOUS -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_FLAG_INPLACE -> sll_assembly_instruction_type_t
Description: Docs!
#define SLL_ASSEMBLY_INSTRUCTION_FLAG_RELATIVE -> sll_assembly_instruction_type_t
Description: Docs!

Docs!

(api_call) void sll_api_atexit_register(sll_integer_t function,const sll_object_t* args,sll_arg_count_t arg_count);
Description: Docs!
API Signature: io!|
Arguments:
function ->
args ->
arg_count ->
Return Value: No return value
(api_call) (check_output) sll_bool_t sll_api_atexit_unregister(sll_integer_t function);
Description: Docs!
API Signature: i|b
Arguments:
function ->
Return Value:

Docs!

typedef void (*sll_audit_callback_t)(const sll_string_t* name,const sll_array_t* args);
Description: Docs!
Arguments:
name ->
args ->
Return Value: No return value
void sll_audit(const sll_char_t* name,const sll_char_t* format,...);
Description: Docs!
Arguments:
name ->
format ->
Return Value: No return value
sll_bool_t sll_audit_enable(sll_bool_t enable);
Description: Docs!
Arguments:
enable ->
Return Value:
void sll_audit_list(const sll_char_t* name,const sll_char_t* format,sll_var_arg_list_t* va);
Description: Docs!
Arguments:
name ->
format ->
va ->
Return Value: No return value
void sll_audit_register_callback(sll_audit_callback_t callback);
Description: Docs!
Arguments:
callback ->
Return Value: No return value
sll_bool_t sll_audit_unregister_callback(sll_audit_callback_t callback);
Description: Docs!
Arguments:
callback ->
Return Value:

Docs!

#define SLL_MAX_BARRIER_INDEX -> sll_barrier_index_t
Description: Docs!
typedef unsigned int sll_barrier_counter_t;
Description: Docs!
typedef unsigned int sll_barrier_index_t;
Description: Docs!
(check_output) sll_barrier_index_t sll_barrier_create(void);
Description: Docs!
Return Value:
(check_output) sll_bool_t sll_barrier_delete(sll_barrier_index_t barrier_indexarrier_index);
Description: Docs!
Arguments:
barrier_indexarrier_index ->
Return Value:
(check_output) sll_barrier_counter_t sll_barrier_increase(sll_barrier_index_t barrier_index);
Description: Docs!
Arguments:
barrier_index ->
Return Value:
(check_output) sll_bool_t sll_barrier_reset(sll_barrier_index_t barrier_index);
Description: Docs!
Arguments:
barrier_index ->
Return Value:

Docs!

(api_call) (check_output) sll_error_t sll_api_base64_decode(const sll_string_t* string,sll_string_t* out);
Description: Docs!
API Signature: #s|~s
Arguments:
string ->
out ->
Return Value:
(api_call) void sll_api_base64_encode(const sll_string_t* string,sll_string_t* out);
Description: Docs!
API Signature: #s|s
Arguments:
string ->
out ->
Return Value: No return value

Docs!

#define SLL_API_FILE_PATH_SEPARATOR -> sll_char_t
Description: Docs!
#define SLL_API_MAX_FILE_PATH_LENGTH -> sll_string_length_t
Description: Docs!
#define SLL_VERSION_MAJOR -> sll_version_t
Description: Docs!
#define SLL_VERSION_MINOR -> sll_version_t
Description: Docs!
#define SLL_VERSION_PATCH -> sll_version_t
Description: Docs!
#define SLL_VERSION_SHA -> const char*
Description: Docs!
#define SLL_VERSION_FULL_SHA -> const char*
Description: Docs!
#define SLL_VERSION_TAG -> const char*
Description: Docs!
#define SLL_VERSION_HAS_SHA -> sll_bool_t
Description: Docs!
#define SLL_VERSION_BUILD_TIME -> sll_time_t
Description: Docs!
#define SLL_VERSION_STRING -> const char*
Description: Docs!
#define SLL_VERSION -> sll_version_t
Description: Docs!
#define SLL_GET_MAJOR(sll_version_t v) -> sll_version_t
Description: Docs!
Arguments:
v ->
Return Value:
#define SLL_GET_MINOR(sll_version_t v) -> sll_version_t
Description: Docs!
Arguments:
v ->
Return Value:
#define SLL_GET_PATCH(sll_version_t v) -> sll_version_t
Description: Docs!
Arguments:
v ->
Return Value:
typedef unsigned int sll_version_t;
Description: Docs!
(check_output) sll_version_t sll_version(void);
Description: Docs!
Return Value:
(check_output) const sll_char_t* sll_version_sha(void);
Description: Docs!
Return Value:
(check_output) const sll_char_t* sll_version_string(void);
Description: Docs!
Return Value:
(check_output) const sll_char_t* sll_version_tag(void);
Description: Docs!
Return Value:

Docs!

typedef struct _SLL_BUNDLE_SOURCE_FILE{
sll_string_t name; sll_source_file_t data; } sll_bundle_source_file_t;
Description: Docs!
Fields:
name ->
data ->
typedef struct _SLL_BUNDLE{
sll_time_t time; sll_string_t names; sll_bundle_source_file_t** data; sll_source_file_index_t length; } sll_bundle_t;
Description: Docs!
Fields:
time ->
names ->
data ->
length ->
void sll_bundle_add_file(const sll_char_t* name,sll_compilation_data_t* compilation_data,sll_bundle_t* out);
Description: Docs!
Arguments:
name ->
compilation_data ->
out ->
Return Value: No return value
void sll_bundle_create(const sll_char_t* name,sll_bundle_t* out);
Description: Docs!
Arguments:
name ->
out ->
Return Value: No return value
(check_output) sll_bool_t sll_bundle_fetch(const sll_bundle_t* bundle,const sll_string_t* name,sll_compilation_data_t* out);
Description: Docs!
Arguments:
bundle ->
name ->
out ->
Return Value:
void sll_free_bundle(sll_bundle_t* bundle);
Description: Docs!
Arguments:
bundle ->
Return Value: No return value

Docs!

#define SLL_LOOKUP_RESULT_COMPILED_OBJECT -> sll_cli_lookup_result_t
Description: Docs!
#define SLL_LOOKUP_RESULT_ASSEMBLY -> sll_cli_lookup_result_t
Description: Docs!
#define SLL_LOOKUP_RESULT_EMPTY -> sll_cli_lookup_result_t
Description: Docs!
typedef unsigned char sll_cli_lookup_result_t;
Description: Docs!
typedef union _SLL_CLI_LOOKUP_DATA_RETURN{
sll_assembly_data_t assembly_data; sll_compilation_data_t compilation_data; } sll_cli_lookup_data_return_t;
Description: Docs!
Fields:
assembly_data ->
compilation_data ->
typedef struct _SLL_CLI_LOOKUP_DATA{
sll_char_t path[SLL_API_MAX_FILE_PATH_LENGTH]; sll_cli_lookup_data_return_t data; } sll_cli_lookup_data_t;
Description: Docs!
Fields:
path ->
data ->
typedef sll_cli_lookup_result_t (*sll_cli_path_resolver_t)(const sll_string_t* path,sll_cli_lookup_data_t* out);
Description: Docs!
Arguments:
path ->
out ->
Return Value:
void sll_cli_expand_path(const sll_char_t* path,sll_char_t* out);
Description: Docs!
Arguments:
path ->
out ->
Return Value: No return value
(check_output) sll_cli_lookup_result_t sll_cli_lookup_file(const sll_string_t* path,sll_bool_t use_custom_resolvers,sll_cli_lookup_data_t* out);
Description: Docs!
Arguments:
path ->
use_custom_resolvers ->
out ->
Return Value:
(check_output) sll_return_code_t sll_cli_main(sll_array_length_t argc,const sll_char_t*const* argv);
Description: Docs!
Arguments:
argc ->
argv ->
Return Value:
void sll_cli_register_path_resolver(sll_cli_path_resolver_t function);
Description: Docs!
Arguments:
function ->
Return Value: No return value
sll_bool_t sll_cli_unregister_path_resolver(sll_cli_path_resolver_t function);
Description: Docs!
Arguments:
function ->
Return Value:

Docs!

#define SLL_CLI_FLAG_EXPAND_PATH -> unsigned int
Description: Docs!
#define SLL_CLI_FLAG_GENERATE_ASSEMBLY -> unsigned int
Description: Docs!
#define SLL_CLI_FLAG_GENERATE_BUNDLE -> unsigned int
Description: Docs!
#define SLL_CLI_FLAG_GENERATE_COMPILED_OBJECT -> unsigned int
Description: Docs!
#define SLL_CLI_FLAG_HELP -> unsigned int
Description: Docs!
#define SLL_CLI_FLAG_NO_PATHS -> unsigned int
Description: Docs!
#define SLL_CLI_FLAG_NO_RUN -> unsigned int
Description: Docs!
#define SLL_CLI_FLAG_OPTIMIZE -> unsigned int
Description: Docs!
#define SLL_CLI_FLAG_PRINT_ASSEMBLY -> unsigned int
Description: Docs!
#define SLL_CLI_FLAG_PRINT_NODES -> unsigned int
Description: Docs!
#define SLL_CLI_FLAG_RELEASE_MODE -> unsigned int
Description: Docs!
#define SLL_CLI_FLAG_STRIP_DEBUG -> unsigned int
Description: Docs!
#define SLL_CLI_FLAG_STRIP_NAMES -> unsigned int
Description: Docs!
#define SLL_CLI_FLAG_VERBOSE -> unsigned int
Description: Docs!
#define SLL_CLI_FLAG_VERSION -> unsigned int
Description: Docs!
#define SLL_CLI_FLAG_ENABLE_ERRORS -> unsigned int
Description: Docs!
#define SLL_CLI_FLAG_RESERVED0 -> unsigned int
Description: Internally used as `CLI_FLAG_SINGLE_OUTPUT`

Docs!

#define SLL_INIT_COMPLEX(sll_complex_t* out) -> void
Description: Docs!
Arguments:
out ->
Return Value: No return value
#define SLL_INIT_COMPLEX_STRUCT -> sll_complex_t
Description: Docs!
(check_output) sll_float_t sll_complex_abs(const sll_complex_t* number);
Description: Docs!
Arguments:
number ->
Return Value:
void sll_complex_add(const sll_complex_t* a,const sll_complex_t* b,sll_complex_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value
void sll_complex_conjugate(const sll_complex_t* a,sll_complex_t* out);
Description: Docs!
Arguments:
a ->
out ->
Return Value: No return value
void sll_complex_div(const sll_complex_t* a,const sll_complex_t* b,sll_complex_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value
void sll_complex_div_float(const sll_complex_t* a,sll_float_t b,sll_complex_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value
void sll_complex_exp(const sll_complex_t* number,sll_complex_t* out);
Description: Docs!
Arguments:
number ->
out ->
Return Value: No return value
void sll_complex_log(const sll_complex_t* number,sll_complex_t* out);
Description: Docs!
Arguments:
number ->
out ->
Return Value: No return value
void sll_complex_mult(const sll_complex_t* a,const sll_complex_t* b,sll_complex_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value
void sll_complex_mult_float(const sll_complex_t* a,sll_float_t b,sll_complex_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value
void sll_complex_neg(const sll_complex_t* number,sll_complex_t* out);
Description: Docs!
Arguments:
number ->
out ->
Return Value: No return value
void sll_complex_pow(const sll_complex_t* a,const sll_complex_t* b,sll_complex_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value
void sll_complex_pow_float(const sll_complex_t* a,sll_float_t b,sll_complex_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value
void sll_complex_pow_int(const sll_complex_t* a,sll_integer_t b,sll_complex_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value
void sll_complex_reciprocal(const sll_complex_t* number,sll_complex_t* out);
Description: Docs!
Arguments:
number ->
out ->
Return Value: No return value
void sll_complex_sub(const sll_complex_t* a,const sll_complex_t* b,sll_complex_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value

Docs!

typedef unsigned long long int sll_compressed_integer_t;
Description: Docs!
(check_output) sll_compressed_integer_t sll_compress_integer(sll_size_t int_);
Description: Docs!
Arguments:
int_ ->
Return Value:
(check_output) sll_size_t sll_decompress_integer(sll_compressed_integer_t compressed_int);
Description: Docs!
Arguments:
compressed_int ->
Return Value:

Docs!

#define SLL_CONTAINER_CLEAR(sll_container_t* container) -> void
Description: Docs!
Arguments:
container ->
Return Value: No return value
#define SLL_CONTAINER_FILTER(sll_container_t* container,__type__ type,__identifier__ var,__code__ check,__code__ delete) -> void
Description: Docs!
Arguments:
container ->
type ->
var ->
check ->
delete ->
Return Value: No return value
#define SLL_CONTAINER_INIT(sll_container_t* container) -> void
Description: Docs!
Arguments:
container ->
Return Value: No return value
#define SLL_CONTAINER_INIT_STRUCT -> sll_container_t
Description: Docs!
#define SLL_CONTAINER_ITER(sll_container_t* container,__type__ type,__identifier__ var,__code__ code) -> void
Description: Docs!
Arguments:
container ->
type ->
var ->
code ->
Return Value: No return value
#define SLL_CONTAINER_ITER_CLEAR(sll_container_t* container,__type__ type,__identifier__ var,__code__ code) -> void
Description: Docs!
Arguments:
container ->
type ->
var ->
code ->
Return Value: No return value
#define SLL_CONTAINER_PUSH(sll_container_t* container,__type__ type,__any__ elem) -> void
Description: Docs!
Arguments:
container ->
type ->
elem ->
Return Value: No return value
typedef void (*sll_container_callback_t)(void* elem);
Description: Docs!
Arguments:
elem ->
Return Value: No return value
typedef sll_bool_t (*sll_container_check_callback_t)(const void* elem);
Description: Docs!
Arguments:
elem ->
Return Value:
typedef struct _SLL_CONTAINER{
void* data; sll_size_t size; } sll_container_t;
Description: Docs!
Fields:
data ->
size ->
void sll_container_clear(sll_container_t* container);
Description: Docs!
Arguments:
container ->
Return Value: No return value
void sll_container_filter(sll_container_t* container,sll_size_t elem_size,sll_container_check_callback_t check,sll_container_callback_t delete);
Description: Docs!
Arguments:
container ->
elem_size ->
check ->
delete ->
Return Value: No return value
void sll_container_init(sll_container_t* container);
Description: Docs!
Arguments:
container ->
Return Value: No return value
void sll_container_iter(sll_container_t* container,sll_size_t elem_size,sll_container_callback_t callback);
Description: Docs!
Arguments:
container ->
elem_size ->
callback ->
Return Value: No return value
void sll_container_iter_clear(sll_container_t* container,sll_size_t elem_size,sll_container_callback_t callback);
Description: Docs!
Arguments:
container ->
elem_size ->
callback ->
Return Value: No return value
void sll_container_push(sll_container_t* container,const void* elem,sll_size_t elem_size);
Description: Docs!
Arguments:
container ->
elem ->
elem_size ->
Return Value: No return value

Docs!

#define SLL_HANDLE_CONTAINER_ALLOC(sll_handle_container_t* container,sll_size_t* idx) -> void
Description: Docs!
Arguments:
container ->
idx ->
Return Value: No return value
#define SLL_HANDLE_CONTAINER_CHECK(sll_handle_container_t* container,sll_size_t index) -> void
Description: Docs!
Arguments:
container ->
index ->
Return Value: No return value
#define SLL_HANDLE_CONTAINER_CLEAR(sll_handle_container_t* container) -> void
Description: Docs!
Arguments:
container ->
Return Value: No return value
#define SLL_HANDLE_CONTAINER_DEALLOC(sll_handle_container_t* container,sll_size_t idx) -> void
Description: Docs!
Arguments:
container ->
idx ->
Return Value: No return value
#define SLL_HANDLE_CONTAINER_GET(sll_handle_container_t* container,sll_size_t index) -> void*
Description: Docs!
Arguments:
container ->
index ->
Return Value:
#define SLL_HANDLE_CONTAINER_INIT(sll_handle_container_t* container) -> void
Description: Docs!
Arguments:
container ->
Return Value: No return value
#define SLL_HANDLE_CONTAINER_INIT_STRUCT -> sll_handle_container_t
Description: Docs!
#define SLL_HANDLE_CONTAINER_ITER(sll_handle_container_t* container,__type__ type,__identifier__ var,__code__ code) -> void
Description: Docs!
Arguments:
container ->
type ->
var ->
code ->
Return Value: No return value
#define SLL_HANDLE_CONTAINER_ITER_CLEAR(sll_handle_container_t* container,__type__ type,__identifier__ var,__code__ code) -> void
Description: Docs!
Arguments:
container ->
type ->
var ->
code ->
Return Value: No return value
typedef struct _SLL_HANDLE_CONTAINER{
void** data; sll_size_t size; sll_size_t index; } sll_handle_container_t;
Description: Docs!
Fields:
data ->
size ->
index ->
(check_output) sll_size_t sll_handle_container_alloc(sll_handle_container_t* container);
Description: Docs!
Arguments:
container ->
Return Value:
void sll_handle_container_clear(sll_handle_container_t* container);
Description: Docs!
Arguments:
container ->
Return Value: No return value
(check_output) sll_bool_t sll_handle_container_check(sll_handle_container_t* container,sll_size_t index);
Description: Docs!
Arguments:
container ->
index ->
Return Value:
void sll_handle_container_dealloc(sll_handle_container_t* container,sll_size_t index);
Description: Docs!
Arguments:
container ->
index ->
Return Value: No return value
(check_output) void* sll_handle_container_get(sll_handle_container_t* container,sll_size_t index);
Description: Docs!
Arguments:
container ->
index ->
Return Value:
void sll_handle_container_init(sll_handle_container_t* container);
Description: Docs!
Arguments:
container ->
Return Value: No return value
void sll_handle_container_iter(sll_handle_container_t* container,sll_container_callback_t callback);
Description: Docs!
Arguments:
container ->
callback ->
Return Value: No return value
void sll_handle_container_iter_clear(sll_handle_container_t* container,sll_container_callback_t callback);
Description: Docs!
Arguments:
container ->
callback ->
Return Value: No return value

Docs!

#define SLL_MAP_CONTAINER_FLAG_XOR -> sll_size_t
Description: Docs!
#define SLL_MAP_CONTAINER_HASH_XOR(sll_size_t size) -> void*
Description: Docs!
Arguments:
size ->
Return Value:
typedef sll_size_t (*sll_map_container_hash_callback_t)(const void* key);
Description: Docs!
Arguments:
key ->
Return Value:
typedef sll_bool_t (*sll_map_container_equal_t)(const void* value_a,const void* value_b);
Description: Docs!
Arguments:
value_a ->
value_b ->
Return Value:
typedef sll_bool_t (*sll_map_container_filter_callback_t)(const void* key,void* value,void* ctx);
Description: Docs!
Arguments:
key ->
value ->
ctx ->
Return Value:
typedef struct _SLL_MAP_CONTAINER_ENTRY{
const void* key; void* value; sll_size_t _hash; sll_bool_t _delete; } sll_map_container_entry_t;
Description: Docs!
Fields:
key ->
value ->
_hash ->
_delete ->
typedef union _SLL_MAP_CONTAINER_HASH_DATA{
sll_map_container_hash_callback_t fn; sll_size_t size; } sll_map_container_hash_data_t;
Description: Docs!
Fields:
fn ->
size ->
typedef struct _SLL_MAP_CONTAINER_HASH{
sll_map_container_hash_data_t data; sll_bool_t is_function; } sll_map_container_hash_t;
Description: Docs!
Fields:
data ->
is_function ->
typedef struct _SLL_MAP_CONTAINER{
sll_map_container_entry_t* data; sll_size_t* _indices; sll_map_container_hash_t _hash; sll_map_container_equal_t _eq_fn; sll_size_t _elem_count; sll_size_t _mask; sll_size_t _rng; } sll_map_container_t;
Description: Docs!
Fields:
data ->
_indices ->
_hash ->
_eq_fn ->
_elem_count ->
_mask ->
_rng ->
void sll_map_container_clear(sll_map_container_t* container);
Description: Docs!
Arguments:
container ->
Return Value: No return value
(check_output) sll_bool_t sll_map_container_contains(sll_map_container_t* container,const void* key);
Description: Docs!
Arguments:
container ->
key ->
Return Value:
void sll_map_container_deinit(sll_map_container_t* container);
Description: Docs!
Arguments:
container ->
Return Value: No return value
void* sll_map_container_delete(sll_map_container_t* container,const void* key,void* default_);
Description: Docs!
Arguments:
container ->
key ->
default_ ->
Return Value:
sll_bool_t sll_map_container_filter(sll_map_container_t* container,sll_map_container_filter_callback_t callback,void* ctx);
Description: Docs!
Arguments:
container ->
callback ->
ctx ->
Return Value:
(check_output) void* sll_map_container_get(sll_map_container_t* container,const void* key,void* default_);
Description: Docs!
Arguments:
container ->
key ->
default_ ->
Return Value:
void sll_map_container_init(sll_map_container_hash_callback_t hash_fn,sll_map_container_equal_t equal_fn,sll_map_container_t* out);
Description: Docs!
Arguments:
hash_fn ->
equal_fn ->
out ->
Return Value: No return value
void sll_map_container_iter(sll_map_container_t* container,sll_container_callback_t callback);
Description: Docs!
Arguments:
container ->
callback ->
Return Value: No return value
void sll_map_container_iter_clear(sll_map_container_t* container,sll_container_callback_t callback);
Description: Docs!
Arguments:
container ->
callback ->
Return Value: No return value
void sll_map_container_set(sll_map_container_t* container,const void* key,void* value);
Description: Docs!
Arguments:
container ->
key ->
value ->
Return Value: No return value

Docs!

#define SLL_COMPARE_RESULT_BELOW -> sll_compare_result_t
Description: Docs!
#define SLL_COMPARE_RESULT_EQUAL -> sll_compare_result_t
Description: Docs!
#define SLL_COMPARE_RESULT_ABOVE -> sll_compare_result_t
Description: Docs!
#define SLL_COPY_STRING_NULL(const sll_char_t* source,void* target) -> void
Description: Docs!
Arguments:
source ->
target ->
Return Value: No return value
typedef unsigned char sll_compare_result_t;
Description: Docs!
(check_output) sll_compare_result_t sll_compare_data(const void* a,const void* b,sll_size_t length);
Description: Docs!
Arguments:
a ->
b ->
length ->
Return Value:
(check_output) sll_bool_t sll_contains_character(const void* pointer,sll_size_t length,sll_char_t char_);
Description: Docs!
Arguments:
pointer ->
length ->
char_ ->
Return Value:
void sll_copy_data(const void* source,sll_size_t length,void* target);
Description: Docs!
Arguments:
source ->
length ->
target ->
Return Value: No return value
void sll_copy_objects(const sll_object_t* source,sll_size_t count,sll_object_t* target);
Description: Docs!
Arguments:
source ->
count ->
target ->
Return Value: No return value
void* sll_copy_string(const sll_char_t* source,void* target);
Description: Docs!
Arguments:
source ->
target ->
Return Value:
void sll_copy_string_null(const sll_char_t* source,void* target);
Description: Docs!
Arguments:
source ->
target ->
Return Value: No return value
void sll_set_memory(void* pointer,sll_size_t length,sll_char_t value);
Description: Docs!
Arguments:
pointer ->
length ->
value ->
Return Value: No return value
void sll_zero_memory(void* pointer,sll_size_t length);
Description: Docs!
Arguments:
pointer ->
length ->
Return Value: No return value

Docs!

typedef unsigned char sll_day_t;
Description: Docs!
typedef unsigned char sll_hour_t;
Description: Docs!
typedef unsigned char sll_minute_t;
Description: Docs!
typedef unsigned char sll_month_t;
Description: Docs!
typedef unsigned short int sll_year_t;
Description: Docs!
typedef double sll_second_t;
Description: Docs!
typedef struct _SLL_TIME_ZONE{
sll_char_t name[32]; sll_time_t offset; } sll_time_zone_t;
Description: Docs!
Fields:
name ->
offset ->
typedef struct _SLL_DATE{
sll_year_t year; sll_month_t month; sll_day_t day; sll_day_t week_day; sll_hour_t hour; sll_minute_t minute; sll_second_t second; sll_time_zone_t time_zone; } sll_date_t;
Description: Docs!
Fields:
year ->
month ->
day ->
week_day ->
hour ->
minute ->
second ->
time_zone ->
const sll_time_zone_t* sll_utc_time_zone;
Description: Docs!
(api_call) void sll_api_date_get_time_zone(sll_array_t* out);
Description: Docs!
API Signature: |a
Arguments:
out ->
Return Value: No return value
(api_call) (check_output) sll_float_t sll_api_date_merge(sll_year_t year,sll_month_t month,sll_day_t day,sll_hour_t hour,sll_minute_t minute,sll_second_t second);
Description: Docs!
API Signature: WBBBBf|f
Arguments:
year ->
month ->
day ->
hour ->
minute ->
second ->
Return Value:
(api_call) void sll_api_date_split(sll_float_t time,sll_array_t* out);
Description: Docs!
API Signature: f|a
Arguments:
time ->
out ->
Return Value: No return value
void sll_date_from_time(sll_float_t time,const sll_time_zone_t* time_zone,sll_date_t* out);
Description: Docs!
Arguments:
time ->
time_zone ->
out ->
Return Value: No return value
void sll_date_from_time_ns(sll_time_t time,const sll_time_zone_t* time_zone,sll_date_t* out);
Description: Docs!
Arguments:
time ->
time_zone ->
out ->
Return Value: No return value
(check_output) sll_float_t sll_date_to_time(sll_date_t* date);
Description: Docs!
Arguments:
date ->
Return Value:

Docs!

void sll_debug_print_assembly(const sll_assembly_data_t* assembly_data);
Description: Docs!
Arguments:
assembly_data ->
Return Value: No return value
void sll_debug_print_node(sll_node_t node,const sll_source_file_t* source_file);
Description: Docs!
Arguments:
node ->
source_file ->
Return Value: No return value
void sll_debug_print_object(sll_object_t object);
Description: Docs!
Arguments:
object ->
Return Value: No return value

Docs!

typedef unsigned int sll_environment_length_t;
Description: Docs!
typedef struct _SLL_ENVIRONMENT_VARIABLE{
const sll_string_t key; const sll_string_t value; } sll_environment_variable_t;
Description: Docs!
Fields:
key ->
value ->
typedef struct _SLL_ENVIRONMENT{
const sll_environment_variable_t*const* data; const sll_environment_length_t length; } sll_environment_t;
Description: Docs!
Fields:
data ->
length ->
const sll_environment_t* sll_environment;
Description: Docs!
const sll_search_path_t* sll_environment_path;
Description: Docs!
sll_bool_t sll_expand_environment_variable(const sll_string_t* key,sll_string_t* out);
Description: Docs!
Arguments:
key ->
out ->
Return Value:
sll_bool_t sll_get_environment_variable(const sll_string_t* key,sll_string_t* out);
Description: Docs!
Arguments:
key ->
out ->
Return Value:
void sll_remove_environment_variable(const sll_string_t* key);
Description: Docs!
Arguments:
key ->
Return Value: No return value
void sll_set_environment_variable(const sll_string_t* key,const sll_string_t* value);
Description: Docs!
Arguments:
key ->
value ->
Return Value: No return value

Docs!

#define SLL_UNMAPPED_SYSTEM_ERROR -> sll_error_t
Description: Docs!
#define SLL_ERROR_FLAG_SLL -> sll_error_t
Description: Docs!
#define SLL_ERROR_FLAG_SYSTEM -> sll_error_t
Description: Docs!
#define SLL_ERROR_GET_TYPE(sll_error_t error) -> sll_error_t
Description: Docs!
Arguments:
error ->
Return Value:
#define SLL_ERROR_GET_VALUE(sll_error_t error) -> sll_error_t
Description: Docs!
Arguments:
error ->
Return Value:
#define SLL_ERROR_GET_EXTRA(sll_error_t error) -> sll_error_t
Description: Docs!
Arguments:
error ->
Return Value:
#define SLL_ERROR_FROM_EXTRA(sll_error_t type,sll_error_t extra) -> sll_error_t
Description: Docs!
Arguments:
type ->
extra ->
Return Value:
#define SLL_ERROR_FROM_SANDBOX(sll_error_t flag) -> sll_error_t
Description: Docs!
Arguments:
flag ->
Return Value:
#define SLL_ERROR_FROM_STRING_POINTER(void* pointer) -> sll_error_t
Description: Docs!
Arguments:
pointer ->
Return Value:
#define SLL_NO_ERROR -> sll_error_t
Description: Docs!
typedef unsigned long long int sll_error_t;
Description: Docs!
(check_output) sll_error_t sll_error_from_string_pointer(const sll_char_t* string);
Description: Docs!
Arguments:
string ->
Return Value:
(check_output) const sll_char_t* sll_error_get_string_pointer(sll_error_t error);
Description: Docs!
Arguments:
error ->
Return Value:
void sll_error_raise(sll_error_t error);
Description: Docs!
Arguments:
error ->
Return Value: No return value
void sll_error_raise_bool(sll_bool_t error);
Description: Docs!
Arguments:
error ->
Return Value: No return value

Docs!

#define SLL_ERROR_NO_FILE_PATH -> sll_error_t
Description: Docs!
#define SLL_ERROR_UNKNOWN_FD -> sll_error_t
Description: Docs!
#define SLL_ERROR_SANDBOX -> sll_error_t
Description: Docs!
#define SLL_ERROR_TOO_LONG -> sll_error_t
Description: Docs!
#define SLL_ERROR_EOF -> sll_error_t
Description: Docs!
#define SLL_ERROR_BASE64_PADDING -> sll_error_t
Description: Docs!
#define SLL_ERROR_BASE64_CHARACTER -> sll_error_t
Description: Docs!
#define SLL_ERROR_STRING -> sll_error_t
Description: Docs!
#define SLL_ERROR_UNKNOWN_FUNCTION -> sll_error_t
Description: Docs!
#define SLL_ERROR_NOT_A_SOCKET -> sll_error_t
Description: Docs!
#define SLL_ERROR_INITIALIZATION -> sll_error_t
Description: Docs!

Docs!

(api_call) void sll_api_error_get_call_stack(sll_call_stack_size_t pop,sll_thread_index_t thread_index,sll_array_t* out);
Description: Docs!
API Signature: DD|a
Arguments:
pop ->
thread_index ->
out ->
Return Value: No return value
(api_call) void sll_api_error_get_error_string(sll_error_t err,sll_string_t* out);
Description: Docs!
API Signature: Q|s
Arguments:
err ->
out ->
Return Value: No return value

Docs!

#define SLL_MAX_FILE_OFFSET -> sll_file_offset_t
Description: Docs!
#define SLL_FILE_GET_LINE_NUMBER(sll_file_t* file_) -> sll_file_offset_t
Description: Docs!
Arguments:
file_ ->
Return Value:
#define SLL_FILE_GET_OFFSET(sll_file_t* file_) -> sll_file_offset_t
Description: Docs!
Arguments:
file_ ->
Return Value:
#define SLL_END_OF_DATA -> sll_read_char_t
Description: Docs!
typedef unsigned short int sll_file_flags_t;
Description: Docs!
typedef unsigned short int sll_read_char_t;
Description: Docs!
typedef unsigned long long int sll_file_offset_t;
Description: Docs!
typedef struct _SLL_FILE_SOURCE_FILE{
const sll_file_descriptor_t fd; const sll_string_t path; } sll_file_source_file_t;
Description: Docs!
Fields:
fd ->
path ->
typedef struct _SLL_FILE_SOURCE_MEMORY{
const void* pointer; const sll_size_t size; } sll_file_source_memory_t;
Description: Docs!
Fields:
pointer ->
size ->
typedef union _SLL_FILE_SOURCE{
const sll_file_source_file_t file; const sll_file_source_memory_t memory; } sll_file_source_t;
Description: Docs!
Fields:
file ->
memory ->
typedef struct _SLL_FILE_WRITE_BUFFER_STATIC{
sll_char_t* pointer; sll_file_offset_t offset; } sll_file_write_buffer_static_t;
Description: Docs!
Fields:
pointer ->
offset ->
typedef struct _SLL_FILE_WRITE_BUFFER_DYNAMIC{
void* start; void* end; sll_file_offset_t sz; sll_file_offset_t off; } sll_file_write_buffer_dynamic_t;
Description: Docs!
Fields:
start ->
end ->
sz ->
off ->
typedef union _SLL_FILE_WRITE_BUFFER{
sll_file_write_buffer_static_t static_; sll_file_write_buffer_dynamic_t dynamic; } sll_file_write_buffer_t;
Description: Docs!
Fields:
static_ ->
dynamic ->
typedef struct _SLL_FILE_HASH{
sll_sha256_data_t hash; sll_char_t buffer[64]; unsigned char buffer_offset; } sll_file_hash_t;
Description: Docs!
Fields:
hash ->
buffer ->
buffer_offset ->
typedef struct _SLL_FILE_DATA_FILE{
const sll_file_source_t source; sll_file_offset_t _line_number; sll_file_offset_t _offset; sll_char_t* _read_buffer; sll_file_offset_t _read_buffer_offset; sll_file_offset_t _read_buffer_size; sll_file_write_buffer_t _write_buffer; sll_file_hash_t _hash; } sll_file_data_file_t;
Description: Docs!
Fields:
source ->
_line_number ->
_offset ->
_read_buffer ->
_read_buffer_offset ->
_read_buffer_size ->
_write_buffer ->
_hash ->
typedef union _SLL_FILE_DATA{
sll_file_data_file_t file; sll_file_data_socket_t socket; } sll_file_data_t;
Description: Docs!
Fields:
file ->
socket ->
typedef struct _SLL_FILE{
const sll_file_flags_t flags; sll_file_data_t data; sll_lock_handle_t _lock; } sll_file_t;
Description: Docs!
Fields:
flags ->
data ->
_lock ->
sll_file_t* sll_stdin;
Description: Docs!
sll_file_t* sll_stdout;
Description: Docs!
sll_file_t* sll_stderr;
Description: Docs!
void sll_file_close(sll_file_t* file);
Description: Docs!
Arguments:
file ->
Return Value: No return value
(check_output) sll_bool_t sll_file_data_available(sll_file_t* file);
Description: Docs!
Arguments:
file ->
Return Value:
void sll_file_from_data(const void* pointer,sll_size_t size,sll_file_flags_t flags,sll_file_t* out);
Description: Docs!
Arguments:
pointer ->
size ->
flags ->
out ->
Return Value: No return value
void sll_file_get_buffer(void* p,sll_file_t* file,sll_string_t* out);
Description: Docs!
Arguments:
p ->
file ->
out ->
Return Value: No return value
sll_error_t sll_file_open(const sll_char_t* name,sll_file_flags_t flags,sll_file_t* out);
Description: Docs!
Arguments:
name ->
flags ->
out ->
Return Value:
void sll_file_open_descriptor(const sll_char_t* name,sll_file_descriptor_t fd,sll_file_flags_t flags,sll_file_t* out);
Description: Docs!
Arguments:
name ->
fd ->
flags ->
out ->
Return Value: No return value
(check_output) sll_error_t sll_file_reset(sll_file_t* file);
Description: Docs!
Arguments:
file ->
Return Value:
typedef struct _SLL_FILE_DATA_SOCKET{
const sll_file_descriptor_t fd; } sll_file_data_socket_t;
Description: Docs!
Fields:
fd ->

Docs!

#define SLL_FILE_FLAG_READ -> sll_file_flags_t
Description: Docs!
#define SLL_FILE_FLAG_WRITE -> sll_file_flags_t
Description: Docs!
#define SLL_FILE_FLAG_APPEND -> sll_file_flags_t
Description: Docs!
#define SLL_FILE_FLAG_NO_BUFFER -> sll_file_flags_t
Description: Docs!
#define SLL_FILE_FLUSH_ON_NEWLINE -> sll_file_flags_t
Description: Docs!
#define SLL_FILE_FLAG_ASYNC -> sll_file_flags_t
Description: Docs!
#define SLL_FILE_FLAG_SOCKET -> sll_file_flags_t
Description: Docs!
#define SLL_FILE_FLAG_RESERVED0 -> sll_file_flags_t
Description: Internally used as `FILE_FLAG_MEMORY`
#define SLL_FILE_FLAG_RESERVED1 -> sll_file_flags_t
Description: Internally used as `FILE_FLAG_NO_RELEASE`
#define SLL_FILE_FLAG_RESERVED2 -> sll_file_flags_t
Description: Internally used as `FILE_FLAG_DYNAMIC_BUFFERS`
#define SLL_FILE_FLAG_RESERVED3 -> sll_file_flags_t
Description: Internally used as `FILE_FLAG_PASSIVE`
#define SLL_FILE_FLAG_RESERVED4 -> sll_file_flags_t
Description: Internally used as `FILE_FLAG_BOUND`

Docs!

(check_output) sll_error_t sll_file_flush(sll_file_t* file);
Description: Docs!
Arguments:
file ->
Return Value:
(check_output) sll_read_char_t sll_file_peek_char(sll_file_t* file,sll_error_t* err);
Description: Docs!
Arguments:
file ->
err ->
Return Value:
(check_output) sll_size_t sll_file_read(sll_file_t* file,void* pointer,sll_size_t size,sll_error_t* err);
Description: Docs!
Arguments:
file ->
pointer ->
size ->
err ->
Return Value:
(check_output) sll_error_t sll_file_read_all(sll_file_t* file,sll_string_t* out);
Description: Docs!
Arguments:
file ->
out ->
Return Value:
sll_read_char_t sll_file_read_char(sll_file_t* file,sll_error_t* err);
Description: Docs!
Arguments:
file ->
err ->
Return Value:
(check_output) sll_size_t sll_file_write(sll_file_t* file,const void* pointer,sll_size_t size,sll_error_t* err);
Description: Docs!
Arguments:
file ->
pointer ->
size ->
err ->
Return Value:
(check_output) sll_bool_t sll_file_write_char(sll_file_t* file,sll_char_t char_,sll_error_t* err);
Description: Docs!
Arguments:
file ->
char_ ->
err ->
Return Value:
(check_output) sll_size_t sll_file_write_char_count(sll_file_t* file,sll_char_t char_,sll_size_t count,sll_error_t* err);
Description: Docs!
Arguments:
file ->
char_ ->
count ->
err ->
Return Value:
(check_output) sll_size_t sll_file_write_format(sll_file_t* file,const sll_char_t* format,sll_error_t* err,...);
Description: Docs!
Arguments:
file ->
format ->
err ->
Return Value:
(check_output) sll_size_t sll_file_write_string(sll_file_t* file,const sll_char_t* string,sll_error_t* err);
Description: Docs!
Arguments:
file ->
string ->
err ->
Return Value:

Docs!

typedef unsigned int sll_file_handle_t;
Description: Docs!
(api_call) (check_output) sll_bool_t sll_api_file_close(sll_file_handle_t handle);
Description: Docs!
API Signature: D|b
Arguments:
handle ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_file_copy(const sll_string_t* src,const sll_string_t* dst);
Description: Docs!
API Signature: #s#s|Q
Arguments:
src ->
dst ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_file_delete(const sll_string_t* path);
Description: Docs!
API Signature: #s|Q
Arguments:
path ->
Return Value:
(api_call) (check_output) sll_bool_t sll_api_file_flush(sll_file_handle_t handle);
Description: Docs!
API Signature: D|b
Arguments:
handle ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_file_from_data(const sll_string_t* data,sll_file_flags_t flags,sll_file_handle_t* out);
Description: Docs!
API Signature: #sB|~D
Arguments:
data ->
flags ->
out ->
Return Value:
(api_call) void sll_api_file_get_buffer(sll_file_handle_t handle,sll_string_t* out);
Description: Docs!
API Signature: D|s
Arguments:
handle ->
out ->
Return Value: No return value
(api_call) void sll_api_file_get_temp_path(sll_string_t* out);
Description: Docs!
API Signature: |s
Arguments:
out ->
Return Value: No return value
(api_call) void sll_api_file_inc_handle(sll_file_handle_t handle);
Description: Docs!
API Signature: D|
Arguments:
handle ->
Return Value: No return value
(api_call) (check_output) sll_error_t sll_api_file_open(const sll_string_t* path,sll_file_flags_t flags,sll_file_handle_t* out);
Description: Docs!
API Signature: #sB|~D
Arguments:
path ->
flags ->
out ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_file_peek(sll_file_handle_t handle,sll_char_t* out);
Description: Docs!
API Signature: D|~c
Arguments:
handle ->
out ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_file_read(sll_file_handle_t handle,sll_string_length_t size,sll_string_t* out);
Description: Docs!
API Signature: DD|~s
Arguments:
handle ->
size ->
out ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_file_read_char(sll_file_handle_t handle,sll_char_t* out);
Description: Docs!
API Signature: D|~c
Arguments:
handle ->
out ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_file_rename(const sll_string_t* src,const sll_string_t* dst);
Description: Docs!
API Signature: #s#s|Q
Arguments:
src ->
dst ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_file_std_handle(sll_char_t id,sll_file_handle_t* out);
Description: Docs!
API Signature: c|~D
Arguments:
id ->
out ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_file_write(sll_file_handle_t handle,const sll_string_t* data,sll_size_t* out);
Description: Docs!
API Signature: D#s|~Q
Arguments:
handle ->
data ->
out ->
Return Value:
(check_output) sll_file_t* sll_file_from_handle(sll_file_handle_t handle);
Description: Desc!
Arguments:
handle ->
Return Value:
(check_output) sll_file_handle_t sll_file_to_handle(sll_file_t* f,sll_bool_t alloc);
Description: Desc!
Arguments:
f ->
alloc ->
Return Value:

Docs!

typedef unsigned int sll_object_type_t;
Description: Docs!
typedef unsigned long long int sll_reference_count_t;
Description: Docs!
typedef unsigned int sll_object_pool_index_t;
Description: Docs!
typedef unsigned int sll_object_flags_t;
Description: Docs!
typedef unsigned long long int sll_object_extra_data_t;
Description: Docs!
typedef union _SLL_OBJECT_FIELD{
sll_integer_t int_; sll_float_t float_; sll_char_t char_; struct _SLL_OBJECT* any; } sll_object_field_t;
Description: Docs!
Fields:
int_ ->
float_ ->
char_ ->
any ->
typedef struct _SLL_OBJECT_PTR{
struct _SLL_OBJECT* prev; struct _SLL_OBJECT* next; } sll_object_ptr_t;
Description: Docs!
Fields:
prev ->
next ->
typedef union _SLL_OBJECT_DATA{
sll_integer_t int_; sll_float_t float_; sll_char_t char_; sll_complex_t complex_; sll_string_t string; sll_array_t array; sll_map_t map; sll_object_field_t* fields; sll_object_ptr_t _next_object; sll_object_pool_index_t _pool_index; } sll_object_data_t;
Description: Docs!
Fields:
int_ ->
float_ ->
char_ ->
complex_ ->
string ->
array ->
map ->
fields ->
_next_object ->
_pool_index ->
typedef struct _SLL_OBJECT{
sll_reference_count_t reference_count; const sll_object_type_t type; sll_object_flags_t _flags; sll_object_extra_data_t _data; sll_object_data_t data; }* sll_object_t;
Description: Docs!
Fields:
reference_count ->
type ->
_flags ->
_data ->
data ->
#define SLL_OBJECT_REFERENCE_COUNTER_MASK -> sll_reference_count_t
Description: Docs!
#define SLL_GET_OBJECT_REFERENCE_COUNTER(sll_object_t o) -> sll_reference_count_t
Description: Docs!
Arguments:
o ->
Return Value:
#define SLL_ACQUIRE(sll_object_t object) -> void
Description: Docs!
Arguments:
object ->
Return Value: No return value
#define SLL_RELEASE(sll_object_t object) -> void
Description: Docs!
Arguments:
object ->
Return Value: No return value
void sll__gc_error(sll_object_t object);
Description: Docs!
Arguments:
object ->
Return Value: No return value
void sll__release_object_internal(sll_object_t object);
Description: Docs!
Arguments:
object ->
Return Value: No return value
void sll_acquire_object(sll_object_t object);
Description: Docs!
Arguments:
object ->
Return Value: No return value
(check_output) sll_object_t sll_create_object(sll_object_type_t type);
Description: Docs!
Arguments:
type ->
Return Value:
(check_output) sll_bool_t sll_destroy_object(sll_object_t object);
Description: Docs!
Arguments:
object ->
Return Value:
void sll_gc_add_root(sll_object_t object,sll_bool_t fast);
Description: Docs!
Arguments:
object ->
fast ->
Return Value: No return value
void sll_gc_add_roots(const sll_object_t* pointer,sll_size_t length);
Description: Docs!
Arguments:
pointer ->
length ->
Return Value: No return value
void sll_gc_collect( void);
Description: Docs!
Arguments:
void ->
Return Value: No return value
void sll_gc_remove_root(sll_object_t object);
Description: Docs!
Arguments:
object ->
Return Value: No return value
void sll_gc_remove_roots(const sll_object_t* pointer);
Description: Docs!
Arguments:
pointer ->
Return Value: No return value
void sll_release_object(sll_object_t object);
Description: Docs!
Arguments:
object ->
Return Value: No return value

Docs!

#define SLL_INIT_MD5(sll_md5_data_t* o) -> void
Description: Docs!
Arguments:
o ->
Return Value: No return value
#define SLL_INIT_SHA1(sll_sha1_data_t* o) -> void
Description: Docs!
Arguments:
o ->
Return Value: No return value
#define SLL_INIT_SHA256(sll_sha256_data_t* o) -> void
Description: Docs!
Arguments:
o ->
Return Value: No return value
#define SLL_INIT_SHA512(sll_sha512_data_t* o) -> void
Description: Docs!
Arguments:
o ->
Return Value: No return value
#define SLL_INIT_MD5_STRUCT -> sll_md5_data_t
Description: Docs!
#define SLL_INIT_SHA1_STRUCT -> sll_sha1_data_t
Description: Docs!
#define SLL_INIT_SHA256_STRUCT -> sll_sha256_data_t
Description: Docs!
#define SLL_INIT_SHA512_STRUCT -> sll_sha512_data_t
Description: Docs!
typedef struct _SLL_MD5_DATA{
unsigned int a; unsigned int b; unsigned int c; unsigned int d; } sll_md5_data_t;
Description: Docs!
Fields:
a ->
b ->
c ->
d ->
typedef struct _SLL_SHA1_DATA{
unsigned int a; unsigned int b; unsigned int c; unsigned int d; unsigned int e; } sll_sha1_data_t;
Description: Docs!
Fields:
a ->
b ->
c ->
d ->
e ->
typedef struct _SLL_SHA256_DATA{
unsigned int a; unsigned int b; unsigned int c; unsigned int d; unsigned int e; unsigned int f; unsigned int g; unsigned int h; } sll_sha256_data_t;
Description: Docs!
Fields:
a ->
b ->
c ->
d ->
e ->
f ->
g ->
h ->
typedef struct _SLL_SHA512_DATA{
unsigned long long int a; unsigned long long int b; unsigned long long int c; unsigned long long int d; unsigned long long int e; unsigned long long int f; unsigned long long int g; unsigned long long int h; } sll_sha512_data_t;
Description: Docs!
Fields:
a ->
b ->
c ->
d ->
e ->
f ->
g ->
h ->
(api_call) void sll_api_hash_md5(unsigned int a,unsigned int b,unsigned int c,unsigned int d,const sll_string_t* str,sll_array_t* out);
Description: Docs!
API Signature: DDDD#s|a
Arguments:
a ->
b ->
c ->
d ->
str ->
out ->
Return Value: No return value
(api_call) void sll_api_hash_sha1(unsigned int a,unsigned int b,unsigned int c,unsigned int d,unsigned int e,const sll_string_t* str,sll_array_t* out);
Description: Docs!
API Signature: DDDDD#s|a
Arguments:
a ->
b ->
c ->
d ->
e ->
str ->
out ->
Return Value: No return value
(api_call) void sll_api_hash_sha256(unsigned int a,unsigned int b,unsigned int c,unsigned int d,unsigned int e,unsigned int f,unsigned int g,unsigned int h,const sll_string_t* str,sll_array_t* out);
Description: Docs!
API Signature: DDDDDDDD#s|a
Arguments:
a ->
b ->
c ->
d ->
e ->
f ->
g ->
h ->
str ->
out ->
Return Value: No return value
(api_call) void sll_api_hash_sha512(unsigned long long int a,unsigned long long int b,unsigned long long int c,unsigned long long int d,unsigned long long int e,unsigned long long int f,unsigned long long int g,unsigned long long int h,const sll_string_t* str,sll_array_t* out);
Description: Docs!
API Signature: QQQQQQQQ#s|a
Arguments:
a ->
b ->
c ->
d ->
e ->
f ->
g ->
h ->
str ->
out ->
Return Value: No return value
void sll_hash_md5(sll_md5_data_t* dt,void* buffer,sll_size_t bfl);
Description: Desc!
Arguments:
dt ->
buffer ->
bfl ->
Return Value: No return value
void sll_hash_sha1(sll_sha1_data_t* dt,void* buffer,sll_size_t bfl);
Description: Desc!
Arguments:
dt ->
buffer ->
bfl ->
Return Value: No return value
void sll_hash_sha256(sll_sha256_data_t* dt,void* buffer,sll_size_t bfl);
Description: Desc!
Arguments:
dt ->
buffer ->
bfl ->
Return Value: No return value
void sll_hash_sha512(sll_sha512_data_t* dt,void* buffer,sll_size_t bfl);
Description: Desc!
Arguments:
dt ->
buffer ->
bfl ->
Return Value: No return value

Docs!

(check_output) sll_bool_t sll_load_assembly(sll_file_t* file,sll_assembly_data_t* out);
Description: Docs!
Arguments:
file ->
out ->
Return Value:
(check_output) sll_bool_t sll_load_bundle(sll_file_t* file,sll_bundle_t* out);
Description: Docs!
Arguments:
file ->
out ->
Return Value:
(check_output) sll_bool_t sll_load_compiled_node(sll_file_t* file,sll_compilation_data_t* out);
Description: Docs!
Arguments:
file ->
out ->
Return Value:
void sll_write_assembly(const sll_assembly_data_t* assembly_data,sll_file_t* out);
Description: Docs!
Arguments:
assembly_data ->
out ->
Return Value: No return value
void sll_write_bundle(const sll_bundle_t* bundle,sll_file_t* out);
Description: Docs!
Arguments:
bundle ->
out ->
Return Value: No return value
void sll_write_compiled_node(const sll_compilation_data_t* compilation_data,sll_file_t* out);
Description: Docs!
Arguments:
compilation_data ->
out ->
Return Value: No return value

Docs!

#define SLL_MAX_SCOPE -> sll_scope_t
Description: Docs!
#define SLL_MAX_IDENTIFIER_INDEX -> sll_identifier_index_t
Description: Docs!
#define SLL_IDENTIFIER_GET_STRING_INDEX(sll_identifier_t* identifier) -> sll_string_index_t
Description: Docs!
Arguments:
identifier ->
Return Value:
#define SLL_IDENTIFIER_IS_TLS(sll_identifier_t* identifier) -> sll_bool_t
Description: Docs!
Arguments:
identifier ->
Return Value:
#define SLL_IDENTIFIER_UPDATE_STRING_INDEX(sll_identifier_t* identifier,sll_string_index_t name_string_index_) -> void
Description: Docs!
Arguments:
identifier ->
name_string_index_ ->
Return Value: No return value
#define SLL_IDENTIFIER_SET_STRING_INDEX(sll_identifier_t* identifier,sll_string_index_t name_string_index,sll_bool_t tls) -> void
Description: Docs!
Arguments:
identifier ->
name_string_index ->
tls ->
Return Value: No return value
typedef unsigned int sll_identifier_index_t;
Description: Docs!
typedef unsigned int sll_identifier_table_length_t;
Description: Docs!
typedef unsigned int sll_scope_t;
Description: Docs!
typedef struct _SLL_IDENTIFIER{
sll_scope_t scope; sll_string_index_t name_string_index; } sll_identifier_t;
Description: Docs!
Fields:
scope ->
name_string_index ->
typedef struct _SLL_IDENTIFIER_TABLE{
sll_identifier_t* data; sll_identifier_table_length_t length; } sll_identifier_table_t;
Description: Docs!
Fields:
data ->
length ->
(check_output) sll_string_index_t sll_identifier_get_string_index(sll_identifier_t* identifier);
Description: Docs!
Arguments:
identifier ->
Return Value:
(check_output) sll_bool_t sll_identifier_is_tls(sll_identifier_t* identifier);
Description: Docs!
Arguments:
identifier ->
Return Value:
void sll_identifier_set_string_index(sll_identifier_t* identifier,sll_string_index_t name_string_index,sll_bool_t tls);
Description: Docs!
Arguments:
identifier ->
name_string_index ->
tls ->
Return Value: No return value
void sll_identifier_update_string_index(sll_identifier_t* identifier,sll_string_index_t name_string_index);
Description: Docs!
Arguments:
identifier ->
name_string_index ->
Return Value: No return value

Docs!

#define SLL_CLEANUP_TYPE_GLOBAL -> sll_bool_t
Description: Docs!
#define SLL_CLEANUP_TYPE_VM -> sll_bool_t
Description: Docs!
typedef void (*sll_cleanup_function_t)(void);
Description: Docs!
Return Value: No return value
void sll_deinit(void);
Description: Docs!
Return Value: No return value
void sll_init(void);
Description: Docs!
Return Value: No return value
void sll_register_cleanup(sll_cleanup_function_t function,sll_bool_t type);
Description: Docs!
Arguments:
function ->
type ->
Return Value: No return value

Docs!

(api_call) void sll_api_int_to_bin(sll_integer_t number,sll_string_t* out);
Description: Docs!
API Signature: i|s
Arguments:
number ->
out ->
Return Value: No return value
(api_call) void sll_api_int_to_dec(sll_integer_t number,sll_string_t* out);
Description: Docs!
API Signature: i|s
Arguments:
number ->
out ->
Return Value: No return value
(api_call) void sll_api_int_to_hex(sll_integer_t number,sll_string_t* out);
Description: Docs!
API Signature: i|s
Arguments:
number ->
out ->
Return Value: No return value
(api_call) void sll_api_int_to_oct(sll_integer_t number,sll_string_t* out);
Description: Docs!
API Signature: i|s
Arguments:
number ->
out ->
Return Value: No return value

Docs!

#define SLL_MAX_FUNCTION_INDEX -> sll_function_index_t
Description: Docs!
#define SLL_UNKNOWN_INTERNAL_FUNCTION_INDEX -> sll_function_index_t
Description: Docs!
typedef void* sll_internal_function_pointer_t;
Description: Docs!
typedef struct _SLL_INTERNAL_FUNCTION{
sll_string_t name; sll_internal_function_pointer_t function; sll_char_t* format; unsigned short int _return_value; sll_arg_count_t _arg_count; sll_size_t _arg_size; unsigned long long int* _registers; } sll_internal_function_t;
Description: Docs!
Fields:
name ->
function ->
format ->
_return_value ->
_arg_count ->
_arg_size ->
_registers ->
typedef struct _SLL_INTERNAL_FUNCTION_TABLE{
const sll_internal_function_t* data; sll_function_index_t length; } sll_internal_function_table_t;
Description: Docs!
Fields:
data ->
length ->
typedef struct _SLL_INTERNAL_FUNCTION_DESCRIPTOR{
const sll_char_t* name; const sll_internal_function_pointer_t function; const sll_char_t* format; } sll_internal_function_descriptor_t;
Description: Docs!
Fields:
name ->
function ->
format ->
typedef struct _SLL_INTERNAL_FUNCTION_TABLE_DESCRIPTOR{
const sll_internal_function_descriptor_t* data; sll_function_index_t length; } sll_internal_function_table_descriptor_t;
Description: Docs!
Fields:
data ->
length ->
const sll_internal_function_table_descriptor_t* sll_builtin_internal_functions;
Description: Docs!
void sll_clone_internal_function_table(sll_internal_function_table_t* internal_function_table,sll_internal_function_table_t* out);
Description: Docs!
Arguments:
internal_function_table ->
out ->
Return Value: No return value
void sll_create_internal_function_table(sll_internal_function_table_t* out);
Description: Docs!
Arguments:
out ->
Return Value: No return value
void sll_free_internal_function_table(sll_internal_function_table_t* internal_function_table);
Description: Docs!
Arguments:
internal_function_table ->
Return Value: No return value
(check_output) sll_function_index_t sll_lookup_internal_function(const sll_internal_function_table_t* internal_function_table,const sll_char_t* name);
Description: Docs!
Arguments:
internal_function_table ->
name ->
Return Value:
sll_function_index_t sll_register_internal_function(sll_internal_function_table_t* internal_function_table,const sll_char_t* name,const sll_char_t* format,sll_internal_function_pointer_t function);
Description: Docs!
Arguments:
internal_function_table ->
name ->
format ->
function ->
Return Value:
void sll_register_internal_functions(sll_internal_function_table_t* internal_function_table,const sll_internal_function_descriptor_t* data,sll_function_index_t length);
Description: Docs!
Arguments:
internal_function_table ->
data ->
length ->
Return Value: No return value

Docs!

#define SLL_MAX_JSON_ARRAY_LENGTH -> sll_json_array_length_t
Description: Docs!
#define SLL_MAX_JSON_MAP_LENGTH -> sll_json_map_length_t
Description: Docs!
typedef unsigned char sll_json_object_type_t;
Description: Docs!
typedef unsigned int sll_json_array_length_t;
Description: Docs!
typedef unsigned int sll_json_map_length_t;
Description: Docs!
typedef const sll_char_t* sll_json_parser_state_t;
Description: Docs!
typedef struct _SLL_JSON_ARRAY{
struct _SLL_JSON_OBJECT* data; sll_json_array_length_t length; } sll_json_array_t;
Description: Docs!
Fields:
data ->
length ->
typedef struct _SLL_JSON_MAP{
struct _SLL_JSON_MAP_KEYPAIR* data; sll_json_map_length_t length; } sll_json_map_t;
Description: Docs!
Fields:
data ->
length ->
typedef union _SLL_JSON_OBJECT_DATA{
sll_integer_t int_; sll_float_t float_; sll_string_t string; sll_json_array_t array; sll_json_map_t map; } sll_json_object_data_t;
Description: Docs!
Fields:
int_ ->
float_ ->
string ->
array ->
map ->
typedef struct _SLL_JSON_OBJECT{
sll_json_object_type_t type; sll_json_object_data_t data; } sll_json_object_t;
Description: Docs!
Fields:
type ->
data ->
typedef struct _SLL_JSON_MAP_KEYPAIR{
sll_string_t key; sll_json_object_t value; } sll_json_map_keypair_t;
Description: Docs!
Fields:
key ->
value ->
(api_call) void sll_api_json__init(sll_object_t null_obj,sll_object_t true_obj,sll_object_t false_obj);
Description: Docs!
API Signature: ooo|
Arguments:
null_obj ->
true_obj ->
false_obj ->
Return Value: No return value
(api_call) (check_output) sll_object_t sll_api_json_parse(const sll_string_t* string);
Description: Docs!
API Signature: #s|o
Arguments:
string ->
Return Value:
(api_call) void sll_api_json_stringify(sll_object_t json,sll_string_t* out);
Description: Docs!
API Signature: o|s
Arguments:
json ->
out ->
Return Value: No return value
void sll_free_json_object(sll_json_object_t* json);
Description: Docs!
Arguments:
json ->
Return Value: No return value
(check_output) sll_json_object_t* sll_json_get_by_key(sll_json_object_t* json,const sll_string_t* key);
Description: Docs!
Arguments:
json ->
key ->
Return Value:
(check_output) sll_bool_t sll_json_parse(sll_json_parser_state_t* p,sll_json_object_t* out);
Description: Docs!
Arguments:
p ->
out ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_path_set_cwd(const sll_string_t* path);
Description: Docs!
API Signature: #s|Q
Arguments:
path ->
Return Value:

Docs!

#define SLL_JSON_OBJECT_TYPE_NULL -> sll_json_object_type_t
Description: Docs!
#define SLL_JSON_OBJECT_TYPE_FALSE -> sll_json_object_type_t
Description: Docs!
#define SLL_JSON_OBJECT_TYPE_TRUE -> sll_json_object_type_t
Description: Docs!
#define SLL_JSON_OBJECT_TYPE_INTEGER -> sll_json_object_type_t
Description: Docs!
#define SLL_JSON_OBJECT_TYPE_FLOAT -> sll_json_object_type_t
Description: Docs!
#define SLL_JSON_OBJECT_TYPE_STRING -> sll_json_object_type_t
Description: Docs!
#define SLL_JSON_OBJECT_TYPE_ARRAY -> sll_json_object_type_t
Description: Docs!
#define SLL_JSON_OBJECT_TYPE_MAP -> sll_json_object_type_t
Description: Docs!

Docs!

#define SLL_ABI_AUDIT_CALL -> __identifier__
Description: Docs!
#define SLL_ABI_AUDIT_DEINIT -> __identifier__
Description: Docs!
#define SLL_ABI_AUDIT_INIT -> __identifier__
Description: Docs!
#define SLL_ABI_DEINIT -> __identifier__
Description: Docs!
#define SLL_ABI_INIT -> __identifier__
Description: Docs!
#define SLL_ABI_INTERNAL_FUNCTION_TABLE_DESCRIPTOR -> __identifier__
Description: Docs!
#define SLL_ABI_PATH_RESOLVER_DEINIT -> __identifier__
Description: Docs!
#define SLL_ABI_PATH_RESOLVER_INIT -> __identifier__
Description: Docs!
#define SLL_ABI_PATH_RESOLVER_RESOLVE -> __identifier__
Description: Docs!
#define SLL_ABI_NAME(__identifier__ x) -> const sll_char_t*
Description: Docs!
Arguments:
x ->
Return Value:

Docs!

#define SLL_DEBUG_LINE_DATA_FLAG_FILE -> sll_file_offset_t
Description: Docs!
#define SLL_DEBUG_LINE_DATA_FLAG_FUNC -> sll_file_offset_t
Description: Docs!
#define SLL_DEBUG_LINE_DATA_GET_DATA(const sll_debug_line_data_t* debug_data) -> sll_file_offset_t
Description: Docs!
Arguments:
debug_data ->
Return Value:
#define SLL_DEBUG_LINE_DATA_SET_DATA(const sll_debug_line_data_t* debug_data,sll_file_offset_t index,sll_file_offset_t flags) -> void
Description: Docs!
Arguments:
debug_data ->
index ->
flags ->
Return Value: No return value
sll_file_offset_t sll_get_location(const sll_assembly_data_t* assembly_data,sll_instruction_index_t instruction_index,sll_string_index_t* file_path_string_index,sll_string_index_t* function_string_index);
Description: Docs!
Arguments:
assembly_data ->
instruction_index ->
file_path_string_index ->
function_string_index ->
Return Value:
void sll_get_name(sll_object_t object,sll_string_t* out);
Description: Docs!
Arguments:
object ->
out ->
Return Value: No return value

Docs!

#define SLL_MAX_LOCK_INDEX -> sll_lock_index_t
Description: Docs!
typedef unsigned int sll_lock_index_t;
Description: Docs!
(check_output) sll_lock_index_t sll_lock_create(void);
Description: Docs!
Return Value:
(check_output) sll_bool_t sll_lock_delete(sll_lock_index_t lock_index);
Description: Docs!
Arguments:
lock_index ->
Return Value:
(check_output) sll_bool_t sll_lock_release(sll_lock_index_t lock_index);
Description: Docs!
Arguments:
lock_index ->
Return Value:

Docs!

#define SLL_LOG(const sll_char_t* format,...) -> void
Description: Docs!
Arguments:
format ->
Return Value: No return value
#define SLL_WARN(const sll_char_t* format,...) -> void
Description: Docs!
Arguments:
format ->
Return Value: No return value
#define SLL_LOG_FLAG_SHOW -> sll_logger_flags_t
Description: Docs!
#define SLL_LOG_FLAG_NO_HEADER -> sll_logger_flags_t
Description: Docs!
typedef unsigned char sll_logger_flags_t;
Description: Docs!
sll_bool_t sll_log(const sll_char_t* file_path,const sll_char_t* function_name,sll_file_offset_t line,sll_bool_t is_warning,const sll_char_t* format,...);
Description: Docs!
Arguments:
file_path ->
function_name ->
line ->
is_warning ->
format ->
Return Value:
sll_bool_t sll_log_raw(const sll_char_t* file_path,const sll_char_t* function_name,sll_file_offset_t line,sll_bool_t is_warning,const sll_string_t* string);
Description: Docs!
Arguments:
file_path ->
function_name ->
line ->
is_warning ->
string ->
Return Value:
(check_output) sll_bool_t sll_set_log_flags(const sll_char_t* file_path,const sll_char_t* function_name,sll_logger_flags_t flags,sll_bool_t state);
Description: Docs!
Arguments:
file_path ->
function_name ->
flags ->
state ->
Return Value:

Docs!

(api_call) (check_output) sll_bool_t sll_api_log_log(const sll_object_t* args,sll_arg_count_t arg_count);
Description: Docs!
API Signature: o!|b
Arguments:
args ->
arg_count ->
Return Value:
(api_call) (check_output) sll_bool_t sll_api_log_set(sll_string_t* file,sll_string_t* func,sll_logger_flags_t flags,sll_bool_t state);
Description: Docs!
API Signature: #@s#@sBb|b
Arguments:
file ->
func ->
flags ->
state ->
Return Value:

Docs!

typedef unsigned int sll_map_length_t;
Description: Docs!
typedef struct _SLL_MAP{
sll_map_length_t length; struct _SLL_OBJECT** data; } sll_map_t;
Description: Docs!
Fields:
length ->
data ->
#define SLL_MAX_MAP_LENGTH -> sll_map_length_t
Description: Docs!
#define SLL_INIT_MAP(sll_map_t* out) -> void
Description: Docs!
Arguments:
out ->
Return Value: No return value
#define SLL_INIT_MAP_STRUCT -> sll_map_t
Description: Docs!
void sll_free_map(sll_map_t* map);
Description: Docs!
Arguments:
map ->
Return Value: No return value
void sll_map_clone(const sll_map_t* map,sll_map_t* out);
Description: Docs!
Arguments:
map ->
out ->
Return Value: No return value
void sll_map_create(sll_map_length_t length,sll_map_t* out);
Description: Docs!
Arguments:
length ->
out ->
Return Value: No return value
(check_output) sll_bool_t sll_map_includes(const sll_map_t* map,sll_object_t key);
Description: Docs!
Arguments:
map ->
key ->
Return Value:
void sll_map_keys(const sll_map_t* map,sll_array_t* out);
Description: Docs!
Arguments:
map ->
out ->
Return Value: No return value
void sll_map_to_array(const sll_map_t* map,sll_array_t* out);
Description: Docs!
Arguments:
map ->
out ->
Return Value: No return value
void sll_map_values(const sll_map_t* map,sll_array_t* out);
Description: Docs!
Arguments:
map ->
out ->
Return Value: No return value

Docs!

void sll_map_add(const sll_map_t* map,sll_object_t key,sll_object_t value,sll_map_t* out);
Description: Docs!
Arguments:
map ->
key ->
value ->
out ->
Return Value: No return value
void sll_map_add_array(const sll_map_t* map,const sll_array_t* array,sll_map_t* out);
Description: Docs!
Arguments:
map ->
array ->
out ->
Return Value: No return value
void sll_map_add_string(const sll_map_t* map,const sll_string_t* string,sll_map_t* out);
Description: Docs!
Arguments:
map ->
string ->
out ->
Return Value: No return value
(check_output) sll_object_t sll_map_get(const sll_map_t* map,sll_object_t key);
Description: Docs!
Arguments:
map ->
key ->
Return Value:
(check_output) sll_object_t sll_map_get_key(const sll_map_t* map,sll_map_length_t index);
Description: Docs!
Arguments:
map ->
index ->
Return Value:
(check_output) sll_object_t sll_map_get_value(const sll_map_t* map,sll_map_length_t index);
Description: Docs!
Arguments:
map ->
index ->
Return Value:
(check_output) sll_object_t sll_map_remove(const sll_map_t* map,sll_object_t key,sll_map_t* out);
Description: Docs!
Arguments:
map ->
key ->
out ->
Return Value:
void sll_map_remove_array(const sll_map_t* map,const sll_array_t* array,sll_map_t* out);
Description: Docs!
Arguments:
map ->
array ->
out ->
Return Value: No return value
void sll_map_remove_map(const sll_map_t* a,const sll_map_t* b,sll_map_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value
void sll_map_remove_string(const sll_map_t* map,const sll_string_t* string,sll_map_t* out);
Description: Docs!
Arguments:
map ->
string ->
out ->
Return Value: No return value
void sll_map_set(sll_map_t* m,sll_object_t key,sll_object_t value);
Description: Docs!
Arguments:
m ->
key ->
value ->
Return Value: No return value
void sll_map_set_key(const sll_map_t* map,sll_map_length_t index,sll_object_t key);
Description: Docs!
Arguments:
map ->
index ->
key ->
Return Value: No return value
void sll_map_set_value(const sll_map_t* map,sll_map_length_t index,sll_object_t value);
Description: Docs!
Arguments:
map ->
index ->
value ->
Return Value: No return value

Docs!

void sll_map_and(const sll_map_t* a,const sll_map_t* b,sll_map_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value
void sll_map_and_array(const sll_map_t* map,const sll_array_t* array,sll_map_t* out);
Description: Docs!
Arguments:
map ->
array ->
out ->
Return Value: No return value
void sll_map_and_string(const sll_map_t* map,const sll_string_t* string,sll_map_t* out);
Description: Docs!
Arguments:
map ->
string ->
out ->
Return Value: No return value
(check_output) sll_compare_result_t sll_map_compare(const sll_map_t* a,const sll_map_t* b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_bool_t sll_map_equal(const sll_map_t* a,const sll_map_t* b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
void sll_map_join(const sll_map_t* a,const sll_map_t* b,sll_map_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value
void sll_map_op(const sll_map_t* a,const sll_map_t* b,sll_binary_operator_t operator,sll_map_t* out);
Description: Docs!
Arguments:
a ->
b ->
operator ->
out ->
Return Value: No return value

Docs!

(api_call) void sll_api_map_extend(sll_map_t* map,const sll_map_t* new);
Description: Docs!
API Signature: m#m|
Arguments:
map ->
new ->
Return Value: No return value
(api_call) (check_output) sll_map_length_t sll_api_map_remove(sll_map_t* map,sll_object_t key);
Description: Docs!
API Signature: mo|D
Arguments:
map ->
key ->
Return Value:

Docs!

typedef unsigned int sll_math_factor_count_t;
Description: Docs!
typedef struct _SLL_FACTOR{
sll_size_t number; sll_size_t power; } sll_factor_t;
Description: Docs!
Fields:
number ->
power ->
(api_call) void sll_api_math_abs(const sll_number_t* a,sll_number_t* out);
Description: Docs!
API Signature: z|x
Arguments:
a ->
out ->
Return Value: No return value
(api_call) void sll_api_math_ceil(const sll_number_t* a,sll_number_t* out);
Description: Docs!
API Signature: X|x
Arguments:
a ->
out ->
Return Value: No return value
(api_call) (check_output) sll_size_t sll_api_math_combinations(sll_size_t a,sll_size_t b);
Description: Docs!
API Signature: QQ|Q
Arguments:
a ->
b ->
Return Value:
(api_call) void sll_api_math_copy_sign(const sll_number_t* a,const sll_number_t* b,sll_number_t* out);
Description: Docs!
API Signature: zz|x
Arguments:
a ->
b ->
out ->
Return Value: No return value
(api_call) (check_output) sll_size_t sll_api_math_euler_phi(sll_size_t n);
Description: Docs!
API Signature: Q|Q
Arguments:
n ->
Return Value:
(api_call) (check_output) sll_size_t sll_api_math_factorial(sll_size_t a);
Description: Docs!
API Signature: Q|Q
Arguments:
a ->
Return Value:
(api_call) void sll_api_math_factors(sll_size_t a,sll_array_t* out);
Description: Docs!
API Signature: Q|a
Arguments:
a ->
out ->
Return Value: No return value
(api_call) void sll_api_math_floor(const sll_number_t* a,sll_number_t* out);
Description: Docs!
API Signature: X|x
Arguments:
a ->
out ->
Return Value: No return value
(api_call) (check_output) sll_integer_t sll_api_math_gcd(sll_integer_t a,sll_integer_t b);
Description: Docs!
API Signature: ii|i
Arguments:
a ->
b ->
Return Value:
(api_call) (check_output) sll_size_t sll_api_math_permutations(sll_size_t a,sll_size_t b);
Description: Docs!
API Signature: QQ|Q
Arguments:
a ->
b ->
Return Value:
(api_call) void sll_api_math_round(const sll_number_t* a,sll_number_t* out);
Description: Docs!
API Signature: X|x
Arguments:
a ->
out ->
Return Value: No return value
(check_output) sll_float_t sll_math_abs(sll_float_t a);
Description: Docs!
Arguments:
a ->
Return Value:
(check_output) sll_float_t sll_math_copy_sign(sll_float_t a,sll_float_t b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_factor_t* sll_math_factors(sll_size_t n,sll_math_factor_count_t* ol);
Description: Docs!
Arguments:
n ->
ol ->
Return Value:
(check_output) sll_float_t sll_math_mod(sll_float_t a,sll_float_t b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:

Docs!

(api_call) (check_output) sll_float_t sll_api_math_cbrt(sll_float_t a);
Description: Docs!
API Signature: f|f
Arguments:
a ->
Return Value:
(api_call) void sll_api_math_exp(const sll_number_t* a,sll_number_t* out);
Description: Docs!
API Signature: X|x
Arguments:
a ->
out ->
Return Value: No return value
(api_call) (check_output) sll_integer_t sll_api_math_int_pow(sll_integer_t a,sll_size_t b,sll_size_t c);
Description: Docs!
API Signature: iQQ|i
Arguments:
a ->
b ->
c ->
Return Value:
(api_call) (check_output) sll_size_t sll_api_math_int_sqrt(sll_size_t v);
Description: Docs!
API Signature: Q|Q
Arguments:
v ->
Return Value:
(api_call) void sll_api_math_pow(const sll_number_t* a,const sll_number_t* b,sll_number_t* out);
Description: Docs!
API Signature: XX|x
Arguments:
a ->
b ->
out ->
Return Value: No return value
(api_call) void sll_api_math_sqrt(const sll_number_t* a,sll_number_t* out);
Description: Docs!
API Signature: X|x
Arguments:
a ->
out ->
Return Value: No return value

Docs!

(api_call) (check_output) sll_float_t sll_api_math_acos(sll_float_t a);
Description: Docs!
API Signature: f|f
Arguments:
a ->
Return Value:
(api_call) (check_output) sll_float_t sll_api_math_acosh(sll_float_t a);
Description: Docs!
API Signature: f|f
Arguments:
a ->
Return Value:
(api_call) (check_output) sll_float_t sll_api_math_asin(sll_float_t a);
Description: Docs!
API Signature: f|f
Arguments:
a ->
Return Value:
(api_call) (check_output) sll_float_t sll_api_math_asinh(sll_float_t a);
Description: Docs!
API Signature: f|f
Arguments:
a ->
Return Value:
(api_call) (check_output) sll_float_t sll_api_math_atan(sll_float_t a);
Description: Docs!
API Signature: f|f
Arguments:
a ->
Return Value:
(api_call) (check_output) sll_float_t sll_api_math_atan2(sll_float_t y,sll_float_t x);
Description: Docs!
API Signature: ff|f
Arguments:
y ->
x ->
Return Value:
(api_call) (check_output) sll_float_t sll_api_math_atanh(sll_float_t a);
Description: Docs!
API Signature: f|f
Arguments:
a ->
Return Value:

Docs!

(api_call) (check_output) sll_size_t sll_api_math_int_log2(sll_size_t a);
Description: Docs!
API Signature: Q|Q
Arguments:
a ->
Return Value:
(api_call) void sll_api_math_log(const sll_number_t* a,sll_number_t* out);
Description: Docs!
API Signature: X|x
Arguments:
a ->
out ->
Return Value: No return value
(api_call) void sll_api_math_log10(const sll_number_t* a,sll_number_t* out);
Description: Docs!
API Signature: X|x
Arguments:
a ->
out ->
Return Value: No return value
(api_call) void sll_api_math_log2(const sll_number_t* a,sll_number_t* out);
Description: Docs!
API Signature: X|x
Arguments:
a ->
out ->
Return Value: No return value

Docs!

(api_call) void sll_api_math_cos(const sll_number_t* a,sll_number_t* out);
Description: Docs!
API Signature: X|x
Arguments:
a ->
out ->
Return Value: No return value
(api_call) void sll_api_math_cosh(const sll_number_t* a,sll_number_t* out);
Description: Docs!
API Signature: X|x
Arguments:
a ->
out ->
Return Value: No return value
(api_call) void sll_api_math_sin(const sll_number_t* a,sll_number_t* out);
Description: Docs!
API Signature: X|x
Arguments:
a ->
out ->
Return Value: No return value
(api_call) void sll_api_math_sinh(const sll_number_t* a,sll_number_t* out);
Description: Docs!
API Signature: X|x
Arguments:
a ->
out ->
Return Value: No return value
(api_call) void sll_api_math_tan(const sll_number_t* a,sll_number_t* out);
Description: Docs!
API Signature: X|x
Arguments:
a ->
out ->
Return Value: No return value
(api_call) void sll_api_math_tanh(const sll_number_t* a,sll_number_t* out);
Description: Docs!
API Signature: X|x
Arguments:
a ->
out ->
Return Value: No return value

Docs!

#define SLL_MEMORY_MOVE_DIRECTION_FROM_STACK -> sll_bool_t
Description: Docs!
#define SLL_MEMORY_MOVE_DIRECTION_TO_STACK -> sll_bool_t
Description: Docs!
(check_output) void* sll_allocate(sll_size_t size);
Description: Docs!
Arguments:
size ->
Return Value:
(check_output) void* sll_allocate_raw(sll_size_t size,sll_bool_t fail_on_error);
Description: Docs!
Arguments:
size ->
fail_on_error ->
Return Value:
(check_output) void* sll_allocate_stack(sll_size_t size);
Description: Docs!
Arguments:
size ->
Return Value:
(check_output) void* sll_allocate_stack_raw(sll_size_t size,sll_bool_t fail_on_error);
Description: Docs!
Arguments:
size ->
fail_on_error ->
Return Value:
void sll_deallocate(void* pointer);
Description: Docs!
Arguments:
pointer ->
Return Value: No return value
void* sll_memory_move(void* pointer,sll_bool_t direction);
Description: Docs!
Arguments:
pointer ->
direction ->
Return Value:
(check_output) void* sll_reallocate(void* pointer,sll_size_t size);
Description: Docs!
Arguments:
pointer ->
size ->
Return Value:
(check_output) void* sll_reallocate_raw(void* pointer,sll_size_t size,sll_bool_t fail_on_error);
Description: Docs!
Arguments:
pointer ->
size ->
fail_on_error ->
Return Value:
(check_output) void* sll_zero_allocate(sll_size_t size);
Description: Docs!
Arguments:
size ->
Return Value:
(check_output) void* sll_zero_allocate_raw(sll_size_t size,sll_bool_t fail_on_error);
Description: Docs!
Arguments:
size ->
fail_on_error ->
Return Value:
(check_output) void* sll_zero_allocate_stack(sll_size_t size);
Description: Docs!
Arguments:
size ->
Return Value:
(check_output) void* sll_zero_allocate_stack_raw(sll_size_t size,sll_bool_t fail_on_error);
Description: Docs!
Arguments:
size ->
fail_on_error ->
Return Value:

Docs!

(api_call) (check_output) sll_float_t sll_api_struct_double_from_bits(unsigned long long int value);
Description: Docs!
API Signature: Q|f
Arguments:
value ->
Return Value:
(api_call) (check_output) sll_float_t sll_api_struct_float_from_bits(unsigned int value);
Description: Docs!
API Signature: D|f
Arguments:
value ->
Return Value:
(api_call) (check_output) unsigned long long int sll_api_struct_double_to_bits(sll_float_t value);
Description: Docs!
API Signature: f|Q
Arguments:
value ->
Return Value:
(api_call) (check_output) unsigned int sll_api_struct_float_to_bits(sll_float_t value);
Description: Docs!
API Signature: f|D
Arguments:
value ->
Return Value:

Docs!

#define SLL_NODE_HAS_CHILDREN(sll_node_t node) -> sll_bool_t
Description: Docs!
Arguments:
node ->
Return Value:
#define SLL_INIT_COMPILATION_DATA_STRUCT -> sll_compilation_data_t
Description: Docs!
#define SLL_FUNCTION_GET_ARGUMENT_COUNT(const sll_function_t* function) -> sll_arg_count_t
Description: Docs!
Arguments:
function ->
Return Value:
#define SLL_FUNCTION_GET_ARGUMENT_COUNT_RAW(sll_arg_count_t arg_count) -> sll_arg_count_t
Description: Docs!
Arguments:
arg_count ->
Return Value:
#define SLL_FUNCTION_IS_VAR_ARG(const sll_function_t* function) -> sll_bool_t
Description: Docs!
Arguments:
function ->
Return Value:
typedef unsigned char sll_node_type_t;
Description: Docs!
typedef unsigned int sll_export_table_length_t;
Description: Docs!
typedef unsigned int sll_import_index_t;
Description: Docs!
typedef unsigned int sll_node_offset_t;
Description: Docs!
typedef unsigned int sll_source_file_index_t;
Description: Docs!
typedef struct _SLL_FUNCTION_NODE_DATA{
sll_arg_count_t arg_count; sll_function_index_t function_index; sll_scope_t scope; } sll_function_node_data_t;
Description: Docs!
Fields:
arg_count ->
function_index ->
scope ->
typedef struct _SLL_LOOP_NODE_DATA{
sll_arg_count_t arg_count; sll_scope_t scope; } sll_loop_node_data_t;
Description: Docs!
Fields:
arg_count ->
scope ->
typedef struct _SLL_DECL_NODE_DATA{
sll_arg_count_t arg_count; sll_string_index_t name_string_index; sll_string_index_t description_string_index; } sll_decl_node_data_t;
Description: Docs!
Fields:
arg_count ->
name_string_index ->
description_string_index ->
typedef union _SLL_NODE_DATA{
sll_integer_t int_; sll_float_t float_; sll_char_t char_; sll_complex_t complex_; sll_string_index_t string_index; sll_array_length_t array_length; sll_map_length_t map_length; sll_identifier_index_t identifier_index; sll_function_node_data_t function; sll_loop_node_data_t loop; sll_decl_node_data_t declaration; sll_arg_count_t arg_count; sll_function_index_t function_index; void* _next_node; } sll_node_data_t;
Description: Docs!
Fields:
int_ ->
float_ ->
char_ ->
complex_ ->
string_index ->
array_length ->
map_length ->
identifier_index ->
function ->
loop ->
declaration ->
arg_count ->
function_index ->
_next_node ->
typedef struct _SLL_NODE{
sll_node_type_t type; sll_node_data_t data; }* sll_node_t;
Description: Docs!
Fields:
type ->
data ->
typedef struct _SLL_EXPORT_TABLE{
sll_identifier_index_t* data; sll_export_table_length_t length; } sll_export_table_t;
Description: Docs!
Fields:
data ->
length ->
typedef struct _SLL_FUNCTION{
sll_node_offset_t offset; sll_string_index_t name_string_index; sll_string_index_t description_string_index; sll_arg_count_t arg_count; sll_identifier_index_t args[]; } sll_function_t;
Description: Docs!
Fields:
offset ->
name_string_index ->
description_string_index ->
arg_count ->
args ->
typedef struct _SLL_FUNCTION_TABLE{
sll_function_t** data; sll_function_index_t length; } sll_function_table_t;
Description: Docs!
Fields:
data ->
length ->
typedef struct _SLL_IMPORT_FILE{
sll_source_file_index_t source_file_index; sll_identifier_table_length_t length; sll_identifier_index_t data[]; } sll_import_file_t;
Description: Docs!
Fields:
source_file_index ->
length ->
data ->
typedef struct _SLL_IMPORT_TABLE{
sll_import_file_t** data; sll_import_index_t length; } sll_import_table_t;
Description: Docs!
Fields:
data ->
length ->
typedef struct _SLL_NODE_STACK{
void* start; void* end; sll_node_t next_node; sll_node_offset_t offset; sll_size_t count; } sll_node_stack_t;
Description: Docs!
Fields:
start ->
end ->
next_node ->
offset ->
count ->
typedef struct _SLL_SOURCE_FILE{
sll_time_t time; sll_file_offset_t file_size; sll_sha256_data_t file_hash; sll_node_t first_node; sll_identifier_table_t identifier_table; sll_export_table_t export_table; sll_function_table_t function_table; sll_string_table_t string_table; sll_import_table_t import_table; sll_string_index_t file_path_string_index; sll_node_stack_t _stack; sll_scope_t _next_scope; } sll_source_file_t;
Description: Docs!
Fields:
time ->
file_size ->
file_hash ->
first_node ->
identifier_table ->
export_table ->
function_table ->
string_table ->
import_table ->
file_path_string_index ->
_stack ->
_next_scope ->
typedef struct _SLL_COMPILATION_DATA{
sll_source_file_t** data; sll_source_file_index_t length; } sll_compilation_data_t;
Description: Docs!
Fields:
data ->
length ->
typedef sll_bool_t (*sll_import_resolver_t)(const sll_string_t* path,sll_compilation_data_t* out);
Description: Docs!
Arguments:
path ->
out ->
Return Value:
void sll_compilation_data_from_source_file(const sll_source_file_t* source_file,sll_compilation_data_t* out);
Description: Docs!
Arguments:
source_file ->
out ->
Return Value: No return value
void sll_free_compilation_data(sll_compilation_data_t* compilation_data);
Description: Docs!
Arguments:
compilation_data ->
Return Value: No return value
void sll_free_source_file(sll_source_file_t* source_file);
Description: Docs!
Arguments:
source_file ->
Return Value: No return value
void sll_init_compilation_data(const sll_char_t* file_path,sll_compilation_data_t* out);
Description: Docs!
Arguments:
file_path ->
out ->
Return Value: No return value
void sll_optimize_metadata(sll_compilation_data_t* compilation_data);
Description: Docs!
Arguments:
compilation_data ->
Return Value: No return value
void sll_parse_nodes(sll_file_t* file,sll_compilation_data_t* compilation_data,sll_internal_function_table_t* internal_function_table,sll_import_resolver_t import_resolver);
Description: Docs!
Arguments:
file ->
compilation_data ->
internal_function_table ->
import_resolver ->
Return Value: No return value
void sll_remove_debug_data(sll_compilation_data_t* compilation_data);
Description: Docs!
Arguments:
compilation_data ->
Return Value: No return value
void sll_remove_debug_names(sll_compilation_data_t* compilation_data);
Description: Docs!
Arguments:
compilation_data ->
Return Value: No return value
void sll_remove_node_padding(sll_compilation_data_t* compilation_data);
Description: Docs!
Arguments:
compilation_data ->
Return Value: No return value
void sll_unify_compilation_data(const sll_compilation_data_t* compilation_data,sll_source_file_t* out);
Description: Docs!
Arguments:
compilation_data ->
out ->
Return Value: No return value

Docs!

#define SLL_NODE_TYPE_INT -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_FLOAT -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_CHAR -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_COMPLEX -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_STRING -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_IDENTIFIER -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_FIELD -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_FUNCTION_ID -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_ARRAY -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_MAP -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_PRINT -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_AND -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_OR -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_NOT -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_BOOL -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_ASSIGN -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_FUNC -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_INTERNAL_FUNC -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_INTERNAL_FUNC_LOAD -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_INLINE_FUNC -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_CALL -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_CALL_ARRAY -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_IF -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_INLINE_IF -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_SWITCH -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_FOR -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_WHILE -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_LOOP -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_INC -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_DEC -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_ADD -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_SUB -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_MULT -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_DIV -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_FLOOR_DIV -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_MOD -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_BIT_AND -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_BIT_OR -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_BIT_XOR -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_BIT_NOT -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_BIT_RIGHT_SHIFT -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_BIT_LEFT_SHIFT -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_LESS -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_LESS_EQUAL -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_EQUAL -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_NOT_EQUAL -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_MORE -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_MORE_EQUAL -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_STRICT_EQUAL -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_STRICT_NOT_EQUAL -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_LENGTH -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_ACCESS -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_DEEP_COPY -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_VAR_ACCESS -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_HAS -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_CAST -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_TYPEOF -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_NAMEOF -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_NAMEOF_TYPE -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_DECL -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_NEW -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_FOR_ARRAY -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_WHILE_ARRAY -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_FOR_MAP -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_WHILE_MAP -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_BREAK -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_CONTINUE -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_REF -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_RETURN -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_COMMA -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_OPERATION_LIST -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_THREAD_ID -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_THREAD_WAIT -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_THREAD_LOCK -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_THREAD_SEMAPHORE -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_THREAD_BARRIER_EQ -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_THREAD_BARRIER_GEQ -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_THREAD_EXIT -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_READ_BLOCKING -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_READ_BLOCKING_CHAR -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_DBG -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_CHANGE_STACK -> sll_node_type_t
Description: Docs!
#define SLL_NODE_TYPE_RESERVED0 -> sll_node_type_t
Description: Internally used as `NODE_TYPE_UNKNOWN`
#define SLL_NODE_TYPE_NOP -> sll_node_type_t
Description: Docs!

Docs!

(check_output) sll_node_offset_t sll_get_node_size(sll_node_t node);
Description: Docs!
Arguments:
node ->
Return Value:
void sll_print_node(const sll_source_file_t* source_file,const sll_internal_function_table_t* internal_function_table,sll_node_t node,sll_file_t* out);
Description: Docs!
Arguments:
source_file ->
internal_function_table ->
node ->
out ->
Return Value: No return value
(check_output) sll_node_t sll_skip_node(sll_node_t node);
Description: Docs!
Arguments:
node ->
Return Value:

Docs!

#define SLL_INIT_OBJECT_TYPE_TABLE(sll_object_type_table_t* out) -> void
Description: Docs!
Arguments:
out ->
Return Value: No return value
#define SLL_INIT_OBJECT_TYPE_TABLE_STRUCT -> sll_object_type_table_t
Description: Docs!
typedef unsigned char sll_object_function_index_t;
Description: Docs!
typedef unsigned int sll_object_type_table_length_t;
Description: Docs!
typedef struct _SLL_OBJECT_TYPE_DATA_FIELD{
sll_object_type_t type; sll_bool_t read_only; sll_string_t name; } sll_object_type_data_field_t;
Description: Docs!
Fields:
type ->
read_only ->
name ->
typedef struct _SLL_OBJECT_TYPE_DATA{
const sll_string_t name; sll_arg_count_t field_count; unsigned int _hash_table_bit_mask; sll_arg_count_t* _hash_table; unsigned long long int _rng; sll_integer_t functions[SLL_MAX_OBJECT_FUNC+1]; sll_object_type_data_field_t fields[]; } sll_object_type_data_t;
Description: Docs!
Fields:
name ->
field_count ->
_hash_table_bit_mask ->
_hash_table ->
_rng ->
functions ->
fields ->
typedef struct _SLL_OBJECT_TYPE_TABLE{
const sll_object_type_data_t** data; sll_object_type_table_length_t length; } sll_object_type_table_t;
Description: Docs!
Fields:
data ->
length ->
(check_output) sll_object_type_t sll_add_type(sll_object_type_table_t* type_table,const sll_object_t* object_data,sll_arg_count_t field_count,const sll_string_t* name);
Description: Docs!
Arguments:
type_table ->
object_data ->
field_count ->
name ->
Return Value:
(check_output) sll_object_t sll_create_new_object_type(sll_object_type_table_t* type_table);
Description: Docs!
Arguments:
type_table ->
Return Value:
(check_output) sll_object_t sll_create_object_type(const sll_object_type_table_t* type_table,sll_object_type_t type,const sll_object_t* args,sll_arg_count_t arg_count);
Description: Docs!
Arguments:
type_table ->
type ->
args ->
arg_count ->
Return Value:
void sll_free_object_type_list(sll_object_type_table_t* type_table);
Description: Docs!
Arguments:
type_table ->
Return Value: No return value
(check_output) sll_arg_count_t sll_get_offset(const sll_object_type_table_t* type_table,sll_object_type_t type,const sll_string_t* field_name);
Description: Docs!
Arguments:
type_table ->
type ->
field_name ->
Return Value:
void sll_get_type_name(const sll_object_type_table_t* type_table,sll_object_type_t type,sll_string_t* out);
Description: Docs!
Arguments:
type_table ->
type ->
out ->
Return Value: No return value
(check_output) sll_object_t sll_object_clone(const sll_object_type_table_t* type_table,sll_object_t object,sll_bool_t deep);
Description: Docs!
Arguments:
type_table ->
object ->
deep ->
Return Value:
(check_output) sll_object_t sll_object_get_field(const sll_object_type_table_t* type_table,sll_object_t object,const sll_string_t* field_name);
Description: Docs!
Arguments:
type_table ->
object ->
field_name ->
Return Value:
void sll_object_set_field(const sll_object_type_table_t* type_table,sll_object_t object,const sll_string_t* field_name,sll_object_t value);
Description: Docs!
Arguments:
type_table ->
object ->
field_name ->
value ->
Return Value: No return value
void sll_object_to_array(const sll_object_type_table_t* type_table,sll_object_t object,sll_array_t* out);
Description: Docs!
Arguments:
type_table ->
object ->
out ->
Return Value: No return value
void sll_object_to_map(const sll_object_type_table_t* type_table,sll_object_t object,sll_map_t* out);
Description: Docs!
Arguments:
type_table ->
object ->
out ->
Return Value: No return value

Docs!

#define SLL_OBJECT_FUNC_INIT -> sll_object_function_index_t
Description: Docs!
#define SLL_OBJECT_FUNC_DELETE -> sll_object_function_index_t
Description: Docs!
#define SLL_OBJECT_FUNC_COPY -> sll_object_function_index_t
Description: Docs!
#define SLL_OBJECT_FUNC_STRING -> sll_object_function_index_t
Description: Docs!
#define SLL_MAX_OBJECT_FUNC -> sll_object_function_index_t
Description: Docs!

Docs!

#define SLL_OBJECT_TYPE_INT -> sll_object_type_t
Description: Docs!
#define SLL_OBJECT_TYPE_FLOAT -> sll_object_type_t
Description: Docs!
#define SLL_OBJECT_TYPE_CHAR -> sll_object_type_t
Description: Docs!
#define SLL_OBJECT_TYPE_COMPLEX -> sll_object_type_t
Description: Docs!
#define SLL_OBJECT_TYPE_STRING -> sll_object_type_t
Description: Docs!
#define SLL_OBJECT_TYPE_ARRAY -> sll_object_type_t
Description: Docs!
#define SLL_OBJECT_TYPE_MAP -> sll_object_type_t
Description: Docs!
#define SLL_OBJECT_TYPE_MAP_KEYS -> sll_object_type_t
Description: Docs!
#define SLL_OBJECT_TYPE_MAP_VALUES -> sll_object_type_t
Description: Docs!
#define SLL_OBJECT_TYPE_SELF -> sll_object_type_t
Description: Docs!
#define SLL_OBJECT_TYPE_OBJECT -> sll_object_type_t
Description: Docs!
#define SLL_MAX_OBJECT_TYPE -> sll_object_type_t
Description: Docs!

Docs!

(api_call) (check_output) sll_object_t sll_api_object_new(const sll_string_t* format,const sll_object_t* args,sll_arg_count_t lenngth);
Description: Docs!
API Signature: #so!|o
Arguments:
format ->
args ->
lenngth ->
Return Value:

Docs!

#define SLL_OFFSETOF(__type__ type,__field__ field) -> sll_size_t
Description: Docs!
Arguments:
type ->
field ->
Return Value:
(check_output) sll_object_t sll_new_object(const sll_char_t* format,...);
Description: Docs!
Arguments:
format ->
Return Value:
void sll_new_object_array(const sll_char_t* format,sll_array_t* out,...);
Description: Docs!
Arguments:
format ->
out ->
Return Value: No return value
void sll_new_object_array_list(const sll_char_t* format,sll_string_length_t format_length,sll_var_arg_list_t* va,sll_array_t* out);
Description: Docs!
Arguments:
format ->
format_length ->
va ->
out ->
Return Value: No return value
(check_output) sll_object_t sll_new_object_list(const sll_char_t* format,sll_string_length_t format_length,sll_var_arg_list_t* va);
Description: Docs!
Arguments:
format ->
format_length ->
va ->
Return Value:

Docs!

typedef sll_object_t (*sll_binary_operator_t)(sll_object_t a,sll_object_t b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_object_t sll_operator_access(sll_object_t a,sll_object_t b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_object_t sll_operator_access_range(sll_object_t a,sll_object_t b,sll_object_t c);
Description: Docs!
Arguments:
a ->
b ->
c ->
Return Value:
(check_output) sll_object_t sll_operator_access_range_step(sll_object_t a,sll_object_t b,sll_object_t c,sll_object_t d);
Description: Docs!
Arguments:
a ->
b ->
c ->
d ->
Return Value:
(check_output) sll_object_t sll_operator_add(sll_object_t a,sll_object_t b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_object_t sll_operator_and(sll_object_t a,sll_object_t b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
void sll_operator_assign(sll_object_t a,sll_object_t b,sll_object_t v);
Description: Docs!
Arguments:
a ->
b ->
v ->
Return Value: No return value
void sll_operator_assign_range(sll_object_t a,sll_object_t b,sll_object_t c,sll_object_t v);
Description: Docs!
Arguments:
a ->
b ->
c ->
v ->
Return Value: No return value
void sll_operator_assign_range_step(sll_object_t a,sll_object_t b,sll_object_t c,sll_object_t d,sll_object_t v);
Description: Docs!
Arguments:
a ->
b ->
c ->
d ->
v ->
Return Value: No return value
(check_output) sll_bool_t sll_operator_bool(sll_object_t a);
Description: Docs!
Arguments:
a ->
Return Value:
(check_output) sll_object_t sll_operator_cast(sll_object_t a,sll_object_t b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_compare_result_t sll_operator_compare(sll_object_t a,sll_object_t b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_object_t sll_operator_dec(sll_object_t a);
Description: Docs!
Arguments:
a ->
Return Value:
(check_output) sll_object_t sll_operator_div(sll_object_t a,sll_object_t b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_object_t sll_operator_copy(sll_object_t a,sll_bool_t d);
Description: Docs!
Arguments:
a ->
d ->
Return Value:
(check_output) sll_bool_t sll_operator_equal(sll_object_t a,sll_object_t b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_object_t sll_operator_floor_div(sll_object_t a,sll_object_t b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_object_t sll_operator_inc(sll_object_t a);
Description: Docs!
Arguments:
a ->
Return Value:
(check_output) sll_bool_t sll_operator_includes(sll_object_t a,sll_object_t b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_object_t sll_operator_inv(sll_object_t a);
Description: Docs!
Arguments:
a ->
Return Value:
(check_output) sll_object_t sll_operator_len(sll_object_t a);
Description: Docs!
Arguments:
a ->
Return Value:
(check_output) sll_object_t sll_operator_mod(sll_object_t a,sll_object_t b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_object_t sll_operator_mult(sll_object_t a,sll_object_t b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_object_t sll_operator_or(sll_object_t a,sll_object_t b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_object_t sll_operator_shl(sll_object_t a,sll_object_t b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_object_t sll_operator_shr(sll_object_t a,sll_object_t b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_bool_t sll_operator_strict_equal(sll_object_t a,sll_object_t b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_object_t sll_operator_sub(sll_object_t a,sll_object_t b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_object_t sll_operator_xor(sll_object_t a,sll_object_t b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:

Docs!

typedef unsigned char sll_optimization_round_count_t;
Description: Docs!
void sll_optimize_source_file(sll_source_file_t* source_file,sll_optimization_round_count_t round_count);
Description: Docs!
Arguments:
source_file ->
round_count ->
Return Value: No return value

Docs!

(api_call) void sll_api_path_absolute(const sll_string_t* path,sll_string_t* out);
Description: Docs!
API Signature: #s|s
Arguments:
path ->
out ->
Return Value: No return value
(api_call) (check_output) sll_bool_t sll_api_path_exists(const sll_string_t* path);
Description: Docs!
API Signature: #s|b
Arguments:
path ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_path_get_cwd(sll_string_t* out);
Description: Docs!
API Signature: |~s
Arguments:
out ->
Return Value:
(api_call) (check_output) sll_bool_t sll_api_path_is_dir(const sll_string_t* path);
Description: Docs!
API Signature: #s|b
Arguments:
path ->
Return Value:
(api_call) void sll_api_path_join(const sll_string_t*const* parts,sll_arg_count_t len,sll_string_t* out);
Description: Docs!
API Signature: #s!|s
Arguments:
parts ->
len ->
out ->
Return Value: No return value
(api_call) (check_output) sll_error_t sll_api_path_list_dir(const sll_string_t* path,sll_bool_t recursive,sll_array_t* out);
Description: Docs!
API Signature: #sb|~a
Arguments:
path ->
recursive ->
out ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_path_mkdir(const sll_string_t* path,sll_bool_t all);
Description: Docs!
API Signature: #sb|Q
Arguments:
path ->
all ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_path_size(const sll_string_t* path,sll_size_t* out);
Description: Docs!
API Signature: #s|~Q
Arguments:
path ->
out ->
Return Value:
(api_call) void sll_api_path_split(const sll_string_t* path,sll_array_t* out);
Description: Docs!
API Signature: #s|a
Arguments:
path ->
out ->
Return Value: No return value
(api_call) void sll_api_path_split_drive(const sll_string_t* path,sll_array_t* out);
Description: Docs!
API Signature: #s|a
Arguments:
path ->
out ->
Return Value: No return value
(check_output) sll_string_length_t sll_path_split(const sll_string_t* s);
Description: Docs!
Arguments:
s ->
Return Value:
(check_output) sll_string_length_t sll_path_split_drive(const sll_string_t* s);
Description: Docs!
Arguments:
s ->
Return Value:

Docs!

const sll_cpu_t* sll_platform_cpu_count;
Description: Docs!
const sll_string_t* sll_platform_string;
Description: Docs!
#define SLL_RANDOM_BITS(__any__ x) -> void
Description: Docs!
Arguments:
x ->
Return Value: No return value
(check_output) sll_error_t sll_platform_get_error(void);
Description: Docs!
Return Value:
void sll_platform_random(void* buffer,sll_size_t l);
Description: Docs!
Arguments:
buffer ->
l ->
Return Value: No return value
const sll_string_t* sll_executable_file_path;
Description: Docs!
const sll_string_t* sll_library_file_path;
Description: Docs!
const sll_string_t* sll_temporary_file_path;
Description: Docs!

Docs!

void sll_platform_remove_environment_variable(const sll_char_t* k);
Description: Docs!
Arguments:
k ->
Return Value: No return value
void sll_platform_set_environment_variable(const sll_char_t* k,const sll_char_t* v);
Description: Docs!
Arguments:
k ->
v ->
Return Value: No return value

Docs!

typedef void* sll_event_handle_t;
Description: Docs!
(check_output) sll_event_handle_t sll_platform_event_create(sll_error_t* err);
Description: Docs!
Arguments:
err ->
Return Value:
(check_output) sll_error_t sll_platform_event_delete(sll_event_handle_t e);
Description: Docs!
Arguments:
e ->
Return Value:
(check_output) sll_error_t sll_platform_event_set(sll_event_handle_t e);
Description: Docs!
Arguments:
e ->
Return Value:
(check_output) sll_error_t sll_platform_event_wait(sll_event_handle_t e);
Description: Docs!
Arguments:
e ->
Return Value:

Docs!

typedef void* sll_library_handle_t;
Description: Docs!
(check_output) sll_string_length_t sll_platform_get_library_file_path(sll_library_handle_t h,sll_char_t* fp,sll_string_length_t fpl,sll_error_t* err);
Description: Docs!
Arguments:
h ->
fp ->
fpl ->
err ->
Return Value:
(check_output) sll_library_handle_t sll_platform_load_library(const sll_char_t* fp,sll_error_t* err);
Description: Docs!
Arguments:
fp ->
err ->
Return Value:
(check_output) void* sll_platform_lookup_symbol(sll_library_handle_t h,const sll_char_t* nm);
Description: Docs!
Arguments:
h ->
nm ->
Return Value:
(check_output) sll_error_t sll_platform_unload_library(sll_library_handle_t h);
Description: Docs!
Arguments:
h ->
Return Value:

Docs!

#define SLL_PLATFORM_STREAM_INPUT -> sll_std_file_type_t
Description: Docs!
#define SLL_PLATFORM_STREAM_OUTPUT -> sll_std_file_type_t
Description: Docs!
#define SLL_PLATFORM_STREAM_ERROR -> sll_std_file_type_t
Description: Docs!
#define SLL_NO_FILE_SIZE -> sll_size_t
Description: Docs!
#define SLL_UNKNOWN_FILE_DESCRIPTOR -> sll_file_descriptor_t
Description: Docs!
typedef unsigned char sll_std_file_type_t;
Description: Docs!
(check_output) sll_bool_t sll_platform_file_async_read(sll_file_descriptor_t fd);
Description: Docs!
Arguments:
fd ->
Return Value:
(check_output) sll_error_t sll_platform_file_close(sll_file_descriptor_t fd);
Description: Docs!
Arguments:
fd ->
Return Value:
(check_output) sll_bool_t sll_platform_file_data_available(sll_file_descriptor_t fd);
Description: Docs!
Arguments:
fd ->
Return Value:
(check_output) sll_file_descriptor_t sll_platform_file_open(const sll_char_t* file_path,sll_file_flags_t flags,sll_error_t* err);
Description: Docs!
Arguments:
file_path ->
flags ->
err ->
Return Value:
(check_output) sll_size_t sll_platform_file_read(sll_file_descriptor_t fd,void* pointer,sll_size_t size,sll_error_t* err);
Description: Docs!
Arguments:
fd ->
pointer ->
size ->
err ->
Return Value:
(check_output) sll_error_t sll_platform_file_seek(sll_file_descriptor_t fd,sll_file_offset_t offset);
Description: Docs!
Arguments:
fd ->
offset ->
Return Value:
(check_output) sll_size_t sll_platform_file_size(sll_file_descriptor_t fd,sll_error_t* err);
Description: Docs!
Arguments:
fd ->
err ->
Return Value:
sll_size_t sll_platform_file_write(sll_file_descriptor_t fd,const void* pointer,sll_size_t size,sll_error_t* err);
Description: Docs!
Arguments:
fd ->
pointer ->
size ->
err ->
Return Value:
(check_output) sll_file_descriptor_t sll_platform_get_default_stream_descriptor(sll_std_file_type_t type);
Description: Docs!
Arguments:
type ->
Return Value:
typedef void* sll_file_descriptor_t;
Description: Docs!

Docs!

typedef void* sll_lock_handle_t;
Description: Docs!
(check_output) sll_error_t sll_platform_lock_acquire(sll_lock_handle_t l);
Description: Docs!
Arguments:
l ->
Return Value:
(check_output) sll_lock_handle_t sll_platform_lock_create(sll_error_t* err);
Description: Docs!
Arguments:
err ->
Return Value:
(check_output) sll_error_t sll_platform_lock_delete(sll_lock_handle_t l);
Description: Docs!
Arguments:
l ->
Return Value:
(check_output) sll_error_t sll_platform_lock_release(sll_lock_handle_t l);
Description: Docs!
Arguments:
l ->
Return Value:

Docs!

sll_string_length_t sll_platform_absolute_path(const sll_char_t* fp,sll_char_t* o,sll_string_length_t ol);
Description: Docs!
Arguments:
fp ->
o ->
ol ->
Return Value:
(check_output) sll_error_t sll_platform_create_directory(const sll_char_t* fp,sll_bool_t all);
Description: Docs!
Arguments:
fp ->
all ->
Return Value:
(check_output) sll_string_length_t sll_platform_get_current_working_directory(sll_char_t* o,sll_string_length_t ol,sll_error_t* err);
Description: Docs!
Arguments:
o ->
ol ->
err ->
Return Value:
(check_output) sll_array_length_t sll_platform_list_directory(const sll_char_t* fp,sll_string_t** o,sll_error_t* err);
Description: Docs!
Arguments:
fp ->
o ->
err ->
Return Value:
(check_output) sll_array_length_t sll_platform_list_directory_recursive(const sll_char_t* fp,sll_string_t** o,sll_error_t* err);
Description: Docs!
Arguments:
fp ->
o ->
err ->
Return Value:
(check_output) sll_error_t sll_platform_path_copy(const sll_char_t* s,const sll_char_t* d);
Description: Docs!
Arguments:
s ->
d ->
Return Value:
(check_output) sll_error_t sll_platform_path_delete(const sll_char_t* fp);
Description: Docs!
Arguments:
fp ->
Return Value:
(check_output) sll_bool_t sll_platform_path_exists(const sll_char_t* fp);
Description: Docs!
Arguments:
fp ->
Return Value:
(check_output) sll_bool_t sll_platform_path_is_directory(const sll_char_t* fp);
Description: Docs!
Arguments:
fp ->
Return Value:
(check_output) sll_error_t sll_platform_path_rename(const sll_char_t* s,const sll_char_t* d);
Description: Docs!
Arguments:
s ->
d ->
Return Value:
(check_output) sll_error_t sll_platform_set_current_working_directory(const sll_char_t* p);
Description: Docs!
Arguments:
p ->
Return Value:

Docs!

typedef signed int sll_return_code_t;
Description: Docs!
typedef unsigned int sll_pid_t;
Description: Docs!
typedef void* sll_process_handle_t;
Description: Docs!
(check_output) sll_error_t sll_platform_close_process_handle(sll_process_handle_t ph);
Description: Docs!
Arguments:
ph ->
Return Value:
(check_output) sll_bool_t sll_platform_execute_shell(const sll_char_t* cmd,sll_error_t* err);
Description: Docs!
Arguments:
cmd ->
err ->
Return Value:
(check_output) sll_pid_t sll_platform_get_pid(void);
Description: Docs!
Return Value:
(check_output) sll_process_handle_t sll_platform_start_process(const sll_char_t*const* a,const sll_char_t*const* env,sll_error_t* err);
Description: Docs!
Arguments:
a ->
env ->
err ->
Return Value:
(check_output) sll_return_code_t sll_platform_wait_process(sll_process_handle_t ph,sll_error_t* err);
Description: Docs!
Arguments:
ph ->
err ->
Return Value:

Docs!

typedef unsigned char sll_address_info_flags_t;
Description: Docs!
typedef unsigned int sll_address_info_count_t;
Description: Docs!
typedef struct _SLL_ADDRESS_INFO{
sll_socket_address_family_t address_family; sll_socket_type_t type; sll_socket_protocol_t protocol; sll_address_t address; } sll_address_info_t;
Description: Docs!
Fields:
address_family ->
type ->
protocol ->
address ->
(check_output) sll_error_t sll_platform_socket_accept(sll_file_descriptor_t socket,sll_file_descriptor_t* out);
Description: Docs!
Arguments:
socket ->
out ->
Return Value:
(check_output) sll_error_t sll_platform_socket_bind(sll_file_descriptor_t socket,const sll_address_t* address);
Description: Docs!
Arguments:
socket ->
address ->
Return Value:
(check_output) sll_error_t sll_platform_socket_close(sll_file_descriptor_t socket);
Description: Docs!
Arguments:
socket ->
Return Value:
(check_output) sll_error_t sll_platform_socket_connect(sll_file_descriptor_t socket,const sll_address_t* address);
Description: Docs!
Arguments:
socket ->
address ->
Return Value:
(check_output) sll_error_t sll_platform_socket_create(sll_socket_address_family_t address_family,sll_socket_type_t type,sll_socket_protocol_t protocol,sll_file_descriptor_t* out);
Description: Docs!
Arguments:
address_family ->
type ->
protocol ->
out ->
Return Value:
(check_output) sll_bool_t sll_platform_socket_data_available(sll_file_descriptor_t socket);
Description: Docs!
Arguments:
socket ->
Return Value:
(check_output) sll_error_t sll_platform_socket_get_address_info(const sll_char_t* node,const sll_char_t* service,sll_socket_address_family_t address_family,sll_socket_type_t type,sll_socket_protocol_t protocol,sll_address_info_flags_t flags,sll_address_info_t** out,sll_address_info_count_t* out_count);
Description: Docs!
Arguments:
node ->
service ->
address_family ->
type ->
protocol ->
flags ->
out ->
out_count ->
Return Value:
(check_output) sll_error_t sll_platform_socket_listen(sll_file_descriptor_t socket,sll_socket_queue_size_t queue_size);
Description: Docs!
Arguments:
socket ->
queue_size ->
Return Value:
(check_output) sll_size_t sll_platform_socket_read(sll_file_descriptor_t socket,void* pointer,sll_size_t size,sll_error_t* err);
Description: Docs!
Arguments:
socket ->
pointer ->
size ->
err ->
Return Value:
(check_output) sll_error_t sll_platform_socket_shutdown(sll_file_descriptor_t socket,sll_socket_shutdown_flags_t flags);
Description: Docs!
Arguments:
socket ->
flags ->
Return Value:
(check_output) sll_size_t sll_platform_socket_write(sll_file_descriptor_t socket,const void* pointer,sll_size_t size,sll_error_t* err);
Description: Docs!
Arguments:
socket ->
pointer ->
size ->
err ->
Return Value:

Docs!

#define SLL_CPU_ANY -> sll_cpu_t
Description: Docs!
#define SLL_UNKNOWN_INTERNAL_THREAD_INDEX -> sll_internal_thread_index_t
Description: Docs!
typedef unsigned short int sll_cpu_t;
Description: Docs!
typedef void* sll_internal_thread_index_t;
Description: Docs!
typedef void (*sll_internal_thread_function_t)(void* arg);
Description: Docs!
Arguments:
arg ->
Return Value: No return value
(check_output) sll_internal_thread_index_t sll_platform_current_thread(void);
Description: Docs!
Return Value:
(check_output) sll_error_t sll_platform_join_thread(sll_internal_thread_index_t tid);
Description: Docs!
Arguments:
tid ->
Return Value:
(check_output) sll_error_t sll_platform_set_cpu(sll_cpu_t cpu);
Description: Docs!
Arguments:
cpu ->
Return Value:
(check_output) sll_internal_thread_index_t sll_platform_start_thread(sll_internal_thread_function_t fn,void* arg,sll_error_t* err);
Description: Docs!
Arguments:
fn ->
arg ->
err ->
Return Value:

Docs!

#define SLL_MAX_TIME -> sll_time_t
Description: Docs!
const sll_time_zone_t* sll_platform_time_zone;
Description: Docs!
(check_output) sll_time_t sll_platform_get_current_time(void);
Description: Docs!
Return Value:
void sll_platform_sleep(sll_time_t tm);
Description: Docs!
Arguments:
tm ->
Return Value: No return value

Docs!

#define SLL_PAGE_SIZE -> sll_size_t
Description: Docs!
#define SLL_LARGE_PAGE_SIZE -> sll_size_t
Description: Docs!
#define SLL_ROUND_PAGE(sll_size_t size) -> sll_size_t
Description: Docs!
Arguments:
size ->
Return Value:
#define SLL_ROUND_LARGE_PAGE(sll_size_t size) -> sll_size_t
Description: Docs!
Arguments:
size ->
Return Value:
(check_output) void* sll_platform_allocate_page(sll_size_t size,sll_bool_t large,sll_error_t* err);
Description: Docs!
Arguments:
size ->
large ->
err ->
Return Value:
(check_output) void* sll_platform_allocate_page_aligned(sll_size_t size,sll_size_t align,sll_error_t* err);
Description: Docs!
Arguments:
size ->
align ->
err ->
Return Value:
(check_output) sll_error_t sll_platform_free_page(void* ptr,sll_size_t size);
Description: Docs!
Arguments:
ptr ->
size ->
Return Value:

Docs!

(api_call) (check_output) sll_error_t sll_api_process_execute_shell(const sll_string_t* cmd);
Description: Docs!
API Signature: #s|i
Arguments:
cmd ->
Return Value:
(api_call) (check_output) sll_pid_t sll_api_process_get_pid(void);
Description: Docs!
API Signature: |D
Return Value:
(api_call) void sll_api_process_join(const sll_string_t*const* args,sll_arg_count_t arg_count,sll_string_t* out);
Description: Docs!
API Signature: #s+|s
Arguments:
args ->
arg_count ->
out ->
Return Value: No return value
(api_call) void sll_api_process_split(const sll_string_t* args,sll_array_t* out);
Description: Docs!
API Signature: #s|a
Arguments:
args ->
out ->
Return Value: No return value
(api_call) void sll_api_process_start(const sll_array_t* args,const sll_string_t* cwd,sll_process_creation_flags_t flags,const sll_string_t* stdin,sll_array_t* out);
Description: Docs!
API Signature: #a#sB#s|a
Arguments:
args ->
cwd ->
flags ->
stdin ->
out ->
Return Value: No return value
void sll_process_join_args(const sll_char_t*const* a,sll_string_t* o);
Description: Docs!
Arguments:
a ->
o ->
Return Value: No return value

Docs!

#define SLL_PROCESS_FLAG_PASS_STDIN -> sll_process_creation_flags_t
Description: Docs!
#define SLL_PROCESS_FLAG_CAPTURE_STDOUT -> sll_process_creation_flags_t
Description: Docs!
#define SLL_PROCESS_FLAG_CAPTURE_STDERR -> sll_process_creation_flags_t
Description: Docs!
#define SLL_PROCESS_FLAG_WAIT -> sll_process_creation_flags_t
Description: Docs!
typedef unsigned char sll_process_creation_flags_t;
Description: Docs!

Docs!

(api_call) (check_output) sll_float_t sll_api_random_get_float(sll_float_t min,sll_float_t max);
Description: Docs!
API Signature: ff|f
Arguments:
min ->
max ->
Return Value:
(api_call) (check_output) sll_integer_t sll_api_random_get_int(sll_integer_t min,sll_integer_t max);
Description: Docs!
API Signature: ii|i
Arguments:
min ->
max ->
Return Value:
(api_call) void sll_api_random_get_string(sll_string_length_t len,sll_char_t min,sll_char_t max,sll_string_t* out);
Description: Docs!
API Signature: Dcc|s
Arguments:
len ->
min ->
max ->
out ->
Return Value: No return value

Docs!

#define SLL_MAX_SANDBOX_FLAG -> sll_sandbox_flag_t
Description: Docs!
typedef unsigned char sll_sandbox_flag_t;
Description: Docs!
typedef unsigned long long int sll_sandbox_flags_t;
Description: Docs!
(check_output) sll_bool_t sll_get_sandbox_flag(sll_sandbox_flag_t flag);
Description: Docs!
Arguments:
flag ->
Return Value:
(check_output) sll_sandbox_flags_t sll_get_sandbox_flags(void);
Description: Docs!
Return Value:
void sll_set_sandbox_flag(sll_sandbox_flag_t flag);
Description: Docs!
Arguments:
flag ->
Return Value:

Docs!

#define SLL_SANDBOX_FLAG_DISABLE_FILE_IO -> sll_sandbox_flag_t
Description: Docs!
#define SLL_SANDBOX_FLAG_ENABLE_STDIN_IO -> sll_sandbox_flag_t
Description: Docs!
#define SLL_SANDBOX_FLAG_ENABLE_STDOUT_IO -> sll_sandbox_flag_t
Description: Docs!
#define SLL_SANDBOX_FLAG_DISABLE_PATH_API -> sll_sandbox_flag_t
Description: Docs!
#define SLL_SANDBOX_FLAG_DISABLE_PROCESS_API -> sll_sandbox_flag_t
Description: Docs!
#define SLL_SANDBOX_FLAG_DISABLE_ENVIRONMENT -> sll_sandbox_flag_t
Description: Docs!
#define SLL_SANDBOX_FLAG_DISABLE_LOAD_LIBRARY -> sll_sandbox_flag_t
Description: Docs!
#define SLL_SANDBOX_FLAG_ENABLE_BUFFER_FILES -> sll_sandbox_flag_t
Description: Docs!
#define SLL_SANDBOX_FLAG_ENABLE_FILE_RENAME -> sll_sandbox_flag_t
Description: Docs!
#define SLL_SANDBOX_FLAG_ENABLE_FILE_COPY -> sll_sandbox_flag_t
Description: Docs!
#define SLL_SANDBOX_FLAG_DISABLE_FLOAT_COMPARE_ERROR_CHANGE -> sll_sandbox_flag_t
Description: Docs!
#define SLL_SANDBOX_FLAG_ENABLE_FILE_DELETE -> sll_sandbox_flag_t
Description: Docs!
#define SLL_SANDBOX_FLAG_DISABLE_THREADS -> sll_sandbox_flag_t
Description: Docs!
#define SLL_SANDBOX_FLAG_DISABLE_RANDOM -> sll_sandbox_flag_t
Description: Docs!
#define SLL_SANDBOX_FLAG_DISABLE_SERIAL -> sll_sandbox_flag_t
Description: Docs!
#define SLL_SANDBOX_FLAG_DISABLE_REFERENCE_COUNTER -> sll_sandbox_flag_t
Description: Docs!

Docs!

(check_output) sll_cpu_t sll_get_cpu_index(void);
Description: Docs!
Return Value:
(check_output) sll_thread_index_t sll_get_thread_index(void);
Description: Docs!
Return Value:

Docs!

#define SLL_SEARCH_PATH_SPLIT_CHAR -> sll_char_t
Description: Docs!
#define SLL_SEARCH_PATH_FLAG_BEFORE -> sll_search_path_length_t
Description: Docs!
#define SLL_SEARCH_PATH_FLAG_AFTER -> sll_search_path_length_t
Description: Docs!
typedef unsigned char sll_search_flags_t;
Description: Docs!
typedef unsigned int sll_search_path_length_t;
Description: Docs!
typedef struct _SLL_SEARCH_PATH{
sll_string_t* data; sll_search_path_length_t length; } sll_search_path_t;
Description: Docs!
Fields:
data ->
length ->
void sll_free_search_path(sll_search_path_t* search_path);
Description: Docs!
Arguments:
search_path ->
Return Value: No return value
void sll_search_path_create(const sll_string_t* string,sll_search_path_t* out);
Description: Docs!
Arguments:
string ->
out ->
Return Value: No return value
(check_output) sll_bool_t sll_search_path_find(const sll_search_path_t* search_path,const sll_string_t* name,sll_search_flags_t flag,sll_string_t* out);
Description: Docs!
Arguments:
search_path ->
name ->
flag ->
out ->
Return Value:
void sll_search_path_from_environment(const sll_string_t* key,sll_search_path_t* out);
Description: Docs!
Arguments:
key ->
out ->
Return Value: No return value

Docs!

#define SLL_MAX_SEMAPHORE_INDEX -> sll_semaphore_index_t
Description: Docs!
typedef unsigned int sll_semaphore_counter_t;
Description: Docs!
typedef unsigned int sll_semaphore_index_t;
Description: Docs!
(check_output) sll_semaphore_index_t sll_semaphore_create(sll_semaphore_counter_t count);
Description: Docs!
Arguments:
count ->
Return Value:
(check_output) sll_bool_t sll_semaphore_delete(sll_semaphore_index_t sempahore_index);
Description: Docs!
Arguments:
sempahore_index ->
Return Value:
(check_output) sll_bool_t sll_semaphore_release(sll_semaphore_index_t sempahore_index);
Description: Docs!
Arguments:
sempahore_index ->
Return Value:

Docs!

(api_call) (check_output) sll_error_t sll_api_serial_decode_float(sll_file_handle_t hande,sll_float_t* out);
Description: Docs!
API Signature: D|~f
Arguments:
hande ->
out ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_serial_decode_integer(sll_file_handle_t hande,sll_array_t* out);
Description: Docs!
API Signature: D|~a
Arguments:
hande ->
out ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_serial_decode_object(sll_file_handle_t hande,sll_array_t* out);
Description: Docs!
API Signature: D|~a
Arguments:
hande ->
out ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_serial_decode_signed_integer(sll_file_handle_t hande,sll_array_t* out);
Description: Docs!
API Signature: D|~a
Arguments:
hande ->
out ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_serial_decode_string(sll_file_handle_t hande,sll_string_t* out);
Description: Docs!
API Signature: D|~s
Arguments:
hande ->
out ->
Return Value:
(api_call) void sll_api_serial_encode_float(sll_file_handle_t hande,sll_float_t v);
Description: Docs!
API Signature: if|Q
Arguments:
hande ->
v ->
Return Value: No return value
(api_call) sll_error_t sll_api_serial_encode_integer(sll_file_handle_t hande,sll_size_t v);
Description: Docs!
API Signature: DQ|Q
Arguments:
hande ->
v ->
Return Value:
(api_call) sll_error_t sll_api_serial_encode_object(sll_file_handle_t hande,const sll_array_t* args);
Description: Docs!
API Signature: D#a|Q
Arguments:
hande ->
args ->
Return Value:
(api_call) sll_error_t sll_api_serial_encode_signed_integer(sll_file_handle_t hande,sll_integer_t v);
Description: Docs!
API Signature: Di|Q
Arguments:
hande ->
v ->
Return Value:
(api_call) sll_error_t sll_api_serial_encode_string(sll_file_handle_t hande,const sll_string_t* str);
Description: Docs!
API Signature: D#s|Q
Arguments:
hande ->
str ->
Return Value:

Docs!

#define SLL_DECODE_SIGNED_INTEGER(sll_size_t v) -> sll_integer_t
Description: Docs!
Arguments:
v ->
Return Value:
#define SLL_ENCODE_SIGNED_INTEGER(sll_integer_t v) -> sll_size_t
Description: Docs!
Arguments:
v ->
Return Value:
(check_output) sll_size_t sll_decode_integer(sll_file_t* file,sll_error_t* err);
Description: Docs!
Arguments:
file ->
err ->
Return Value:
(check_output) sll_integer_t sll_decode_signed_integer(sll_file_t* file,sll_error_t* err);
Description: Docs!
Arguments:
file ->
err ->
Return Value:
(check_output) sll_object_t sll_decode_object(sll_file_t* file,sll_error_t* err);
Description: Docs!
Arguments:
file ->
err ->
Return Value:
(check_output) sll_error_t sll_decode_string(sll_file_t* file,sll_string_t* out);
Description: Docs!
Arguments:
file ->
out ->
Return Value:
(check_output) sll_error_t sll_encode_integer(sll_file_t* file,sll_size_t v);
Description: Docs!
Arguments:
file ->
v ->
Return Value:
(check_output) sll_error_t sll_encode_signed_integer(sll_file_t* file,sll_integer_t v);
Description: Docs!
Arguments:
file ->
v ->
Return Value:
(check_output) sll_error_t sll_encode_object(sll_file_t* file,const sll_object_t* args,sll_arg_count_t arg_count);
Description: Docs!
Arguments:
file ->
args ->
arg_count ->
Return Value:
(check_output) sll_error_t sll_encode_string(sll_file_t* file,const sll_string_t* string);
Description: Docs!
Arguments:
file ->
string ->
Return Value:

Docs!

(api_call) (check_output) sll_error_t sll_api_socket_accept(sll_file_handle_t socket,sll_file_handle_t* out);
Description: Docs!
API Signature: D|~D
Arguments:
socket ->
out ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_socket_bind(sll_file_handle_t socket,sll_address_t address,sll_port_t port);
Description: Docs!
API Signature: D#a|Q
Arguments:
socket ->
address ->
port ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_socket_connect(sll_file_handle_t socket,sll_address_t address,sll_port_t port);
Description: Docs!
API Signature: D#a|Q
Arguments:
socket ->
address ->
port ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_socket_create(sll_socket_address_family_t address_family,sll_socket_type_t type,sll_socket_protocol_t protocol,sll_file_handle_t* out);
Description: Docs!
API Signature: BBD|~D
Arguments:
address_family ->
type ->
protocol ->
out ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_socket_get_address_info(const sll_string_t* node,const sll_string_t* service,sll_socket_address_family_t address_family,sll_socket_type_t type,sll_socket_protocol_t protocol,sll_address_info_flags_t flags,sll_array_t* out);
Description: Docs!
API Signature: #s#sBBDB|~a
Arguments:
node ->
service ->
address_family ->
type ->
protocol ->
flags ->
out ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_socket_listen(sll_file_handle_t socket,sll_socket_queue_size_t queue_size);
Description: Docs!
API Signature: DD|Q
Arguments:
socket ->
queue_size ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_socket_shutdown(sll_file_handle_t socket,sll_socket_shutdown_flags_t flags);
Description: Docs!
API Signature: DB|Q
Arguments:
socket ->
flags ->
Return Value:

Docs!

#define SLL_SOCKET_ADDRESS_FAMILY_INET -> sll_socket_address_family_t
Description: Docs!
#define SLL_SOCKET_ADDRESS_FAMILY_INET6 -> sll_socket_address_family_t
Description: Docs!
#define SLL_SOCKET_TYPE_STREAM -> sll_socket_type_t
Description: Docs!
#define SLL_SOCKET_TYPE_DGRAM -> sll_socket_type_t
Description: Docs!
#define SLL_SOCKET_TYPE_RAW -> sll_socket_type_t
Description: Docs!
#define SLL_SOCKET_TYPE_RDM -> sll_socket_type_t
Description: Docs!
#define SLL_SOCKET_TYPE_SEQPACKET -> sll_socket_type_t
Description: Docs!
#define SLL_SOCKET_SHUTDOWN_FLAG_READ -> sll_socket_shutdown_flags_t
Description: Docs!
#define SLL_SOCKET_SHUTDOWN_FLAG_WRITE -> sll_socket_shutdown_flags_t
Description: Docs!
(check_output) sll_error_t sll_socket_accept(sll_file_t* socket,sll_file_t* out);
Description: Docs!
Arguments:
socket ->
out ->
Return Value:
(check_output) sll_error_t sll_socket_bind(sll_file_t* socket,const sll_address_t* address);
Description: Docs!
Arguments:
socket ->
address ->
Return Value:
(check_output) sll_error_t sll_socket_connect(sll_file_t* socket,const sll_address_t* address);
Description: Docs!
Arguments:
socket ->
address ->
Return Value:
(check_output) sll_error_t sll_socket_create(sll_socket_address_family_t address_family,sll_socket_type_t type,sll_socket_protocol_t protocol,sll_file_t* out);
Description: Docs!
Arguments:
address_family ->
type ->
protocol ->
out ->
Return Value:
(check_output) sll_error_t sll_socket_listen(sll_file_t* socket,sll_socket_queue_size_t queue_size);
Description: Docs!
Arguments:
socket ->
queue_size ->
Return Value:
(check_output) sll_error_t sll_socket_shutdown(sll_file_t* socket,sll_socket_shutdown_flags_t flags);
Description: Docs!
Arguments:
socket ->
flags ->
Return Value:
#define SLL_ADDRESS_TYPE_UNKNOWN -> sll_address_type_t
Description: Docs!
#define SLL_ADDRESS_TYPE_IPV4 -> sll_address_type_t
Description: Docs!
#define SLL_ADDRESS_TYPE_IPV6 -> sll_address_type_t
Description: Docs!
typedef unsigned char sll_socket_address_family_t;
Description: Docs!
typedef unsigned char sll_socket_type_t;
Description: Docs!
typedef unsigned int sll_socket_protocol_t;
Description: Docs!
typedef unsigned short int sll_port_t;
Description: Docs!
typedef unsigned int sll_socket_queue_size_t;
Description: Docs!
typedef unsigned char sll_socket_shutdown_flags_t;
Description: Docs!
typedef unsigned char sll_address_type_t;
Description: Docs!
typedef struct _SLL_ADDRESS_IPV4{
unsigned int address; sll_port_t port; } sll_address_ipv4_t;
Description: Docs!
Fields:
address ->
port ->
typedef struct _SLL_ADDRESS_IPV6{
unsigned short int address[8]; unsigned int flow_info; unsigned int scope_id; sll_port_t port; } sll_address_ipv6_t;
Description: Docs!
Fields:
address[8] ->
flow_info ->
scope_id ->
port ->
typedef union _SLL_ADDRESS_DATA{
sll_address_ipv4_t ipv4; sll_address_ipv6_t ipv6; } sll_address_data_t;
Description: Docs!
Fields:
ipv4 ->
ipv6 ->
typedef struct _SLL_ADDRESS{
sll_address_type_t type; sll_address_data_t data; } sll_address_t;
Description: Docs!
Fields:
type ->
data ->

Docs!

(api_call) (check_output) sll_object_t sll_api_sort_quicksort(sll_object_t arr,sll_bool_t reverse,sll_bool_t inplace,sll_integer_t key_fn);
Description: Docs!
API Signature: &abbi|o
Arguments:
arr ->
reverse ->
inplace ->
key_fn ->
Return Value:
void sll_quicksort(sll_object_t* elements,sll_array_length_t length,sll_compare_result_t cmp,sll_integer_t key_fn);
Description: Docs!
Arguments:
elements ->
length ->
cmp ->
key_fn ->
Return Value: No return value

Docs!

#define SLL_ACQUIRE_STATIC(__identifier__ name) -> sll_object_t
Description: Docs!
Arguments:
name ->
Return Value:
#define SLL_ACQUIRE_STATIC_INT(sll_integer_t value) -> sll_object_t
Description: Docs!
Arguments:
value ->
Return Value:
#define SLL_ACQUIRE_STATIC_NEG_INT(sll_integer_t value) -> sll_object_t
Description: Docs!
Arguments:
value ->
Return Value:
#define SLL_FROM_CHAR(sll_char_t char_) -> sll_object_t
Description: Docs!
Arguments:
char_ ->
Return Value:
sll_object_t[256] sll_static_int;
Description: Docs!
sll_object_t[16] sll_static_negative_int;
Description: Docs!
sll_object_t sll_static_float_zero;
Description: Docs!
sll_object_t sll_static_float_one;
Description: Docs!
sll_object_t sll_static_float_half;
Description: Docs!
sll_object_t[256] sll_static_char;
Description: Docs!
sll_object_t sll_static_complex_zero;
Description: Docs!

Docs!

(check_output) sll_object_t sll_array_length_to_object(sll_array_length_t length);
Description: Docs!
Arguments:
length ->
Return Value:
(check_output) sll_object_t sll_array_to_object(const sll_array_t* array);
Description: Docs!
Arguments:
array ->
Return Value:
(check_output) sll_object_t sll_array_to_object_nocopy(sll_array_t* array);
Description: Docs!
Arguments:
array ->
Return Value:
(check_output) sll_object_t sll_char_to_object(sll_char_t char_);
Description: Docs!
Arguments:
char_ ->
Return Value:
(check_output) sll_object_t sll_char_to_string_object(sll_char_t char_);
Description: Docs!
Arguments:
char_ ->
Return Value:
(check_output) sll_object_t sll_complex_to_object(const sll_complex_t* complex_);
Description: Docs!
Arguments:
complex_ ->
Return Value:
(check_output) sll_object_t sll_float_to_object(sll_float_t float_);
Description: Docs!
Arguments:
float_ ->
Return Value:
(check_output) sll_object_t sll_int_to_object(sll_integer_t int_);
Description: Docs!
Arguments:
int_ ->
Return Value:
(check_output) sll_object_t sll_map_length_to_object(sll_map_length_t length);
Description: Docs!
Arguments:
length ->
Return Value:
(check_output) sll_object_t sll_map_to_object(const sll_map_t* map);
Description: Docs!
Arguments:
map ->
Return Value:
(check_output) sll_object_t sll_map_to_object_nocopy(sll_map_t* map);
Description: Docs!
Arguments:
map ->
Return Value:
(check_output) sll_object_t sll_string_pointer_to_object(const sll_char_t* pointer);
Description: Docs!
Arguments:
pointer ->
Return Value:
(check_output) sll_object_t sll_string_pointer_length_to_object(const sll_char_t* pointer,sll_string_length_t length);
Description: Docs!
Arguments:
pointer ->
length ->
Return Value:
(check_output) sll_object_t sll_string_to_object(const sll_string_t* string);
Description: Docs!
Arguments:
string ->
Return Value:
(check_output) sll_object_t sll_string_to_object_nocopy(sll_string_t* string);
Description: Docs!
Arguments:
string ->
Return Value:

Docs!

#define SLL_MAX_CHAR -> sll_char_t
Description: Docs!
#define SLL_MAX_STRING_LENGTH -> sll_string_length_t
Description: Docs!
#define SLL_CHAR(char* pointer) -> sll_char_t*
Description: Docs!
Arguments:
pointer ->
Return Value:
#define SLL_INIT_STRING(sll_string_t* outut) -> void
Description: Docs!
Arguments:
outut ->
Return Value: No return value
#define SLL_INIT_STRING_STRUCT -> sll_string_t
Description: Docs!
#define SLL_STRING_ALIGN_LENGTH(sll_string_length_t length) -> sll_string_length_t
Description: Docs!
Arguments:
length ->
Return Value:
#define SLL_STRING_COMBINE_CHECKSUMS(sll_string_checksum_t a,sll_string_length_t l,sll_string_checksum_t b) -> sll_string_checksum_t
Description: Docs!
Arguments:
a ->
l ->
b ->
Return Value:
#define SLL_STRING_ESCAPE(sll_char_t char_) -> sll_bool_t
Description: Docs!
Arguments:
char_ ->
Return Value:
#define SLL_STRING_FORMAT_PADDING(sll_char_t* pointer,sll_string_length_t length) -> void
Description: Docs!
Arguments:
pointer ->
length ->
Return Value: No return value
#define SLL_STRING_HEX_ESCAPE(sll_char_t char_) -> sll_bool_t
Description: Docs!
Arguments:
char_ ->
Return Value:
#define SLL_STRING_INSERT_POINTER_STATIC(const sll_char_t* static_string,sll_string_length_t index,sll_string_t* string) -> sll_string_length_t
Description: Docs!
Arguments:
static_string ->
index ->
string ->
Return Value:
#define SLL_INVALID_CHARACTER -> sll_wide_char_t
Description: Docs!
void sll_free_string(sll_string_t* string);
Description: Docs!
Arguments:
string ->
Return Value: No return value
void sll_string_calculate_checksum(sll_string_t* string);
Description: Docs!
Arguments:
string ->
Return Value: No return value
void sll_string_clone(const sll_string_t* string,sll_string_t* out);
Description: Docs!
Arguments:
string ->
out ->
Return Value: No return value
(check_output) sll_string_checksum_t sll_string_combine_checksums(sll_string_checksum_t a,sll_string_length_t length,sll_string_checksum_t b);
Description: Docs!
Arguments:
a ->
length ->
b ->
Return Value:
void sll_string_concat_chars(sll_char_t a,sll_char_t b,sll_string_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value
void sll_string_create(sll_string_length_t length,sll_string_t* out);
Description: Docs!
Arguments:
length ->
out ->
Return Value: No return value
(check_output) sll_bool_t sll_string_ends(const sll_string_t* string,const sll_string_t* suffix);
Description: Docs!
Arguments:
string ->
suffix ->
Return Value:
void sll_string_format(const sll_char_t* format,sll_string_t* out,...);
Description: Docs!
Arguments:
format ->
out ->
Return Value: No return value
void sll_string_format_list(const sll_char_t* format,sll_string_length_t format_length,sll_var_arg_list_t* va,sll_string_t* out);
Description: Docs!
Arguments:
format ->
format_length ->
va ->
out ->
Return Value: No return value
void sll_string_from_char(sll_char_t char_,sll_string_t* out);
Description: Docs!
Arguments:
char_ ->
out ->
Return Value: No return value
void sll_string_from_data(sll_object_t* object_data,sll_string_length_t object_count,sll_string_t* out);
Description: Docs!
Arguments:
object_data ->
object_count ->
out ->
Return Value: No return value
void sll_string_from_int(sll_integer_t int_,sll_string_t* out);
Description: Docs!
Arguments:
int_ ->
out ->
Return Value: No return value
void sll_string_from_pointer(const sll_char_t* pointer,sll_string_t* out);
Description: Docs!
Arguments:
pointer ->
out ->
Return Value: No return value
void sll_string_from_pointer_length(const sll_char_t* pointer,sll_string_length_t length,sll_string_t* out);
Description: Docs!
Arguments:
pointer ->
length ->
out ->
Return Value: No return value
(check_output) sll_bool_t sll_string_includes(const sll_string_t* string,const sll_string_t* substring);
Description: Docs!
Arguments:
string ->
substring ->
Return Value:
(check_output) sll_bool_t sll_string_includes_char(const sll_string_t* string,sll_char_t char_);
Description: Docs!
Arguments:
string ->
char_ ->
Return Value:
(check_output) sll_string_length_t sll_string_length(const sll_char_t* pointer);
Description: Docs!
Arguments:
pointer ->
Return Value:
void sll_string_pad(const sll_string_t* string,sll_string_length_t length,sll_char_t char_,sll_string_t* out);
Description: Docs!
Arguments:
string ->
length ->
char_ ->
out ->
Return Value: No return value
void sll_string_pad_left(const sll_string_t* string,sll_string_length_t length,sll_char_t char_,sll_string_t* out);
Description: Docs!
Arguments:
string ->
length ->
char_ ->
out ->
Return Value: No return value
void sll_string_pad_right(const sll_string_t* string,sll_string_length_t length,sll_char_t char_,sll_string_t* out);
Description: Docs!
Arguments:
string ->
length ->
char_ ->
out ->
Return Value: No return value
(check_output) sll_char_t sll_string_parse_char(const sll_string_t* string);
Description: Docs!
Arguments:
string ->
Return Value:
(check_output) sll_float_t sll_string_parse_float(const sll_string_t* string);
Description: Docs!
Arguments:
string ->
Return Value:
(check_output) sll_integer_t sll_string_parse_int(const sll_string_t* string);
Description: Docs!
Arguments:
string ->
Return Value:
(check_output) sll_bool_t sll_string_starts(const sll_string_t* string,const sll_string_t* prefix);
Description: Docs!
Arguments:
string ->
prefix ->
Return Value:
void sll_string_to_array(const sll_string_t* string,sll_array_t* out);
Description: Docs!
Arguments:
string ->
out ->
Return Value: No return value
void sll_string_to_map(const sll_string_t* string,sll_map_t* out);
Description: Docs!
Arguments:
string ->
out ->
Return Value: No return value
void sll_string_trim(const sll_string_t* string,sll_string_t* out);
Description: Docs!
Arguments:
string ->
out ->
Return Value: No return value
void sll_string_trim_left(const sll_string_t* string,sll_string_t* out);
Description: Docs!
Arguments:
string ->
out ->
Return Value: No return value
void sll_string_trim_right(const sll_string_t* string,sll_string_t* out);
Description: Docs!
Arguments:
string ->
out ->
Return Value: No return value
typedef unsigned char sll_char_t;
Description: Docs!
typedef unsigned int sll_string_checksum_t;
Description: Docs!
typedef unsigned int sll_string_length_t;
Description: Docs!
typedef unsigned int sll_wide_char_t;
Description: Docs!
typedef struct _SLL_STRING{
sll_string_length_t length; sll_string_checksum_t checksum; sll_char_t* data; } sll_string_t;
Description: Docs!
Fields:
length ->
checksum ->
data ->

Docs!

void sll_string_combinations(const sll_string_t* a,const sll_string_t* b,sll_array_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value
void sll_string_concat_char(const sll_string_t* string,sll_char_t char_,sll_string_t* out);
Description: Docs!
Arguments:
string ->
char_ ->
out ->
Return Value: No return value
void sll_string_decrease(sll_string_t* string,sll_string_length_t length);
Description: Docs!
Arguments:
string ->
length ->
Return Value: No return value
void sll_string_duplicate(const sll_string_t* string,sll_integer_t count,sll_string_length_t extra,sll_string_t* out);
Description: Docs!
Arguments:
string ->
count ->
extra ->
out ->
Return Value: No return value
void sll_string_flip_case(const sll_string_t* string,sll_string_t* out);
Description: Docs!
Arguments:
string ->
out ->
Return Value: No return value
(check_output) sll_char_t sll_string_get(const sll_string_t* string,sll_string_length_t index);
Description: Docs!
Arguments:
string ->
index ->
Return Value:
void sll_string_increase(sll_string_t* string,sll_string_length_t length);
Description: Docs!
Arguments:
string ->
length ->
Return Value: No return value
(check_output) sll_string_length_t sll_string_index(const sll_string_t* string,const sll_string_t* substring,sll_string_length_t start_index);
Description: Docs!
Arguments:
string ->
substring ->
start_index ->
Return Value:
(check_output) sll_string_length_t sll_string_index_char(const sll_string_t* string,sll_char_t char_,sll_bool_t inv,sll_string_length_t start_index);
Description: Docs!
Arguments:
string ->
char_ ->
inv ->
start_index ->
Return Value:
(check_output) sll_string_length_t sll_string_index_multiple(const sll_string_t* string,const sll_char_t* char_data,sll_string_length_t char_count,sll_bool_t inv);
Description: Docs!
Arguments:
string ->
char_data ->
char_count ->
inv ->
Return Value:
(check_output) sll_string_length_t sll_string_index_reverse(const sll_string_t* string,const sll_string_t* substring);
Description: Docs!
Arguments:
string ->
substring ->
Return Value:
(check_output) sll_string_length_t sll_string_index_reverse_char(const sll_string_t* string,sll_char_t char_,sll_bool_t inv);
Description: Docs!
Arguments:
string ->
char_ ->
inv ->
Return Value:
(check_output) sll_string_length_t sll_string_index_reverse_multiple(const sll_string_t* string,const sll_char_t* char_data,sll_string_length_t char_count,sll_bool_t inv);
Description: Docs!
Arguments:
string ->
char_data ->
char_count ->
inv ->
Return Value:
sll_string_length_t sll_string_insert_pointer(const sll_char_t* pointer,sll_string_length_t index,sll_string_t* out);
Description: Docs!
Arguments:
pointer ->
index ->
out ->
Return Value:
sll_string_length_t sll_string_insert_pointer_length(const sll_char_t* pointer,sll_string_length_t length,sll_string_length_t index,sll_string_t* out);
Description: Docs!
Arguments:
pointer ->
length ->
index ->
out ->
Return Value:
void sll_string_join(const sll_string_t* string,const sll_object_t* object_data,sll_array_length_t object_count,sll_string_t* out);
Description: Docs!
Arguments:
string ->
object_data ->
object_count ->
out ->
Return Value: No return value
void sll_string_join_char(sll_char_t char_,const sll_object_t* object_data,sll_array_length_t object_count,sll_string_t* out);
Description: Docs!
Arguments:
char_ ->
object_data ->
object_count ->
out ->
Return Value: No return value
void sll_string_lower_case(const sll_string_t* string,sll_string_t* out);
Description: Docs!
Arguments:
string ->
out ->
Return Value: No return value
void sll_string_prepend_char(const sll_string_t* string,sll_char_t char_,sll_string_t* out);
Description: Docs!
Arguments:
string ->
char_ ->
out ->
Return Value: No return value
void sll_string_remove(const sll_string_t* string,const sll_string_t* substring,sll_string_t* out);
Description: Docs!
Arguments:
string ->
substring ->
out ->
Return Value: No return value
void sll_string_replace(const sll_string_t* string,const sll_string_t* old,const sll_string_t* new,sll_string_t* out);
Description: Docs!
Arguments:
string ->
old ->
new ->
out ->
Return Value: No return value
void sll_string_replace_char(const sll_string_t* string,sll_char_t old,sll_char_t new,sll_string_t* out);
Description: Docs!
Arguments:
string ->
old ->
new ->
out ->
Return Value: No return value
void sll_string_resize(const sll_string_t* string,sll_integer_t delta,sll_string_t* out);
Description: Docs!
Arguments:
string ->
delta ->
out ->
Return Value: No return value
void sll_string_set_char(sll_string_t* string,sll_char_t char_,sll_string_length_t index);
Description: Docs!
Arguments:
string ->
char_ ->
index ->
Return Value: No return value
void sll_string_shift(const sll_string_t* string,sll_integer_t delta,sll_string_t* out);
Description: Docs!
Arguments:
string ->
delta ->
out ->
Return Value: No return value
void sll_string_split(const sll_string_t* string,const sll_string_t* substring,sll_array_t* o);
Description: Docs!
Arguments:
string ->
substring ->
o ->
Return Value: No return value
void sll_string_split_char(const sll_string_t* string,sll_char_t char_,sll_array_t* o);
Description: Docs!
Arguments:
string ->
char_ ->
o ->
Return Value: No return value
void sll_string_title_case(const sll_string_t* string,sll_string_t* out);
Description: Docs!
Arguments:
string ->
out ->
Return Value: No return value
void sll_string_upper_case(const sll_string_t* string,sll_string_t* out);
Description: Docs!
Arguments:
string ->
out ->
Return Value: No return value

Docs!

void sll_string_and(const sll_string_t* a,const sll_string_t* b,sll_string_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value
void sll_string_and_char(const sll_string_t* string,sll_char_t char_,sll_string_t* out);
Description: Docs!
Arguments:
string ->
char_ ->
out ->
Return Value: No return value
(check_output) sll_compare_result_t sll_string_compare(const sll_string_t* a,const sll_string_t* b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_compare_result_t sll_string_compare_array(const sll_string_t* string,const sll_array_t* array,sll_bool_t inv);
Description: Docs!
Arguments:
string ->
array ->
inv ->
Return Value:
(check_output) sll_compare_result_t sll_string_compare_map(const sll_string_t* string,const sll_map_t* map,sll_bool_t inv);
Description: Docs!
Arguments:
string ->
map ->
inv ->
Return Value:
(check_output) sll_compare_result_t sll_string_compare_pointer(const sll_char_t* a,const sll_char_t* b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
void sll_string_concat(const sll_string_t* a,const sll_string_t* b,sll_string_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value
(check_output) sll_string_length_t sll_string_count(const sll_string_t* string,const sll_string_t* substring);
Description: Docs!
Arguments:
string ->
substring ->
Return Value:
(check_output) sll_string_length_t sll_string_count_char(const sll_string_t* string,sll_char_t char_);
Description: Docs!
Arguments:
string ->
char_ ->
Return Value:
(check_output) sll_string_length_t sll_string_count_left(const sll_string_t* string,sll_char_t char_);
Description: Docs!
Arguments:
string ->
char_ ->
Return Value:
(check_output) sll_string_length_t sll_string_count_right(const sll_string_t* string,sll_char_t char_);
Description: Docs!
Arguments:
string ->
char_ ->
Return Value:
(check_output) sll_bool_t sll_string_equal(const sll_string_t* a,const sll_string_t* b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
(check_output) sll_bool_t sll_string_equal_array(const sll_string_t* string,const sll_array_t* array);
Description: Docs!
Arguments:
string ->
array ->
Return Value:
(check_output) sll_bool_t sll_string_equal_map(const sll_string_t* string,const sll_map_t* map);
Description: Docs!
Arguments:
string ->
map ->
Return Value:
void sll_string_inv(const sll_string_t* string,sll_string_t* out);
Description: Docs!
Arguments:
string ->
out ->
Return Value: No return value
void sll_string_op(const sll_string_t* a,const sll_string_t* b,sll_binary_operator_t operator,sll_string_t* out);
Description: Docs!
Arguments:
a ->
b ->
operator ->
out ->
Return Value: No return value
void sll_string_op_array(const sll_string_t* string,const sll_array_t* array,sll_binary_operator_t operator,sll_bool_t inv,sll_array_t* out);
Description: Docs!
Arguments:
string ->
array ->
operator ->
inv ->
out ->
Return Value: No return value
void sll_string_op_map(const sll_string_t* string,const sll_map_t* map,sll_binary_operator_t operator,sll_bool_t inv,sll_map_t* out);
Description: Docs!
Arguments:
string ->
map ->
operator ->
inv ->
out ->
Return Value: No return value
void sll_string_or(const sll_string_t* a,const sll_string_t* b,sll_string_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value
void sll_string_or_char(const sll_string_t* string,sll_char_t char_,sll_string_t* out);
Description: Docs!
Arguments:
string ->
char_ ->
out ->
Return Value: No return value
void sll_string_reverse(const sll_string_t* string,sll_string_t* out);
Description: Docs!
Arguments:
string ->
out ->
Return Value: No return value
(check_output) sll_bool_t sll_string_secure_equal(const sll_string_t* a,const sll_string_t* b);
Description: Docs!
Arguments:
a ->
b ->
Return Value:
void sll_string_select(const sll_string_t* string,sll_integer_t start,sll_integer_t end,sll_integer_t step,sll_string_t* out);
Description: Docs!
Arguments:
string ->
start ->
end ->
step ->
out ->
Return Value: No return value
void sll_string_xor(const sll_string_t* a,const sll_string_t* b,sll_string_t* out);
Description: Docs!
Arguments:
a ->
b ->
out ->
Return Value: No return value
void sll_string_xor_char(const sll_string_t* string,sll_char_t char_,sll_string_t* out);
Description: Docs!
Arguments:
string ->
char_ ->
out ->
Return Value: No return value

Docs!

(api_call) (check_output) sll_string_checksum_t sll_api_string_checksum(const sll_string_t* str);
Description: Docs!
API Signature: #s|D
Arguments:
str ->
Return Value:
(api_call) void sll_api_string_convert(const sll_object_t* args,sll_arg_count_t len,sll_string_t* out);
Description: Docs!
API Signature: o!|s
Arguments:
args ->
len ->
out ->
Return Value: No return value
(api_call) (check_output) sll_integer_t sll_api_string_count(const sll_string_t* str,const sll_char_string_t* elem);
Description: Docs!
API Signature: #sy|i
Arguments:
str ->
elem ->
Return Value:
(api_call) (check_output) sll_integer_t sll_api_string_count_left(const sll_string_t* str,sll_char_t chr);
Description: Docs!
API Signature: #sc|i
Arguments:
str ->
chr ->
Return Value:
(api_call) (check_output) sll_integer_t sll_api_string_count_right(const sll_string_t* str,sll_char_t chr);
Description: Docs!
API Signature: #sc|i
Arguments:
str ->
chr ->
Return Value:
(api_call) (check_output) sll_bool_t sll_api_string_ends(const sll_string_t* str,const sll_char_string_t* end);
Description: Docs!
API Signature: #sy|b
Arguments:
str ->
end ->
Return Value:
(api_call) void sll_api_string_flip_case(const sll_string_t* str,sll_string_t* out);
Description: Docs!
API Signature: #s|s
Arguments:
str ->
out ->
Return Value: No return value
(api_call) void sll_api_string_format(const sll_string_t* fmt,const sll_object_t* args,sll_arg_count_t len,sll_string_t* out);
Description: Docs!
API Signature: #so!|s
Arguments:
fmt ->
args ->
len ->
out ->
Return Value: No return value
(api_call) (check_output) sll_integer_t sll_api_string_index(const sll_string_t* str,const sll_char_string_t* substr,sll_string_length_t start);
Description: Docs!
API Signature: #syD|i
Arguments:
str ->
substr ->
start ->
Return Value:
(api_call) (check_output) sll_integer_t sll_api_string_index_list(const sll_string_t* str,const sll_char_string_t* substr,sll_bool_t inv);
Description: Docs!
API Signature: #syb|i
Arguments:
str ->
substr ->
inv ->
Return Value:
(api_call) (check_output) sll_integer_t sll_api_string_index_reverse(const sll_string_t* str,const sll_char_string_t* substr);
Description: Docs!
API Signature: #sy|i
Arguments:
str ->
substr ->
Return Value:
(api_call) (check_output) sll_integer_t sll_api_string_index_reverse_list(const sll_string_t* str,const sll_char_string_t* substr,sll_bool_t inv);
Description: Docs!
API Signature: #syb|i
Arguments:
str ->
substr ->
inv ->
Return Value:
(api_call) void sll_api_string_join(const sll_char_string_t* infix,const sll_array_t* arr,sll_string_t* out);
Description: Docs!
API Signature: y#a|s
Arguments:
infix ->
arr ->
out ->
Return Value: No return value
(api_call) void sll_api_string_pad(const sll_string_t* str,sll_string_length_t len,sll_char_t chr,sll_string_t* out);
Description: Docs!
API Signature: #sDc|s
Arguments:
str ->
len ->
chr ->
out ->
Return Value: No return value
(api_call) void sll_api_string_pad_left(const sll_string_t* str,sll_string_length_t len,sll_char_t chr,sll_string_t* out);
Description: Docs!
API Signature: #sDc|s
Arguments:
str ->
len ->
chr ->
out ->
Return Value: No return value
(api_call) void sll_api_string_pad_right(const sll_string_t* str,sll_string_length_t len,sll_char_t chr,sll_string_t* out);
Description: Docs!
API Signature: #sDc|s
Arguments:
str ->
len ->
chr ->
out ->
Return Value: No return value
(api_call) void sll_api_string_replace(const sll_string_t* str,const sll_char_string_t* old,const sll_char_string_t* new,sll_string_t* out);
Description: Docs!
API Signature: #syy|s
Arguments:
str ->
old ->
new ->
out ->
Return Value: No return value
(api_call) void sll_api_string_reverse(const sll_string_t* str,sll_string_t* out);
Description: Docs!
API Signature: #s|s
Arguments:
str ->
out ->
Return Value: No return value
(api_call) (check_output) sll_bool_t sll_api_string_secure_equal(const sll_string_t* a,const sll_string_t* b);
Description: Docs!
API Signature: #s#s|b
Arguments:
a ->
b ->
Return Value:
(api_call) void sll_api_string_split(const sll_string_t* str,const sll_char_string_t* infix,sll_array_t* out);
Description: Docs!
API Signature: #sy|a
Arguments:
str ->
infix ->
out ->
Return Value: No return value
(api_call) (check_output) sll_bool_t sll_api_string_starts(const sll_string_t* str,const sll_char_string_t* start);
Description: Docs!
API Signature: #sy|b
Arguments:
str ->
start ->
Return Value:
(api_call) void sll_api_string_to_lower_case(const sll_string_t* str,sll_string_t* out);
Description: Docs!
API Signature: #s|s
Arguments:
str ->
out ->
Return Value: No return value
(api_call) void sll_api_string_to_title_case(const sll_string_t* str,sll_string_t* out);
Description: Docs!
API Signature: #s|s
Arguments:
str ->
out ->
Return Value: No return value
(api_call) void sll_api_string_to_upper_case(const sll_string_t* str,sll_string_t* out);
Description: Docs!
API Signature: #s|s
Arguments:
str ->
out ->
Return Value: No return value
(api_call) void sll_api_string_trim(const sll_string_t* str,sll_string_t* out);
Description: Docs!
API Signature: #s|s
Arguments:
str ->
out ->
Return Value: No return value
(api_call) void sll_api_string_trim_left(const sll_string_t* str,sll_string_t* out);
Description: Docs!
API Signature: #s|s
Arguments:
str ->
out ->
Return Value: No return value
(api_call) void sll_api_string_trim_right(const sll_string_t* str,sll_string_t* out);
Description: Docs!
API Signature: #s|s
Arguments:
str ->
out ->
Return Value: No return value

Docs!

#define SLL_MAX_STRING_INDEX -> sll_string_index_t
Description: Docs!
typedef unsigned int sll_string_index_t;
Description: Docs!
typedef struct _SLL_STRING_TABLE{
sll_string_t* data; sll_string_index_t length; } sll_string_table_t;
Description: Docs!
Fields:
data ->
length ->
(check_output) sll_string_index_t sll_add_string(sll_string_table_t* string_table,sll_string_t* string);
Description: Docs!
Arguments:
string_table ->
string ->
Return Value:

Docs!

typedef unsigned int sll_argc_t;
Description: Docs!
typedef struct _SLL_LOADED_LIBRARY{
const sll_string_t name; sll_library_handle_t handle; } sll_loaded_library_t;
Description: Docs!
Fields:
name ->
handle ->
(api_call) void sll_api_sys_get_args(sll_array_t* out);
Description: Docs!
API Signature: |a
Arguments:
out ->
Return Value: No return value
(api_call) (check_output) sll_cpu_t sll_api_sys_get_cpu_count(void);
Description: Docs!
API Signature: |W
Return Value:
(api_call) void sll_api_sys_get_env(sll_map_t* out);
Description: Docs!
API Signature: |m
Arguments:
out ->
Return Value: No return value
(api_call) void sll_api_sys_get_executable(sll_string_t* out);
Description: Docs!
API Signature: |s
Arguments:
out ->
Return Value: No return value
(api_call) void sll_api_sys_get_library(sll_string_t* out);
Description: Docs!
API Signature: |s
Arguments:
out ->
Return Value: No return value
(api_call) void sll_api_sys_get_platform(sll_string_t* out);
Description: Docs!
API Signature: |s
Arguments:
out ->
Return Value: No return value
(api_call) (check_output) sll_sandbox_flags_t sll_api_sys_get_sandbox_flags(void);
Description: Docs!
API Signature: |Q
Return Value:
(api_call) void sll_api_sys_get_version(sll_array_t* out);
Description: Docs!
API Signature: |a
Arguments:
out ->
Return Value: No return value
(api_call) (check_output) sll_error_t sll_api_sys_load_library(const sll_string_t* path);
Description: Docs!
API Signature: #s|Q
Arguments:
path ->
Return Value:
(api_call) void sll_api_sys_remove_env(const sll_string_t* key);
Description: Docs!
API Signature: #s|
Arguments:
key ->
Return Value: No return value
(api_call) void sll_api_sys_set_env(const sll_string_t* key,const sll_string_t* value);
Description: Docs!
API Signature: #s#s|
Arguments:
key ->
value ->
Return Value: No return value
(api_call) void sll_api_sys_set_sandbox_flag(sll_sandbox_flag_t flag);
Description: Docs!
API Signature: B|
Arguments:
flag ->
Return Value: No return value
const sll_loaded_library_t*const* sll_get_loaded_libraries(sll_size_t* count);
Description: Docs!
Arguments:
count ->
Return Value:
void sll_set_argument(sll_argc_t index,const sll_char_t* value);
Description: Docs!
Arguments:
index ->
value ->
Return Value: No return value
void sll_set_argument_count(sll_argc_t value);
Description: Docs!
Arguments:
value ->
Return Value: No return value

Docs!

(api_call) (check_output) sll_error_t sll_api_thread_create(sll_integer_t function,const sll_array_t* args,sll_thread_index_t* out);
Description: Docs!
API Signature: i#a|~D
Arguments:
function ->
args ->
out ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_thread_create_barrier(sll_barrier_index_t* out);
Description: Docs!
API Signature: |~D
Arguments:
out ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_thread_create_lock(sll_lock_index_t* out);
Description: Docs!
API Signature: |~D
Arguments:
out ->
Return Value:
(api_call) (check_output) sll_error_t sll_api_thread_create_semaphore(sll_semaphore_counter_t count,sll_lock_index_t* out);
Description: Docs!
API Signature: D|~D
Arguments:
count ->
out ->
Return Value:
(api_call) (check_output) sll_bool_t sll_api_thread_delete(sll_thread_index_t thread_index);
Description: Docs!
API Signature: D|b
Arguments:
thread_index ->
Return Value:
(api_call) (check_output) sll_bool_t sll_api_thread_delete_barrier(sll_barrier_index_t barrier_index);
Description: Docs!
API Signature: D|b
Arguments:
barrier_index ->
Return Value:
(api_call) (check_output) sll_bool_t sll_api_thread_delete_lock(sll_lock_index_t lock_index);
Description: Docs!
API Signature: D|b
Arguments:
lock_index ->
Return Value:
(api_call) (check_output) sll_bool_t sll_api_thread_delete_semaphore(sll_semaphore_index_t sempahore_index);
Description: Docs!
API Signature: D|b
Arguments:
sempahore_index ->
Return Value:
(api_call) void sll_api_thread_get_internal_data(sll_thread_index_t thread_index,sll_array_t* out);
Description: Docs!
API Signature: D|a
Arguments:
thread_index ->
out ->
Return Value: No return value
(api_call) (check_output) sll_barrier_counter_t sll_api_thread_increase_barrier(sll_barrier_index_t barrier_index);
Description: Docs!
API Signature: D|D
Arguments:
barrier_index ->
Return Value:
(api_call) (check_output) sll_bool_t sll_api_thread_release_lock(sll_lock_index_t lock_index);
Description: Docs!
API Signature: D|b
Arguments:
lock_index ->
Return Value:
(api_call) (check_output) sll_bool_t sll_api_thread_release_semaphore(sll_semaphore_index_t sempahore_index);
Description: Docs!
API Signature: D|b
Arguments:
sempahore_index ->
Return Value:
(api_call) (check_output) sll_barrier_counter_t sll_api_thread_reset_barrier(sll_barrier_index_t barrier_index);
Description: Docs!
API Signature: D|D
Arguments:
barrier_index ->
Return Value:
(api_call) (check_output) sll_bool_t sll_api_thread_restart(sll_thread_index_t thread_index);
Description: Docs!
API Signature: D|b
Arguments:
thread_index ->
Return Value:
(api_call) (check_output) sll_bool_t sll_api_thread_suspend(sll_thread_index_t thread_index);
Description: Docs!
API Signature: D|b
Arguments:
thread_index ->
Return Value:

Docs!

typedef unsigned int sll_thread_index_t;
Description: Docs!
#define SLL_MAX_THREAD_INDEX -> sll_thread_index_t
Description: Docs!
#define SLL_UNKNOWN_THREAD_INDEX -> sll_thread_index_t
Description: Docs!
(check_output) sll_thread_index_t sll_thread_create(sll_integer_t function,const sll_object_t* args,sll_arg_count_t arg_count);
Description: Docs!
Arguments:
function ->
args ->
arg_count ->
Return Value:
(check_output) sll_bool_t sll_thread_delete(sll_thread_index_t thread_index);
Description: Docs!
Arguments:
thread_index ->
Return Value:
(check_output) const sll_call_stack_t* sll_thread_get_call_stack(sll_thread_index_t thread_index);
Description: Docs!
Arguments:
thread_index ->
Return Value:
(check_output) sll_instruction_index_t sll_thread_get_instruction_index(sll_thread_index_t thread_index);
Description: Docs!
Arguments:
thread_index ->
Return Value:
(check_output) sll_bool_t sll_thread_restart(sll_thread_index_t thread_index);
Description: Docs!
Arguments:
thread_index ->
Return Value:
(check_output) sll_bool_t sll_thread_start(sll_thread_index_t thread_index);
Description: Docs!
Arguments:
thread_index ->
Return Value:
(check_output) sll_bool_t sll_thread_suspend(sll_thread_index_t thread_index);
Description: Docs!
Arguments:
thread_index ->
Return Value:

Docs!

typedef unsigned long long int sll_time_t;
Description: Docs!
(api_call) (check_output) sll_time_t sll_api_time_current(void);
Description: Docs!
API Signature: |Q
Return Value:
(api_call) (check_output) sll_time_t sll_api_time_sleep(const sll_number_t* time);
Description: Docs!
API Signature: x|Q
Arguments:
time ->
Return Value:

Docs!

#define SLL_MAX_ARG_COUNT -> sll_arg_count_t
Description: Docs!
typedef _Bool sll_bool_t;
Description: Docs!
typedef unsigned int sll_arg_count_t;
Description: Docs!
typedef unsigned int sll_function_index_t;
Description: Docs!
typedef unsigned int sll_stack_offset_t;
Description: Docs!
typedef signed long long int sll_integer_t;
Description: Docs!
typedef unsigned long long int sll_size_t;
Description: Docs!
typedef double sll_float_t;
Description: Docs!
typedef struct _SLL_COMPLEX{
sll_float_t real; sll_float_t imag; } sll_complex_t;
Description: Docs!
Fields:
real ->
imag ->

Docs!

#define SLL_EXECUTE_FUNCTION_ASYNC -> sll_execution_flags_t
Description: Docs!
#define SLL_EXECUTE_FUNCTION_RESERVED0 -> sll_execution_flags_t
Description: Internally used as `EXECUTE_FUNCTION_NO_AUDIT_TERMINATE`
typedef unsigned char sll_execution_flags_t;
Description: Docs!
typedef unsigned short int sll_call_stack_size_t;
Description: Docs!
typedef struct _SLL_CALL_STACK_FRAME{
sll_instruction_index_t _instruction_index; sll_stack_offset_t _stack_offset; void* _variable_memory_offset; } sll_call_stack_frame_t;
Description: Docs!
Fields:
_instruction_index ->
_stack_offset ->
_variable_memory_offset ->
typedef struct _SLL_CALL_STACK{
sll_call_stack_frame_t* data; sll_call_stack_size_t length; } sll_call_stack_t;
Description: Docs!
Fields:
data ->
length ->
typedef struct _SLL_RUNTIME_DATA{
const sll_assembly_data_t* assembly_data; sll_internal_function_table_t* internal_function_table; sll_object_type_table_t* type_table; } sll_runtime_data_t;
Description: Docs!
Fields:
assembly_data ->
internal_function_table ->
type_table ->
typedef struct _SLL_VM_CONFIG{
sll_size_t s_sz; sll_size_t call_stack_size; sll_internal_function_table_t* internal_function_table; sll_file_t* in; sll_file_t* out; sll_file_t* err; } sll_vm_config_t;
Description: Docs!
Fields:
s_sz ->
call_stack_size ->
internal_function_table ->
in ->
out ->
err ->
const sll_runtime_data_t* sll_current_runtime_data;
Description: Docs!
const sll_vm_config_t* sll_current_vm_config;
Description: Docs!
(check_output) sll_return_code_t sll_execute_assembly(const sll_assembly_data_t* assembly_data,const sll_vm_config_t* vm_config);
Description: Docs!
Arguments:
assembly_data ->
vm_config ->
Return Value:
(check_output) sll_object_t sll_execute_function(sll_integer_t function,const sll_object_t* args,sll_arg_count_t arg_count,sll_execution_flags_t flags);
Description: Docs!
Arguments:
function ->
args ->
arg_count ->
flags ->
Return Value:
(check_output) sll_size_t sll_vm_get_instruction_count(void);
Description: Docs!
Return Value:
(check_output) sll_object_t sll_wait_thread(sll_thread_index_t thread_index);
Description: Docs!
Arguments:
thread_index ->
Return Value:

Docs!

(api_call) void sll_api_vm_get_config(sll_array_t* out);
Description: Docs!
API Signature: |a
Arguments:
out ->
Return Value: No return value
(api_call) (check_output) sll_size_t sll_api_vm_get_instruction_count(void);
Description: Docs!
API Signature: |Q
Return Value:
(api_call) (check_output) sll_instruction_index_t sll_api_vm_get_instruction_index(void);
Description: Docs!
API Signature: |D
Return Value:
(api_call) void sll_api_vm_get_location(sll_instruction_index_t instruction_index,sll_array_t* out);
Description: Docs!
API Signature: D|a
Arguments:
instruction_index ->
out ->
Return Value: No return value
(api_call) (check_output) sll_reference_count_t sll_api_vm_get_ref_count(sll_object_t object);
Description: Docs!
API Signature: o|D
Arguments:
object ->
Return Value:
(check_output) sll_object_t sll_instruction_to_location(sll_instruction_index_t instruction_index);
Description: Docs!
Arguments:
instruction_index ->
Return Value:

Docs!

#define SLL_VAR_ARG_LIST_TYPE_C -> sll_var_arg_list_type_t
Description: Docs!
#define SLL_VAR_ARG_LIST_TYPE_SLL -> sll_var_arg_list_type_t
Description: Docs!
#define SLL_VAR_ARG_LIST_TYPE_RESERVED0 -> sll_var_arg_list_type_t
Description: Internally used as `VAR_ARG_LIST_TYPE_STRUCT`
#define SLL_VAR_ARG_INIT_C(sll_var_arg_list_t* va,va_list* va_ptr) -> void
Description: Docs!
Arguments:
va ->
va_ptr ->
Return Value: No return value
#define SLL_VAR_ARG_INIT_SLL(sll_var_arg_list_t* va,const sll_object_t* pointer_,sll_arg_count_t count_) -> void
Description: Docs!
Arguments:
va ->
pointer_ ->
count_ ->
Return Value: No return value
typedef unsigned char sll_var_arg_list_type_t;
Description: Docs!
typedef struct _SLL_VAR_ARG_LIST_DATA_SLL{
const sll_object_t* pointer; sll_arg_count_t count; } sll_var_arg_list_data_sll_t;
Description: Docs!
Fields:
pointer ->
count ->
typedef struct _SLL_VAR_ARG_LIST_DATA_STRUCT{
const void* base_pointer; sll_size_t* offset_data; sll_arg_count_t offset_count; void** converter_function_data; sll_arg_count_t converter_function_count; } sll_var_arg_list_data_struct_t;
Description: Docs!
Fields:
base_pointer ->
offset_data ->
offset_count ->
converter_function_data ->
converter_function_count ->
typedef union _SLL_VAR_ARG_LIST_DATA{
va_list* c; sll_var_arg_list_data_sll_t sll; sll_var_arg_list_data_struct_t struct_; } sll_var_arg_list_data_t;
Description: Docs!
Fields:
c ->
sll ->
struct_ ->
typedef struct _SLL_VAR_ARG_LIST{
sll_var_arg_list_type_t type; sll_var_arg_list_data_t data; } sll_var_arg_list_t;
Description: Docs!
Fields:
type ->
data ->
(check_output) void* sll_var_arg_get(sll_var_arg_list_t* va);
Description: Docs!
Arguments:
va ->
Return Value:
(check_output) sll_char_t sll_var_arg_get_char(sll_var_arg_list_t* va);
Description: Docs!
Arguments:
va ->
Return Value:
void sll_var_arg_get_complex(sll_var_arg_list_t* va,sll_complex_t* out);
Description: Docs!
Arguments:
va ->
out ->
Return Value: No return value
(check_output) sll_float_t sll_var_arg_get_float(sll_var_arg_list_t* va);
Description: Docs!
Arguments:
va ->
Return Value:
(check_output) sll_integer_t sll_var_arg_get_int(sll_var_arg_list_t* va);
Description: Docs!
Arguments:
va ->
Return Value:
(check_output) sll_object_t sll_var_arg_get_object(sll_var_arg_list_t* va);
Description: Docs!
Arguments:
va ->
Return Value:
void sll_var_arg_get_string(sll_var_arg_list_t* va,sll_string_t* out);
Description: Docs!
Arguments:
va ->
out ->
Return Value: No return value

Docs!

(api_call) void sll_api_weakref__init(sll_object_t no_object,sll_integer_t callback);
Description: Docs!
API Signature: oi|
Arguments:
no_object ->
callback ->
Return Value: No return value
(api_call) (check_output) sll_weak_reference_t sll_api_weakref_create(sll_object_t object);
Description: Docs!
API Signature: o|Q
Arguments:
object ->
Return Value:
(api_call) (check_output) sll_bool_t sll_api_weakref_delete(sll_weak_reference_t weak_reference);
Description: Docs!
API Signature: Q|b
Arguments:
weak_reference ->
Return Value:
(api_call) (check_output) sll_object_t sll_api_weakref_get(sll_weak_reference_t weak_reference);
Description: Docs!
API Signature: Q|o
Arguments:
weak_reference ->
Return Value:
(api_call) void sll_api_weakref_set_callback_data(sll_weak_reference_t weak_reference,sll_object_t callback);
Description: Docs!
API Signature: Qo|
Arguments:
weak_reference ->
callback ->
Return Value: No return value

Docs!

typedef void* sll_weak_reference_t;
Description: Docs!
typedef void (*sll_weak_ref_destructor_t)(sll_weak_reference_t weak_reference,sll_object_t object,void* arg);
Description: Docs!
Arguments:
weak_reference ->
object ->
arg ->
Return Value: No return value
(check_output) sll_weak_reference_t sll_weakref_clone(sll_weak_reference_t weak_reference);
Description: Docs!
Arguments:
weak_reference ->
Return Value:
(check_output) sll_weak_reference_t sll_weakref_create(sll_object_t object);
Description: Docs!
Arguments:
object ->
Return Value:
(check_output) sll_bool_t sll_weakref_delete(sll_weak_reference_t weak_reference);
Description: Docs!
Arguments:
weak_reference ->
Return Value:
(check_output) sll_object_t sll_weakref_get(sll_weak_reference_t weak_reference);
Description: Docs!
Arguments:
weak_reference ->
Return Value:
void sll_weakref_set_callback(sll_weak_reference_t weak_reference,sll_weak_ref_destructor_t destructor,void* arg);
Description: Docs!
Arguments:
weak_reference ->
destructor ->
arg ->
Return Value: No return value