add runtime/engram.el, manifest.el; register seed builtins in codegen arity table
- runtime/engram.el: thin El wrappers over all __engram_* and __generate seed primitives (16 functions), matching the el_seed.c API exactly - runtime/manifest.el: build manifest documenting module load order and the cat+compile+cc command for runtime builds - el-compiler/src/codegen.el: add 77 __-prefix seed primitive entries to builtin_arity, covering str, fs, http, thread, exec, env, time, uuid, math, state, html, json, and engram seeds
This commit is contained in:
@@ -1997,6 +1997,84 @@ fn builtin_arity(name: String) -> Int {
|
||||
if str_eq(name, "http_post_form_auth") { return 3 }
|
||||
if str_eq(name, "http_serve") { return 2 }
|
||||
if str_eq(name, "http_set_handler") { return 1 }
|
||||
// Seed primitives (__-prefix) — runtime/el_seed.c
|
||||
if str_eq(name, "__str_len") { return 1 }
|
||||
if str_eq(name, "__str_char_at") { return 2 }
|
||||
if str_eq(name, "__str_alloc") { return 1 }
|
||||
if str_eq(name, "__str_set_char") { return 3 }
|
||||
if str_eq(name, "__str_cmp") { return 2 }
|
||||
if str_eq(name, "__str_ncmp") { return 3 }
|
||||
if str_eq(name, "__str_concat_raw") { return 2 }
|
||||
if str_eq(name, "__str_slice_raw") { return 3 }
|
||||
if str_eq(name, "__int_to_str") { return 1 }
|
||||
if str_eq(name, "__str_to_int") { return 1 }
|
||||
if str_eq(name, "__float_to_str") { return 1 }
|
||||
if str_eq(name, "__str_to_float") { return 1 }
|
||||
if str_eq(name, "__println") { return 1 }
|
||||
if str_eq(name, "__print") { return 1 }
|
||||
if str_eq(name, "__readline") { return 0 }
|
||||
if str_eq(name, "__fs_read") { return 1 }
|
||||
if str_eq(name, "__fs_write") { return 2 }
|
||||
if str_eq(name, "__fs_exists") { return 1 }
|
||||
if str_eq(name, "__fs_list_raw") { return 1 }
|
||||
if str_eq(name, "__fs_mkdir") { return 1 }
|
||||
if str_eq(name, "__fs_write_bytes") { return 3 }
|
||||
if str_eq(name, "__http_do") { return 5 }
|
||||
if str_eq(name, "__http_do_map") { return 5 }
|
||||
if str_eq(name, "__http_do_to_file") { return 5 }
|
||||
if str_eq(name, "__http_serve") { return 2 }
|
||||
if str_eq(name, "__http_serve_v2") { return 2 }
|
||||
if str_eq(name, "__http_response") { return 3 }
|
||||
if str_eq(name, "__thread_create") { return 2 }
|
||||
if str_eq(name, "__thread_join") { return 1 }
|
||||
if str_eq(name, "__mutex_new") { return 0 }
|
||||
if str_eq(name, "__mutex_lock") { return 1 }
|
||||
if str_eq(name, "__mutex_unlock") { return 1 }
|
||||
if str_eq(name, "__exec") { return 1 }
|
||||
if str_eq(name, "__exec_bg") { return 1 }
|
||||
if str_eq(name, "__env_get") { return 1 }
|
||||
if str_eq(name, "__args_json") { return 0 }
|
||||
if str_eq(name, "__exit_program") { return 1 }
|
||||
if str_eq(name, "__time_now_ns") { return 0 }
|
||||
if str_eq(name, "__sleep_ms") { return 1 }
|
||||
if str_eq(name, "__uuid_v4") { return 0 }
|
||||
if str_eq(name, "__sqrt_f") { return 1 }
|
||||
if str_eq(name, "__log_f") { return 1 }
|
||||
if str_eq(name, "__ln_f") { return 1 }
|
||||
if str_eq(name, "__sin_f") { return 1 }
|
||||
if str_eq(name, "__cos_f") { return 1 }
|
||||
if str_eq(name, "__pi_f") { return 0 }
|
||||
if str_eq(name, "__state_set") { return 2 }
|
||||
if str_eq(name, "__state_get") { return 1 }
|
||||
if str_eq(name, "__state_del") { return 1 }
|
||||
if str_eq(name, "__state_keys") { return 0 }
|
||||
if str_eq(name, "__html_sanitize") { return 2 }
|
||||
if str_eq(name, "__url_encode") { return 1 }
|
||||
if str_eq(name, "__url_decode") { return 1 }
|
||||
if str_eq(name, "__json_get") { return 2 }
|
||||
if str_eq(name, "__json_get_raw") { return 2 }
|
||||
if str_eq(name, "__json_parse_map") { return 1 }
|
||||
if str_eq(name, "__json_stringify_val") { return 1 }
|
||||
if str_eq(name, "__json_array_len") { return 1 }
|
||||
if str_eq(name, "__json_array_get") { return 2 }
|
||||
if str_eq(name, "__json_array_get_string") { return 2 }
|
||||
if str_eq(name, "__json_set") { return 3 }
|
||||
if str_eq(name, "__engram_node") { return 3 }
|
||||
if str_eq(name, "__engram_node_full") { return 8 }
|
||||
if str_eq(name, "__engram_get_node") { return 1 }
|
||||
if str_eq(name, "__engram_strengthen") { return 1 }
|
||||
if str_eq(name, "__engram_forget") { return 1 }
|
||||
if str_eq(name, "__engram_node_count") { return 0 }
|
||||
if str_eq(name, "__engram_search") { return 2 }
|
||||
if str_eq(name, "__engram_scan_nodes") { return 2 }
|
||||
if str_eq(name, "__engram_connect") { return 4 }
|
||||
if str_eq(name, "__engram_edge_between") { return 2 }
|
||||
if str_eq(name, "__engram_neighbors") { return 1 }
|
||||
if str_eq(name, "__engram_neighbors_filtered") { return 3 }
|
||||
if str_eq(name, "__engram_activate") { return 2 }
|
||||
if str_eq(name, "__engram_activate_json") { return 2 }
|
||||
if str_eq(name, "__engram_scan_nodes_json") { return 2 }
|
||||
if str_eq(name, "__generate") { return 1 }
|
||||
// Filesystem
|
||||
if str_eq(name, "fs_read") { return 1 }
|
||||
if str_eq(name, "fs_write") { return 2 }
|
||||
|
||||
Reference in New Issue
Block a user