rename crates/ to engrams/; add el-compiler el package with bootstrap artifact

- crates/ → engrams/ (Rust engrams live here)
- el-compiler/ added: el self-hosting compiler as an el package
  - src/{compiler,lexer,parser,codegen}.el
  - bootstrap/el-compiler.elc (114KB, Rust-compiled seed)
- el.toml Cargo.toml workspace paths updated
- neuron-rs cross-repo path deps fixed (were pointing to products/ instead of foundation/)
This commit is contained in:
Will Anderson
2026-04-29 03:27:32 -05:00
parent 19ed2721ee
commit a42429012e
120 changed files with 3836 additions and 64 deletions
+39
View File
@@ -0,0 +1,39 @@
//! Manifest error types.
use thiserror::Error;
#[derive(Debug, Error)]
pub enum ManifestError {
#[error("io error: {0}")]
Io(#[from] std::io::Error),
#[error("toml parse error: {0}")]
Toml(#[from] toml::de::Error),
#[error("semver parse error for '{field}': {source}")]
Semver {
field: String,
#[source]
source: semver::Error,
},
#[error("missing required field: {0}")]
MissingField(String),
#[error("invalid value for '{field}': {reason}")]
InvalidValue { field: String, reason: String },
#[error("el.toml not found (searched from {0})")]
NotFound(String),
#[error("invalid cross target '{0}': use x86_64-linux, aarch64-linux, x86_64-macos, aarch64-macos, wasm32")]
InvalidCrossTarget(String),
#[error("invalid build target '{0}': use debug, release, prod")]
InvalidBuildTarget(String),
#[error("invalid seal key source '{0}': use env:VAR, file:path, or literal")]
InvalidSealKeySource(String),
}
pub type ManifestResult<T> = Result<T, ManifestError>;