Skip to content

Commit 086b418

Browse files
committed
Snapshot local work before sync
1 parent 9d9a7a6 commit 086b418

22 files changed

Lines changed: 6371 additions & 25 deletions

ALPHA-1-RELEASE-NOTES.md

Lines changed: 230 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
1+
# AffineScript Alpha-1 Release Notes
2+
3+
## 🎮 Game Developer's Edition
4+
5+
**Release Date:** March 31, 2026
6+
**Version:** 0.1.0-alpha.1
7+
**Codename:** "Bug-Free by Design"
8+
9+
---
10+
11+
## 🚀 What's New in Alpha-1
12+
13+
### Core Language Features
14+
-**Affine Types**: Compiler-proven resource management (no leaks!)
15+
-**Effect System**: Explicit I/O and side effects tracking
16+
-**Row Polymorphism**: Flexible data structures without boilerplate
17+
-**Algebraic Effects**: Composable computation effects
18+
-**WebAssembly Backend**: Compile to WASM for browser games
19+
-**VSCode Integration**: Full syntax highlighting and LSP support
20+
21+
### Game Development Superpowers
22+
-**Type-Safe Game State**: Compiler enforces valid state transitions
23+
-**Resource Leak Prevention**: Textures, sounds, connections auto-managed
24+
-**Protocol Correctness**: Network code that can't have protocol bugs
25+
-**Zero-Cost Abstractions**: Type safety erased at compile time
26+
27+
### Ecosystem Integration
28+
-**Gossamer**: Resource-safe desktop apps (PMPL-1.0-or-later)
29+
-**Burble**: Low-latency voice comms (PMPL-1.0-or-later)
30+
-**Tree-sitter Grammar**: Advanced syntax highlighting
31+
-**Language Server**: IDE integration
32+
33+
---
34+
35+
## 🎯 Perfect For
36+
37+
**Indie Game Developers** who want:
38+
- Fewer bugs in their game logic
39+
- Compiler-enforced resource management
40+
- Type-safe game state machines
41+
- WebAssembly deployment
42+
43+
**Game Jam Participants** who need:
44+
- Rapid prototyping with type safety
45+
- No runtime crashes from invalid state
46+
- Easy WASM deployment
47+
48+
**Educational Use** for teaching:
49+
- Affine types and linear logic
50+
- Type-driven game development
51+
- Functional programming concepts
52+
53+
---
54+
55+
## 📦 What's Included
56+
57+
### Core Technology (PMPL-1.0-or-later)
58+
- AffineScript compiler (OCaml backend)
59+
- WebAssembly code generator
60+
- Tree-sitter grammar
61+
- VSCode extension
62+
- Language Server Protocol implementation
63+
- Standard library modules
64+
65+
### Game Examples (AGPL-3.0-or-later)
66+
- Hello World with effects
67+
- Resource management patterns
68+
- Game state machine examples
69+
- Type-safe entity systems
70+
- Network protocol examples
71+
72+
### Documentation
73+
- Complete language specification
74+
- Game development tutorials
75+
- Compiler architecture guide
76+
- Type system reference
77+
78+
---
79+
80+
## 🔧 Installation
81+
82+
### Prerequisites
83+
- OCaml 5.1+
84+
- Dune 3.14+
85+
- opam packages: `sedlex`, `menhir`, `ppx_deriving`
86+
87+
### Build from Source
88+
```bash
89+
git clone https://github.com/hyperpolymath/affinescript
90+
git checkout v0.1.0-alpha.1
91+
cd affinescript
92+
dune build
93+
```
94+
95+
### Try the Examples
96+
```bash
97+
# Type check a game example
98+
dune exec affinescript -- check examples/hello.as
99+
100+
# Run with interpreter
101+
dune exec affinescript -- eval examples/hello.as
102+
103+
# Compile to WebAssembly
104+
dune exec affinescript -- compile examples/hello.as -o hello.wasm
105+
```
106+
107+
---
108+
109+
## 📝 Licensing
110+
111+
### Core Technology
112+
**PMPL-1.0-or-later** - Palimpsest Mutual Public License
113+
- Covers: Compiler, tooling, standard library
114+
- Permissive with ethical use requirements
115+
- Quantum-safe provenance tracking
116+
117+
### Game Content & Examples
118+
**AGPL-3.0-or-later** - GNU Affero General Public License
119+
- Covers: Game examples, assets, tutorials
120+
- Ensures game content remains open
121+
- Network use provisions for online games
122+
123+
---
124+
125+
## ⚠️ Known Limitations
126+
127+
### Not Yet Implemented
128+
- **Effect Handlers**: Declarations parsed, runtime not implemented
129+
- **Trait System**: 70% complete (basic traits work)
130+
- **WASM Backend**: Basic types only (records coming soon)
131+
- **Non-lexical Lifetimes**: Planned for beta
132+
133+
### Performance Notes
134+
- Compiler: Fast enough for development
135+
- WASM output: Not yet optimized
136+
- Runtime: Minimal overhead from type erasure
137+
138+
---
139+
140+
## 🎮 Game Development Highlights
141+
142+
### Why This Changes Everything
143+
144+
**Before AffineScript:**
145+
```rust
146+
// Rust - manual resource management
147+
let texture = load_texture("player.png");
148+
// ... hundreds of lines later ...
149+
unload_texture(texture); // Easy to forget!
150+
```
151+
152+
**After AffineScript:**
153+
```affinescript
154+
// AffineScript - compiler-enforced resource management
155+
fn game_loop() -> () / IO {
156+
let texture = load_texture("player.png"); // own GameTexture
157+
render(ref texture);
158+
unload(texture); // MUST happen - compiler proves it!
159+
// texture is GONE here - using it would be a compile error
160+
}
161+
```
162+
163+
### Real-World Impact
164+
-**No more memory leaks** in game resources
165+
-**No more invalid state** bugs in game logic
166+
-**No more protocol errors** in network code
167+
-**No more hidden I/O** in pure game functions
168+
-**Flexible data** without boilerplate
169+
170+
---
171+
172+
## 🚀 Roadmap to 1.0
173+
174+
### Alpha Phase (Current)
175+
- Core language working
176+
- Basic WASM backend
177+
- Game examples included
178+
- Documentation complete
179+
180+
### Beta Phase (Q2 2026)
181+
- Complete trait system
182+
- Effect handlers runtime
183+
- Advanced WASM features
184+
- Performance optimization
185+
186+
### Release Candidate (Q3 2026)
187+
- Full standard library
188+
- Game engine integration
189+
- Production-ready compiler
190+
- Complete toolchain
191+
192+
### 1.0 Release (Q4 2026)
193+
- Full feature set
194+
- Production-ready
195+
- Ecosystem packages
196+
- Game jam templates
197+
198+
---
199+
200+
## 🤝 Community & Support
201+
202+
**GitHub**: https://github.com/hyperpolymath/affinescript
203+
**Issues**: https://github.com/hyperpolymath/affinescript/issues
204+
**Discussions**: https://github.com/hyperpolymath/affinescript/discussions
205+
206+
**Related Projects:**
207+
- Gossamer: https://github.com/hyperpolymath/gossamer (PMPL-1.0-or-later)
208+
- Burble: https://github.com/hyperpolymath/burble (PMPL-1.0-or-later)
209+
210+
---
211+
212+
## 🎁 Try It Today
213+
214+
```bash
215+
# Clone the alpha release
216+
git clone --branch v0.1.0-alpha.1 https://github.com/hyperpolymath/affinescript
217+
218+
# Build and run
219+
dune build
220+
dune exec affinescript -- eval examples/hello.as
221+
222+
# Start building your bug-free game!
223+
```
224+
225+
---
226+
227+
**AffineScript: Where your compiler becomes your QA team.**
228+
229+
SPDX-License-Identifier: PMPL-1.0-or-later
230+
SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell and contributors

0 commit comments

Comments
 (0)