Skip to content

Echo v2.1.9

Choose a tag to compare

@deekshith-poojary98 deekshith-poojary98 released this 26 Sep 22:42
· 76 commits to main since this release
13baba0

Echo 2.1.9

Two closed series on the same failure model (abort + *Or; no try/catch) and no package registry.

Series Message
2.0.x Path resolution + std/… modules — not a package manager
2.1.x YAML + thin LSP stub + std maturity on that 2.0 surface

2.0.x — Modules beyond siblings + std peel

Highlights

  • Nested / relative imports: "./math", "../shared", "lib/math"
  • Reserved import … from "std/…" from the Echo install tree (ECHO_STD_ROOT overridable)
  • Builtin families peeled into std modules with a dual-path prelude (still importable from prelude by default)
  • Optional --require-std / Host.require_std to hide peeled names from the prelude
  • Clearer module diagnostics (E3001–E3005)

By version

Version What shipped
2.0.0 Relative / nested import paths
2.0.1 Cycle / not-found / invalid-specifier diagnostics polish
2.0.2 std/… install-tree path; seed std/meta
2.0.3 std/http — HTTP family
2.0.4 std/url, std/base64
2.0.5 std/fs, std/json, std/os
2.0.6 std/re, std/time
2.0.7 Core vs peeled prelude; --require-std
2.0.8 Docs / examples / playground for multi-file + std/…
2.0.9 Series close

Std modules after 2.0

std/meta, std/http, std/url, std/base64, std/fs, std/json, std/os, std/re, std/time


2.1.x — YAML + LSP + std maturity

Highlights

  • YAML helpers via PyYAML (yamlParse / yamlParseOr / yamlWrite, std/yaml, E2855)
  • Thin elang lsp (diagnostics, builtin hover, goto-def) + VS Code/Cursor client
  • Abort Stack: dumps + trace / .trace() (not a stepper)
  • Further peels: std/math, std/random; now/wait on std/time; run on std/os
  • elang std (+ --exports / --count / --path)
  • Generated Std Inventory docs page (tools/sync_builtins.py)

By version

Version What shipped
2.1.0 yamlParse / yamlWrite + std/yaml
2.1.1 yamlParseOr + docs
2.1.2 elang lsp stub (diagnostics + hover)
2.1.3 LSP goto-definition (local + imports)
2.1.4 Editor LSP client (vscode-languageclient; tasks remain fallback)
2.1.5 Abort Stack: + trace
2.1.6 std/math, std/random; extend std/time / std/os
2.1.7 elang std inventory CLI
2.1.8 Generated docs/reference/std-inventory.md
2.1.9 Series close (README / matrix / yaml_and_math example + playground)

Std modules after 2.1

All of 2.0, plus std/yaml, std/math, std/random. List anytime with:

elang std
elang std --exports

CLI surface (end of 2.1.9)

elang / echolang: run file, REPL, check, test, fmt, lint, builtins, std, lsp

Editor: TextMate highlighting, tasks/matchers, optional live LSP.


Still held (not in 2.0–2.1)

Package registry / lockfiles / elang add · full LSP-as-product · generics · inheritance · async / VM · try/catch · Result/Option · overloading · Point.new


Try it

pipx install echolang   # or pip install .
elang --version
elang std
elang examples/yaml_and_math.echo
elang examples/std_imports.echo
elang lsp   # editor starts this when echo.lsp.enabled is on

Docs: https://deekshith-poojary98.github.io/echo/