Roadmap
Public status page for what ships today. The ordered implementation plan lives under Internals → Priority. This page is not a promise list.
Shipped (do not re-list as “later”)
Already in the language or CLI:
- File modules:
import/export(v0.3); nested / relative paths (2.0.0); cycle / resolver diagnostics polish (2.0.1);std/…install-tree path (2.0.2); std peels throughstd/re/std/time(2.0.3–2.0.6); optional--require-std(2.0.7); docs / examples / playground (2.0.8); series close (2.0.9) - REPL (
elangwith no file),elang check,elang test,elang fmt,elang lint,elang builtins,elang std,elang lsp,elang ide - Exact object types:
exact { ... }(0.7.2) - Number literals
.5/ scientific form; multiline strings const(including paramconstin 0.7.9), destructuring (hashasrename, hash rest), builtins as values, range-as-value, unions (int | str),switchthrough 0.7.9- Nominal
class+ construction (0.8.0); methods +this(0.8.1);interface(0.8.2); explicitnew { ... }fields (0.8.3); field defaults (0.8.4); unbound methods (0.8.5); type methods (0.8.6); optionalimplements(0.8.7); docs/README release pass (0.8.8); first PyPI packageecholang(0.8.9) - Compound assign on class members (
this.x += 1) (0.9.0);privfields/methods (0.9.1); positional constructionPoint(3, 4)(0.9.2); deepclone()(0.9.3); namedformatplaceholders (0.9.4); class propertiesget/set(0.9.5);mkdirAll/removeTree(0.9.6); regex builtins (0.9.7); union narrowing inif type(...)(0.9.8); thin datesformatTime/parseTime/ duration helpers (0.9.9) - Stable release 1.0.0 (same surface as 0.9.9)
- 1.1.x complete (1.1.0–1.1.9): HTTP + URL + Base64, watch/abort polish, error-code docs, playground host policy, builtin sync,
elang builtins, series docs/examples - 2.0.x complete (2.0.0–2.0.9): path resolution +
std/…peels (not a package manager) - 2.1.x complete (2.1.0–2.1.9): YAML + thin LSP stub + std maturity on 2.0 modules
- 2.2.0:
elang idedesktop editor (Tk window: edit → Run → output) - 2.2.1: crash hardening + path safety (oversized ints, recursion, symlink /
removeTreeguards, fmt / switch unescaping)
Next
1.1.x, 2.0.x, and 2.1.x are complete; 2.2.x is open. Held work (package registry, full LSP-as-product, generics, …) stays in Priority until it is pulled into a series.
Open — 2.2.x local tooling
| Version | Item | Status |
|---|---|---|
| 2.2.0 | elang ide desktop editor (Tk) | done |
| 2.2.1 | Crash hardening + path safety | done |
Public message: 2.2 = run Echo without a terminal.
Closed — 2.1.x YAML + LSP stub + std maturity
| Version | Item | Status |
|---|---|---|
| 2.1.0 | YAML helpers | done |
| 2.1.1 | YAML *Or + docs | done |
| 2.1.2 | Thin LSP stub | done |
| 2.1.3 | LSP goto-def | done |
| 2.1.4 | Editor LSP client | done |
| 2.1.5 | Debugger polish beyond watch | done |
| 2.1.6 | Further std peel | done |
| 2.1.7 | CLI std inventory | done |
| 2.1.8 | Docs generator expansion | done |
| 2.1.9 | Series close | done |
Public message: 2.1 = YAML + LSP stub + std maturity on 2.0 modules.
Closed — 2.0.x modules + stdlib peel
| Version | Item | Status |
|---|---|---|
| 2.0.0 | Relative / nested import paths | done |
| 2.0.1 | Import cycle / resolver diagnostics polish | done |
| 2.0.2 | Stdlib search path: import … from "std/…" | done |
| 2.0.3 | Peel HTTP into std/http | done |
| 2.0.4 | Peel URL + Base64 | done |
| 2.0.5 | Peel files / JSON / env | done |
| 2.0.6 | Peel regex + dates | done |
| 2.0.7 | Prelude policy (core vs std) | done |
| 2.0.8 | Docs / examples / playground | done |
| 2.0.9 | Series close | done |
Details: Priority — 2.0.x / 2.1.x.
Closed — 1.1.x HTTP + polish
| Version | Item | Status |
|---|---|---|
| 1.1.0 | httpGet / httpPost + allow_http host flag | implemented (1.1.0) |
| 1.1.1 | HTTP headers / status helpers / *Or twins | implemented (1.1.1) |
| 1.1.2 | YAML or URL helpers (only if still tiny) | implemented (1.1.2 — URL only) |
| 1.1.3 | watch / abort diagnostics polish | implemented (1.1.3) |
| 1.1.4 | Error-message / code pass | implemented (1.1.4) |
| 1.1.5 | Docs generator or playground HTTP policy | implemented (1.1.5 — playground host policy) |
| 1.1.6 | Thin docs generator / builtin sync | implemented (1.1.6) |
| 1.1.7 | base64Encode / base64Decode | implemented (1.1.7) |
| 1.1.8 | CLI builtin inventory polish | implemented (1.1.8) |
| 1.1.9 | Series close (docs / examples) | implemented (1.1.9) |
Details: Priority — 1.1.x.
Closed — 0.9.x ergonomics / OOP polish
Series complete through 0.9.9; stable cut is 1.0.0. Not inheritance, packages, or generics.
| Version | Item | Status |
|---|---|---|
| 0.9.0 | Compound assign on members (this.x += 1) | implemented (0.9.0) |
| 0.9.1 | priv / field–method visibility | implemented (0.9.1) |
| 0.9.2 | Positional construction Point(3, 4) | implemented (0.9.2) |
| 0.9.3 | Deep clone() | implemented (0.9.3) |
| 0.9.4 | Named format() placeholders via trailing hash | implemented (0.9.4) |
| 0.9.5 | Class properties get / set | implemented (0.9.5) |
| 0.9.6 | mkdirAll / removeTree | implemented (0.9.6) |
| 0.9.7 | Regex builtins | implemented (0.9.7) |
| 0.9.8 | Union narrowing in if type(...) | implemented (0.9.8) |
| 0.9.9 | Thin dates builtins | implemented (0.9.9) |
| 1.0.0 | Stable release | implemented (1.0.0) |
Details: Priority — 0.9.x.
Held
Not near-term. Do not treat these as upcoming releases unless a draft series exists above:
- Generics, async, VM / JIT
try/catch,Result/Option, user-level recovery syntax- Overloading, full LSP-as-product,
Point.new - Package registry / lockfiles /
elang add(path resolution + std modules are 2.0; registry after 2.1) - Test DSL (
test "name" { }) - Class inheritance (out of 0.8; interfaces only)
1.1.x is closed above. 2.0.x / 2.1.x are drafted under Next — do not re-list those as held.
See Known Limitations and failure model.
