Will Anderson
c427a0adc0
finish engram-lang: protocols, decorators, imports, Result, closures, stdlib, integration tests
2026-04-27 20:22:23 -05:00
Will Anderson
316c0a85ce
Add server-side builtins, import system, and http_serve for Neuron Code rewrite
...
- Import resolution: resolve_imports() pre-processes import statements by
reading and concatenating referenced .el files before compilation
- http_serve builtin: tiny_http-based server on configurable port; POST
/axon/message stores request in __request__ state, invokes handle_request
entry point via sub-interpreter, reads __response__ state for reply
- New builtins: blake3_hash, uuid_new, fs_list_recursive, fs_mkdir, fs_exists,
path_join, path_parent, str_trim, str_contains, str_replace, str_starts_with,
str_ends_with, str_last_index_of, json_get, json_array_push, json_array_len,
now_millis, http_get, http_post, int_to_str
- Catch-all arms in el-types and el-compiler for new AST variants (Import,
ProtocolDef, ImplDef, Closure, Try, MapLiteral, TypeExpr::Result, TypeExpr::Map)
- Parser: decorators field on FnDef, import/protocol/impl parsing
2026-04-27 20:08:55 -05:00
Will Anderson
46d5650e45
Add CLI builtins: args, env, http_post, http_get, str ops, json_get, cwd; fix block tail expr and wildcard match codegen; add run-file command
2026-04-27 19:41:33 -05:00
Will Anderson
0a36a454f9
feat: unified testing framework — unit and e2e same syntax, seed-based graph testing, debugger infrastructure
...
- New crate el-test: test discovery, in-memory graph seeding, assertion evaluator, TestRunner, TestReport with human/JSON/JUnit XML output
- New keywords: test, seed, assert, target — fully integrated into lexer, parser, codegen, type-checker
- Parser extensions: TestDef, SeedStmt, Assert AST nodes; seed blocks handle type: as field name (keyword-as-ident in seed context)
- Debugger: DebugEvent, Debugger, StepMode, StackFrame in el-compiler — breakpoints, step-over, step-into, step-out
- CLI: el test-file <file.el> runs tests; el test integrates with project; el debug attaches debugger; --output json|junit for CI
- 52 new tests in el-test covering discovery, graph seeding, assertion evaluation, pass/fail/error/skip, report generation, JUnit XML
- Example: examples/hello-project/src/tests.el — 6 unit tests pass, 1 e2e test correctly skipped without ENGRAM_URL
2026-04-27 19:11:59 -05:00
Will Anderson
48b72843e1
feat: package manager, build system, native cross-compilation, plugin system
...
Add three new crates and extend the compiler and CLI toolchain:
- el-manifest: el.toml manifest parser using serde + toml crate; supports
package info, registry/path/version deps, build config with seal key
sources, cross targets, and plugins; Manifest::find_manifest() walks up
the directory tree
- el-registry: HTTP registry client (reqwest + tokio) for
packages.neurontechnologies.ai; PackageMetadata, fetch/download/publish/
search, BLAKE3 checksum verification, local cache at ~/.engram/packages/
- el-build: build orchestrator with incremental builds (BLAKE3 file hashes
in .el/build-cache.json), cross-compilation target tagging, dep resolution,
plugin registry with on_ast/on_typed_ast/on_bytecode hooks, test runner,
fmt/check/clean commands
- CrossTarget and NativeTarget enums with triple() and artifact_extension()
methods; NativeTarget::Host detects compile-time platform via cfg! macros
- Plugin system: CompilerPlugin trait + PluginRegistry; dynamic loading is
a marked TODO with clear extension point for libloading
- CLI extended with: new, add, remove, update, build --cross, run, test,
check, fmt, clean, publish, search, plugin add/remove/list; old
single-file commands moved to build-file/seal/unseal subcommands
- Fix pre-existing debugger.rs borrow error (unwrap_or temporary lifetime)
- Fix checker.rs and codegen.rs to handle TestDef/Seed/Assert Stmt variants
- Add spec/language.md sections 12-14: package system, build system,
plugin system, cross-compilation targets table
130 tests passing, zero warnings
2026-04-27 19:08:25 -05:00
Will Anderson
9ced941590
feat: engram-lang — new programming language, quantum-sealed prod target, spreading activation types
2026-04-27 18:46:51 -05:00