Skip to content

lambda-0.1

Choose a tag to compare

@orangegrace2002 orangegrace2002 released this 03 Jan 04:00
· 5582 commits to master since this release

Lambda v0.1

This is the first milestone release of Lambda Script: a general-purpose, cross-platform, pure functional scripting language and document processing engine.

Lambda is built from scratch in C/C++ with a lightweight runtime, Tree-sitter parsing, and an optional MIR-based JIT compilation/execution path.

Note: Lambda Script is still evolving — syntax/semantics and implementation details may change.
A stable subset of the literal data model is separately formalised and released as
Mark Notation.

Highlights

  • Pure-functional core runtime: immutable data structures (lists, maps, elements) with first-class functions.
  • Interactive REPL for exploration and debugging.
  • Tree-sitter based frontend for fast parsing and a foundation for editor/tooling integration.
  • Optional MIR JIT execution path for performance-sensitive workloads.
  • Document pipeline: parse → normalize → validate/transform → layout → render/view.
  • Radiant HTML/CSS/SVG engine for layout, rendering, and an interactive viewer.

What’s included in v0.1

Language & runtime

  • Pure functional evaluation model with immutable core data types.
  • Reference-counting and pooled/arena allocators for predictable memory behavior.
  • Optional JIT compilation via MIR.

CLI & workflows

The v0.1 CLI supports the following workflows:

  • Run scripts
    • Functional script execution: ./lambda.exe <script.ls>
    • Procedural script execution: ./lambda.exe run <script.ls>
  • Validate data/documents against schemas: ./lambda.exe validate <file> [-s <schema.ls>]
  • Convert between formats: ./lambda.exe convert <input> [-f <from>] -t <to> -o <output>
  • Layout document inputs (HTML/LaTeX/Lambda outputs): ./lambda.exe layout <file> [options]
  • Render to graphics targets: ./lambda.exe render <input> -o <output.svg|pdf|png|jpg> [options]
  • View content interactively: ./lambda.exe view [file]

Tip: ./lambda.exe <command> --help prints detailed options and examples.

Input parsing & formatting

  • Multi-format parsing into a unified Lambda/Mark node tree.
  • Designed for treating documents as structured data, enabling transformations beyond plain text editing.
  • Supports a broad range of structured-data and document formats (e.g. JSON/XML/HTML/Markdown/Wiki/YAML/TOML/CSV/LaTeX/PDF, etc.).

Type system & schema validation

  • Type inference and explicit annotations (TypeScript-like ergonomics).
  • Schema-based validation for structured data and document trees, including element schemas.
  • Detailed validation errors with expected/actual diagnostics and paths.

Radiant layout, rendering & viewer

  • Browser-compatible layout engine supporting:
    • block/inline flow
    • flexbox
    • grid
    • tables
  • Render targets:
    • SVG
    • PDF
    • PNG/JPEG
  • Unified viewer for HTML/XML/Markdown/Wiki/LaTeX/PDF and Lambda evaluation results.

Compatibility / stability notes

  • This is an early milestone (0.1) release.
  • Expect changes as the language and document pipeline evolve.
  • If you hit issues, please open a GitHub issue with:
    • OS + compiler
    • command line used
    • a minimal reproducer input/script