From 0ace90682369dda388cd51e47d15bba273d8597e Mon Sep 17 00:00:00 2001 From: Will Anderson Date: Thu, 7 May 2026 09:34:34 -0500 Subject: [PATCH] ci: commit El SDK binaries for PR build fallback PR builds can't pull ci-base (no GCP secrets on pull_request events). dev.yaml falls back to committed bin/ + runtime/ instead. Extracted from ci-base:latest (sdk-release.yaml run 1411). --- bin/elb-linux-amd64 | Bin 0 -> 196240 bytes bin/elc-linux-amd64 | Bin 282480 -> 335160 bytes runtime/el_runtime.c | 1309 ++++++++++++++++++++++++++++++++++++++--- runtime/el_runtime.h | 133 ++++- runtime/el_runtime.js | 1049 +++++++++++++++++++++++++++++++++ 5 files changed, 2418 insertions(+), 73 deletions(-) create mode 100755 bin/elb-linux-amd64 create mode 100644 runtime/el_runtime.js diff --git a/bin/elb-linux-amd64 b/bin/elb-linux-amd64 new file mode 100755 index 0000000000000000000000000000000000000000..6e88975111b95bf761e88ca10e8aa4199f3f82b7 GIT binary patch literal 196240 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 z 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 literal 0 HcmV?d00001 diff --git a/bin/elc-linux-amd64 b/bin/elc-linux-amd64 index b2efc54f03357de52f7f1b3c60fcc38862bafe61..375aeb660b98a2d1428416b53af28d9a4fd11106 100755 GIT binary patch literal 335160 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%0Dqc0v!n|aJIUT}qB`KKzgJa(bA7`YP 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 z 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ɟOVPfOHujdl1$IN`nhRK)CVDQ= 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 #include #include +#ifdef HAVE_CURL #include +#endif /* ── Internal allocators ─────────────────────────────────────────────────── */ @@ -102,6 +104,45 @@ void el_request_end(void) { _tl_arena.count = 0; } +/* ── Scoped arena for CLI use ─────────────────────────────────────────────── * + * CLI programs never call el_request_start/end, so all strdup allocations are + * permanent. el_arena_push/pop let the compiler free intermediate strings + * after each compilation unit. + * + * el_arena_push() — activates the arena if not already active, saves the + * current arena count as a mark, and returns it as an el_val_t Int. + * el_arena_pop(mark) — frees all strings allocated since the push mark and + * resets the count. If count reaches 0, deactivates the arena. + */ +#define EL_ARENA_SCOPE_DEPTH 32 +static _Thread_local size_t _tl_arena_scope[EL_ARENA_SCOPE_DEPTH]; +static _Thread_local int _tl_arena_scope_depth = 0; + +el_val_t el_arena_push(void) { + if (!_tl_arena_active) { + _tl_arena_active = 1; + } + if (_tl_arena_scope_depth < EL_ARENA_SCOPE_DEPTH) { + _tl_arena_scope[_tl_arena_scope_depth++] = _tl_arena.count; + } + return (el_val_t)(int64_t)_tl_arena.count; +} + +el_val_t el_arena_pop(el_val_t mark) { + size_t save = (size_t)(int64_t)mark; + if (save > _tl_arena.count) save = 0; + for (size_t i = save; i < _tl_arena.count; i++) { + if (_tl_arena.ptrs[i]) { + free(_tl_arena.ptrs[i]); + _tl_arena.ptrs[i] = NULL; + } + } + _tl_arena.count = save; + if (_tl_arena_scope_depth > 0) _tl_arena_scope_depth--; + if (save == 0) _tl_arena_active = 0; + return 0; +} + /* Persistent allocation — bypasses the arena (state_set, engram internals). */ static char* el_strdup_persist(const char* s) { if (!s) return strdup(""); @@ -136,15 +177,17 @@ static el_val_t el_wrap_str(char* s) { /* ── I/O ──────────────────────────────────────────────────────────────────── */ -void println(el_val_t s) { +el_val_t println(el_val_t s) { const char* str = EL_CSTR(s); if (str) puts(str); else puts(""); + return 0; } -void print(el_val_t s) { +el_val_t print(el_val_t s) { const char* str = EL_CSTR(s); if (str) fputs(str, stdout); + return 0; } el_val_t readline(void) { @@ -155,6 +198,39 @@ el_val_t readline(void) { return el_wrap_str(el_strdup(buf)); } +/* __read_n — read exactly n bytes from stdin. + * Allocates a buffer of size n+1, calls fread(buf, 1, n, stdin) to read + * exactly n raw bytes (including \r, \n, NUL, etc.), null-terminates, and + * returns the buffer as an El String. Returns "" on EOF or I/O error. + * + * Used by the El LSP server to read JSON-RPC message bodies after parsing + * the Content-Length header. readline() cannot be used for the body because + * it stops at the first \n and LSP JSON bodies are not newline-terminated. */ +el_val_t __read_n(el_val_t nv) { + int64_t n = EL_INT(nv); + if (n <= 0) return el_wrap_str(el_strdup("")); + char* buf = malloc((size_t)n + 1); + if (!buf) { fputs("el_runtime: __read_n: out of memory\n", stderr); return el_wrap_str(el_strdup("")); } + size_t got = fread(buf, 1, (size_t)n, stdin); + buf[got] = '\0'; + if (got == 0) { free(buf); return el_wrap_str(el_strdup("")); } + /* Track in arena so the allocation is freed when the request ends. */ + el_arena_track(buf); + return el_wrap_str(buf); +} + +/* __print_raw — write a string to stdout without any modification. + * Unlike println/print (which call puts/fputs and may add newlines or flush + * in platform-specific ways), this uses fwrite with the exact byte count so + * that embedded \r\n pairs in LSP Content-Length headers survive intact. */ +void __print_raw(el_val_t sv) { + const char* s = EL_CSTR(sv); + if (!s) return; + size_t len = strlen(s); + fwrite(s, 1, len, stdout); + fflush(stdout); +} + /* ── String builtins ─────────────────────────────────────────────────────── */ el_val_t el_str_concat(el_val_t av, el_val_t bv) { @@ -218,6 +294,10 @@ el_val_t str_to_int(el_val_t sv) { return (el_val_t)atoll(s); } +/* native_str_to_int — El compiler-generated alias for str_to_int. + * Converts a string el_val_t to its integer representation. */ +el_val_t native_str_to_int(el_val_t sv) { return str_to_int(sv); } + el_val_t str_slice(el_val_t sv, el_val_t start, el_val_t end) { const char* s = EL_CSTR(sv); if (!s) return el_wrap_str(el_strdup("")); @@ -667,6 +747,39 @@ struct JsonParser { * the loop is observable. */ +/* ── JSON error helper (used by HTTP, PQ, crypto stubs) ─────────────────── */ + +/* JSON-escape an arbitrary C string into an allocated buffer. */ +static char* json_escape_alloc(const char* s) { + if (!s) return el_strdup(""); + JsonBuf b; jb_init(&b); + for (const char* p = s; *p; p++) { + unsigned char c = (unsigned char)*p; + switch (c) { + case '"': jb_puts(&b, "\\\""); break; + case '\\': jb_puts(&b, "\\\\"); break; + case '\n': jb_puts(&b, "\\n"); break; + case '\r': jb_puts(&b, "\\r"); break; + case '\t': jb_puts(&b, "\\t"); break; + default: + if (c < 0x20) { + char tmp[8]; snprintf(tmp, sizeof(tmp), "\\u%04x", c); + jb_puts(&b, tmp); + } else jb_putc(&b, (char)c); + } + } + return b.buf; +} + +static el_val_t http_error_json(const char* msg) { + char* esc = json_escape_alloc(msg ? msg : "unknown error"); + char* buf = el_strbuf(strlen(esc) + 16); + sprintf(buf, "{\"error\":\"%s\"}", esc); + free(esc); + return el_wrap_str(buf); +} + +#ifdef HAVE_CURL /* ── HTTP client write-callback buffer ───────────────────────────────────── */ typedef struct { @@ -700,36 +813,6 @@ static size_t http_write_cb(char* ptr, size_t size, size_t nmemb, void* ud) { return n; } -/* JSON-escape an arbitrary C string into an allocated buffer. */ -static char* json_escape_alloc(const char* s) { - if (!s) return el_strdup(""); - JsonBuf b; jb_init(&b); - for (const char* p = s; *p; p++) { - unsigned char c = (unsigned char)*p; - switch (c) { - case '"': jb_puts(&b, "\\\""); break; - case '\\': jb_puts(&b, "\\\\"); break; - case '\n': jb_puts(&b, "\\n"); break; - case '\r': jb_puts(&b, "\\r"); break; - case '\t': jb_puts(&b, "\\t"); break; - default: - if (c < 0x20) { - char tmp[8]; snprintf(tmp, sizeof(tmp), "\\u%04x", c); - jb_puts(&b, tmp); - } else jb_putc(&b, (char)c); - } - } - return b.buf; -} - -static el_val_t http_error_json(const char* msg) { - char* esc = json_escape_alloc(msg ? msg : "unknown error"); - char* buf = el_strbuf(strlen(esc) + 16); - sprintf(buf, "{\"error\":\"%s\"}", esc); - free(esc); - return el_wrap_str(buf); -} - /* HTTP timeout (ms) — read once from EL_HTTP_TIMEOUT_MS, default 60000. * Applied via CURLOPT_TIMEOUT_MS on every libcurl request. */ static long _el_http_timeout_ms = -1; @@ -830,6 +913,33 @@ el_val_t http_post_with_headers(el_val_t url, el_val_t body, el_val_t headers_ma return r; } +/* http_post_json_with_headers — POST with Content-Type: application/json plus + * any additional headers supplied as an El map. Combines http_post_json and + * http_post_with_headers: the Content-Type header is always prepended so + * callers do not have to include it in their map. */ +el_val_t http_post_json_with_headers(el_val_t url, el_val_t headers_map, el_val_t json_body) { + struct curl_slist* h = NULL; + h = curl_slist_append(h, "Content-Type: application/json"); + /* Append caller-supplied headers from the map */ + ElMap* m = as_map(headers_map); + if (m) { + for (int64_t i = 0; i < m->count; i++) { + const char* k = EL_CSTR(m->keys[i]); + const char* v = EL_CSTR(m->values[i]); + if (!k || !v) continue; + size_t n = strlen(k) + strlen(v) + 4; + char* line = malloc(n); + if (!line) continue; + snprintf(line, n, "%s: %s", k, v); + h = curl_slist_append(h, line); + free(line); + } + } + el_val_t r = http_do("POST", EL_CSTR(url), EL_CSTR(json_body), h); + curl_slist_free_all(h); + return r; +} + el_val_t http_post_form_auth(el_val_t url, el_val_t form_body, el_val_t auth_header) { struct curl_slist* h = NULL; h = curl_slist_append(h, "Content-Type: application/x-www-form-urlencoded"); @@ -937,6 +1047,7 @@ el_val_t http_post_to_file(el_val_t url, el_val_t body, el_val_t headers_map, el if (h) curl_slist_free_all(h); return r; } +#endif /* HAVE_CURL */ /* ── HTTP server (POSIX sockets + pthreads) ──────────────────────────────── */ @@ -981,7 +1092,7 @@ void el_runtime_register_handler(const char* name, http_handler_fn fn) { pthread_mutex_unlock(&_http_handler_mu); } -void http_set_handler(el_val_t name) { +el_val_t http_set_handler(el_val_t name) { const char* n = EL_CSTR(name); pthread_mutex_lock(&_http_handler_mu); free(_http_active_handler); @@ -1005,6 +1116,7 @@ void http_set_handler(el_val_t name) { } } pthread_mutex_unlock(&_http_handler_mu); + return 0; } static http_handler_fn http_lookup_active(void) { @@ -1462,18 +1574,18 @@ static void* http_worker(void* arg) { return NULL; } -void http_serve(el_val_t port, el_val_t handler) { +el_val_t http_serve(el_val_t port, el_val_t handler) { /* If `handler` looks like a string name, register it as the active handler. */ const char* hname = EL_CSTR(handler); if (hname && looks_like_string(handler)) { http_set_handler(handler); } int p = (int)port; - if (p <= 0 || p > 65535) { fprintf(stderr, "http_serve: invalid port %d\n", p); return; } + if (p <= 0 || p > 65535) { fprintf(stderr, "http_serve: invalid port %d\n", p); return 0; } /* Dual-stack: AF_INET6 with IPV6_V6ONLY=0 accepts both IPv4 and IPv6. * This makes `localhost` work in browsers that resolve it to ::1 first. */ int sock = socket(AF_INET6, SOCK_STREAM, 0); - if (sock < 0) { perror("socket"); return; } + if (sock < 0) { perror("socket"); return 0; } int yes = 1; int no = 0; setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)); setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, &no, sizeof(no)); @@ -1483,9 +1595,9 @@ void http_serve(el_val_t port, el_val_t handler) { addr.sin6_addr = in6addr_any; addr.sin6_port = htons((uint16_t)p); if (bind(sock, (struct sockaddr*)&addr, sizeof(addr)) < 0) { - perror("bind"); close(sock); return; + perror("bind"); close(sock); return 0; } - if (listen(sock, 64) < 0) { perror("listen"); close(sock); return; } + if (listen(sock, 64) < 0) { perror("listen"); close(sock); return 0; } fprintf(stderr, "[http] listening on [::]:%d (dual-stack)\n", p); while (1) { struct sockaddr_in6 cli; @@ -1516,6 +1628,7 @@ void http_serve(el_val_t port, el_val_t handler) { pthread_detach(tid); } close(sock); + return 0; } /* ── HTTP server v2 — request headers + structured response ──────────────── */ @@ -1567,7 +1680,7 @@ void el_runtime_register_handler_v2(const char* name, http_handler4_fn fn) { pthread_mutex_unlock(&_http_handler_mu); } -void http_set_handler_v2(el_val_t name) { +el_val_t http_set_handler_v2(el_val_t name) { const char* n = EL_CSTR(name); pthread_mutex_lock(&_http_handler_mu); free(_http_active_handler4); @@ -1589,6 +1702,7 @@ void http_set_handler_v2(el_val_t name) { } } pthread_mutex_unlock(&_http_handler_mu); + return 0; } static http_handler4_fn http_lookup_active_v2(void) { @@ -1709,7 +1823,7 @@ static void* http_worker_v2(void* arg) { return NULL; } -void http_serve_v2(el_val_t port, el_val_t handler) { +el_val_t http_serve_v2(el_val_t port, el_val_t handler) { const char* hname = EL_CSTR(handler); if (hname && looks_like_string(handler)) { http_set_handler_v2(handler); @@ -1717,11 +1831,11 @@ void http_serve_v2(el_val_t port, el_val_t handler) { int p = (int)port; if (p <= 0 || p > 65535) { fprintf(stderr, "http_serve_v2: invalid port %d\n", p); - return; + return 0; } /* Dual-stack: same as http_serve - AF_INET6 + IPV6_V6ONLY=0. */ int sock = socket(AF_INET6, SOCK_STREAM, 0); - if (sock < 0) { perror("socket"); return; } + if (sock < 0) { perror("socket"); return 0; } int yes = 1; int no = 0; setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)); setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, &no, sizeof(no)); @@ -1731,9 +1845,9 @@ void http_serve_v2(el_val_t port, el_val_t handler) { addr.sin6_addr = in6addr_any; addr.sin6_port = htons((uint16_t)p); if (bind(sock, (struct sockaddr*)&addr, sizeof(addr)) < 0) { - perror("bind"); close(sock); return; + perror("bind"); close(sock); return 0; } - if (listen(sock, 64) < 0) { perror("listen"); close(sock); return; } + if (listen(sock, 64) < 0) { perror("listen"); close(sock); return 0; } fprintf(stderr, "[http v2] listening on [::]:%d (dual-stack)\n", p); while (1) { struct sockaddr_in6 cli; @@ -1764,6 +1878,7 @@ void http_serve_v2(el_val_t port, el_val_t handler) { pthread_detach(tid); } close(sock); + return 0; } /* Build the response envelope a 4-arg handler can return. We hand-write @@ -1854,6 +1969,34 @@ el_val_t fs_write_bytes(el_val_t pathv, el_val_t bytesv, el_val_t lengthv) { return 1; } +// stdout_to_file / stdout_restore — redirect process stdout to a file and +// restore it. Used by the compiler's JS post-processing pipeline to capture +// codegen output before piping through terser / obfuscator. +#include +static int _el_saved_stdout_fd = -1; + +el_val_t stdout_to_file(el_val_t pathv) { + const char* path = EL_CSTR(pathv); + if (!path) return (el_val_t)(int64_t)-1; + fflush(stdout); + _el_saved_stdout_fd = dup(STDOUT_FILENO); + int fd = open(path, O_WRONLY | O_CREAT | O_TRUNC, 0600); + if (fd < 0) return (el_val_t)(int64_t)-1; + dup2(fd, STDOUT_FILENO); + close(fd); + return (el_val_t)(int64_t)0; +} + +el_val_t stdout_restore(void) { + if (_el_saved_stdout_fd >= 0) { + fflush(stdout); + dup2(_el_saved_stdout_fd, STDOUT_FILENO); + close(_el_saved_stdout_fd); + _el_saved_stdout_fd = -1; + } + return (el_val_t)(int64_t)0; +} + // exec_command — run a shell command, return exit code (0 = success). // Used by elb and other El tooling to invoke subprocesses. el_val_t exec_command(el_val_t cmdv) { @@ -1947,6 +2090,52 @@ el_val_t fs_list(el_val_t pathv) { return lst; } +/* fs_list_json — return directory entries as a JSON array of strings. + * Returns "[]" for missing or non-directory paths. Excludes "." and "..". */ +el_val_t fs_list_json(el_val_t pathv) { + const char* path = EL_CSTR(pathv); + if (!path) return EL_STR("[]"); + DIR* d = opendir(path); + if (!d) return EL_STR("[]"); + /* Collect entries first so we can build the JSON in one pass. */ + char** names = NULL; + size_t count = 0, cap = 0; + struct dirent* e; + while ((e = readdir(d)) != NULL) { + if (strcmp(e->d_name, ".") == 0 || strcmp(e->d_name, "..") == 0) continue; + if (count >= cap) { + cap = cap ? cap * 2 : 16; + names = realloc(names, cap * sizeof(char*)); + if (!names) { closedir(d); return EL_STR("[]"); } + } + names[count++] = strdup(e->d_name); + } + closedir(d); + /* Build JSON array. */ + size_t sz = 3; /* "[]" + NUL */ + for (size_t i = 0; i < count; i++) sz += strlen(names[i]) * 2 + 6; /* conservative */ + char* buf = malloc(sz); + if (!buf) { for (size_t i = 0; i < count; i++) free(names[i]); free(names); return EL_STR("[]"); } + size_t pos = 0; + buf[pos++] = '['; + for (size_t i = 0; i < count; i++) { + if (i > 0) buf[pos++] = ','; + buf[pos++] = '"'; + for (const char* p = names[i]; *p; p++) { + if (*p == '"' || *p == '\\') buf[pos++] = '\\'; + else if (*p == '\n') { buf[pos++] = '\\'; buf[pos++] = 'n'; continue; } + else if (*p == '\t') { buf[pos++] = '\\'; buf[pos++] = 't'; continue; } + buf[pos++] = *p; + } + buf[pos++] = '"'; + free(names[i]); + } + free(names); + buf[pos++] = ']'; + buf[pos] = '\0'; + return el_wrap_str(buf); +} + /* fs_exists — true iff stat(path) succeeds. Symlinks are followed. */ el_val_t fs_exists(el_val_t pathv) { const char* path = EL_CSTR(pathv); @@ -3198,14 +3387,20 @@ el_val_t json_get_raw(el_val_t json_str, el_val_t key) { el_val_t json_set(el_val_t json_str, el_val_t key, el_val_t value) { const char* json = EL_CSTR(json_str); const char* k = EL_CSTR(key); + /* raw_val is the JSON value as-is (already encoded by the caller). + * If it looks like a plain (non-JSON) string, wrap it as a JSON string. + * Convention: callers pass pre-encoded values like "\"bob\"" for strings, + * "42" for numbers, "true"/"false" for booleans. */ + const char* raw_val = EL_CSTR(value); if (!k) k = ""; + if (!raw_val) raw_val = "null"; if (!json || !*json) { /* Build a fresh object */ JsonBuf b; jb_init(&b); jb_putc(&b, '{'); jb_emit_escaped(&b, k); jb_putc(&b, ':'); - jb_emit_value(&b, value); + jb_puts(&b, raw_val); jb_putc(&b, '}'); return el_wrap_str(b.buf); } @@ -3219,7 +3414,7 @@ el_val_t json_set(el_val_t json_str, el_val_t key, el_val_t value) { memcpy(b.buf + b.len, json, prefix); b.len += prefix; b.buf[b.len] = '\0'; - jb_emit_value(&b, value); + jb_puts(&b, raw_val); jb_puts(&b, end); return el_wrap_str(b.buf); } @@ -3250,7 +3445,7 @@ el_val_t json_set(el_val_t json_str, el_val_t key, el_val_t value) { if (!empty) jb_putc(&b, ','); jb_emit_escaped(&b, k); jb_putc(&b, ':'); - jb_emit_value(&b, value); + jb_puts(&b, raw_val); /* Append from close_idx onward */ jb_puts(&b, json + close_idx); return el_wrap_str(b.buf); @@ -3331,6 +3526,87 @@ el_val_t json_array_get_string(el_val_t json_str, el_val_t index) { return el_wrap_str(parsed); } +/* json_escape_string — escape a string value for embedding in JSON. + * Returns the escaped content WITHOUT surrounding quotes. + * "say \"hello\"" -> "say \\\"hello\\\"" */ +el_val_t json_escape_string(el_val_t sv) { + const char* s = EL_CSTR(sv); + if (!s) return el_wrap_str(el_strdup("")); + size_t n = strlen(s); + /* Worst case: every char needs a 2-char escape. */ + char* out = malloc(n * 2 + 1); + if (!out) return el_wrap_str(el_strdup("")); + size_t j = 0; + for (size_t i = 0; i < n; i++) { + unsigned char c = (unsigned char)s[i]; + if (c == '"') { out[j++] = '\\'; out[j++] = '"'; } + else if (c == '\\') { out[j++] = '\\'; out[j++] = '\\'; } + else if (c == '\n') { out[j++] = '\\'; out[j++] = 'n'; } + else if (c == '\r') { out[j++] = '\\'; out[j++] = 'r'; } + else if (c == '\t') { out[j++] = '\\'; out[j++] = 't'; } + else { out[j++] = (char)c; } + } + out[j] = '\0'; + el_val_t result = el_wrap_str(el_strdup(out)); + free(out); + return result; +} + +/* json_build_object — build a JSON object from a flat key-value list. + * kvs is [key0, val0, key1, val1, ...]. Values are raw JSON (pass + * strings as "\"value\"" or use json_escape_string). */ +el_val_t json_build_object(el_val_t kvs) { + el_val_t list = kvs; + int64_t n = el_list_len(list); + JsonBuf b; jb_init(&b); + jb_putc(&b, '{'); + int first = 1; + for (int64_t i = 0; i + 1 < n; i += 2) { + el_val_t k = el_list_get(list, (el_val_t)i); + el_val_t v = el_list_get(list, (el_val_t)(i + 1)); + const char* ks = EL_CSTR(k); + const char* vs = EL_CSTR(v); + if (!ks || !vs) continue; + if (!first) jb_putc(&b, ','); + first = 0; + jb_putc(&b, '"'); + jb_puts(&b, ks); + jb_puts(&b, "\":\""); + /* escape the value string */ + size_t vn = strlen(vs); + for (size_t j = 0; j < vn; j++) { + unsigned char c = (unsigned char)vs[j]; + if (c == '"') { jb_putc(&b, '\\'); jb_putc(&b, '"'); } + else if (c == '\\') { jb_putc(&b, '\\'); jb_putc(&b, '\\'); } + else if (c == '\n') { jb_putc(&b, '\\'); jb_putc(&b, 'n'); } + else if (c == '\r') { jb_putc(&b, '\\'); jb_putc(&b, 'r'); } + else if (c == '\t') { jb_putc(&b, '\\'); jb_putc(&b, 't'); } + else { jb_putc(&b, (char)c); } + } + jb_putc(&b, '"'); + } + jb_putc(&b, '}'); + return el_wrap_str(b.buf); +} + +/* json_build_array — build a JSON array from a list of raw JSON values. + * items is ["\"alpha\"", "\"beta\"", "42", "true", ...]. */ +el_val_t json_build_array(el_val_t items) { + el_val_t list = items; + int64_t n = el_list_len(list); + JsonBuf b; jb_init(&b); + jb_putc(&b, '['); + for (int64_t i = 0; i < n; i++) { + el_val_t v = el_list_get(list, (el_val_t)i); + const char* vs = EL_CSTR(v); + if (!vs) continue; + if (i > 0) jb_putc(&b, ','); + jb_puts(&b, vs); + } + jb_putc(&b, ']'); + return el_wrap_str(b.buf); +} + /* ── Time ────────────────────────────────────────────────────────────────── */ el_val_t time_now(void) { @@ -3352,7 +3628,7 @@ el_val_t time_format(el_val_t ts, el_val_t fmt) { struct tm tm; gmtime_r(&s, &tm); const char* fmt_str = EL_CSTR(fmt); - if (!fmt_str || strcmp(fmt_str, "ISO") == 0) { + if (!fmt_str || *fmt_str == '\0' || strcmp(fmt_str, "ISO") == 0) { char buf[64]; snprintf(buf, sizeof(buf), "%04d-%02d-%02dT%02d:%02d:%02d.%03dZ", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, @@ -3371,15 +3647,13 @@ el_val_t time_to_parts(el_val_t ts) { if (msec < 0) { msec += 1000; s -= 1; } struct tm tm; gmtime_r(&s, &tm); - el_val_t m = el_map_new(0); - m = el_map_set(m, EL_STR(el_strdup("year")), (el_val_t)(tm.tm_year + 1900)); - m = el_map_set(m, EL_STR(el_strdup("month")), (el_val_t)(tm.tm_mon + 1)); - m = el_map_set(m, EL_STR(el_strdup("day")), (el_val_t)tm.tm_mday); - m = el_map_set(m, EL_STR(el_strdup("hour")), (el_val_t)tm.tm_hour); - m = el_map_set(m, EL_STR(el_strdup("minute")), (el_val_t)tm.tm_min); - m = el_map_set(m, EL_STR(el_strdup("second")), (el_val_t)tm.tm_sec); - m = el_map_set(m, EL_STR(el_strdup("ms")), (el_val_t)msec); - return m; + /* Return a JSON string so callers can use json_get to extract fields. */ + char buf[256]; + snprintf(buf, sizeof(buf), + "{\"year\":%d,\"month\":%d,\"day\":%d,\"hour\":%d,\"minute\":%d,\"second\":%d,\"ms\":%d}", + tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, + tm.tm_hour, tm.tm_min, tm.tm_sec, msec); + return el_wrap_str(el_strdup(buf)); } el_val_t time_from_parts(el_val_t secs, el_val_t ns, el_val_t tz) { @@ -3485,6 +3759,12 @@ el_val_t now(void) { return el_now_instant(); } +/* now_ns — return current Unix time as nanoseconds (Int). + * Thin wrapper over el_now_instant for use in test timing. */ +el_val_t now_ns(void) { + return el_now_instant(); +} + /* unix_seconds(n) — Instant from a Unix-epoch second count. * unix_millis(n) — Instant from a Unix-epoch millisecond count. */ el_val_t unix_seconds(el_val_t n) { @@ -4712,19 +4992,57 @@ el_val_t state_del(el_val_t key) { el_val_t state_keys(void) { pthread_mutex_lock(&_state_mu); - el_val_t lst = el_list_empty(); + /* Build a JSON array string: ["key1","key2",...] */ + JsonBuf b; jb_init(&b); + jb_putc(&b, '['); for (size_t i = 0; i < _state_count; i++) { - lst = el_list_append(lst, el_wrap_str(el_strdup(_state_entries[i].key))); + if (i > 0) jb_putc(&b, ','); + jb_putc(&b, '"'); + jb_emit_escaped(&b, _state_entries[i].key); + jb_putc(&b, '"'); + } + jb_putc(&b, ']'); + pthread_mutex_unlock(&_state_mu); + return el_wrap_str(b.buf); +} + +/* Returns 1 (true) if the key is present in the state store, else 0 (false). */ +el_val_t state_has(el_val_t key) { + const char* k = EL_CSTR(key); + if (!k) return 0; + pthread_mutex_lock(&_state_mu); + StateEntry* e = state_find(k); + int found = (e != NULL) ? 1 : 0; + pthread_mutex_unlock(&_state_mu); + return (el_val_t)found; +} + +/* Returns the value for key, or default_val if the key is absent. */ +el_val_t state_get_or(el_val_t key, el_val_t default_val) { + const char* k = EL_CSTR(key); + if (!k) return default_val; + pthread_mutex_lock(&_state_mu); + StateEntry* e = state_find(k); + if (e) { + char* copy = el_strdup(e->value); + pthread_mutex_unlock(&_state_mu); + return el_wrap_str(copy); } pthread_mutex_unlock(&_state_mu); - return lst; + return default_val; } /* ── Float formatting ────────────────────────────────────────────────────── */ el_val_t float_to_str(el_val_t f) { char buf[64]; - snprintf(buf, sizeof(buf), "%g", el_to_float(f)); + double v = el_to_float(f); + /* Normalize NaN to "nan" regardless of sign — platform-independent. */ + if (isnan(v)) { + snprintf(buf, sizeof(buf), "nan"); + } else { + snprintf(buf, sizeof(buf), "%g", v); + } return el_wrap_str(el_strdup(buf)); } @@ -5344,8 +5662,9 @@ el_val_t parse_int(el_val_t sv, el_val_t default_val) { /* ── Process ─────────────────────────────────────────────────────────────── */ -void exit_program(el_val_t code) { +el_val_t exit_program(el_val_t code) { exit((int)code); + return 0; /* unreachable */ } /* getpid_now — current process id. Named with the _now suffix to avoid @@ -7215,8 +7534,10 @@ el_val_t engram_neighbors_json(el_val_t node_id, el_val_t max_depth, el_val_t di free(frontier); free(frontier_h); free(visited); jb_putc(&b, ']'); return el_wrap_str(b.buf); } - frontier[fc] = el_strdup(sid); frontier_h[fc] = 0; fc++; - visited[vc++] = el_strdup(sid); + /* Use plain strdup (not el_strdup) so arena doesn't track these pointers. + * The BFS loop manually frees them below — arena would double-free them. */ + frontier[fc] = strdup(sid); frontier_h[fc] = 0; fc++; + visited[vc++] = strdup(sid); int first = 1; while (fc > 0) { @@ -7245,8 +7566,8 @@ el_val_t engram_neighbors_json(el_val_t node_id, el_val_t max_depth, el_val_t di char tmp[64]; snprintf(tmp, sizeof(tmp), ",\"hops\":%lld}", (long long)(h + 1)); jb_puts(&b, tmp); first = 0; - if (vc < 1024) visited[vc++] = el_strdup(peer); - if (fc < 1024 && h + 1 < depth) { frontier[fc] = el_strdup(peer); frontier_h[fc] = h + 1; fc++; } + if (vc < 1024) visited[vc++] = strdup(peer); + if (fc < 1024 && h + 1 < depth) { frontier[fc] = strdup(peer); frontier_h[fc] = h + 1; fc++; } } free(cur); } @@ -7486,6 +7807,7 @@ el_val_t engram_query_range(el_val_t start_ms_v, el_val_t end_ms_v) { return el_wrap_str(b.buf); } +#ifdef HAVE_CURL /* ── DHARMA network ───────────────────────────────────────────────────────── * Real implementation. Peers are addressed by `dharma_id` — either bare * (e.g. "ntn-genesis", transport defaults to http://localhost:7770) or @@ -7997,6 +8319,7 @@ el_val_t dharma_peers(void) { free(peers); return out; } +#endif /* HAVE_CURL — DHARMA network */ /* ── Batch 4: LLM (Anthropic API client) ─────────────────────────────────── */ /* @@ -8011,6 +8334,7 @@ el_val_t dharma_peers(void) { * and returns a JSON-string el_val_t result. Iteration is capped at 10. */ +#ifdef HAVE_CURL static const char* LLM_DEFAULT_MODEL = "claude-sonnet-4-5"; static const char* LLM_API_URL = "https://api.anthropic.com/v1/messages"; static const char* LLM_VERSION = "2023-06-01"; @@ -8696,6 +9020,7 @@ el_val_t llm_models(void) { lst = el_list_append(lst, el_wrap_str(el_strdup("claude-haiku-4-5"))); return lst; } +#endif /* HAVE_CURL */ /* ── Native VM builtin aliases ────────────────────────────────────────────── * El source files use native_* names (El VM builtins). @@ -9886,6 +10211,7 @@ el_val_t aead_decrypt(el_val_t key_hex, el_val_t nonce_hex, el_val_t ciphertext_ #endif /* __has_include() */ +#ifdef HAVE_CURL /* ──────────────────────────────────────────────────────────────────────────── * OTLP/HTTP observability — logs, traces, metrics * @@ -10244,3 +10570,854 @@ el_val_t emit_event(el_val_t name_v, el_val_t duration_ms_v) { return trace_span_end(h); } +#endif /* HAVE_CURL — OTLP */ + +/* ── Threading seed primitives ─────────────────────────────────────────────── + * __thread_create(fn_name, arg) -> Int spawn El fn in a pthread, return tid + * __thread_join(tid) -> String join thread, return result string + * __mutex_new() -> Int allocate a mutex, return handle + * __mutex_lock(m) lock mutex m + * __mutex_unlock(m) unlock mutex m + * + * Every El fn compiles to a global C symbol. __thread_create uses dlsym to + * look up the function by name and run it in a pthread. This means any El fn + * with signature (String) -> String is directly threadable. + */ + +typedef el_val_t (*ElFn1)(el_val_t); + +typedef struct { + ElFn1 fn; + el_val_t arg; + el_val_t result; +} ElThreadArg; + +#define EL_THREAD_MAX 256 + +typedef struct { + pthread_t tid; + ElThreadArg* arg; + int alive; +} ElThread; + +static ElThread _threads[EL_THREAD_MAX]; +static int _thread_count = 0; +static pthread_mutex_t _thread_alloc_mu = PTHREAD_MUTEX_INITIALIZER; + +static void* el_thread_runner(void* raw) { + ElThreadArg* a = (ElThreadArg*)raw; + a->result = a->fn(a->arg); + return NULL; +} + +el_val_t __thread_create(el_val_t fn_name_v, el_val_t arg_v) { + const char* sym = EL_CSTR(fn_name_v); + if (!sym || !*sym) return EL_INT(-1); + void* p = dlsym(RTLD_DEFAULT, sym); + if (!p) { + fprintf(stderr, "[__thread_create] symbol not found: %s\n", sym); + return EL_INT(-1); + } + ElThreadArg* a = (ElThreadArg*)malloc(sizeof(ElThreadArg)); + if (!a) return EL_INT(-1); + a->fn = (ElFn1)p; + a->arg = arg_v; + a->result = EL_STR(""); + + pthread_mutex_lock(&_thread_alloc_mu); + if (_thread_count >= EL_THREAD_MAX) { + pthread_mutex_unlock(&_thread_alloc_mu); + free(a); + fprintf(stderr, "[__thread_create] thread table full\n"); + return EL_INT(-1); + } + int slot = _thread_count++; + _threads[slot].arg = a; + _threads[slot].alive = 1; + pthread_mutex_unlock(&_thread_alloc_mu); + + if (pthread_create(&_threads[slot].tid, NULL, el_thread_runner, a) != 0) { + pthread_mutex_lock(&_thread_alloc_mu); + _thread_count--; + pthread_mutex_unlock(&_thread_alloc_mu); + free(a); + return EL_INT(-1); + } + return EL_INT(slot); +} + +el_val_t __thread_join(el_val_t tid_v) { + int slot = (int)(int64_t)tid_v; + if (slot < 0 || slot >= EL_THREAD_MAX) return EL_STR(""); + pthread_join(_threads[slot].tid, NULL); + el_val_t result = _threads[slot].arg->result; + free(_threads[slot].arg); + _threads[slot].alive = 0; + return result; +} + +/* Mutex table */ + +#define EL_MUTEX_MAX 64 + +typedef struct { + pthread_mutex_t mu; + int allocated; +} ElMutexEntry; + +static ElMutexEntry _mutexes[EL_MUTEX_MAX]; +static int _mutex_count = 0; +static pthread_mutex_t _mutex_alloc_mu = PTHREAD_MUTEX_INITIALIZER; + +el_val_t __mutex_new(void) { + pthread_mutex_lock(&_mutex_alloc_mu); + if (_mutex_count >= EL_MUTEX_MAX) { + pthread_mutex_unlock(&_mutex_alloc_mu); + fprintf(stderr, "[__mutex_new] mutex table full\n"); + return EL_INT(-1); + } + int slot = _mutex_count++; + pthread_mutex_init(&_mutexes[slot].mu, NULL); + _mutexes[slot].allocated = 1; + pthread_mutex_unlock(&_mutex_alloc_mu); + return EL_INT(slot); +} + +void __mutex_lock(el_val_t m_v) { + int slot = (int)(int64_t)m_v; + if (slot < 0 || slot >= EL_MUTEX_MAX || !_mutexes[slot].allocated) return; + pthread_mutex_lock(&_mutexes[slot].mu); +} + +void __mutex_unlock(el_val_t m_v) { + int slot = (int)(int64_t)m_v; + if (slot < 0 || slot >= EL_MUTEX_MAX || !_mutexes[slot].allocated) return; + pthread_mutex_unlock(&_mutexes[slot].mu); +} + +/* ── Channels ─────────────────────────────────────────────────────────────── * + * Buffered MPMC channel backed by a mutex + condvar + circular buffer. + * channel_new(capacity) -> Int (handle) + * channel_send(ch, msg) — blocks if full (capacity > 0) or never (unbounded) + * channel_recv(ch) -> String — blocks until a message is available + * channel_try_recv(ch) -> String — non-blocking, returns "" if empty + * channel_close(ch) — signal no more sends; recv drains remaining + * + * Bounded channels (cap > 0): circular buffer, sender blocks when full. + * Unbounded channels (cap == 0): dynamic array, sender never blocks. + */ +#define EL_CHANNEL_MAX 64 +#define EL_CHANNEL_BUF 1024 + +typedef struct { + char** buf; + int cap; /* 0 = unbounded (grows dynamically) */ + int head, tail, count; + int dyn_cap; /* allocated slots for unbounded mode */ + int closed; + pthread_mutex_t mu; + pthread_cond_t not_empty; + pthread_cond_t not_full; +} ElChannel; + +static ElChannel _channels[EL_CHANNEL_MAX]; +static int _channel_count = 0; +static pthread_mutex_t _channel_alloc_mu = PTHREAD_MUTEX_INITIALIZER; + +el_val_t __channel_new(el_val_t capacity_v) { + int cap = (int)(int64_t)capacity_v; + if (cap < 0) cap = 0; + + pthread_mutex_lock(&_channel_alloc_mu); + if (_channel_count >= EL_CHANNEL_MAX) { + pthread_mutex_unlock(&_channel_alloc_mu); + fprintf(stderr, "[__channel_new] channel table full\n"); + return EL_INT(-1); + } + int slot = _channel_count++; + pthread_mutex_unlock(&_channel_alloc_mu); + + ElChannel* ch = &_channels[slot]; + memset(ch, 0, sizeof(*ch)); + ch->cap = cap; + ch->closed = 0; + ch->head = 0; + ch->tail = 0; + ch->count = 0; + + if (cap > 0) { + /* Bounded: fixed circular buffer. */ + ch->buf = (char**)malloc((size_t)cap * sizeof(char*)); + ch->dyn_cap = cap; + } else { + /* Unbounded: start with EL_CHANNEL_BUF slots, grow as needed. */ + ch->buf = (char**)malloc(EL_CHANNEL_BUF * sizeof(char*)); + ch->dyn_cap = EL_CHANNEL_BUF; + } + if (!ch->buf) { + fprintf(stderr, "[__channel_new] out of memory\n"); + return EL_INT(-1); + } + + pthread_mutex_init(&ch->mu, NULL); + pthread_cond_init(&ch->not_empty, NULL); + pthread_cond_init(&ch->not_full, NULL); + + return EL_INT(slot); +} + +void __channel_send(el_val_t ch_v, el_val_t msg_v) { + int slot = (int)(int64_t)ch_v; + if (slot < 0 || slot >= EL_CHANNEL_MAX) return; + ElChannel* ch = &_channels[slot]; + + const char* msg = EL_CSTR(msg_v); + if (!msg) msg = ""; + char* copy = strdup(msg); /* channel owns the string */ + + pthread_mutex_lock(&ch->mu); + + if (ch->closed) { + /* Send on closed channel is a no-op (drop the message). */ + pthread_mutex_unlock(&ch->mu); + free(copy); + return; + } + + if (ch->cap > 0) { + /* Bounded: block while full. */ + while (ch->count >= ch->cap && !ch->closed) { + pthread_cond_wait(&ch->not_full, &ch->mu); + } + if (ch->closed) { + pthread_mutex_unlock(&ch->mu); + free(copy); + return; + } + ch->buf[ch->tail] = copy; + ch->tail = (ch->tail + 1) % ch->cap; + ch->count++; + } else { + /* Unbounded: grow the buffer if needed. */ + if (ch->count >= ch->dyn_cap) { + int new_cap = ch->dyn_cap * 2; + char** grown = (char**)realloc(ch->buf, (size_t)new_cap * sizeof(char*)); + if (!grown) { + pthread_mutex_unlock(&ch->mu); + free(copy); + fprintf(stderr, "[__channel_send] out of memory growing channel\n"); + return; + } + /* The circular buffer may have wrapped. Linearise it first. + * In unbounded mode head is always 0 (we append at tail, drain + * from head), so a simple memmove isn't needed — but if the + * buffer did wrap (tail < head after growth), we need to fix up. + * Simplest safe path: if tail wrapped, move the head..old_cap + * segment to new_cap..new_cap+(old_cap-head). */ + if (ch->tail < ch->head) { + /* Wrapped: [head..old_cap) is the front, [0..tail) is the back. */ + int front = ch->dyn_cap - ch->head; + memmove(grown + ch->dyn_cap, grown + ch->head, (size_t)front * sizeof(char*)); + ch->head = ch->dyn_cap; + } + ch->buf = grown; + ch->dyn_cap = new_cap; + } + ch->buf[ch->tail] = copy; + ch->tail = (ch->tail + 1) % ch->dyn_cap; + ch->count++; + } + + pthread_cond_signal(&ch->not_empty); + pthread_mutex_unlock(&ch->mu); +} + +el_val_t __channel_recv(el_val_t ch_v) { + int slot = (int)(int64_t)ch_v; + if (slot < 0 || slot >= EL_CHANNEL_MAX) return EL_STR(""); + ElChannel* ch = &_channels[slot]; + + pthread_mutex_lock(&ch->mu); + + /* Block until there is a message or the channel is closed and drained. */ + while (ch->count == 0 && !ch->closed) { + pthread_cond_wait(&ch->not_empty, &ch->mu); + } + + if (ch->count == 0) { + /* Closed and empty — signal EOF. */ + pthread_mutex_unlock(&ch->mu); + return EL_STR(""); + } + + int buf_cap = (ch->cap > 0) ? ch->cap : ch->dyn_cap; + char* msg = ch->buf[ch->head]; + ch->head = (ch->head + 1) % buf_cap; + ch->count--; + + pthread_cond_signal(&ch->not_full); + pthread_mutex_unlock(&ch->mu); + + /* Hand the string to the arena so it is freed after the request. */ + el_arena_track(msg); + return EL_STR(msg); +} + +el_val_t __channel_try_recv(el_val_t ch_v) { + int slot = (int)(int64_t)ch_v; + if (slot < 0 || slot >= EL_CHANNEL_MAX) return EL_STR(""); + ElChannel* ch = &_channels[slot]; + + pthread_mutex_lock(&ch->mu); + + if (ch->count == 0) { + pthread_mutex_unlock(&ch->mu); + return EL_STR(""); + } + + int buf_cap = (ch->cap > 0) ? ch->cap : ch->dyn_cap; + char* msg = ch->buf[ch->head]; + ch->head = (ch->head + 1) % buf_cap; + ch->count--; + + pthread_cond_signal(&ch->not_full); + pthread_mutex_unlock(&ch->mu); + + el_arena_track(msg); + return EL_STR(msg); +} + +void __channel_close(el_val_t ch_v) { + int slot = (int)(int64_t)ch_v; + if (slot < 0 || slot >= EL_CHANNEL_MAX) return; + ElChannel* ch = &_channels[slot]; + + pthread_mutex_lock(&ch->mu); + ch->closed = 1; + /* Wake all blocked recvers and senders so they can observe the close. */ + pthread_cond_broadcast(&ch->not_empty); + pthread_cond_broadcast(&ch->not_full); + pthread_mutex_unlock(&ch->mu); +} + +/* ── DHARMA runtime additions ──────────────────────────────────────────────── + * + * Functions required by the dharma registry service. Added here so the + * released el_runtime.c includes them without requiring dharma to bundle + * its own stubs. + * + * Functions added: + * list_len — alias for el_list_len (used in handlers.el) + * list_get — alias for el_list_get (used in handlers.el) + * json_array_push — append a pre-encoded JSON element to a JSON array string + * now_millis — milliseconds since Unix epoch (alias for time_now) + * unix_timestamp_ms — same as now_millis (alias) + * time_now_ms — same as now_millis (alias) + * log_info — stderr structured log at INFO level + * log_warn — stderr structured log at WARN level + * config — reads a config value from the environment + * http_patch — HTTP PATCH with JSON Content-Type + * http_post_engram — HTTP POST with optional X-API-Key header + * http_get_engram — HTTP GET with optional X-API-Key header + * str_to_bytes — encode a string as a JSON array of byte values + * bytes_to_str — decode a JSON array of byte values back to a string + * hash_sha256 — SHA-256 hex digest of a string + */ + +/* list_len — return the number of elements in a list. */ +el_val_t list_len(el_val_t list) { + return el_list_len(list); +} + +/* list_get — return the element at index i in a list. */ +el_val_t list_get(el_val_t list, el_val_t index) { + return el_list_get(list, index); +} + +/* json_array_push — append element (a pre-encoded JSON fragment, e.g. "\"foo\"" + * or "42") to the JSON array string arr. Returns a new JSON array string. + * Example: json_array_push("[]", "\"alice\"") -> "[\"alice\"]" + * json_array_push("[\"alice\"]", "\"bob\"") -> "[\"alice\",\"bob\"]" */ +el_val_t json_array_push(el_val_t arr_v, el_val_t elem_v) { + const char* arr = EL_CSTR(arr_v); + const char* elem = EL_CSTR(elem_v); + if (!arr || !*arr) arr = "[]"; + if (!elem || !*elem) elem = "null"; + + /* Trim whitespace, find the closing ']'. */ + const char* p = arr; + while (*p == ' ' || *p == '\t' || *p == '\n' || *p == '\r') p++; + if (*p != '[') { + /* Not an array — return a single-element array. */ + size_t n = strlen(elem) + 4; + char* out = el_strbuf(n); + snprintf(out, n, "[%s]", elem); + return el_wrap_str(out); + } + size_t arr_len = strlen(arr); + size_t elem_len = strlen(elem); + + /* Walk from the end to find the matching ']'. */ + const char* end = arr + arr_len - 1; + while (end > p && (*end == ' ' || *end == '\t' || *end == '\n' || *end == '\r')) end--; + if (*end != ']') { + /* Malformed — wrap elem in a new array. */ + size_t n = elem_len + 4; + char* out = el_strbuf(n); + snprintf(out, n, "[%s]", elem); + return el_wrap_str(out); + } + + /* Content between '[' and ']'. */ + const char* inner_start = p + 1; + const char* inner_end = end; /* points AT ']' */ + /* Check if the array is empty (only whitespace between brackets). */ + const char* q = inner_start; + while (q < inner_end && (*q == ' ' || *q == '\t' || *q == '\n' || *q == '\r')) q++; + int empty = (q == inner_end); + + /* Build: prefix + (comma if non-empty) + elem + "]" */ + size_t prefix_len = (size_t)(inner_end - arr); /* up to but not including ']' */ + size_t sep_len = empty ? 0 : 1; /* "," if non-empty */ + size_t out_len = prefix_len + sep_len + elem_len + 2; /* +"]" + NUL */ + char* out = el_strbuf(out_len); + memcpy(out, arr, prefix_len); + if (!empty) out[prefix_len] = ','; + memcpy(out + prefix_len + sep_len, elem, elem_len); + out[prefix_len + sep_len + elem_len] = ']'; + out[prefix_len + sep_len + elem_len + 1] = '\0'; + return el_wrap_str(out); +} + +/* now_millis — milliseconds since Unix epoch. */ +el_val_t now_millis(void) { + return time_now(); +} + +/* unix_timestamp_ms — same as now_millis. */ +el_val_t unix_timestamp_ms(void) { + return time_now(); +} + +/* time_now_ms — same as now_millis. */ +el_val_t time_now_ms(void) { + return time_now(); +} + +/* log_info — write a structured [INFO] line to stderr. */ +void log_info(el_val_t msg_v) { + const char* msg = EL_CSTR(msg_v); + fprintf(stderr, "[INFO] %s\n", msg ? msg : ""); +} + +/* log_warn — write a structured [WARN] line to stderr. */ +void log_warn(el_val_t msg_v) { + const char* msg = EL_CSTR(msg_v); + fprintf(stderr, "[WARN] %s\n", msg ? msg : ""); +} + +/* config — read a configuration value from the environment. + * Returns "" if the variable is not set (same as __env_get). */ +el_val_t config(el_val_t key_v) { + const char* key = EL_CSTR(key_v); + if (!key || !*key) return EL_STR(""); + const char* val = getenv(key); + if (!val) return EL_STR(""); + return el_wrap_str(el_strdup(val)); +} + +#ifdef HAVE_CURL +/* http_patch — HTTP PATCH request with Content-Type: application/json. + * Returns the response body (same error convention as http_post_json). */ +el_val_t http_patch(el_val_t url_v, el_val_t body_v) { + const char* url = EL_CSTR(url_v); + const char* body = EL_CSTR(body_v); + if (!url || !*url) return http_error_json("empty url"); + CURL* c = curl_easy_init(); + if (!c) return http_error_json("curl_easy_init failed"); + HttpBuf rb; httpbuf_init(&rb); + char errbuf[CURL_ERROR_SIZE]; errbuf[0] = '\0'; + struct curl_slist* h = NULL; + h = curl_slist_append(h, "Content-Type: application/json"); + curl_easy_setopt(c, CURLOPT_URL, url); + curl_easy_setopt(c, CURLOPT_CUSTOMREQUEST, "PATCH"); + curl_easy_setopt(c, CURLOPT_POSTFIELDS, body ? body : ""); + curl_easy_setopt(c, CURLOPT_POSTFIELDSIZE, (long)(body ? strlen(body) : 0)); + curl_easy_setopt(c, CURLOPT_HTTPHEADER, h); + curl_easy_setopt(c, CURLOPT_WRITEFUNCTION, http_write_cb); + curl_easy_setopt(c, CURLOPT_WRITEDATA, &rb); + curl_easy_setopt(c, CURLOPT_FOLLOWLOCATION, 1L); + curl_easy_setopt(c, CURLOPT_TIMEOUT_MS, el_http_timeout_ms()); + curl_easy_setopt(c, CURLOPT_NOSIGNAL, 1L); + curl_easy_setopt(c, CURLOPT_ERRORBUFFER, errbuf); + curl_easy_setopt(c, CURLOPT_USERAGENT, "el-runtime/1.0"); + CURLcode rc = curl_easy_perform(c); + curl_slist_free_all(h); + curl_easy_cleanup(c); + if (rc != CURLE_OK) { + free(rb.data); + const char* m = errbuf[0] ? errbuf : curl_easy_strerror(rc); + return http_error_json(m); + } + return el_wrap_str(rb.data); +} + +/* http_post_engram — HTTP POST with optional X-API-Key header. + * If key is "" no authentication header is sent. */ +el_val_t http_post_engram(el_val_t url_v, el_val_t key_v, el_val_t body_v) { + const char* url = EL_CSTR(url_v); + const char* key = EL_CSTR(key_v); + const char* body = EL_CSTR(body_v); + if (!url || !*url) return http_error_json("empty url"); + CURL* c = curl_easy_init(); + if (!c) return http_error_json("curl_easy_init failed"); + HttpBuf rb; httpbuf_init(&rb); + char errbuf[CURL_ERROR_SIZE]; errbuf[0] = '\0'; + struct curl_slist* h = NULL; + h = curl_slist_append(h, "Content-Type: application/json"); + if (key && *key) { + size_t n = strlen(key) + 32; + char* hdr = malloc(n); + snprintf(hdr, n, "X-API-Key: %s", key); + h = curl_slist_append(h, hdr); + free(hdr); + } + curl_easy_setopt(c, CURLOPT_URL, url); + curl_easy_setopt(c, CURLOPT_POST, 1L); + curl_easy_setopt(c, CURLOPT_POSTFIELDS, body ? body : ""); + curl_easy_setopt(c, CURLOPT_POSTFIELDSIZE, (long)(body ? strlen(body) : 0)); + curl_easy_setopt(c, CURLOPT_HTTPHEADER, h); + curl_easy_setopt(c, CURLOPT_WRITEFUNCTION, http_write_cb); + curl_easy_setopt(c, CURLOPT_WRITEDATA, &rb); + curl_easy_setopt(c, CURLOPT_FOLLOWLOCATION, 1L); + curl_easy_setopt(c, CURLOPT_TIMEOUT_MS, el_http_timeout_ms()); + curl_easy_setopt(c, CURLOPT_NOSIGNAL, 1L); + curl_easy_setopt(c, CURLOPT_ERRORBUFFER, errbuf); + curl_easy_setopt(c, CURLOPT_USERAGENT, "el-runtime/1.0"); + CURLcode rc = curl_easy_perform(c); + curl_slist_free_all(h); + curl_easy_cleanup(c); + if (rc != CURLE_OK) { + free(rb.data); + const char* m = errbuf[0] ? errbuf : curl_easy_strerror(rc); + return http_error_json(m); + } + return el_wrap_str(rb.data); +} + +/* http_get_engram — HTTP GET with optional X-API-Key header. */ +el_val_t http_get_engram(el_val_t url_v, el_val_t key_v) { + const char* url = EL_CSTR(url_v); + const char* key = EL_CSTR(key_v); + if (!url || !*url) return http_error_json("empty url"); + CURL* c = curl_easy_init(); + if (!c) return http_error_json("curl_easy_init failed"); + HttpBuf rb; httpbuf_init(&rb); + char errbuf[CURL_ERROR_SIZE]; errbuf[0] = '\0'; + struct curl_slist* h = NULL; + if (key && *key) { + size_t n = strlen(key) + 32; + char* hdr = malloc(n); + snprintf(hdr, n, "X-API-Key: %s", key); + h = curl_slist_append(h, hdr); + free(hdr); + } + curl_easy_setopt(c, CURLOPT_URL, url); + curl_easy_setopt(c, CURLOPT_HTTPGET, 1L); + if (h) curl_easy_setopt(c, CURLOPT_HTTPHEADER, h); + curl_easy_setopt(c, CURLOPT_WRITEFUNCTION, http_write_cb); + curl_easy_setopt(c, CURLOPT_WRITEDATA, &rb); + curl_easy_setopt(c, CURLOPT_FOLLOWLOCATION, 1L); + curl_easy_setopt(c, CURLOPT_TIMEOUT_MS, el_http_timeout_ms()); + curl_easy_setopt(c, CURLOPT_NOSIGNAL, 1L); + curl_easy_setopt(c, CURLOPT_ERRORBUFFER, errbuf); + curl_easy_setopt(c, CURLOPT_USERAGENT, "el-runtime/1.0"); + CURLcode rc = curl_easy_perform(c); + if (h) curl_slist_free_all(h); + curl_easy_cleanup(c); + if (rc != CURLE_OK) { + free(rb.data); + const char* m = errbuf[0] ? errbuf : curl_easy_strerror(rc); + return http_error_json(m); + } + return el_wrap_str(rb.data); +} +#endif /* HAVE_CURL */ + +/* str_to_bytes — encode a string as a JSON array of unsigned byte values. + * "hello" -> "[104,101,108,108,111]" + * Used by db.el to store binary content in Engram JSON nodes. */ +el_val_t str_to_bytes(el_val_t sv) { + const char* s = EL_CSTR(sv); + if (!s || !*s) return el_wrap_str(el_strdup("[]")); + size_t n = strlen(s); + /* Worst case: each byte is 3 digits + comma = 4 chars, plus "[]" + NUL. */ + char* out = el_strbuf(n * 4 + 3); + size_t pos = 0; + out[pos++] = '['; + for (size_t i = 0; i < n; i++) { + unsigned char b = (unsigned char)s[i]; + if (i > 0) out[pos++] = ','; + /* Write decimal representation of b. */ + if (b >= 100) { + out[pos++] = (char)('0' + b / 100); + out[pos++] = (char)('0' + (b / 10) % 10); + out[pos++] = (char)('0' + b % 10); + } else if (b >= 10) { + out[pos++] = (char)('0' + b / 10); + out[pos++] = (char)('0' + b % 10); + } else { + out[pos++] = (char)('0' + b); + } + } + out[pos++] = ']'; + out[pos] = '\0'; + return el_wrap_str(out); +} + +/* bytes_to_str — decode a JSON array of integer byte values back to a string. + * "[104,101,108,108,111]" -> "hello" + * Inverse of str_to_bytes. */ +el_val_t bytes_to_str(el_val_t arr_v) { + const char* s = EL_CSTR(arr_v); + if (!s) return el_wrap_str(el_strdup("")); + /* Skip whitespace, expect '['. */ + while (*s == ' ' || *s == '\t' || *s == '\n' || *s == '\r') s++; + if (*s != '[') return el_wrap_str(el_strdup("")); + s++; + + /* Count elements to size the output buffer. */ + int64_t n = (int64_t)json_array_len(arr_v); + if (n <= 0) return el_wrap_str(el_strdup("")); + + char* out = el_strbuf((size_t)n + 1); + size_t pos = 0; + + /* Walk the array, parse each integer, store as a byte. */ + while (*s) { + while (*s == ' ' || *s == '\t' || *s == '\n' || *s == '\r') s++; + if (*s == ']' || *s == '\0') break; + /* Parse decimal integer. */ + char* end_ptr; + long v = strtol(s, &end_ptr, 10); + if (end_ptr == s) break; /* parse failure */ + s = end_ptr; + if (v >= 0 && v <= 255) out[pos++] = (char)(unsigned char)v; + while (*s == ' ' || *s == '\t' || *s == '\n' || *s == '\r') s++; + if (*s == ',') { s++; continue; } + if (*s == ']' || *s == '\0') break; + } + out[pos] = '\0'; + return el_wrap_str(out); +} + +/* hash_sha256 — return the SHA-256 hex digest of a string. + * Uses the built-in el_sha256_oneshot implementation (no OpenSSL required). */ +el_val_t hash_sha256(el_val_t sv) { + const char* s = EL_CSTR(sv); + if (!s) s = ""; + unsigned char digest[32]; + el_sha256_oneshot((const unsigned char*)s, strlen(s), digest); + return el_hex_encode(digest, 32); +} + +/* ── __ prefixed aliases — public boundary for compiled El programs ────────── + * + * The El compiler's self-hosting back-end emits calls to __-prefixed function + * names (e.g. __println, __str_len). These wrappers forward to the existing + * el_runtime implementations so both naming conventions resolve at link time. + * + * Note: __thread_create and __thread_join are already defined above in the + * threading section; they are not repeated here. + * ──────────────────────────────────────────────────────────────────────────── */ + +/* I/O */ +el_val_t __println(el_val_t s) { return println(s); } +el_val_t __print(el_val_t s) { return print(s); } +el_val_t __readline(void) { return readline(); } + +/* String */ +el_val_t __int_to_str(el_val_t n) { return int_to_str(n); } +el_val_t __str_to_int(el_val_t s) { return str_to_int(s); } +el_val_t __float_to_str(el_val_t f) { return float_to_str(f); } +el_val_t __str_to_float(el_val_t s) { return str_to_float(s); } +el_val_t __str_len(el_val_t s) { return str_len(s); } +el_val_t __str_char_at(el_val_t s, el_val_t i) { return str_char_at(s, i); } + +el_val_t __str_cmp(el_val_t a, el_val_t b) { + const char* ca = EL_CSTR(a); + const char* cb = EL_CSTR(b); + if (!ca) ca = ""; + if (!cb) cb = ""; + return (el_val_t)strcmp(ca, cb); +} + +el_val_t __str_ncmp(el_val_t a, el_val_t b, el_val_t n) { + const char* ca = EL_CSTR(a); + const char* cb = EL_CSTR(b); + if (!ca) ca = ""; + if (!cb) cb = ""; + return (el_val_t)strncmp(ca, cb, (size_t)n); +} + +el_val_t __str_concat_raw(el_val_t a, el_val_t b) { return str_concat(a, b); } +el_val_t __str_slice_raw(el_val_t s, el_val_t start, el_val_t end) { return str_slice(s, start, end); } + +el_val_t __str_alloc(el_val_t n) { + if (n <= 0) n = 0; + char* buf = el_strbuf((size_t)n + 1); + memset(buf, 0, (size_t)n + 1); + return el_wrap_str(buf); +} + +el_val_t __str_set_char(el_val_t s, el_val_t i, el_val_t c) { + char* buf = (char*)(uintptr_t)s; + if (buf) buf[(size_t)i] = (char)c; + return s; +} + +/* URL encoding */ +el_val_t __url_encode(el_val_t s) { return url_encode(s); } +el_val_t __url_decode(el_val_t s) { return url_decode(s); } + +/* Environment */ +el_val_t __env_get(el_val_t key) { return env(key); } + +/* Subprocess */ +el_val_t __exec(el_val_t cmd) { return exec(cmd); } +el_val_t __exec_bg(el_val_t cmd) { return exec_bg(cmd); } + +/* Process */ +el_val_t __exit_program(el_val_t code) { return exit_program(code); } + +/* Filesystem */ +el_val_t __fs_exists(el_val_t path) { return fs_exists(path); } +el_val_t __fs_mkdir(el_val_t path) { return fs_mkdir(path); } +el_val_t __fs_read(el_val_t path) { return fs_read(path); } +el_val_t __fs_write(el_val_t path, el_val_t content) { return fs_write(path, content); } +el_val_t __fs_write_bytes(el_val_t path, el_val_t bytes, el_val_t n) { return fs_write_bytes(path, bytes, n); } +el_val_t __fs_list_raw(el_val_t path) { return fs_list_json(path); } + +/* HTTP server (no curl dependency) */ +el_val_t __http_response(el_val_t status, el_val_t headers_json, el_val_t body) { return http_response(status, headers_json, body); } +el_val_t __http_serve(el_val_t port, el_val_t handler) { return http_serve(port, handler); } +el_val_t __http_serve_v2(el_val_t port, el_val_t handler) { return http_serve_v2(port, handler); } + +/* HTTP conn fd / SSE — __http_conn_fd lives in el_seed.c; stubs provided here + * so el_runtime.c compiles standalone. When both translation units are linked + * the el_seed.c definitions win via their non-static linkage (strong symbols). + * These stubs are marked weak so they are silently overridden. */ +__attribute__((weak)) el_val_t __http_conn_fd(void) { return (el_val_t)(-1); } +__attribute__((weak)) el_val_t __http_sse_open(el_val_t conn_id) { (void)conn_id; return 0; } +__attribute__((weak)) el_val_t __http_sse_send(el_val_t conn_id, el_val_t data) { (void)conn_id; (void)data; return 0; } +__attribute__((weak)) el_val_t __http_sse_close(el_val_t conn_id) { (void)conn_id; return 0; } + +/* JSON */ +el_val_t __json_array_get(el_val_t json, el_val_t index) { return json_array_get(json, index); } +el_val_t __json_array_get_string(el_val_t json, el_val_t index) { return json_array_get_string(json, index); } +el_val_t __json_array_len(el_val_t json) { return json_array_len(json); } +el_val_t __json_get(el_val_t json, el_val_t key) { return json_get(json, key); } +el_val_t __json_get_raw(el_val_t json, el_val_t key) { return json_get_raw(json, key); } +el_val_t __json_set(el_val_t json, el_val_t key, el_val_t value){ return json_set(json, key, value); } +el_val_t __json_parse_map(el_val_t json_str) { return json_parse(json_str); } +el_val_t __json_stringify_val(el_val_t val) { return json_stringify(val); } + +/* Hashing */ +el_val_t __sha256_hex(el_val_t s) { return hash_sha256(s); } + +/* State K/V */ +el_val_t __state_del(el_val_t key) { return state_del(key); } +el_val_t __state_get(el_val_t key) { return state_get(key); } +el_val_t __state_keys(void) { return state_keys(); } +el_val_t __state_set(el_val_t key, el_val_t val) { return state_set(key, val); } + +/* UUID */ +el_val_t __uuid_v4(void) { return uuid_v4(); } + +/* Args */ +el_val_t __args_json(void) { return args(); } + +/* HTTP client aliases — require curl; defined inside #ifdef HAVE_CURL below + * with a matching stub in the #ifndef HAVE_CURL block. */ +#ifdef HAVE_CURL +el_val_t __http_do(el_val_t method, el_val_t url, el_val_t body, + el_val_t headers_map, el_val_t timeout_ms) { + /* timeout_ms is accepted for API compatibility but ignored here; + * el_runtime's http_do uses the EL_HTTP_TIMEOUT_MS env var instead. */ + (void)timeout_ms; + struct curl_slist* h = headers_from_map(headers_map); + el_val_t r = http_do(EL_CSTR(method), EL_CSTR(url), EL_CSTR(body), h); + if (h) curl_slist_free_all(h); + return r; +} + +/* __http_do_map — same as __http_do but headers_map arg is a JSON-string + * rather than an ElMap. Parse it first, then delegate. */ +el_val_t __http_do_map(el_val_t method, el_val_t url, el_val_t body, + el_val_t headers_json, el_val_t timeout_ms) { + (void)timeout_ms; + /* Build a curl_slist from a JSON object {"Header":"value",...}. */ + const char* hj = EL_CSTR(headers_json); + struct curl_slist* h = NULL; + if (hj && *hj && *hj == '{') { + /* Walk the JSON pairs with a simple parser reusing json_get_string logic. */ + /* For correctness we just call the existing json_get iteration path. + * We duplicate the key-extraction loop from headers_from_map but driven + * by JSON rather than ElMap. Use json_get_raw to iterate is not easy + * without knowing keys, so accept the JSON string and build a tmp map. */ + el_val_t map = json_parse(EL_STR(hj)); + h = headers_from_map(map); + } + el_val_t r = http_do(EL_CSTR(method), EL_CSTR(url), EL_CSTR(body), h); + if (h) curl_slist_free_all(h); + return r; +} + +/* __http_do_map_to_file — same as __http_do_map but streams response body + * to a local file path rather than returning it as a string. */ +el_val_t __http_do_map_to_file(el_val_t method, el_val_t url, el_val_t body, + el_val_t headers_json, el_val_t output_path) { + const char* hj = EL_CSTR(headers_json); + struct curl_slist* h = NULL; + if (hj && *hj && *hj == '{') { + el_val_t map = json_parse(EL_STR(hj)); + h = headers_from_map(map); + } + el_val_t r = http_do_to_file(EL_CSTR(method), EL_CSTR(url), EL_CSTR(body), + h, EL_CSTR(output_path)); + if (h) curl_slist_free_all(h); + return r; +} +#endif /* HAVE_CURL */ + +#ifndef HAVE_CURL +/* ── HAVE_CURL=0 stubs — compile without -lcurl for the elc CLI binary. ───── * + * These return a JSON error string so El programs get a clear message if they + * call HTTP/LLM functions in a curl-less build. */ +static el_val_t _no_curl_err(void) { + return el_wrap_str(el_strdup("{\"error\":\"not built with HAVE_CURL\"}")); +} +el_val_t http_get(el_val_t url) { (void)url; return _no_curl_err(); } +el_val_t http_post(el_val_t url, el_val_t body) { (void)url; (void)body; return _no_curl_err(); } +el_val_t http_post_json(el_val_t url, el_val_t body) { (void)url; (void)body; return _no_curl_err(); } +el_val_t http_get_with_headers(el_val_t url, el_val_t h) { (void)url; (void)h; return _no_curl_err(); } +el_val_t http_post_with_headers(el_val_t url, el_val_t b, el_val_t h) { (void)url; (void)b; (void)h; return _no_curl_err(); } +el_val_t http_post_json_with_headers(el_val_t url, el_val_t h, el_val_t b) { (void)url; (void)h; (void)b; return _no_curl_err(); } +el_val_t http_post_form_auth(el_val_t url, el_val_t b, el_val_t a) { (void)url; (void)b; (void)a; return _no_curl_err(); } +el_val_t http_delete(el_val_t url) { (void)url; return _no_curl_err(); } +el_val_t http_patch(el_val_t url, el_val_t body) { (void)url; (void)body; return _no_curl_err(); } +el_val_t http_get_to_file(el_val_t url, el_val_t h, el_val_t p) { (void)url; (void)h; (void)p; return _no_curl_err(); } +el_val_t http_post_to_file(el_val_t url, el_val_t b, el_val_t h, el_val_t p) { (void)url; (void)b; (void)h; (void)p; return _no_curl_err(); } +el_val_t http_post_engram(el_val_t url, el_val_t k, el_val_t b) { (void)url; (void)k; (void)b; return _no_curl_err(); } +el_val_t http_get_engram(el_val_t url, el_val_t k) { (void)url; (void)k; return _no_curl_err(); } +el_val_t llm_call(el_val_t m, el_val_t p) { (void)m; (void)p; return _no_curl_err(); } +el_val_t llm_call_system(el_val_t m, el_val_t s, el_val_t u) { (void)m; (void)s; (void)u; return _no_curl_err(); } +el_val_t llm_call_agentic(el_val_t m, el_val_t s, el_val_t u, el_val_t t) { (void)m; (void)s; (void)u; (void)t; return _no_curl_err(); } +el_val_t llm_vision(el_val_t m, el_val_t s, el_val_t p, el_val_t i) { (void)m; (void)s; (void)p; (void)i; return _no_curl_err(); } +el_val_t llm_models(void) { return el_list_empty(); } +void llm_register_tool(el_val_t n, el_val_t f) { (void)n; (void)f; } +/* __ HTTP stubs (no-curl build) */ +el_val_t __http_do(el_val_t m, el_val_t u, el_val_t b, el_val_t h, el_val_t t) { (void)m; (void)u; (void)b; (void)h; (void)t; return _no_curl_err(); } +el_val_t __http_do_map(el_val_t m, el_val_t u, el_val_t b, el_val_t h, el_val_t t) { (void)m; (void)u; (void)b; (void)h; (void)t; return _no_curl_err(); } +el_val_t __http_do_map_to_file(el_val_t m, el_val_t u, el_val_t b, el_val_t h, el_val_t p) { (void)m; (void)u; (void)b; (void)h; (void)p; return _no_curl_err(); } +#endif /* !HAVE_CURL */ diff --git a/runtime/el_runtime.h b/runtime/el_runtime.h index 72bbf4b..c0529ef 100644 --- a/runtime/el_runtime.h +++ b/runtime/el_runtime.h @@ -22,6 +22,9 @@ * EL_STR(s) cast string literal to el_val_t * EL_CSTR(v) cast el_val_t back to const char* * EL_INT(v) identity — el_val_t is already int64_t + * EL_NULL null / zero value + * EL_FALSE boolean false (0) + * EL_TRUE boolean true (1) * * Link requirements: * -lcurl — required for the HTTP client (http_get, http_post, llm_*). @@ -53,6 +56,8 @@ typedef int64_t el_val_t; #define EL_CSTR(v) ((const char*)(uintptr_t)(v)) #define EL_INT(v) (v) #define EL_NULL ((el_val_t)0) +#define EL_FALSE ((el_val_t)0) +#define EL_TRUE ((el_val_t)1) /* Float values share the el_val_t (int64) slot via a bit-cast. * The codegen emits Float literals as `el_from_float()` so the @@ -76,8 +81,8 @@ extern "C" { /* ── I/O ──────────────────────────────────────────────────────────────────── */ -void println(el_val_t s); -void print(el_val_t s); +el_val_t println(el_val_t s); +el_val_t print(el_val_t s); el_val_t readline(void); /* ── String builtins ─────────────────────────────────────────────────────── */ @@ -90,6 +95,7 @@ el_val_t str_len(el_val_t s); el_val_t str_concat(el_val_t a, el_val_t b); el_val_t int_to_str(el_val_t n); el_val_t str_to_int(el_val_t s); +el_val_t native_str_to_int(el_val_t s); el_val_t str_slice(el_val_t s, el_val_t start, el_val_t end); el_val_t str_contains(el_val_t s, el_val_t sub); el_val_t str_replace(el_val_t s, el_val_t from, el_val_t to); @@ -117,6 +123,10 @@ el_val_t el_min(el_val_t a, el_val_t b); void el_retain(el_val_t v); void el_release(el_val_t v); +/* ── Scoped arena (CLI use) ───────────────────────────────────────────────── */ +el_val_t el_arena_push(void); +el_val_t el_arena_pop(el_val_t mark); + /* ── List ────────────────────────────────────────────────────────────────── */ el_val_t el_list_new(el_val_t count, ...); @@ -140,10 +150,11 @@ el_val_t http_post(el_val_t url, el_val_t body); el_val_t http_post_json(el_val_t url, el_val_t json_body); el_val_t http_get_with_headers(el_val_t url, el_val_t headers_map); el_val_t http_post_with_headers(el_val_t url, el_val_t body, el_val_t headers_map); +el_val_t http_post_json_with_headers(el_val_t url, el_val_t headers_map, el_val_t json_body); el_val_t http_post_form_auth(el_val_t url, el_val_t form_body, el_val_t auth_header); el_val_t http_delete(el_val_t url); -void http_serve(el_val_t port, el_val_t handler); -void http_set_handler(el_val_t name); +el_val_t http_serve(el_val_t port, el_val_t handler); +el_val_t http_set_handler(el_val_t name); /* HTTP server v2 ───────────────────────────────────────────────────────────── * Same dispatch model as http_serve, but the handler signature is widened: @@ -164,8 +175,8 @@ void http_set_handler(el_val_t name); * The 3-arg http_serve(port, handler) remains supported unchanged for * existing handlers (e.g. products/web/server.el): it dispatches with * (method, path, body), hardcodes 200 OK, and auto-detects content type. */ -void http_serve_v2(el_val_t port, el_val_t handler); -void http_set_handler_v2(el_val_t name); +el_val_t http_serve_v2(el_val_t port, el_val_t handler); +el_val_t http_set_handler_v2(el_val_t name); /* Build an HTTP response envelope. `headers_json` should be a JSON object * literal like `{"WWW-Authenticate":"Basic"}` (or "" / "{}" for none). The @@ -176,6 +187,11 @@ void http_set_handler_v2(el_val_t name); * auto-content-type contract for legacy handlers that return plain bodies. */ el_val_t http_response(el_val_t status, el_val_t headers_json, el_val_t body); +/* SSE connection fd — set by http_worker_v2 before calling the El handler, + * cleared afterwards. Defined in el_seed.c; called from el_runtime.c. + * The getter is exposed as __http_conn_fd() to El programs. */ +void el_seed_set_http_conn_fd(int fd); + /* HTTP timeout — every libcurl request honors EL_HTTP_TIMEOUT_MS (default * 60000ms). Read lazily on first use, so setting the env var any time before * the first http_* call is sufficient. */ @@ -217,6 +233,7 @@ el_val_t el_html_sanitize(el_val_t input_html, el_val_t allowlist_json); el_val_t fs_read(el_val_t path); el_val_t fs_write(el_val_t path, el_val_t content); el_val_t fs_list(el_val_t path); +el_val_t fs_list_json(el_val_t path); el_val_t fs_exists(el_val_t path); el_val_t fs_mkdir(el_val_t path); /* mkdir -p, mode 0755 */ @@ -246,6 +263,9 @@ el_val_t json_set(el_val_t json_str, el_val_t key, el_val_t value); el_val_t json_array_len(el_val_t json_str); el_val_t json_array_get(el_val_t json_str, el_val_t index); el_val_t json_array_get_string(el_val_t json_str, el_val_t index); +el_val_t json_escape_string(el_val_t sv); +el_val_t json_build_object(el_val_t kvs); +el_val_t json_build_array(el_val_t items); /* ── Time ────────────────────────────────────────────────────────────────── */ @@ -258,6 +278,7 @@ el_val_t time_to_parts(el_val_t ts); el_val_t time_from_parts(el_val_t secs, el_val_t ns, el_val_t tz); el_val_t time_add(el_val_t ts, el_val_t n, el_val_t unit); el_val_t time_diff(el_val_t ts1, el_val_t ts2, el_val_t unit); +el_val_t now_ns(void); /* ── Instant + Duration: first-class temporal types ────────────────────────── * Both types share the el_val_t (int64) slot. Instants are nanoseconds @@ -414,6 +435,8 @@ el_val_t state_set(el_val_t key, el_val_t value); el_val_t state_get(el_val_t key); el_val_t state_del(el_val_t key); el_val_t state_keys(void); +el_val_t state_has(el_val_t key); +el_val_t state_get_or(el_val_t key, el_val_t default_val); /* ── Float formatting ────────────────────────────────────────────────────── */ @@ -505,7 +528,7 @@ el_val_t parse_int(el_val_t s, el_val_t default_val); /* ── Process ─────────────────────────────────────────────────────────────── */ -void exit_program(el_val_t code); +el_val_t exit_program(el_val_t code); el_val_t getpid_now(void); /* ── CGI identity ───────────────────────────────────────────────────────────── @@ -745,12 +768,108 @@ el_val_t exec_capture(el_val_t cmd); /* run shell command, capture stdout */ el_val_t exec(el_val_t cmd); /* exec(cmd) → stdout String (30s timeout) */ el_val_t exec_bg(el_val_t cmd); /* exec_bg(cmd) → PID String (non-blocking) */ +/* ── Stdout redirection (used by compiler JS pipeline) ───────────────────── */ +el_val_t stdout_to_file(el_val_t path); /* redirect process stdout to a file */ +el_val_t stdout_restore(void); /* restore process stdout to terminal */ + el_val_t emit_log(el_val_t level, el_val_t msg, el_val_t fields_json); el_val_t emit_metric(el_val_t name, el_val_t value, el_val_t tags_json); el_val_t trace_span_start(el_val_t name); el_val_t trace_span_end(el_val_t span_handle); el_val_t emit_event(el_val_t name, el_val_t duration_ms); +el_val_t __thread_create(el_val_t fn_name_v, el_val_t arg_v); +el_val_t __thread_join(el_val_t tid_v); + +/* ── __ prefixed aliases (self-hosting compiler ABI) ───────────────────────── + * The El self-hosting compiler emits calls to __-prefixed names. These are + * forwarding wrappers around the existing el_runtime functions above. */ + +/* I/O */ +el_val_t __println(el_val_t s); +el_val_t __print(el_val_t s); +el_val_t __readline(void); + +/* String */ +el_val_t __int_to_str(el_val_t n); +el_val_t __str_to_int(el_val_t s); +el_val_t __float_to_str(el_val_t f); +el_val_t __str_to_float(el_val_t s); +el_val_t __str_len(el_val_t s); +el_val_t __str_char_at(el_val_t s, el_val_t i); +el_val_t __str_cmp(el_val_t a, el_val_t b); +el_val_t __str_ncmp(el_val_t a, el_val_t b, el_val_t n); +el_val_t __str_concat_raw(el_val_t a, el_val_t b); +el_val_t __str_slice_raw(el_val_t s, el_val_t start, el_val_t end); +el_val_t __str_alloc(el_val_t n); +el_val_t __str_set_char(el_val_t s, el_val_t i, el_val_t c); + +/* URL encoding */ +el_val_t __url_encode(el_val_t s); +el_val_t __url_decode(el_val_t s); + +/* Environment */ +el_val_t __env_get(el_val_t key); + +/* Subprocess */ +el_val_t __exec(el_val_t cmd); +el_val_t __exec_bg(el_val_t cmd); + +/* Process */ +el_val_t __exit_program(el_val_t code); + +/* Filesystem */ +el_val_t __fs_exists(el_val_t path); +el_val_t __fs_mkdir(el_val_t path); +el_val_t __fs_read(el_val_t path); +el_val_t __fs_write(el_val_t path, el_val_t content); +el_val_t __fs_write_bytes(el_val_t path, el_val_t bytes, el_val_t n); +el_val_t __fs_list_raw(el_val_t path); + +/* HTTP server */ +el_val_t __http_response(el_val_t status, el_val_t headers_json, el_val_t body); +el_val_t __http_serve(el_val_t port, el_val_t handler); +el_val_t __http_serve_v2(el_val_t port, el_val_t handler); + +/* HTTP conn fd / SSE (weak; overridden by el_seed.c when linked together) */ +el_val_t __http_conn_fd(void); +el_val_t __http_sse_open(el_val_t conn_id); +el_val_t __http_sse_send(el_val_t conn_id, el_val_t data); +el_val_t __http_sse_close(el_val_t conn_id); + +/* HTTP client (requires HAVE_CURL; stubs provided for no-curl builds) */ +el_val_t __http_do(el_val_t method, el_val_t url, el_val_t body, + el_val_t headers_map, el_val_t timeout_ms); +el_val_t __http_do_map(el_val_t method, el_val_t url, el_val_t body, + el_val_t headers_json, el_val_t timeout_ms); +el_val_t __http_do_map_to_file(el_val_t method, el_val_t url, el_val_t body, + el_val_t headers_json, el_val_t output_path); + +/* JSON */ +el_val_t __json_array_get(el_val_t json, el_val_t index); +el_val_t __json_array_get_string(el_val_t json, el_val_t index); +el_val_t __json_array_len(el_val_t json); +el_val_t __json_get(el_val_t json, el_val_t key); +el_val_t __json_get_raw(el_val_t json, el_val_t key); +el_val_t __json_set(el_val_t json, el_val_t key, el_val_t value); +el_val_t __json_parse_map(el_val_t json_str); +el_val_t __json_stringify_val(el_val_t val); + +/* Hashing */ +el_val_t __sha256_hex(el_val_t s); + +/* State K/V */ +el_val_t __state_del(el_val_t key); +el_val_t __state_get(el_val_t key); +el_val_t __state_keys(void); +el_val_t __state_set(el_val_t key, el_val_t val); + +/* UUID */ +el_val_t __uuid_v4(void); + +/* Args */ +el_val_t __args_json(void); + #ifdef __cplusplus } #endif diff --git a/runtime/el_runtime.js b/runtime/el_runtime.js new file mode 100644 index 0000000..a223fdb --- /dev/null +++ b/runtime/el_runtime.js @@ -0,0 +1,1049 @@ +/* + * el_runtime.js — El language JS runtime. + * + * The browser/Node analog of el_runtime.c. Compiled-from-El JS source + * imports this file once; it side-effects globalThis.__el with every + * builtin, so generated programs can destructure the names they need + * (see codegen-js.el's preamble). + * + * Value model: + * El's tagged el_val_t collapses into JS native types here: + * String -> string + * Int -> number (caveat: only 53 bits of integer precision) + * Float -> number (already a double) + * Bool -> boolean + * [T] -> Array + * Map<,> -> plain object + * Void -> undefined + * null -> null + * + * Runtime mode auto-detection: + * typeof window === 'undefined' -> Node mode + * otherwise -> Browser mode + * + * See spec/codegen-js.md for the full design rationale. + */ + +const IS_NODE = typeof window === 'undefined' && typeof process !== 'undefined' && process.versions != null && process.versions.node != null; + +// ── I/O ───────────────────────────────────────────────────────────────────── + +function println(s) { + if (IS_NODE) { + process.stdout.write(String(s) + '\n'); + } else { + console.log(String(s)); + } +} + +function print(s) { + if (IS_NODE) { + process.stdout.write(String(s)); + } else { + // Browser has no stdout — fall back to console with no newline group + console.log(String(s)); + } +} + +// ── String builtins ───────────────────────────────────────────────────────── + +// Coerce both args to string and concat. Mirrors el_str_concat in C; +// the C version handles both string-and-string and string-and-int. +function el_str_concat(a, b) { + return String(a) + String(b); +} + +function str_concat(a, b) { return el_str_concat(a, b); } + +// Strict equality with string coercion. Matches str_eq() in C — which +// strcmp's the underlying char*. Here we just === after coercion. +function str_eq(a, b) { + if (a === null || b === null) return a === b; + return String(a) === String(b); +} + +function str_starts_with(s, prefix) { + return String(s).startsWith(String(prefix)); +} + +function str_ends_with(s, suffix) { + return String(s).endsWith(String(suffix)); +} + +function str_len(s) { + return String(s).length; +} + +function int_to_str(n) { + return String(n); +} + +function str_to_int(s) { + const n = parseInt(String(s), 10); + return Number.isNaN(n) ? 0 : n; +} + +function str_slice(s, start, end) { + return String(s).slice(start, end); +} + +function str_contains(s, sub) { + return String(s).indexOf(String(sub)) >= 0; +} + +function str_replace(s, from, to) { + // Replace ALL occurrences (matches C runtime semantics). + return String(s).split(String(from)).join(String(to)); +} + +function str_to_upper(s) { return String(s).toUpperCase(); } +function str_to_lower(s) { return String(s).toLowerCase(); } +function str_upper(s) { return String(s).toUpperCase(); } +function str_lower(s) { return String(s).toLowerCase(); } + +function str_trim(s) { return String(s).trim(); } + +function str_index_of(s, sub) { + return String(s).indexOf(String(sub)); +} + +function str_split(s, sep) { + return String(s).split(String(sep)); +} + +function str_char_at(s, i) { + return String(s).charAt(i); +} + +function str_char_code(s, i) { + const c = String(s).charCodeAt(i); + return Number.isNaN(c) ? 0 : c; +} + +function str_pad_left(s, width, pad) { + return String(s).padStart(width, String(pad)); +} + +function str_pad_right(s, width, pad) { + return String(s).padEnd(width, String(pad)); +} + +// ── Math ──────────────────────────────────────────────────────────────────── + +function el_abs(n) { return Math.abs(n); } +function el_max(a, b) { return a > b ? a : b; } +function el_min(a, b) { return a < b ? a : b; } + +// ── Refcount (no-op — JS has GC) ──────────────────────────────────────────── + +function el_retain(_v) { /* no-op */ } +function el_release(_v) { /* no-op */ } + +// ── List ──────────────────────────────────────────────────────────────────── + +// Variadic constructor matching el_list_new(count, items...). Exposed so +// codegen-js can emit the same call shape if we ever want it (currently +// codegen-js emits JS array literals directly). +function el_list_new(_count, ...items) { + return items.slice(0); +} + +function el_list_empty() { return []; } +function el_list_clone(list) { return Array.isArray(list) ? list.slice() : []; } +function el_list_len(list) { return Array.isArray(list) ? list.length : 0; } + +function el_list_get(list, index) { + if (!Array.isArray(list)) return null; + if (index < 0 || index >= list.length) return null; + return list[index]; +} + +function el_list_append(list, elem) { + if (!Array.isArray(list)) return [elem]; + const out = list.slice(); + out.push(elem); + return out; +} + +function list_push(list, elem) { return el_list_append(list, elem); } + +function list_push_front(list, elem) { + if (!Array.isArray(list)) return [elem]; + return [elem, ...list]; +} + +function list_join(list, sep) { + if (!Array.isArray(list)) return ''; + return list.map(String).join(String(sep)); +} + +function list_range(start, end) { + const out = []; + for (let i = start; i < end; i++) out.push(i); + return out; +} + +// ── Map ───────────────────────────────────────────────────────────────────── + +// Variadic constructor (key, val, key, val, ...). +function el_map_new(_pairCount, ...kvs) { + const out = {}; + for (let i = 0; i < kvs.length; i += 2) { + out[String(kvs[i])] = kvs[i + 1]; + } + return out; +} + +function el_get_field(map, key) { + if (map === null || map === undefined) return null; + if (typeof map !== 'object') return null; + const k = String(key); + if (Object.prototype.hasOwnProperty.call(map, k)) return map[k]; + return null; +} + +function el_map_get(map, key) { return el_get_field(map, key); } + +function el_map_set(map, key, value) { + // Match the C runtime: shallow-copy + set, persistent semantics. + const out = (map && typeof map === 'object') ? { ...map } : {}; + out[String(key)] = value; + return out; +} + +// ── Method-call shorthand aliases ────────────────────────────────────────── +// `obj.method(args)` compiles to `method(obj, args)` per El convention. + +function append(list, elem) { return el_list_append(list, elem); } +function len(v) { + if (Array.isArray(v)) return v.length; + if (typeof v === 'string') return v.length; + if (v && typeof v === 'object') return Object.keys(v).length; + return 0; +} +function get(list, index) { return el_list_get(list, index); } +function map_get(m, k) { return el_get_field(m, k); } +function map_set(m, k, v) { return el_map_set(m, k, v); } + +// ── Native VM aliases ────────────────────────────────────────────────────── + +function native_list_get(list, index) { return el_list_get(list, index); } +function native_list_len(list) { return el_list_len(list); } +function native_list_append(list, elem) { return el_list_append(list, elem); } +function native_list_empty() { return []; } +function native_list_clone(list) { return el_list_clone(list); } +function native_string_chars(s) { return String(s).split(''); } +function native_int_to_str(n) { return String(n); } + +// ── HTTP ─────────────────────────────────────────────────────────────────── +// +// fetch() is async. These return Promise. Generated El code does +// not yet emit await — that's the async-taint pass (see spec §5). For +// programs that don't touch HTTP this is fine; for programs that do, +// the value will appear as "[object Promise]" until the taint pass lands. + +function http_get(url) { + if (typeof fetch === 'undefined') { + throw new Error('http_get: fetch() not available in this runtime'); + } + return fetch(String(url)).then(r => r.text()); +} + +function http_post(url, body) { + if (typeof fetch === 'undefined') { + throw new Error('http_post: fetch() not available in this runtime'); + } + return fetch(String(url), { method: 'POST', body: String(body) }).then(r => r.text()); +} + +function http_post_json(url, jsonBody) { + if (typeof fetch === 'undefined') { + throw new Error('http_post_json: fetch() not available in this runtime'); + } + return fetch(String(url), { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: String(jsonBody), + }).then(r => r.text()); +} + +function http_get_with_headers(url, headersMap) { + if (typeof fetch === 'undefined') { + throw new Error('http_get_with_headers: fetch() not available'); + } + return fetch(String(url), { headers: headersMap || {} }).then(r => r.text()); +} + +function http_post_with_headers(url, body, headersMap) { + if (typeof fetch === 'undefined') { + throw new Error('http_post_with_headers: fetch() not available'); + } + return fetch(String(url), { + method: 'POST', + headers: headersMap || {}, + body: String(body), + }).then(r => r.text()); +} + +function http_serve(_port, _handler) { + throw new Error('http_serve: not supported in JS target — needs server-side runtime mode'); +} + +function http_set_handler(_name) { + throw new Error('http_set_handler: not supported in JS target'); +} + +// ── Filesystem (Node-only) ───────────────────────────────────────────────── + +function _ensureNode(name) { + if (!IS_NODE) { + throw new Error(`${name}: not supported in browser runtime`); + } +} + +function fs_read(path) { + _ensureNode('fs_read'); + const fs = require('node:fs'); + try { + return fs.readFileSync(String(path), 'utf8'); + } catch (_e) { + return ''; + } +} + +function fs_write(path, content) { + _ensureNode('fs_write'); + const fs = require('node:fs'); + try { + fs.writeFileSync(String(path), String(content)); + return true; + } catch (_e) { + return false; + } +} + +function fs_list(path) { + _ensureNode('fs_list'); + const fs = require('node:fs'); + try { + return fs.readdirSync(String(path)); + } catch (_e) { + return []; + } +} + +// ── JSON ─────────────────────────────────────────────────────────────────── + +function json_parse(s) { + try { return JSON.parse(String(s)); } + catch (_e) { return null; } +} + +function json_stringify(v) { + try { return JSON.stringify(v); } + catch (_e) { return ''; } +} + +function json_get(jsonStr, key) { + const o = json_parse(jsonStr); + if (o === null) return null; + return el_get_field(o, key); +} + +function json_get_string(jsonStr, key) { + const v = json_get(jsonStr, key); + return v === null ? '' : String(v); +} + +function json_get_int(jsonStr, key) { + const v = json_get(jsonStr, key); + if (typeof v === 'number') return Math.trunc(v); + if (typeof v === 'string') return str_to_int(v); + return 0; +} + +function json_get_float(jsonStr, key) { + const v = json_get(jsonStr, key); + return typeof v === 'number' ? v : 0; +} + +function json_get_bool(jsonStr, key) { + const v = json_get(jsonStr, key); + return v === true; +} + +function json_get_raw(jsonStr, key) { + const v = json_get(jsonStr, key); + return v === null ? '' : json_stringify(v); +} + +function json_set(jsonStr, key, value) { + const o = json_parse(jsonStr) ?? {}; + o[String(key)] = value; + return json_stringify(o); +} + +function json_array_len(jsonStr) { + const o = json_parse(jsonStr); + return Array.isArray(o) ? o.length : 0; +} + +// ── Time ─────────────────────────────────────────────────────────────────── + +function time_now() { + return Math.floor(Date.now() / 1000); +} + +function time_now_utc() { + // In the C runtime this returns nanoseconds since epoch. JS number + // can't represent that range past ~2^53. We return milliseconds — a + // safe range — and document the divergence. + return Date.now(); +} + +function sleep_secs(secs) { + if (!IS_NODE) { + throw new Error('sleep_secs: blocking sleep not supported in browser'); + } + // Simple sync sleep via Atomics.wait on a SharedArrayBuffer-backed Int32. + const sab = new SharedArrayBuffer(4); + const i32 = new Int32Array(sab); + Atomics.wait(i32, 0, 0, Math.floor(secs * 1000)); + return secs; +} + +function sleep_ms(ms) { + if (!IS_NODE) { + throw new Error('sleep_ms: blocking sleep not supported in browser'); + } + const sab = new SharedArrayBuffer(4); + const i32 = new Int32Array(sab); + Atomics.wait(i32, 0, 0, Math.floor(ms)); + return ms; +} + +// ── Bool ─────────────────────────────────────────────────────────────────── + +function bool_to_str(b) { return b ? 'true' : 'false'; } + +// ── Process ──────────────────────────────────────────────────────────────── + +function exit_program(code) { + if (IS_NODE) { + process.exit(code | 0); + } else { + throw new Error(`exit_program(${code}) called in browser`); + } +} + +// ── args() ───────────────────────────────────────────────────────────────── + +function args() { + if (IS_NODE) { + // process.argv is [node, script, ...args] — slice off node + script. + return process.argv.slice(2); + } + return []; +} + +// ── env ──────────────────────────────────────────────────────────────────── + +function env(key) { + if (IS_NODE) { + const v = process.env[String(key)]; + return v === undefined ? null : v; + } + return null; +} + +// ── In-process state K/V ─────────────────────────────────────────────────── + +const _stateMap = new Map(); + +function state_set(key, value) { + _stateMap.set(String(key), value); + return value; +} + +function state_get(key) { + const v = _stateMap.get(String(key)); + return v === undefined ? '' : v; +} + +function state_del(key) { + return _stateMap.delete(String(key)); +} + +function state_keys() { + return Array.from(_stateMap.keys()); +} + +// ── UUID ─────────────────────────────────────────────────────────────────── + +function uuid_v4() { + // RFC 4122-ish — uses crypto when available, falls back to Math.random. + if (typeof crypto !== 'undefined' && crypto.randomUUID) { + return crypto.randomUUID(); + } + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => { + const r = Math.random() * 16 | 0; + const v = c === 'x' ? r : (r & 0x3 | 0x8); + return v.toString(16); + }); +} +function uuid_new() { return uuid_v4(); } + +// ── Float formatting ─────────────────────────────────────────────────────── + +function float_to_str(f) { return String(f); } +function int_to_float(n) { return n; } +function float_to_int(f) { return Math.trunc(f); } + +function format_float(f, decimals) { + return Number(f).toFixed(decimals); +} + +function decimal_round(f, decimals) { + const m = Math.pow(10, decimals); + return Math.round(f * m) / m; +} + +function str_to_float(s) { + const n = parseFloat(String(s)); + return Number.isNaN(n) ? 0 : n; +} + +// ── Math (Float-aware) ───────────────────────────────────────────────────── + +function math_sqrt(f) { return Math.sqrt(f); } +function math_log(f) { return Math.log10(f); } +function math_ln(f) { return Math.log(f); } +function math_sin(f) { return Math.sin(f); } +function math_cos(f) { return Math.cos(f); } +function math_pi() { return Math.PI; } + +// ── DOM bridge (browser-only) ────────────────────────────────────────────── +// +// These functions wrap the browser DOM API. Each throws a descriptive error +// when called from a Node environment, mirroring the pattern used by fs_* +// in browser mode. + +function _ensureBrowser(name) { + if (IS_NODE) { + throw new Error(`${name}: not supported in Node runtime — DOM is browser-only`); + } +} + +function dom_get_element(id) { + _ensureBrowser('dom_get_element'); + return document.getElementById(String(id)); +} + +function dom_get_value(el) { + _ensureBrowser('dom_get_value'); + return el == null ? '' : String(el.value ?? ''); +} + +function dom_set_value(el, v) { + _ensureBrowser('dom_set_value'); + if (el != null) el.value = String(v); +} + +function dom_get_text(el) { + _ensureBrowser('dom_get_text'); + return el == null ? '' : String(el.textContent ?? ''); +} + +function dom_set_text(el, text) { + _ensureBrowser('dom_set_text'); + if (el != null) el.textContent = String(text); +} + +function dom_set_prop(el, prop, val) { + _ensureBrowser('dom_set_prop'); + if (el != null) el[String(prop)] = val; +} + +function dom_get_prop(el, prop) { + _ensureBrowser('dom_get_prop'); + if (el == null) return null; + const v = el[String(prop)]; + return v === undefined ? null : v; +} + +function dom_set_style(el, prop, val) { + _ensureBrowser('dom_set_style'); + if (el != null) el.style[String(prop)] = String(val); +} + +function dom_add_class(el, cls) { + _ensureBrowser('dom_add_class'); + if (el != null) el.classList.add(String(cls)); +} + +function dom_remove_class(el, cls) { + _ensureBrowser('dom_remove_class'); + if (el != null) el.classList.remove(String(cls)); +} + +function dom_show(el) { + _ensureBrowser('dom_show'); + if (el != null) el.style.display = ''; +} + +function dom_hide(el) { + _ensureBrowser('dom_hide'); + if (el != null) el.style.display = 'none'; +} + +function dom_listen(el, event, handler) { + _ensureBrowser('dom_listen'); + if (el != null) el.addEventListener(String(event), handler); +} + +function dom_query(selector) { + _ensureBrowser('dom_query'); + return document.querySelector(String(selector)); +} + +function dom_query_all(selector) { + _ensureBrowser('dom_query_all'); + return Array.from(document.querySelectorAll(String(selector))); +} + +function dom_create(tag) { + _ensureBrowser('dom_create'); + return document.createElement(String(tag)); +} + +function dom_append(parent, child) { + _ensureBrowser('dom_append'); + if (parent != null && child != null) parent.appendChild(child); +} + +function dom_remove(el) { + _ensureBrowser('dom_remove'); + if (el != null) el.remove(); +} + +function dom_is_null(el) { + return el === null || el === undefined; +} + +// ── Extended DOM API (browser-only) ─────────────────────────────────────── + +function dom_set_attr(el, attr, val) { + _ensureBrowser('dom_set_attr'); + if (el != null) el.setAttribute(String(attr), String(val)); +} + +function dom_get_attr(el, attr) { + _ensureBrowser('dom_get_attr'); + if (el == null) return ''; + return el.getAttribute(String(attr)) ?? ''; +} + +function dom_remove_attr(el, attr) { + _ensureBrowser('dom_remove_attr'); + if (el != null) el.removeAttribute(String(attr)); +} + +function dom_set_html(el, html) { + _ensureBrowser('dom_set_html'); + if (el != null) el.innerHTML = String(html); +} + +function dom_get_html(el) { + _ensureBrowser('dom_get_html'); + return el == null ? '' : String(el.innerHTML ?? ''); +} + +function dom_get_parent(el) { + _ensureBrowser('dom_get_parent'); + return el == null ? null : (el.parentElement ?? null); +} + +function dom_contains_class(el, cls) { + _ensureBrowser('dom_contains_class'); + if (el == null) return false; + return el.classList.contains(String(cls)); +} + +function dom_get_checked(el) { + _ensureBrowser('dom_get_checked'); + return el == null ? false : Boolean(el.checked); +} + +function dom_set_checked(el, val) { + _ensureBrowser('dom_set_checked'); + if (el != null) el.checked = Boolean(val); +} + +// ── Timer API (browser + Node) ───────────────────────────────────────────── + +function set_timeout(ms, cb) { + if (typeof setTimeout === 'undefined') { + throw new Error('set_timeout: setTimeout not available in this environment'); + } + setTimeout(cb, ms | 0); +} + +function set_interval(ms, cb) { + if (typeof setInterval === 'undefined') { + throw new Error('set_interval: setInterval not available in this environment'); + } + return setInterval(cb, ms | 0); +} + +function clear_interval(handle) { + if (typeof clearInterval !== 'undefined') clearInterval(handle); +} + +// ── Local storage (browser-only) ─────────────────────────────────────────── + +function local_storage_get(key) { + _ensureBrowser('local_storage_get'); + return localStorage.getItem(String(key)) ?? ''; +} + +function local_storage_set(key, val) { + _ensureBrowser('local_storage_set'); + localStorage.setItem(String(key), String(val)); +} + +function local_storage_remove(key) { + _ensureBrowser('local_storage_remove'); + localStorage.removeItem(String(key)); +} + +// ── Window location / navigation (browser-only) ──────────────────────────── + +function window_location() { + _ensureBrowser('window_location'); + return window.location.href; +} + +function window_redirect(url) { + _ensureBrowser('window_redirect'); + window.location.href = String(url); +} + +function window_on_load(cb) { + if (typeof document !== 'undefined') { + document.addEventListener('DOMContentLoaded', cb); + } else if (typeof window !== 'undefined') { + window.addEventListener('load', cb); + } + // In Node: no-op +} + +// ── console_log (explicit debug log, distinct from println) ──────────────── + +function console_log(msg) { + // eslint-disable-next-line no-console + console.log(String(msg)); +} + +// ── Window export helpers ────────────────────────────────────────────────── +// +// Expose El functions to the browser's global scope so they can be called +// from inline event handlers (onclick="increment()") or by external JS. +// In Node mode, writes to globalThis so the same pattern works in tests. + +function window_set(name, val) { + if (typeof window !== 'undefined') { + window[String(name)] = val; + } else if (typeof globalThis !== 'undefined') { + globalThis[String(name)] = val; + } +} + +function window_get(name) { + if (typeof window !== 'undefined') { + const v = window[String(name)]; + return v === undefined ? null : v; + } + return null; +} + +// ── Promise helpers ──────────────────────────────────────────────────────── +// +// Third-party APIs often return Promises but are not El @async functions. +// These helpers let El programs chain .then / .catch without needing +// native_js, and without requiring the callee to be @async. + +function promise_then(p, cb) { + return Promise.resolve(p).then(cb); +} + +function promise_catch(p, cb) { + return Promise.resolve(p).catch(cb); +} + +function promise_resolve(val) { + return Promise.resolve(val); +} + +function promise_reject(msg) { + return Promise.reject(new Error(String(msg))); +} + +// ── Object / Array utilities ─────────────────────────────────────────────── +// +// Structural operations on Any-typed JS values. These complement the +// El map/list primitives for interop with third-party library objects. + +function object_assign(target, source) { + return Object.assign(Object.assign({}, target), source); +} + +function object_keys(obj) { + if (obj === null || obj === undefined) return []; + return Object.keys(obj); +} + +function object_values(obj) { + if (obj === null || obj === undefined) return []; + return Object.values(obj); +} + +function json_deep_clone(obj) { + if (obj === null || obj === undefined) return null; + return JSON.parse(JSON.stringify(obj)); +} + +function array_from(iterable) { + if (iterable === null || iterable === undefined) return []; + return Array.from(iterable); +} + +function type_of(val) { + return typeof val; +} + +function instanceof_check(val, constructor_name) { + if (typeof globalThis[constructor_name] === 'function') { + return val instanceof globalThis[constructor_name]; + } + return false; +} + +// ── native_js escape hatch ───────────────────────────────────────────────── +// +// Evaluate arbitrary JS from El source. Intended for calling third-party +// browser libraries (Supabase, Stripe, etc.) until proper El bindings exist. +// Use sparingly — this bypasses El's type system entirely. + +function native_js(code) { + // eslint-disable-next-line no-eval + return eval(String(code)); +} + +function native_js_call(obj, method, args) { + if (obj == null) throw new Error('native_js_call: object is null'); + return obj[String(method)](...(Array.isArray(args) ? args : [])); +} + +// ── Stubs for not-yet-supported features ─────────────────────────────────── +// +// These compile but throw when called. See spec/codegen-js.md §7. + +function _notSupported(name) { + return () => { throw new Error(`${name}: not supported in JS target — needs server-side delegation`); }; +} + +// CGI identity +function el_cgi_init(_name, _did, _principal, _network, _engram) { + // No-op — UI code is not a CGI principal. See spec §7. +} + +// DHARMA — all stubbed. +const dharma_connect = _notSupported('dharma_connect'); +const dharma_send = _notSupported('dharma_send'); +const dharma_activate = _notSupported('dharma_activate'); +const dharma_emit = _notSupported('dharma_emit'); +const dharma_field = _notSupported('dharma_field'); +const dharma_strengthen = _notSupported('dharma_strengthen'); +const dharma_relationship = _notSupported('dharma_relationship'); +const dharma_peers = _notSupported('dharma_peers'); + +// Engram — stubbed (could be ported to in-browser later). +const engram_node = _notSupported('engram_node'); +const engram_node_full = _notSupported('engram_node_full'); +const engram_get_node = _notSupported('engram_get_node'); +const engram_strengthen = _notSupported('engram_strengthen'); +const engram_forget = _notSupported('engram_forget'); +const engram_node_count = _notSupported('engram_node_count'); +const engram_search = _notSupported('engram_search'); +const engram_scan_nodes = _notSupported('engram_scan_nodes'); +const engram_connect = _notSupported('engram_connect'); +const engram_edge_between = _notSupported('engram_edge_between'); +const engram_neighbors = _notSupported('engram_neighbors'); +const engram_neighbors_filtered = _notSupported('engram_neighbors_filtered'); +const engram_edge_count = _notSupported('engram_edge_count'); +const engram_activate = _notSupported('engram_activate'); +const engram_save = _notSupported('engram_save'); +const engram_load = _notSupported('engram_load'); + +// LLM — stubbed (browser cannot hold API keys safely). +const llm_call = _notSupported('llm_call'); +const llm_call_system = _notSupported('llm_call_system'); +const llm_call_agentic = _notSupported('llm_call_agentic'); +const llm_vision = _notSupported('llm_vision'); +const llm_models = _notSupported('llm_models'); +const llm_register_tool = _notSupported('llm_register_tool'); + +// Crypto — stubbed; could be backed by SubtleCrypto later. +const sha256_hex = _notSupported('sha256_hex'); +const sha256_bytes = _notSupported('sha256_bytes'); +const hmac_sha256_hex = _notSupported('hmac_sha256_hex'); +const hmac_sha256_bytes = _notSupported('hmac_sha256_bytes'); +const base64_encode = _notSupported('base64_encode'); +const base64_decode = _notSupported('base64_decode'); +const base64url_encode = _notSupported('base64url_encode'); +const base64url_decode = _notSupported('base64url_decode'); + +// ── Export to globalThis.__el ────────────────────────────────────────────── +// +// Generated programs destructure off this object. Keeping it on globalThis +// means a single `import "./el_runtime.js"` is enough; no per-call namespace +// prefix is required at codegen time. + +const __el = { + // I/O + println, print, + // String + el_str_concat, str_concat, str_eq, str_starts_with, str_ends_with, + str_len, int_to_str, str_to_int, str_slice, str_contains, str_replace, + str_to_upper, str_to_lower, str_trim, str_index_of, str_split, str_char_at, + str_char_code, str_lower, str_upper, str_pad_left, str_pad_right, + // Math + el_abs, el_max, el_min, + // Refcount + el_retain, el_release, + // List + el_list_new, el_list_empty, el_list_clone, el_list_len, el_list_get, + el_list_append, list_push, list_push_front, list_join, list_range, + // Map + el_map_new, el_get_field, el_map_get, el_map_set, + // Method-call shortforms + append, len, get, map_get, map_set, + // Native VM aliases + native_list_get, native_list_len, native_list_append, native_list_empty, + native_list_clone, native_string_chars, native_int_to_str, + // HTTP + http_get, http_post, http_post_json, http_get_with_headers, + http_post_with_headers, http_serve, http_set_handler, + // FS + fs_read, fs_write, fs_list, + // JSON + json_parse, json_stringify, json_get, json_get_string, json_get_int, + json_get_float, json_get_bool, json_get_raw, json_set, json_array_len, + // Time + time_now, time_now_utc, sleep_secs, sleep_ms, + // Bool + bool_to_str, + // Process + exit_program, + // Args / env + args, env, + // State + state_set, state_get, state_del, state_keys, + // UUID + uuid_v4, uuid_new, + // Float / math + float_to_str, int_to_float, float_to_int, format_float, decimal_round, + str_to_float, math_sqrt, math_log, math_ln, math_sin, math_cos, math_pi, + // DOM bridge (browser-only) + dom_get_element, dom_get_value, dom_set_value, dom_get_text, dom_set_text, + dom_set_prop, dom_get_prop, dom_set_style, dom_add_class, dom_remove_class, + dom_show, dom_hide, dom_listen, dom_query, dom_query_all, dom_create, + dom_append, dom_remove, dom_is_null, + // Extended DOM + dom_set_attr, dom_get_attr, dom_remove_attr, dom_set_html, dom_get_html, + dom_get_parent, dom_contains_class, dom_get_checked, dom_set_checked, + // Timers + set_timeout, set_interval, clear_interval, + // Local storage + local_storage_get, local_storage_set, local_storage_remove, + // Window location + window_location, window_redirect, window_on_load, + // Debug + console_log, + // Window export helpers + window_set, window_get, + // Promise helpers + promise_then, promise_catch, promise_resolve, promise_reject, + // Object / Array utilities + object_assign, object_keys, object_values, json_deep_clone, + array_from, type_of, instanceof_check, + // native_js escape hatch + native_js, native_js_call, + // CGI / DHARMA / Engram / LLM (stubs) + el_cgi_init, + dharma_connect, dharma_send, dharma_activate, dharma_emit, dharma_field, + dharma_strengthen, dharma_relationship, dharma_peers, + engram_node, engram_node_full, engram_get_node, engram_strengthen, + engram_forget, engram_node_count, engram_search, engram_scan_nodes, + engram_connect, engram_edge_between, engram_neighbors, + engram_neighbors_filtered, engram_edge_count, engram_activate, + engram_save, engram_load, + llm_call, llm_call_system, llm_call_agentic, llm_vision, + llm_models, llm_register_tool, + // Crypto (stubs) + sha256_hex, sha256_bytes, hmac_sha256_hex, hmac_sha256_bytes, + base64_encode, base64_decode, base64url_encode, base64url_decode, +}; + +globalThis.__el = __el; + +// Also re-export as ES module exports for consumers that prefer that style. +export { __el as default }; +export { + println, print, + el_str_concat, str_concat, str_eq, str_starts_with, str_ends_with, + str_len, int_to_str, str_to_int, str_slice, str_contains, str_replace, + str_to_upper, str_to_lower, str_trim, str_index_of, str_split, str_char_at, + str_char_code, str_lower, str_upper, + el_abs, el_max, el_min, + el_retain, el_release, + el_list_new, el_list_empty, el_list_clone, el_list_len, el_list_get, + el_list_append, list_push, list_push_front, list_join, list_range, + el_map_new, el_get_field, el_map_get, el_map_set, + append, len, get, map_get, map_set, + native_list_get, native_list_len, native_list_append, native_list_empty, + native_list_clone, native_string_chars, native_int_to_str, + http_get, http_post, http_post_json, + fs_read, fs_write, fs_list, + json_parse, json_stringify, json_get, json_get_string, json_get_int, + time_now, time_now_utc, sleep_ms, + bool_to_str, exit_program, args, env, + state_set, state_get, state_del, state_keys, + el_cgi_init, + dharma_connect, dharma_send, dharma_activate, dharma_emit, dharma_field, + engram_node, engram_search, engram_activate, + llm_call, llm_call_system, + // DOM bridge + dom_get_element, dom_get_value, dom_set_value, dom_get_text, dom_set_text, + dom_set_prop, dom_get_prop, dom_set_style, dom_add_class, dom_remove_class, + dom_show, dom_hide, dom_listen, dom_query, dom_query_all, dom_create, + dom_append, dom_remove, dom_is_null, + // Extended DOM + dom_set_attr, dom_get_attr, dom_remove_attr, dom_set_html, dom_get_html, + dom_get_parent, dom_contains_class, dom_get_checked, dom_set_checked, + // Timers + set_timeout, set_interval, clear_interval, + // Local storage + local_storage_get, local_storage_set, local_storage_remove, + // Window location + window_location, window_redirect, window_on_load, + // Debug + console_log, + // Window / native_js + window_set, window_get, native_js, native_js_call, + // Promise helpers + promise_then, promise_catch, promise_resolve, promise_reject, + // Object / Array utilities + object_assign, object_keys, object_values, json_deep_clone, + array_from, type_of, instanceof_check, +};