fix: C backend String functions, record type aliases, docs cleanup
- Add String.fromChar, chars, substring, toUpper, toLower, replace, startsWith, endsWith, join to C backend - Fix record type alias unification by adding expand_type_alias and unify_with_env functions - Update docs to reflect current implementation status - Clean up outdated roadmap items and fix inconsistencies - Add comprehensive language comparison document Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
64
README.md
64
README.md
@@ -120,17 +120,34 @@ fn main(): Unit with {Console} =
|
||||
|
||||
## Status
|
||||
|
||||
**Current Phase: Prototype Implementation**
|
||||
**Core Language:** Complete
|
||||
- Full type system with Hindley-Milner inference
|
||||
- Pattern matching with exhaustiveness checking
|
||||
- Algebraic data types, generics, string interpolation
|
||||
- Effect system with handlers
|
||||
- Behavioral types (pure, total, idempotent, deterministic, commutative)
|
||||
- Schema evolution with version tracking
|
||||
|
||||
The interpreter is functional with:
|
||||
- Core language (functions, closures, pattern matching)
|
||||
- Effect system (declare effects, use operations, handle with handlers)
|
||||
- Type checking with effect tracking
|
||||
- REPL for interactive development
|
||||
**Compilation Targets:**
|
||||
- Interpreter (full-featured)
|
||||
- C backend (functions, closures, pattern matching, lists, reference counting)
|
||||
- JavaScript backend (full language, browser & Node.js, DOM, TEA runtime)
|
||||
|
||||
**Tooling:**
|
||||
- REPL with history
|
||||
- LSP server (diagnostics, hover, completions, go-to-definition)
|
||||
- Formatter (`lux fmt`)
|
||||
- Package manager (`lux pkg`)
|
||||
- Watch mode / hot reload
|
||||
|
||||
**Standard Library:**
|
||||
- String, List, Option, Result, Math, JSON modules
|
||||
- Console, File, Http, Random, Time, Process effects
|
||||
- SQL effect (SQLite with transactions)
|
||||
- DOM effect (40+ browser operations)
|
||||
|
||||
See:
|
||||
- [SKILLS.md](./SKILLS.md) — Language specification and implementation roadmap
|
||||
- [docs/VISION.md](./docs/VISION.md) — Problems Lux solves and development roadmap
|
||||
- [docs/ROADMAP.md](./docs/ROADMAP.md) — Development roadmap and feature status
|
||||
- [docs/OVERVIEW.md](./docs/OVERVIEW.md) — Use cases, pros/cons, complexity analysis
|
||||
|
||||
## Design Goals
|
||||
@@ -150,20 +167,31 @@ See:
|
||||
|
||||
## Building
|
||||
|
||||
### With Nix (recommended)
|
||||
|
||||
```bash
|
||||
# Build
|
||||
nix build
|
||||
|
||||
# Run the REPL
|
||||
nix run
|
||||
|
||||
# Enter development shell
|
||||
nix develop
|
||||
|
||||
# Run tests
|
||||
nix develop --command cargo test
|
||||
```
|
||||
|
||||
### With Cargo
|
||||
|
||||
Requires Rust 1.70+:
|
||||
|
||||
```bash
|
||||
# Build the interpreter
|
||||
cargo build --release
|
||||
|
||||
# Run the REPL
|
||||
cargo run
|
||||
|
||||
# Run a file
|
||||
cargo run -- examples/hello.lux
|
||||
|
||||
# Run tests
|
||||
cargo test
|
||||
./target/release/lux # REPL
|
||||
./target/release/lux file.lux # Run a file
|
||||
cargo test # Tests
|
||||
```
|
||||
|
||||
## Examples
|
||||
|
||||
Reference in New Issue
Block a user