Skip to content

Commit a569d6d

Browse files
committed
docs: point at git-bug; drop Haxe, test-pass counts and dependent types
Haxe is no longer a target, so its integration guides go and examples use MyLang, ZynML, Python or Lua. CI badges carry test status, so no document repeats pass counts. The unreached dependent-types checker is not advertised.
1 parent b8b7a36 commit a569d6d

19 files changed

Lines changed: 167 additions & 343 deletions

‎README.md‎

Lines changed: 20 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@
44
55
[![CI](https://github.com/darmie/zyntax/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/darmie/zyntax/actions/workflows/ci.yml)
66
[![ZynML Tests](https://img.shields.io/github/actions/workflow/status/darmie/zyntax/ci.yml?branch=main&label=zynml%20tests)](https://github.com/darmie/zyntax/actions/workflows/ci.yml)
7-
[![Test Coverage](https://img.shields.io/badge/coverage-100%25-brightgreen)](./crates/zyn_parser/tests)
87
[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)
9-
[![Rust](https://img.shields.io/badge/rust-1.70%2B-orange.svg)](https://www.rust-lang.org/)
8+
[![Rust](https://img.shields.io/badge/rust-1.85%2B-orange.svg)](https://www.rust-lang.org/)
109

1110
---
1211

@@ -38,11 +37,11 @@ cargo build --release
3837

3938
- **Tiered JIT Compilation**: 3-tier optimization (Baseline → Standard → Optimized)
4039

41-
- **Advanced Type System**: Generics, traits, lifetimes, dependent types
40+
- **Advanced Type System**: Generics, traits, lifetimes
4241

4342
- **Async/Await Runtime**: Zero-cost futures with complete executor infrastructure
4443

45-
- **Production-Ready stdlib**: Vec, String, HashMap, Iterator (93/100 functions compile)
44+
- **Production-Ready stdlib**: Vec, String, HashMap, Iterator
4645

4746
- **Multi-Backend**: Cranelift JIT (fast) + LLVM AOT/JIT (optimized, fully working)
4847

@@ -99,51 +98,18 @@ zyntax compile program.json --backend llvm --jit
9998

10099
## 📦 ZBC Bytecode Format
101100

102-
**ZBC (Zyntax ByteCode)** is a portable, architecture-independent bytecode format designed for efficient serialization and distribution of compiled programs.
101+
A **ZBC (Zyntax ByteCode)** file (`.zbc`) holds one HIR module: a 44-byte header (magic, format version 3.0, payload encoding, CRC-32 of the payload) followed by the module in one of four encodings:
103102

104-
### Key Features
105-
106-
- **Portable**: Architecture-independent binary format
107-
- **Compact**: Efficient binary encoding with compression
108-
- **Type-Preserving**: Maintains full type information for verification
109-
- **Module-Based**: Supports separate compilation and linking
110-
- **Version-Safe**: Built-in format versioning for compatibility
111-
112-
### Format Overview
113-
114-
```text
115-
┌─────────────────────────────────────┐
116-
│ ZBC File Header │
117-
│ - Magic number: 0x5A42_4300 │
118-
│ - Version: 1.0 │
119-
│ - Metadata section offset │
120-
└─────────────────────────────────────┘
121-
┌─────────────────────────────────────┐
122-
│ Type Definitions │
123-
│ - Structs, enums, traits │
124-
│ - Generic type parameters │
125-
└─────────────────────────────────────┘
126-
┌─────────────────────────────────────┐
127-
│ Function Definitions │
128-
│ - Signature with parameter types │
129-
│ - HIR instruction stream │
130-
│ - SSA value numbering │
131-
└─────────────────────────────────────┘
132-
┌─────────────────────────────────────┐
133-
│ Constant Pool │
134-
│ - String literals │
135-
│ - Numeric constants │
136-
└─────────────────────────────────────┘
137-
```
103+
- **Postcard**: compact binary; what ZPack archives and HIR caches write
104+
- **JSON**: readable, for debugging
105+
- **Bincode**: fixed-width binary
106+
- **Split**: Postcard with each function encoded on its own, so a reader decodes only the functions it reaches; used by language snapshots
138107

139-
### Use Cases
108+
A reader accepts a file only when its major version matches the reader's and its checksum is intact. The payload is the serde encoding of the HIR types in `crates/compiler/src/hir.rs`, so only a build with the same HIR declarations as the writer's can read a file.
140109

141-
1. **Distribution**: Ship pre-compiled modules to users
142-
2. **Caching**: Cache compiled TypedAST for faster rebuilds
143-
3. **Cross-Platform**: Compile once, run on any Zyntax-supported platform
144-
4. **Integration**: Load modules from multiple source languages
110+
`zyntax compile program.zbc` compiles a module from a file; ZPack archives carry modules as `modules/<path>.zbc`.
145111

146-
See [Bytecode Format Specification](./docs/BYTECODE_FORMAT_SPEC.md) for complete details.
112+
See the [Bytecode Format Specification](./docs/BYTECODE_FORMAT_SPEC.md) for the byte layout, the encodings and the version history.
147113

148114
---
149115

@@ -168,7 +134,7 @@ See [Bytecode Format Specification](./docs/BYTECODE_FORMAT_SPEC.md) for complete
168134
Zyn grammars define both syntax (what patterns to match) and semantics (what AST nodes to create). This enables:
169135

170136
- **Custom Language Frontends**: Define your own language syntax and compile to native code
171-
- **Runtime Grammar Loading**: No Rust recompilation needed—load grammars dynamically
137+
- **Runtime Grammar Loading**: No Rust recompilation needed; load grammars dynamically
172138
- **Seamless Integration**: Output TypedAST that flows through Zyntax's HIR and backend pipeline
173139
- **Interactive Development**: Test grammar changes instantly with the built-in REPL
174140

@@ -311,24 +277,6 @@ zyntax repl --grammar mylang.zyn
311277

312278
**Status:** ✅ **Production-ready** - Full compilation pipeline with REPL support
313279

314-
### ✅ Haxe Integration (via Reflaxe)
315-
316-
Compile Haxe code to native executables using the [reflaxe.zyntax](./reflaxe.zyntax/README.md) backend:
317-
318-
```bash
319-
# Install dependencies
320-
haxelib install reflaxe 4.0.0-beta
321-
haxelib dev reflaxe.zyntax ./reflaxe.zyntax
322-
323-
# Compile Haxe to native
324-
haxe -lib reflaxe.zyntax -main Main -D zyntax-output=out
325-
zyntax compile out/*.json -o myprogram --run
326-
```
327-
328-
**Status:** 🚧 In development - JSON AST generation complete, HIR conversion in progress
329-
330-
See [Haxe Integration Guide](./docs/HAXE_INTEGRATION.md) for details.
331-
332280
### ✅ HIR Builder API - Programmatic Code Generation
333281

334282
Build HIR modules directly from Rust code. Perfect for:
@@ -454,7 +402,7 @@ cargo test --test end_to_end_simple
454402
┌─────────────────────────────────────────────────────────────┐
455403
│ Zyntax TypedAST Layer │
456404
│ • Multi-paradigm type checking (structural/nominal/gradual)│
457-
│ • Generics, traits, lifetimes, dependent types │
405+
│ • Generics, traits, lifetimes │
458406
│ • Advanced analysis (ownership, escape, lifetimes) │
459407
│ • Rich diagnostics with span tracking │
460408
└────────────────────────┬────────────────────────────────────┘
@@ -499,14 +447,6 @@ cargo test --test end_to_end_simple
499447

500448
## 🔥 Current Status
501449

502-
### Test Results (98.6% Pass Rate)
503-
```
504-
✅ 280/284 tests passing
505-
✅ All end-to-end comprehensive tests passing (9/9)
506-
✅ All end-to-end simple tests passing (5/5)
507-
✅ Standard library: 93/100 functions compile successfully
508-
```
509-
510450
### What's Working
511451

512452
#### ✅ Core Compiler Pipeline
@@ -519,7 +459,6 @@ cargo test --test end_to_end_simple
519459
- **Generics**: Type parameters with bounds `fn foo<T: Clone>(x: T)`
520460
- **Traits**: Interface definitions with associated types
521461
- **Lifetimes**: Borrow checker with lifetime inference
522-
- **Dependent Types**: Basic refinement types and indexed families
523462
- **Multi-paradigm**: Structural, nominal, and gradual typing
524463

525464
#### ✅ Language Features
@@ -581,8 +520,6 @@ cargo test --test end_to_end_simple
581520
- **[HIR Builder Example](docs/HIR_BUILDER_EXAMPLE.md)** - How to construct HIR programmatically
582521
- **[Async Runtime Design](docs/ASYNC_RUNTIME_DESIGN.md)** - Async/await internals
583522
- **[Bytecode Spec](docs/BYTECODE_FORMAT_SPEC.md)** - Bytecode serialization format
584-
- **[Backlog](BACKLOG.md)** - Development roadmap and tasks
585-
- **[Production Status](PRODUCTION_READY_STATUS.md)** - Detailed feature matrix
586523

587524
---
588525

@@ -612,59 +549,18 @@ Multiple Languages → TypedAST → Shared Runtime
612549
### 4. Research Platform
613550
Experiment with advanced type system features:
614551
- Effect systems
615-
- Dependent types
616552
- Linear types
617553
- Algebraic effects
618554

619555
---
620556

621-
## 🚧 Roadmap
622-
623-
See [BACKLOG.md](BACKLOG.md) for detailed tasks.
624-
625-
### Q4 2025 (Current): Core Stabilization ✅ COMPLETE
626-
627-
- ✅ Zig parser with full control flow support (continue, break, while loops)
628-
- ✅ Fix SSA variable reads for unsealed blocks (continue statement bug)
629-
- ✅ Logical operators with short-circuit evaluation
630-
- ✅ Array types, indexing, and array index assignment
631-
- ✅ String literals (lowered to global `*i8`)
632-
- ✅ 71/71 Zig E2E tests passing (100%)
633-
- ✅ Zig-style error handling (try/catch/orelse on error unions)
634-
- ✅ Pattern matching (if let, switch, Some/None/Ok/Err)
635-
- ✅ Generic functions with monomorphization
636-
- ✅ Switch expressions with multi-case patterns and else clause
637-
- ✅ Pattern matching grammar (literals, wildcards, ranges, structs, enums, errors, pointers)
638-
639-
### Q1 2026: Production Features
640-
641-
- ✅ LLVM AOT/JIT backend core complete (functions, structs, generics, control flow)
642-
- ✅ Switch expression pattern matching in LLVM backend
643-
- 🔄 Haxe-style exception handling (throw/catch/finally with stack unwinding)
644-
- 🔄 Complete I/O and networking standard library
645-
- 🔄 String operations (needs stdlib integration via plugin system)
646-
647-
### Q2 2026: Ecosystem & Integration
648-
649-
- 🔄 Complete Reflaxe/Haxe integration
650-
- 🔄 Run Haxe standard library through Zyntax
651-
- 🔄 Performance benchmarking vs existing targets
652-
- 🔄 100% test pass rate
653-
654-
### Q3 2026: Developer Experience
655-
656-
- 🔄 Language Server Protocol (LSP) implementation
657-
- 🔄 Package manager
658-
- 🔄 Comprehensive documentation and tutorials
659-
- 🔄 VSCode/IntelliJ integration
660-
661-
---
662-
663557
## 🤝 Contributing
664558

665559
Contributions are welcome! Here's how to get started:
666560

667-
1. **Pick a task** from [BACKLOG.md](BACKLOG.md)
561+
Issues are tracked with [git-bug](https://github.com/git-bug/git-bug) and live in the repository under `refs/bugs/*`. Run `git-bug pull` to fetch them, then `git-bug bug --status open` to list open work; filter with `--label bug`, `--label perf` or an area such as `--label area:compiler`, and read one with `git-bug bug show <id>`.
562+
563+
1. **Pick an open issue** with `git-bug bug --status open`
668564
2. **Check documentation** in [docs/](docs/)
669565
3. **Run tests** to understand the system: `cargo test`
670566
4. **Implement incrementally** with test coverage
@@ -673,11 +569,11 @@ Contributions are welcome! Here's how to get started:
673569
### Development Setup
674570

675571
```bash
676-
# Install Rust (1.70+)
572+
# Install Rust (1.85+)
677573
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
678574

679575
# Clone and build
680-
git clone https://github.com/yourusername/zyntax.git
576+
git clone https://github.com/darmie/zyntax.git
681577
cd zyntax
682578
cargo build
683579

@@ -738,8 +634,8 @@ This project is licensed under the Apache 2.0 License - see the [LICENSE](LICENS
738634

739635
## 📞 Contact
740636

741-
- **Issues**: [GitHub Issues](https://github.com/yourusername/zyntax/issues)
742-
- **Discussions**: [GitHub Discussions](https://github.com/yourusername/zyntax/discussions)
637+
- **Issues**: [GitHub Issues](https://github.com/darmie/zyntax/issues)
638+
- **Discussions**: [GitHub Discussions](https://github.com/darmie/zyntax/discussions)
743639

744640
---
745641

‎archive/zyn_parser/README.md‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,9 @@ ZynParser is a proof-of-concept demonstrating how PEG grammars (via pest) can be
1212
- **PEG Grammar**: Calculator grammar (calculator.pest) for arithmetic expressions
1313
- **TypedAST Generation**: Parse trees automatically convert to Zyntax TypedAST
1414
- **Type Inference**: Simple type inference for binary operations
15-
- **All Tests Passing**: 16/16 tests (calculator + zig basics)
1615

1716
### Phase 2 (Zig Subset) - 95% Complete ✅
18-
- **Full Zig Grammar**: Functions, structs, control flow, types (20/21 tests passing)
17+
- **Full Zig Grammar**: Functions, structs, control flow, types
1918
- **Array Support**: Array literals `[_]T{...}`, sized arrays `[N]T`, indexing
2019
- **String Literals**: `"Hello, World!"` lowered to global `*i8` constants
2120
- **Optional Types**: `?T` syntax parses and builds to TypedAST

0 commit comments

Comments
 (0)