Releases: muditbhargava66/vmips-simulator
v0.2.2
🚀 VMIPS Rust v0.2.2 - CI/CD Modernization & Code Quality
📅 Release Date
August 22, 2025
🎯 Overview
This release focuses on modernizing the CI/CD infrastructure and ensuring code quality standards while maintaining full backward compatibility. All existing functionality is preserved with improved reliability and maintainability.
🔧 Major Improvements
CI/CD Infrastructure Modernization
- Deprecated Actions Removed: Updated from
actions-rs/*
to modern alternatives - GitHub Actions Updated: All workflows now use latest action versions
actions/checkout@v4
for better performanceactions/cache@v4
for improved cachingdtolnay/rust-toolchain@stable
for reliable Rust installation
- Modern Release Workflow: Switched to
softprops/action-gh-release@v1
- Fixed Deprecated Commands: Replaced
set-output
withGITHUB_OUTPUT
Version Consistency & Documentation
- Unified Version References: All files now consistently reference v0.2.2
- Updated README: Latest release badge and documentation improvements
- Enhanced Documentation: Clearer installation and usage instructions
Code Quality Enhancements
- Clippy Warnings Addressed: Fixed major code quality issues
- Manual range contains implementation → Modern range syntax
- Needless range loops → Iterator-based approaches
- Improved error handling patterns
- Code Formatting: Applied rustfmt corrections for consistency
- Build Improvements: Clean compilation with no errors
✅ Testing & Quality Assurance
Comprehensive Testing
- 47 Tests Passing: All unit, integration, property, and functional tests
- 8 Examples Verified: All educational examples working correctly
- Performance Maintained: Benchmarks meet specified requirements
- Functional simulator: ~1M instructions/second
- Timing simulator: ~100K cycles/second
Verified Functionality
- Functional Simulation: All MIPS32 instructions working correctly
- Timing Simulation: Pipeline visualization and cycle-accurate modeling
- Assembler: MIPS assembly to machine code conversion
- Examples: Fibonacci, bubble sort, matrix operations, and more
📦 What's Included
Core Features (Unchanged)
- 64+ MIPS32 Instructions: Complete instruction set support
- Dual Simulation Modes: Functional and timing simulation
- Advanced Features: Tomasulo's algorithm, branch prediction, cache simulation
- Educational Tools: 8 comprehensive examples and tutorials
- Modern CLI: Comprehensive command-line interface with full options
Supported Platforms
- Linux:
vmips_rust-linux-amd64
- Windows:
vmips_rust-windows-amd64.exe
- macOS:
vmips_rust-macos-amd64
🚀 Quick Start
Installation
# Download the appropriate binary for your platform from the assets below
# Make it executable (Linux/macOS)
chmod +x vmips_rust-*
# Run functional simulation
./vmips_rust functional --help
# Run timing simulation with visualization
./vmips_rust timing --visualize --max-cycles 1000
Building from Source
git clone https://github.com/muditbhargava66/vmips-simulator.git
cd vmips-simulator
cargo build --release
cargo test --all # Verify installation
📚 Examples
Try the educational examples:
cargo run --example fibonacci # Calculate Fibonacci numbers
cargo run --example bubble_sort # Sorting algorithm demonstration
cargo run --example factorial # Factorial calculation
cargo run --example matrix_multiply # Matrix operations
🔍 Technical Details
Dependencies
- Rust: 1.56+ (stable toolchain)
- Libraries: clap, serde, log, env_logger, colored, rand
- Development Tools: clippy, rustfmt, criterion
Performance Specifications
- Memory Support: Configurable 1KB-1GB
- Instruction Throughput: 1M+ instructions/second (functional)
- Timing Accuracy: Cycle-accurate with 100K+ cycles/second
- Cache Simulation: Configurable L1/L2 hierarchy
🐛 Bug Fixes
- Fixed compilation errors in assembler module
- Resolved GitHub Actions workflow failures
- Corrected version inconsistencies across documentation
- Improved error handling in various components
🔮 What's Next
- Enhanced floating-point operations
- Additional MIPS instruction extensions
- Improved visualization capabilities
- Performance optimizations
🤝 Contributing
We welcome contributions! Please check our issues page and contributing guidelines.
📄 Documentation
v0.2.1
VMIPS Rust Simulator v0.2.1 Release Notes
🚀 Release Highlights
VMIPS Rust Simulator v0.2.1 is a significant enhancement release focused on improving error handling, algorithm support, and educational visualization. This version builds upon the solid foundation of v0.2.0 with production-ready code quality and enhanced user experience.
✨ What's New
🛡️ Enhanced Error Handling System
- Comprehensive Error Types: New
SimulatorError
enum with specific error variants - Memory Safety: Bounds checking, alignment validation, and overflow protection
- Graceful Error Recovery: Improved error reporting and debugging information
- Production Ready: Robust error handling for real-world usage
🎯 Advanced Algorithm Support Foundation
- Loop Detection: New
LoopDetector
module for identifying and analyzing loop patterns - Register Analysis:
RegisterAllocator
module for optimizing register usage - PC Management: Enhanced
PcManager
for robust program counter handling - Branch Validation: Improved branch target calculation and validation
📊 Improved Pipeline Visualization
- Real-time Instruction Flow: Visualize how instructions progress through pipeline stages
- Multiple Output Formats: Support for Text, CSV, and JSON visualization formats
- Status Indicators: Clear indicators for pipeline stage status (Busy, Stalled, Flushed)
- Comprehensive Instruction Support: Enhanced visualization for all MIPS instruction types
- Educational Value: Better understanding of pipelined processor execution
🔧 Code Quality Improvements
- Clippy Compliance: Resolved all critical warnings for production-grade code
- Enhanced Documentation: Improved inline documentation and comments
- Better Organization: Cleaner module structure and separation of concerns
- Default Implementations: Added
Default
trait implementations where appropriate
🧪 Testing Enhancements
- Comprehensive Test Suite: 47 tests across 7 test suites
- Error Handling Tests: New dedicated test module with 8 specific test cases
- Edge Case Coverage: Expanded test coverage for robustness
- Visualization Testing: Verified pipeline visualization with various programs
📚 Educational Improvements
- Pipeline Visualization: Better understanding of instruction flow through pipeline
- Error Messages: More descriptive error messages for learning
- Algorithm Analysis: Foundation for understanding algorithm patterns
- Register Usage: Insights into register allocation and optimization
🔍 Bug Fixes
- Pipeline Visualization: Fixed empty pipeline stage display in timing simulator
- Branch Calculation: Corrected branch offset calculations for complex control flow
- Memory Access: Fixed potential memory access issues with bounds checking
- Division by Zero: Added protection against division by zero operations
- Instruction Flow: Corrected instruction progression through pipeline stages
- Missing Imports: Added required imports for pipeline visualization functionality
📦 Installation & Usage
Quick Start
# Clone the repository
git clone https://github.com/muditbhargava66/vmips-simulator.git
cd vmips-simulator
# Build the project
cargo build --release
# Run with enhanced visualization
cargo run --bin vmips_rust timing --visualize --max-cycles 10
New Visualization Features
# Text format (default)
cargo run --bin vmips_rust timing --visualize
# CSV format for data analysis
cargo run --bin vmips_rust timing --visualize --format csv
# JSON format for programmatic access
cargo run --bin vmips_rust timing --visualize --format json
🔄 Migration from v0.2.0
For Users
- No Breaking Changes: All existing functionality continues to work
- Enhanced Experience: Better error messages and visualization
- Improved Performance: More efficient error handling
For Developers
- New Error System: Use
SimulatorError
enum for comprehensive error handling - Enhanced Modules: New algorithm support modules available
- Better Testing: Expanded test coverage for reliability
📊 Performance Metrics
- Functional Simulator: ~1M instructions/second
- Timing Simulator: ~100K cycles/second with full visualization
- Memory Efficiency: Configurable from 1KB to 1GB
- Test Coverage: 47 tests with 100% critical path coverage
- Code Quality: All critical Clippy warnings resolved
🎯 Use Cases
Educational
- Computer Architecture Courses: Enhanced pipeline visualization for teaching
- Algorithm Analysis: Foundation for understanding algorithm patterns
- Performance Studies: Detailed metrics and error analysis
Research
- Processor Design: Advanced algorithm support foundation
- Performance Analysis: Comprehensive error handling and reporting
- Simulation Studies: Robust and reliable simulation platform
Development
- MIPS Development: Enhanced error detection and debugging
- Testing: Comprehensive test suite for validation
- Integration: Production-ready code quality
🔮 Looking Forward
v0.3.0 - Advanced Algorithm Support
- Function call support with stack management
- Advanced memory management (heap/stack)
- Nested loop support (up to 3 levels)
- Basic recursion support
v0.4.0 - Intelligent Execution
- Algorithm pattern recognition
- Runtime optimization engine
- Complex data structure support
- Performance analysis and suggestions
🙏 Acknowledgments
Thank you to all contributors and users who provided feedback for this release. Your input has been invaluable in making VMIPS Rust Simulator a better educational tool and research platform.
📄 License
This project is licensed under the MIT License.
Download: GitHub Releases
Documentation: Getting Started Guide
Support: GitHub Issues
v0.2.0
VMIPS Rust v0.2.0 Release Notes
🎉 Major Release: Production-Ready MIPS Simulator
We're excited to announce VMIPS Rust v0.2.0, a major release that transforms this project into a production-ready, comprehensive MIPS processor simulator with advanced features for education and research.
🚀 What's New
Core Features Completed
✅ All TODO.md and ROADMAP.md tasks completed for v0.2.0
🔧 Enhanced CLI Experience
- Modern Command-Line Interface: Complete rewrite using
clap
with intuitive subcommands - Flexible Input Options: Support for both assembly files and ELF binaries
- Configurable Parameters: Memory size, logging levels, visualization options
- Professional Help System: Comprehensive help messages and usage examples
# New CLI examples
vmips_rust functional --memory-size 16384 --log-level debug
vmips_rust timing --visualize --max-cycles 500 --elf --input program.elf
📁 ELF Binary Support
- Real Program Loading: Load actual MIPS ELF binaries compiled with GCC
- Proper Memory Layout: Handles program segments, entry points, and memory regions
- Cross-Platform: Works with MIPS binaries from various toolchains
📚 Comprehensive Documentation
- API Documentation: Complete API reference with examples (
docs/api.md
) - Step-by-Step Tutorials: 9 detailed tutorials covering all major use cases (
docs/tutorials.md
) - Architecture Guides: In-depth explanations of simulator components
- Performance Optimization: Guidelines for efficient simulation
🧪 Robust Testing Framework
- Property-Based Testing: Automated testing with
proptest
andquickcheck
- Edge Case Coverage: Comprehensive tests for boundary conditions
- Integration Tests: CLI functionality and end-to-end testing
- Performance Benchmarks: Criterion-based performance measurement
🏗️ Production Infrastructure
- Automated CI/CD: GitHub Actions with testing, linting, and releases
- Code Coverage: Automated coverage reporting with Codecov
- Cross-Platform Builds: Automatic binary generation for Linux, Windows, macOS
- Security Policy: Vulnerability reporting and response procedures
📊 Technical Achievements
Simulator Capabilities
- Complete MIPS Instruction Set: All major MIPS32 instructions supported
- Advanced Pipeline Simulation: 5-stage pipeline with hazard detection
- Out-of-Order Execution: Tomasulo algorithm implementation
- Branch Prediction: Multiple prediction strategies (static, 2-bit saturating)
- Cache Hierarchy: Configurable L1/L2 caches with realistic timing
- Floating-Point Unit: IEEE 754 compliant FPU simulation
Performance Features
- Visualization Engine: Real-time pipeline and cache visualization
- Statistical Analysis: CPI calculation, cache hit rates, branch prediction accuracy
- Configurable Timing: Adjustable latencies and pipeline parameters
- Memory Management: Virtual memory translation and TLB simulation
🎯 Use Cases
Educational Applications
- Computer Architecture Courses: Hands-on learning of processor design
- Performance Analysis: Understanding pipeline hazards and optimization
- Assembly Programming: MIPS assembly development and debugging
Research Applications
- Architecture Exploration: Testing new processor features
- Performance Modeling: Analyzing different design trade-offs
- Algorithm Optimization: Understanding code performance characteristics
📈 Quality Metrics
- Test Coverage: 35+ comprehensive tests across all components
- Code Quality: Clippy linting with zero warnings in release mode
- Documentation: 100% API coverage with examples
- Platform Support: Linux, Windows, macOS compatibility
🔄 Migration Guide
From v0.1.x
The CLI has been completely redesigned. Update your usage:
Old:
vmips_rust functional
vmips_rust timing
New:
vmips_rust functional --memory-size 8192
vmips_rust timing --visualize --max-cycles 1000
API Changes
- ELF loading functionality added to
vmips_rust::elf_loader
- Enhanced error handling with proper
Error
trait implementations - Improved memory management with bounds checking
🛠️ Installation
From Source
git clone https://github.com/muditbhargava66/vmips-simulator.git
cd vmips-simulator
cargo build --release
Pre-built Binaries
Download from GitHub Releases:
vmips_rust-linux-amd64
vmips_rust-windows-amd64.exe
vmips_rust-macos-amd64
📖 Getting Started
-
Quick Start: Run the built-in test program
vmips_rust functional
-
With Visualization: See the pipeline in action
vmips_rust timing --visualize
-
Load Your Program: Use your own MIPS assembly or ELF files
vmips_rust functional --input my_program.s vmips_rust timing --elf --input my_program.elf
🤝 Contributing
We welcome contributions! See our comprehensive guides:
CONTRIBUTING.md
- Contribution guidelinesdocs/api.md
- API documentation for developersdocs/tutorials.md
- Implementation examples
🔮 Future Roadmap
While v0.2.0 completes all planned features, future enhancements may include:
- Web-based interface for browser simulation
- RISC-V architecture support
- Advanced visualization with graphics
- Distributed simulation capabilities
🙏 Acknowledgments
This release represents a complete transformation of the VMIPS Rust simulator into a production-ready tool suitable for education, research, and development. Special thanks to all contributors and users who provided feedback during development.
📞 Support
- Documentation: Check
docs/
directory for comprehensive guides - Issues: Report bugs via GitHub Issues
- Security: See
SECURITY.md
for vulnerability reporting - Discussions: Join conversations in GitHub Discussions
Download VMIPS Rust v0.2.0 today and experience the most comprehensive MIPS simulator available in Rust!
🔗 Links:
v0.1.0
v0.1.1
VMIPS Rust Simulator v0.1.1 Release Notes
We're excited to announce the release of VMIPS Rust Simulator v0.1.1, a significant update that enhances stability, performance, and instruction support.
Major Enhancements
- Expanded Instruction Support: Added support for 40+ MIPS instructions including LUI, ORI, MULT, MFLO, ADDIU, BNE, and JR
- Improved Simulator Stability: Fixed critical issues in both functional and timing simulators
- Enhanced Debugging Capabilities: Added detailed instruction tracing and execution tracking
- Better Test Coverage: Completely rewrote test suite for more reliable testing
Key Features
Functional Simulator
- Proper termination detection via NOP instructions
- Infinite loop prevention with maximum instruction limits
- Fixed branch and jump instruction handling
- Improved memory access and register operations
Timing Simulator
- Complete rewrite of execution loop for better accuracy
- Step-by-step instruction output during simulation
- Fixed cache access violations
- Better hazard detection and handling
Development Improvements
- Significantly enhanced documentation
- Fixed all compiler warnings
- Added Debug trait to key data structures
- Improved error messages and reporting
Bug Fixes
- Resolved memory access violations in cache implementation
- Fixed incorrect handling of JR (Jump Register) instruction
- Eliminated infinite loops in both simulators
- Corrected dot product calculation example
- Fixed PC-relative addressing in branch instructions
- Resolved out-of-bounds errors in cache implementation
Documentation
- Expanded README with better usage instructions and examples
- Added comprehensive CHANGELOG
- Improved code comments throughout the codebase
This release represents a major step forward in the stability and functionality of the VMIPS Rust Simulator, making it a more reliable tool for education and research purposes.