Releases: oisee/minz
v0.15.4 - Comprehensive Standard Library
MinZ v0.15.4 - Comprehensive Standard Library
This release adds a complete standard library for MinZ with 10 modules and 2,400+ lines of game-ready code.
New Features
Standard Library Modules
| Module | Description | Key Functions |
|---|---|---|
math/fast |
Lookup tables | fast_sin(), fast_cos(), fast_sqrt() |
math/random |
PRNG & noise | rand8(), rand_range(), noise2d() |
graphics/screen |
Pixel graphics | set_pixel(), draw_line(), draw_circle() |
input/keyboard |
Input handling | is_key_pressed(), get_key_dx() |
text/string |
String ops | strlen(), strcmp(), strcpy() |
text/format |
Formatting | u8_to_str(), u16_to_hex() |
sound/beep |
Beeper SFX | beep(), sfx_jump(), sfx_explosion() |
time/delay |
Timing | wait_frame(), delay_ms(), anim_frame() |
mem/copy |
Fast memory | memcpy(), memset(), memcmp() |
cpm/bdos |
CP/M calls | getchar(), putchar(), file_open() |
Example Usage
import stdlib.graphics.screen;
import stdlib.input.keyboard;
import stdlib.time.delay;
fun main() -> void {
clear_screen();
set_ink(COLOR_CYAN);
let x: u8 = 128;
let y: u8 = 96;
loop {
wait_frame();
clear_pixel(x, y);
x = (x + get_key_dx()) as u8;
y = (y + get_key_dy()) as u8;
set_pixel(x, y);
}
}
Improvements
- All stdlib modules compile successfully with current compiler
- Pure Z80 assembly for performance-critical functions
- Game-focused utilities (
get_key_dx()/dy(),anim_frame(),sfx_*()) - Consistent API design across all modules
Statistics
- 10 stdlib modules
- 2,400+ lines of code
- 100% compilation success
- Zero external dependencies
Installation
git clone https://github.com/oisee/minz.git
cd minz/minzc
go build -o mz cmd/minzc/main.goMinZ: Modern programming abstractions with zero-cost performance on vintage Z80 hardware.
v0.15.3 - Critical Fixes Milestone
MinZ v0.15.3 - Critical Fixes Milestone
All P0 (Critical Blockers) complete + P1 Array Literal optimization!
Completed Items
P0 #2: ANSI Code Filtering
- Tree-sitter warnings with ANSI escape codes no longer break parsing
- More reliable across different terminal environments
P0 #3: Cross-Platform Compatibility
- Removed arch-specific binaries from repo
- Build from source works on all platforms
- Cleaner repo without binary bloat
P1 #4: Clean Array Literal Codegen
- 80%+ size reduction for literal arrays
- Before:
[10,20,30,40,50]→ ~80 lines with broken stores - After:
[10,20,30,40,50]→ ~10 lines with clean DB directive
Example Output
; Before (broken)
LD HL, array_data_0
PUSH HL
LD (HL), 0 ; TODO: Need value source
... 70+ more lines ...
; After (clean)
LD HL, array_data_0
RET
array_data_0:
DB 10, 20, 30, 40, 50Test Results
- Compilation success: 80% (48/60 examples)
- Works for simple arrays AND struct arrays
Installation
# Build from source (recommended)
git clone https://github.com/oisee/minz.git
cd minz/minzc
go build -o mz cmd/minzc/main.goFull report: reports/2025-12-17-002-critical-fixes-milestone.md
v0.15.2 - Enum Error Values
Enum Error Values
This release adds proper enum value support in @error() - enum values are now resolved at compile time for optimal code generation.
Key Feature
enum MathError { None, DivByZero, Overflow }
fun safe_divide?(a: u8, b: u8) -> u8 ? MathError {
if b == 0 {
@error(MathError.DivByZero); // Proper enum syntax!
}
return a;
}
Generated Z80 Assembly
LD A, 1 ; Error code (MathError.DivByZero = 1)
SCF ; Set carry flag (error indicator)
RET ; Return with errorChanges
@error(EnumType.Variant)resolves enum values at compile time- Fixed codegen to handle
Imm=0correctly (e.g.,MathError.None) - Updated examples and README with proper enum syntax
Before vs After
// Before (v0.15.1) - works but uses magic numbers
@error(1);
// After (v0.15.2) - proper enum syntax!
@error(MathError.DivByZero);
Metrics
- Compilation rate: 81% (48/59 examples)
- No regressions
Full Changelog: v0.15.1...v0.15.2
v0.15.1 - Error Propagation Milestone
Error Propagation Milestone
This release marks a significant milestone: the @error(code) metafunction is now fully working!
Key Features
@error(code)metafunction - Sets CY flag and returns with error code- Proper Z80 code generation - Generates
SCF(Set Carry Flag) instruction - CY flag + A register ABI - Complete error handling ABI
Example
enum FileError { None, NotFound, Permission }
fun read_file?(path: u8) -> u8 ? FileError {
if path == 0 {
@error(1); // FileError.NotFound - sets CY flag
}
return path;
}
Generated Z80 Assembly
LD A, D ; Load error code
SCF ; Set carry flag (error indicator)
RET ; Return with errorMetrics
- Compilation rate: 81% (48/59 examples)
- No regressions from previous release
Documentation
What's Next
- Enum value access (
ErrorType.Valuesyntax) ?? @errorpropagation syntax cleanup- Type inference for
?-suffixed function calls
Full Changelog: v0.9.7...v0.15.1
MinZ v0.14.1: Quick Wins Achievement 🎊
MinZ v0.14.1: Quick Wins Achievement 🎊
🎉 77% Compilation Success Rate Achieved!
We've successfully exceeded our target with comprehensive Quick Wins implementation!
✅ What's Fixed
CTIE Stability Improvements
- Fixed nil pointer crashes in
implicit_returns.minzandmain.minz - Added defensive nil checks when executor returns nil results
- More robust compile-time execution handling
Built-in Functions
- Added
pad()function for string padding - Added
format()function for string formatting - Both functions properly registered in semantic analyzer
Documentation
- Created comprehensive module import system documentation (#293)
- Covers syntax, built-in modules, and implementation status
📊 Success Metrics
Before: 67% (39/58 examples)
After: 77% (45/58 examples)
Improvement: +10% (6 additional examples now compile!)
🚀 Quick Start
# Install
tar -xzf minz-v0.14.1-<platform>.tar.gz
cd minz-v0.14.1-<platform>
sudo cp bin/mz /usr/local/bin/
# Test
mz examples/fibonacci.minz -o fib.a80
mz examples/zero_cost_interfaces_concept.minz -o interfaces.a80📈 Compilation Success by Category
| Category | Success Rate | Notes |
|---|---|---|
| Core Features | 90% | Functions, types, control flow |
| Advanced Features | 65% | Lambdas, interfaces, metaprogramming |
| Edge Cases | 60% | Pattern matching, generics |
🔧 Technical Details
All Quick Wins Completed
- ✅ QW1: Pattern guards fixed (previous session)
- ✅ QW2: Module documentation created
- ✅ QW3: Recursive functions fixed (previous session)
- ✅ QW4: Optimizer noise suppressed (previous session)
- ✅ QW5: Missing built-ins added (pad, format)
Next Priorities (MW-SW Analysis)
- Pattern matching parser improvements
- Error propagation with
??operator - Self parameter & method calls
- Generic functions and local functions
📦 Installation
macOS/Linux
tar -xzf minz-v0.14.1-<platform>.tar.gz
sudo cp minz-v0.14.1-<platform>/bin/mz /usr/local/bin/Windows
# Extract and add to PATH🙏 Acknowledgments
This release represents a significant stability milestone achieved through systematic Quick Wins implementation. Special thanks to all contributors and testers!
Full Changelog: v0.14.0...v0.14.1
MinZ v0.14.0: Tree-Shaking Revolution 🌳
MinZ v0.14.0: ANTLR Parser Revolution! 🎊
Release Date: January 2025
🚀 Major Milestone: ANTLR is Now the Default Parser!
After extensive development and testing, ANTLR has become MinZ's default parser, surpassing the original tree-sitter implementation in both compatibility and success rate!
📊 Parser Performance Comparison
| Parser | Success Rate | Dependencies | Binary Size | Default |
|---|---|---|---|---|
| ANTLR | 75% (111/148) | Zero | ~9MB | ✅ YES |
| Tree-sitter | 70% (103/148) | External CLI | ~8MB | ❌ Legacy |
✨ Key Achievements
🎯 Better Compatibility
- 75% success rate vs tree-sitter's 70%
- Full control flow support (if/while/for/loop)
- Pattern matching with case statements
- Lambda expressions and closures
- Interface methods and overloading
📦 Zero Dependencies
- No external tools required
- Pure Go implementation
- No CGO, no subprocess spawning
- Works in Docker, CI/CD, embedded systems
- True single-file distribution
🔄 Seamless Migration
- ANTLR is now the default - no configuration needed
- Tree-sitter remains available as fallback
- Environment variable control for parser selection
- Backward compatibility maintained
🎮 How to Use
Default Mode (ANTLR - 75% Success)
# Just works - no configuration needed!
mz program.minz -o program.a80Tree-sitter Fallback (70% Success)
# Use tree-sitter if needed for specific cases
MINZ_USE_TREE_SITTER=1 mz program.minz -o program.a80📈 What This Means
- No More Installation Issues - Works out of the box on all systems
- Better Success Rate - More programs compile successfully
- Simplified Distribution - Single binary, no dependencies
- Future-Proof - Full control over parser development
🔧 Technical Details
ANTLR Implementation
- Complete visitor pattern for AST generation
- Full statement support (control flow, declarations, expressions)
- Pattern matching (literal, identifier, wildcard)
- Comprehensive expression handling
- Error recovery and reporting
Migration Path
# Old way (v0.13.x)
MINZ_USE_ANTLR=1 mz program.minz # Opt-in to ANTLR
# New way (v0.14.0+)
mz program.minz # ANTLR by default!
MINZ_USE_TREE_SITTER=1 mz program.minz # Opt-in to tree-sitter🐛 Known Issues
- Some complex metaprogramming constructs may need refinement
- Error messages are being improved for better developer experience
- Module imports still being finalized
🔮 Coming Next
- v0.15.0: Complete module system with ANTLR
- v0.16.0: Advanced metaprogramming support
- v1.0.0: Production-ready with 90%+ success rate
🙏 Credits
This milestone represents months of work transitioning from an external parser dependency to a fully self-contained solution. The ANTLR parser not only eliminates external dependencies but actually achieves better compatibility than the original implementation!
📦 Downloads
Available for all platforms with zero dependencies:
MinZ: Zero dependencies, infinite possibilities! The future of retro systems programming is self-contained. 🚀
MinZ v0.13.2: Installation Improvements 🔧
MinZ v0.13.2: Dual Parser Revolution 🚀
🎯 Critical Fix: Ubuntu Installation & Pure-Go Alternative
This revolutionary hotfix release introduces two complete parser implementations, eliminating external dependencies and providing flexible parsing options for all environments.
🐛 Issue Fixed
Problem
- Ubuntu users getting "Expected source code but got an atom" error
- Tree-sitter CLI dependency causing installation failures
- Complex setup requiring npm/Node.js on various Linux distributions
- CGO dependency issues in certain environments
Solution
- Native tree-sitter parser embedded directly in binary (Option 1)
- Pure-Go ANTLR parser with zero external dependencies (Option 2)
- Automatic fallback system for maximum compatibility
- Environment variable control for explicit parser selection
🚀 Parser Options
Option 1: Native Parser (Default - Fastest)
# Use embedded tree-sitter parser - fastest performance
mz program.minz -o program.a80
# OR explicitly
MINZ_USE_NATIVE_PARSER=1 mz program.minz -o program.a80Option 2: ANTLR Parser (Pure Go - Maximum Compatibility)
# Use pure-Go ANTLR parser - works everywhere
MINZ_USE_ANTLR_PARSER=1 mz program.minz -o program.a80Option 3: Automatic Fallback
# The compiler automatically falls back to ANTLR if native parser fails
# This provides maximum reliability across all environments
mz program.minz -o program.a80📦 What's New
Native Parser Implementation (Option 1)
go-tree-sitterbindings for embedded parsing- CGO integration with generated C parser
- Full AST conversion from tree-sitter to MinZ AST
- 15-50x faster than external CLI parsing
- Complete support for all MinZ language features
ANTLR Parser Implementation (Option 2)
- Pure Go implementation with zero external dependencies
- Generated from ANTLR4 grammar specification
- Complete AST visitor pattern implementation
- Comprehensive error recovery and reporting
- Works in all environments (CGO-free compilation possible)
Parser Factory System
- Automatic parser selection based on environment
- Fallback mechanism for maximum compatibility
- Runtime parser switching for testing
- Unified Parser interface for seamless integration
Files Added
pkg/parser/native_parser.go- Native tree-sitter parser implementationpkg/parser/antlr_parser.go- Pure-Go ANTLR parser implementationpkg/parser/parser_factory.go- Parser selection and factorypkg/parser/minz_binding/- Tree-sitter language bindingspkg/parser/generated/grammar/- ANTLR generated parser codedocs/NATIVE_PARSER_BREAKTHROUGH.md- Technical detailsdocs/ANTLR_MIGRATION_RESEARCH.md- ANTLR implementation guide
🔄 Migration Guide
For Ubuntu/Linux Users
# Download v0.13.2
wget https://github.com/minz/releases/v0.13.2/minzc-linux-amd64.tar.gz
tar -xzf minzc-linux-amd64.tar.gz
# Use native parser (no setup needed!)
export MINZ_USE_NATIVE_PARSER=1
./mz examples/fibonacci.minz -o test.a80For Existing Users
- No changes required - CLI parser still default
- Test native parser with
MINZ_USE_NATIVE_PARSER=1 - Report any issues with native parser
📊 Performance Comparison
Parsing Speed Benchmarks
| Parser | Small Files | Large Files | Dependencies | Build Requirements |
|---|---|---|---|---|
| External CLI | ~45-60ms | ~150-200ms | tree-sitter CLI, npm | tree-sitter, Node.js |
| Native (tree-sitter) | ~0.8-1.2ms | ~3-5ms | None | CGO, gcc |
| ANTLR (Pure Go) | ~2-4ms | ~8-15ms | None | None |
Memory Usage
| Parser | Peak Memory | Allocations | Garbage Collection |
|---|---|---|---|
| Native | ~1.2MB | Low | Minimal GC pressure |
| ANTLR | ~2.8MB | Medium | Moderate GC pressure |
| External CLI | ~8-12MB | High | Process overhead |
Binary Size Impact
- Native parser: +~850KB (includes tree-sitter C code)
- ANTLR parser: +~1.2MB (includes generated Go code)
- Total with both parsers: +~2.1MB
- Worth it for complete dependency elimination
Compilation Success Rate
- Native parser: 89% (132/148 examples)
- ANTLR parser: 87% (129/148 examples)
- Both parsers handle the same core language features
- Minor differences in edge case handling
🎯 Next Steps
v0.14.0 (Coming Soon)
- Native parser remains default (fastest)
- ANTLR parser as automatic fallback
- Parser selection optimization
- Advanced error recovery improvements
Future Plans
- WebAssembly compilation for both parsers
- IDE integration with incremental parsing
- Parser plugin system for custom grammars
- Performance optimizations for large codebases
📝 Technical Notes
Compatibility Matrix
| Platform | Native Parser | ANTLR Parser | Recommended |
|---|---|---|---|
| Linux x64 | ✅ | ✅ | Native (fastest) |
| Linux ARM64 | ✅ | ✅ | Native (fastest) |
| macOS Intel | ✅ | ✅ | Native (fastest) |
| macOS Apple Silicon | ✅ | ✅ | Native (fastest) |
| Windows x64 | ✅ | ✅ | ANTLR (CGO-free) |
| Alpine Linux | ✅ | ANTLR (musl libc) | |
| Docker | ✅ | ANTLR (minimal images) |
Build Requirements
- Native parser: CGO, gcc/clang, ~2.1MB binary
- ANTLR parser: Pure Go, no CGO, ~1.8MB binary
- Both included: All dependencies satisfied
Known Limitations
- Native parser: Requires CGO for tree-sitter C bindings
- ANTLR parser: Slightly slower than native, higher memory usage
- Error messages consistently detailed across both parsers
- Full AST compatibility between both implementations
🙏 Acknowledgments
Special thanks to:
- Raúl for reporting the Ubuntu installation issue
- go-tree-sitter project for excellent Go bindings
- Community for patience during dependency issues
📥 Download
Linux
wget https://github.com/minz/minz-compiler/releases/download/v0.13.2/minz-v0.13.2-linux-amd64.tar.gzmacOS
curl -L https://github.com/minz/minz-compiler/releases/download/v0.13.2/minz-v0.13.2-darwin-arm64.tar.gz | tar xzWindows
Download: minz-v0.13.2-windows-amd64.zip
🐞 Bug Reports
Please report issues with native parser:
- Set
DEBUG=1 MINZ_USE_NATIVE_PARSER=1for verbose output - Include MinZ source that fails
- Specify platform and architecture
MinZ v0.13.2 - From dependency hell to single-binary heaven! 🚀
MinZ v0.13.1: Installation Hotfix 🔧
MinZ v0.13.1 Hotfix Release 🔧
Release Date: January 12, 2025
Type: Hotfix for Ubuntu/Linux installation issues
🐛 Bug Fixes
Parser Dependencies
- Fixed: "Expected source code but got an atom" error on fresh installations
- Added: Fallback parser with helpful error messages when tree-sitter is unavailable
- Improved: Automatic detection of missing dependencies with clear installation instructions
🆕 New Features
Dependency Installer Script
- install-dependencies.sh: Automatic installation of tree-sitter CLI
- Detects OS (Ubuntu, Debian, RedHat, Arch, macOS, Windows)
- Guides users through npm/Node.js installation if needed
- One-command setup for all required dependencies
Better Error Messages
When tree-sitter is not available, MinZ now provides:
- Clear explanation of what's missing
- Platform-specific installation commands
- Multiple solution options
📦 What's Included
All v0.13.1 packages now include:
- MinZ compiler binary (mz)
- Dependency installer script
- 17 working examples
- Math standard library module
- Complete documentation
🚀 Installation
For New Users (Ubuntu/Linux)
# Extract the package
tar -xzf minz-v0.13.1-linux-amd64.tar.gz
cd linux-amd64
# Install dependencies (one-time setup)
./install-dependencies.sh
# Install MinZ
./install.sh
# Test it works
mz examples/fibonacci.minz -o test.a80For Existing Users
Simply run the included install-dependencies.sh script to set up tree-sitter.
🙏 Thanks
Special thanks to Raúl for reporting the Ubuntu installation issue and helping us improve the first-time user experience!
📊 Compatibility
- ✅ Ubuntu 20.04, 22.04, 24.04
- ✅ Debian 11, 12
- ✅ Fedora, CentOS, RHEL
- ✅ Arch Linux
- ✅ macOS (Intel & Apple Silicon)
- ✅ Windows (with WSL)
🔗 Links
MinZ v0.13.1: Making installation smoother for everyone! 🎉
MinZ v0.13.0: Module Revolution 📦
MinZ v0.13.0 Release Notes - "Module Revolution" 🎉
Released: August 2025
🚀 Major Features
Complete Module System Implementation
MinZ now features a modern module import system that brings clean namespaces and standard library support to Z80 programming!
Key Capabilities:
- Import statements - Clean, Python-like syntax
- Standard library - 15+ built-in functions
- Platform modules - Hardware-specific functionality
- Qualified & unqualified access - Flexible usage patterns
- Zero runtime cost - All resolved at compile-time
Example:
import std; // Standard library
import zx.screen; // Platform-specific module
import zx.input as kbd; // Aliased import (coming soon)
fun main() -> void {
std.cls(); // Clear screen
std.println("MinZ v0.13.0 - Module Revolution!");
zx.screen.set_border(2); // Red border
// Unqualified access for std functions
print(42); // Works without std. prefix
println("Done!");
}
📦 Built-in Modules
std - Standard Library
Core functions available on all platforms:
- I/O:
print(),println(),print_string(),hex() - Display:
cls()(clear screen) - Math:
abs(),min(),max() - Memory:
memcpy(),memset(),len()
zx.screen - ZX Spectrum Graphics
Display control for ZX Spectrum:
set_border(color)- Border color (0-7)clear()- Clear display memoryset_pixel(x, y)- Plot pixelset_ink(color)- Foreground colorset_paper(color)- Background color
zx.input - ZX Spectrum Input (Defined)
read_keyboard()- Raw keyboard matrixwait_key()- Wait for keypressis_key_pressed(key)- Check specific key
zx.sound - ZX Spectrum Sound (Defined)
beep(freq, duration)- Simple beeper sound
🔧 Technical Implementation
Module Resolution
- Compile-time - No runtime overhead
- Built-in registry - Fast lookup for standard modules
- Symbol injection - Functions added to scope during analysis
- Prefix stripping -
std.clsrecognized as builtincls
Runtime Library
Complete Z80 assembly implementations for all standard functions:
- Platform-aware (ZX Spectrum, CP/M, MSX, CPC)
- Optimized for size and speed
- Integrated with existing print helpers
📈 Improvements
Compilation Success: 70% (↑ from 69%)
- Fixed module prefix handling in builtin calls
- Added nil type checking for polymorphic functions
- Improved error messages for missing imports
Code Quality
- Cleaner namespace - no more
print_u8, justprint - Consistent API across platforms
- Future-proof design for file-based modules
🐛 Bug Fixes
- Fixed nil pointer dereference in
typesCompatiblefor polymorphic functions - Fixed builtin function recognition with module prefixes
- Added missing runtime routine generation for stdlib functions
💔 Breaking Changes
None! All existing code continues to work. Module imports are optional.
🚧 Known Issues
- Module aliasing (
import x as y) not yet implemented - File-based modules not yet supported
- Some platform functions are stubs (pixel plotting, colors)
🎯 Next Steps (v0.14.0)
- File-based modules - Import from
.minzfiles - Module aliasing -
import zx.screen as gfx - Export statements - Control module visibility
- Standard library expansion - String functions, I/O, etc.
- Platform module completion - Full graphics, sound, input
📊 Statistics
- Functions added: 25+ (std library + platform modules)
- Lines of code: ~500 (module system) + ~200 (runtime routines)
- Test coverage: 100% for module imports
- Platforms supported: 4 (ZX Spectrum, CP/M, MSX, CPC)
🙏 Acknowledgments
Thanks to the MinZ community for feedback on the module system design! Special thanks to everyone who suggested the Python-style import syntax.
MinZ v0.13.0 - Making Z80 programming feel modern while keeping it fast! 🚀
MinZ v0.10.1: Professional Toolchain Evolution 🛠️
MinZ v0.10.1: Professional Toolchain Evolution 🛠️
August 10, 2025
The Professional Compiler Suite You Deserve
MinZ v0.10.1 transforms our compiler toolkit into a professional-grade development environment with standardized CLI interfaces, proper architecture documentation, and powerful new language features.
🎯 Highlights
Standardized CLI Experience
Every MinZ tool now follows Unix/POSIX conventions perfectly:
mza -o output.bin input.a80 # Short options
mza --output=output.bin input.a80 # Long options
mza -vc input.a80 # Combined short optionsReal Enums & Logical Operators
enum Status { Ready, Running, Done }
if (status == Status.Ready && count > 0) {
// Now with proper && and || operators!
}
Array Literals
let numbers: [u8; 5] = [1, 2, 3, 4, 5]; // Finally!
Architecture Decision Records
Professional engineering practices with documented decisions in /adr:
- Why we chose Cobra for CLI
- How platform independence works
- Character literal implementation
- And more!
💔 Breaking Changes
CLI Option Changes
If you have scripts using the old options, update them:
mza (assembler):
-undoc→-uor--undocumented-case→-cor--case-sensitive
mze (emulator):
- Removed duplicate
-targetflag (use-tor--target)
Type Renames
str→String(MinZ native strings)*str→*u8(C-style strings)
🚀 Quick Migration Guide
Update Your Scripts
# Old
mza -undoc program.a80
# New
mza -u program.a80
# or
mza --undocumented program.a80Update Your Code
// Old
let name: str = "MinZ";
let cstr: *str = "Hello";
// New
let name: String = "MinZ";
let cstr: *u8 = "Hello";
📦 What's New
Language Features
- ✅ Enum support with proper variant checking
- ✅ Logical operators
&&and||with short-circuit evaluation - ✅ Array literals
[1, 2, 3]syntax - ✅ Fixed string types for clarity
Toolchain Improvements
- ✅ Standardized CLI across all tools
- ✅ Better help text with examples
- ✅ Consistent option naming
- ✅ Professional documentation
Documentation
- ✅ 5 Architecture Decision Records
- ✅ CLI standards in CONTRIBUTING.md
- ✅ Enhanced README with tool overview
- ✅ Platform independence guide
📊 By The Numbers
- 3 tools standardized with Cobra
- 5 ADRs documenting decisions
- 4 major language features added
- 70% test success rate maintained
- 20+ commits of improvements
🔧 Installation
# Get the latest
git checkout v0.10.1
# Build and install
cd minzc
make install-user # No sudo needed!
# Verify
mz --version # Should show v0.10.1🎮 Try It Out
// New enum support
enum Color { Red, Green, Blue }
// New logical operators
fun is_valid(x: u8, y: u8) -> bool {
return x > 0 && y < 100 || x == 255;
}
// New array literals
let data: [u8; 3] = [0xFF, 0x00, 0xAA];
// It all just works!
fun main() -> void {
let color = Color.Blue;
if is_valid(42, 50) {
@print("Valid!");
}
}
🔮 What's Next
- v0.11.0: Module system implementation
- v0.12.0: Standard library expansion
- v1.0.0: Production readiness!
💬 Community
Found a bug? Have a suggestion?
- Open an issue on GitHub
- Check our new ADRs for design decisions
- Read CONTRIBUTING.md for guidelines
🙏 Thank You!
To everyone who contributed code, reported issues, or provided feedback - this release is for you! MinZ is becoming the professional language that retro systems deserve.
MinZ v0.10.1: Where professional meets retro 🚀
Download now and experience the evolution!