Skip to content

Repository files navigation

AUREON

AUREON is a programming language that compiles to portable bytecode, with a JavaScript compiler and an independent Rust runtime.

Current foundation

The current language supports typed scalar and aggregate values, Task<T>, await, structured cancellation, catalog-backed standard modules, and capability-gated file/HTTP APIs. The compiler emits self-contained portable .abc 2.12; the Rust runtime independently validates bytecode, Host ABI registration and permission, scheduler budgets, immutable values, and deterministic I/O policy. Normative contracts are maintained in English and Portuguese; source syntax, APIs, identifiers, diagnostics, and examples remain English-only.

Implementation progress and the prioritized roadmap are maintained in docs/STATUS.md.

P8, P9, and P10 are complete. P10 adds strict package manifests, deterministic lockfiles, verified offline caches, immutable artifact publication, and a public capability-safe host-extension SDK without runtime package loading.

Release history is maintained in CHANGELOG.md.

npm run check
npm run build:runtime
npm run aureon -- run examples/hello.aur

Install the local command with npm link, then use the compile/run commands plus the P10 manifest, add, remove, lock, fetch, verify, package, and publish workflows. Pass --runtime=<path> or set AUREON_RUNTIME to select an explicit runtime binary. The toolchain never selects an executable from the working directory, executes dependency scripts, or downloads dependencies implicitly. The complete lifecycle and overwrite policy are documented in the toolchain guide.

Use inspect <file.abc> --json to produce machine-readable output. Inspection validates the bytecode before displaying its header, instruction offsets, opcodes, operands, build metadata, and available module-and-line source mappings. See the tested examples guide for project modules, standard-library targets, structured errors, and project initialization.

Compiler, inspector, and runtime failures use the same stable error contract. Human-readable diagnostics are the default; pass --error-format=json to emit one aureon-error-v1 JSON object on standard error. The option is independent from the inspector's --json output option.

npm run check runs compiler unit tests, public CLI and compiler-to-runtime integration tests, the versioned public conformance suite, an isolated npm pack/install/build/run test, Rust formatting and lint checks, and runtime unit tests. See the compatibility matrix and release process.

The portable VM ISA source of truth is isa/v1.json. The resource profile source of truth is sandbox/v1.json. The error contract source of truth is errors/v1.json. The standard-library catalog source of truth is stdlib/v1.json, with canonical portable fallback sources under stdlib/src. After changing one, run its npm run generate:* command; npm run check rejects stale generated JavaScript, Rust, or specification files and invalid fallback signatures or host dependencies.

Portable .abc encoding, decoding, and JavaScript verification live in compiler/src/portable/module.js. The Rust runtime independently decodes and verifies format 2.12, resolves authorized host imports to numeric handles, and executes the generic instruction stream under generated load, verification, memory, scheduler, heap, JSON, and step budgets.

Use aureon check <file.aur|file.abc> to compile when needed, validate a module, and resolve its host imports without executing it. The compiler and runtime must report the same toolchain version and runtime protocol before run or check proceeds.

About

Kismon Programming Language

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages