Serene Runtime 1.0.0-dev
C runtime for the Serene programming language
Loading...
Searching...
No Matches
Data Structures
Here are the data structures with brief descriptions:
 Cacutest_test_
 Cacutest_test_data_
 Cal_dummy
 Carray_list_maybe_element_t
 Carray_list_node_tWe have two type of node that both are implemented using the same data structure
 Carray_list_t
 Cclient_args_t
 Cfiber_mbox_t
 Cgc_dummy
 Chashmap_dummy
 Chmap_collision_tA simple alist to manage collision nodes
 Chmap_control_tIf we ever want to modify some of these behaviours for a new instance of hashmap, we should use this control type
 Chmap_key_tNote: For key equality we use the memcpy function
 Chmap_kv_entry_t
 Chmap_node_t
 Chmap_t
 Cio_waiter_tLives on the suspended fiber's stack; the worker fills it from the completion and the fiber reads it on resume
 Cmailbox_t
 Cmapper_args_t
 Cmaybe_buffer_t
 Cmm_64k
 Cmm_dummy
 Cpqmh_control_tPer type configuration
 Cpqmh_tA priority queue
 Creader_args_t
 Creader_fiber_arg_t
 Cseq_dummy
 Cseq_lookup_result_t
 Cseq_node_tWe have two type of node that both are implemented using the same data structure
 Cseq_t
 Cserver_args_t
 Csleeper_args_t
 Cspawn_copy_args_t
 Cspsc_pair
 Cspsc_producer_arg
 Csrn_alist_t
 Csrn_bindings_t
 Csrn_block_t
 Csrn_closure_t
 Csrn_cond_t
 Csrn_configuration_tEvery runtime knob, in one place
 Csrn_context_t
 Csrn_engine_tEngine is a structure to own the long living and main pieces of the compiler
 Csrn_env_t
 Csrn_error_tA runtime error, a tag classifying the failure and a human-readable message
 Csrn_fiber_config_t
 Csrn_fiber_ctx_tThe saved context of a suspended fiber is a single word, its stack pointer at the moment it was switched away from
 Csrn_fiber_frameSrn_fiber_frame is the exact frame srn_fiber_swap (switch_x86_64.S) pushes and pops, and that srn_fiber_ctx_make (ctx_x86_64.c) fabricates for a fresh fiber
 Csrn_fiber_mutex_t
 Csrn_fiber_stack_tOne stack per fiber, mapped with a guard band at the low end so an overflow faults deterministically instead of corrupting a neighbour
 Csrn_fiber_t
 Csrn_graph_t
 Csrn_io_accept_result_tThe result of srn_fiber_accept
 Csrn_io_fd_result_tThe result of an op that yields a descriptor (srn_fiber_socket, srn_fiber_open)
 Csrn_io_recvfrom_result_tThe result of srn_fiber_recvfrom
 Csrn_io_size_result_tThe result of a byte transfer op (read/write/sendto/recvmsg/sendmsg)
 Csrn_jit_module_t
 Csrn_jit_t
 Csrn_keyword_tA keyword, just a name
 Csrn_kleene_app_tSRN_KL_APP and SRN_KL_PAPP: fn applied to args
 Csrn_kleene_arm_tOne arm of a case
 Csrn_kleene_case_tSRN_KL_CASE: match scrutinee against arms
 Csrn_kleene_ctor_tSRN_KL_CTOR: build a value with constructor tag from atom fields
 Csrn_kleene_def_tA single top-level definition, (def name body)
 Csrn_kleene_fn_tSRN_KL_FN: a closure
 Csrn_kleene_global_tSRN_KL_GLOBAL: a reference to a top-level definition by name
 Csrn_kleene_jump_tSRN_KL_JUMP: hand args to the label named label
 Csrn_kleene_label_tSRN_KL_LABEL: a label name taking params, whose body runs when jumped to, in scope of cont
 Csrn_kleene_let_tSRN_KL_LET: evaluate rhs, bind it to name, then evaluate body
 Csrn_kleene_local_tSRN_KL_VAR: a reference to a bound local by name
 Csrn_kleene_module_tA parsed Kleene module, the unit the reader returns and the builder consumes
 Csrn_kleene_node_tA node of the Kleene tree. tag selects the active union member
 Csrn_kleene_prim_tSRN_KL_PRIM: primitive op over atom args
 Csrn_limits_config_tSize and length limits the runtime enforces
 Csrn_list_node_tA list is a singly linked sequence of values
 Csrn_list_t
 Csrn_main_args_t
 Csrn_map_tA persistent, immutable map
 Csrn_memory_provider_tThis interface is here to abstract over the allocator
 Csrn_metadata_t
 Csrn_mm_config_t
 Csrn_mm_tMain memory manager structure that will own all the allocated blocks and data
 Csrn_mmap_buffer_tMemory mapped buffer
 Csrn_mutex_t
 Csrn_namespace_t
 Csrn_object_cache_t
 Csrn_reactor_backend_tOne async system behind the reactor contract
 Csrn_reactor_config_t
 Csrn_reactor_io_channel_tA channel, the per-worker submission and completion ring pair
 Csrn_reactor_io_completion_tA completion, the result of one submission, echoed back on the channel
 Csrn_reactor_io_request_tA submission, one request a fiber places on its channel
 Csrn_reactor_t
 Csrn_scheduler_t
 Csrn_seq_tA persistent, immutable, indexed sequence
 Csrn_sexp_atom_t
 Csrn_sexp_cons_t
 Csrn_sexp_list_t
 Csrn_sexp_node_t
 Csrn_sexp_num_tA number literal, kept as the raw text it was written with (e.g
 Csrn_sexp_parser_t
 Csrn_sexp_str_t
 Csrn_sexp_tree_t
 Csrn_sm_buffer_t
 Csrn_sm_maybe_buffer_t
 Csrn_sm_maybe_id_t
 Csrn_sm_t
 Csrn_spinlock_t
 Csrn_spsc_ring_t
 Csrn_src_location_t
 Csrn_string_t
 Csrn_symbol_t
 Csrn_term_t
 Csrn_thread_t
 Csrn_timer_t
 Csrn_trace_frames_tThis is how we create a traceback for the C level code in the runtime lib
 Csrn_value_t
 Csrn_worker_tThe state one os thread uses to run fibers
 Csubmit_ctx_tCarries the submission across the suspend, on the fiber's stack
 Ctest_case_t
 Ctest_fiber_arg_t
 Cworker_args_t
 Cwriter_args_t
 CXXH128_canonical_t
 CXXH128_hash_tThe return value from 128-bit hashes
 CXXH32_canonical_tCanonical (big endian) representation of XXH32_hash_t
 CXXH64_canonical_tCanonical (big endian) representation of XXH64_hash_t