Skip to content

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 through std/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 (elang with 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 param const in 0.7.9), destructuring (hash as rename, hash rest), builtins as values, range-as-value, unions (int | str), switch through 0.7.9
  • Nominal class + construction (0.8.0); methods + this (0.8.1); interface (0.8.2); explicit new { ... } fields (0.8.3); field defaults (0.8.4); unbound methods (0.8.5); type methods (0.8.6); optional implements (0.8.7); docs/README release pass (0.8.8); first PyPI package echolang (0.8.9)
  • Compound assign on class members (this.x += 1) (0.9.0); priv fields/methods (0.9.1); positional construction Point(3, 4) (0.9.2); deep clone() (0.9.3); named format placeholders (0.9.4); class properties get/set (0.9.5); mkdirAll / removeTree (0.9.6); regex builtins (0.9.7); union narrowing in if type(...) (0.9.8); thin dates formatTime / 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 ide desktop editor (Tk window: edit → Run → output)
  • 2.2.1: crash hardening + path safety (oversized ints, recursion, symlink / removeTree guards, 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 ​

VersionItemStatus
2.2.0elang ide desktop editor (Tk)done
2.2.1Crash hardening + path safetydone

Public message: 2.2 = run Echo without a terminal.

Closed — 2.1.x YAML + LSP stub + std maturity ​

VersionItemStatus
2.1.0YAML helpersdone
2.1.1YAML *Or + docsdone
2.1.2Thin LSP stubdone
2.1.3LSP goto-defdone
2.1.4Editor LSP clientdone
2.1.5Debugger polish beyond watchdone
2.1.6Further std peeldone
2.1.7CLI std inventorydone
2.1.8Docs generator expansiondone
2.1.9Series closedone

Public message: 2.1 = YAML + LSP stub + std maturity on 2.0 modules.

Closed — 2.0.x modules + stdlib peel ​

VersionItemStatus
2.0.0Relative / nested import pathsdone
2.0.1Import cycle / resolver diagnostics polishdone
2.0.2Stdlib search path: import … from "std/…"done
2.0.3Peel HTTP into std/httpdone
2.0.4Peel URL + Base64done
2.0.5Peel files / JSON / envdone
2.0.6Peel regex + datesdone
2.0.7Prelude policy (core vs std)done
2.0.8Docs / examples / playgrounddone
2.0.9Series closedone

Details: Priority — 2.0.x / 2.1.x.

Closed — 1.1.x HTTP + polish ​

VersionItemStatus
1.1.0httpGet / httpPost + allow_http host flagimplemented (1.1.0)
1.1.1HTTP headers / status helpers / *Or twinsimplemented (1.1.1)
1.1.2YAML or URL helpers (only if still tiny)implemented (1.1.2 — URL only)
1.1.3watch / abort diagnostics polishimplemented (1.1.3)
1.1.4Error-message / code passimplemented (1.1.4)
1.1.5Docs generator or playground HTTP policyimplemented (1.1.5 — playground host policy)
1.1.6Thin docs generator / builtin syncimplemented (1.1.6)
1.1.7base64Encode / base64Decodeimplemented (1.1.7)
1.1.8CLI builtin inventory polishimplemented (1.1.8)
1.1.9Series 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.

VersionItemStatus
0.9.0Compound assign on members (this.x += 1)implemented (0.9.0)
0.9.1priv / field–method visibilityimplemented (0.9.1)
0.9.2Positional construction Point(3, 4)implemented (0.9.2)
0.9.3Deep clone()implemented (0.9.3)
0.9.4Named format() placeholders via trailing hashimplemented (0.9.4)
0.9.5Class properties get / setimplemented (0.9.5)
0.9.6mkdirAll / removeTreeimplemented (0.9.6)
0.9.7Regex builtinsimplemented (0.9.7)
0.9.8Union narrowing in if type(...)implemented (0.9.8)
0.9.9Thin dates builtinsimplemented (0.9.9)
1.0.0Stable releaseimplemented (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.

See Also ​

Echo is in active development. The docs reflect the current implementation.