Skip to content

Releases: muditbhargava66/vmips-simulator

v0.2.2

22 Aug 18:24
e556bfd
Compare
Choose a tag to compare

🚀 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 performance
    • actions/cache@v4 for improved caching
    • dtolnay/rust-toolchain@stable for reliable Rust installation
  • Modern Release Workflow: Switched to softprops/action-gh-release@v1
  • Fixed Deprecated Commands: Replaced set-output with GITHUB_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

19 Jul 09:42
bf147d5
Compare
Choose a tag to compare

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

18 Jul 22:48
da39a00
Compare
Choose a tag to compare

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 and quickcheck
  • 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

  1. Quick Start: Run the built-in test program

    vmips_rust functional
  2. With Visualization: See the pipeline in action

    vmips_rust timing --visualize
  3. 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 guidelines
  • docs/api.md - API documentation for developers
  • docs/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

18 Jul 22:54
Compare
Choose a tag to compare

v0.1.1

05 Mar 00:05
Compare
Choose a tag to compare

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.