Files
hakorune/docs/private/papers/paper-c-unified-revolution/drafts/outline-detailed.md

5.0 KiB

Paper C: Detailed Outline

Title

"Everything is Box, Everything is Message: A Unified Minimalist VM Architecture"

Abstract (150-200 words)

  • Problem: Modern VMs suffer from instruction bloat and complex optimization paths
  • Solution: MIR13 (13 instructions) + BoxCall unification (no Load/Store)
  • Key insight: "One representation, two executions"
  • Results: Equivalent performance with 75% less complexity
  • Impact: New paradigm for language implementation

1. Introduction (2 pages)

1.1 The Complexity Crisis

  • Modern VMs: 100+ instructions, multiple optimization paths
  • Maintenance burden, bug surface, learning curve
  • Example: JVM bytecode (200+), LLVM IR (60+)

1.2 Our Vision

  • Everything is Box: Unified data model
  • Everything is Message: Unified operation model
  • 13 instructions to rule them all

1.3 Contributions

  1. MIR13: Minimal IR with 13 instructions
  2. BoxCall unification: Load/Store elimination
  3. Two-execution model: Message vs Direct
  4. AI-collaborative development methodology
  5. Complete implementation in Nyash

2. Background and Motivation (1.5 pages)

2.1 Historical Context

  • Smalltalk's message passing
  • Self's optimizations
  • Modern VM evolution

2.2 The Load/Store Problem

  • Why every VM has Load/Store
  • Hidden complexity in variable access
  • Optimization barriers

2.3 The Instruction Bloat Problem

  • Case study: Real VM instruction sets
  • Redundancy analysis
  • Maintenance costs

3. The Unified Architecture (3 pages)

3.1 MIR13 Core Instructions

Value/Computation: Const, BinOp, Compare
Control Flow: Jump, Branch, Return, Phi
Calls: Call, BoxCall, ExternCall
Meta: TypeOp, Safepoint, Barrier

3.2 BoxCall Unification

  • Everything is a receiver + selector
  • Variables as Boxes
  • Arrays as Boxes
  • Functions as Boxes

3.3 The Magic: Two-Execution Model

Representation Layer:  BoxCall %x, "get"
Optimization Layer:   if(non-escaping) → Register
                     else → Message dispatch
Execution Layer:     mov eax, [reg] or call

3.4 Design Principles

  • Principle 1: Unify first, optimize later
  • Principle 2: Make the common case fast
  • Principle 3: Keep the door open for extensions

4. Implementation (3 pages)

4.1 Architecture Overview

  • Parser → AST → MIR13 → Optimizer → Backend
  • Three backends: Interpreter, VM, LLVM

4.2 The Lowering Pipeline

Phase 1: Escape Analysis
Phase 2: Type Specialization  
Phase 3: Register Allocation
Phase 4: Code Generation

4.3 Optimization Strategies

  • Scalar replacement of Boxes
  • Bounds check elimination
  • Polymorphic inline caches
  • Profile-guided optimization

4.4 Implementation Challenges

  • Bootstrap problem
  • Debugging complexity
  • Performance regression prevention

5. AI-Collaborative Development (1.5 pages)

5.1 The Three-AI Architecture

  • Claude: Design and integration
  • ChatGPT: Parallel refactoring
  • Gemini: Architecture consultation

5.2 Parallel Refactoring Methodology

1. Generate N refactoring proposals in parallel
2. Validate each independently
3. Merge non-conflicting changes
4. Iterate on conflicts

5.3 Lessons Learned

  • AI strengths and weaknesses
  • Human-AI collaboration patterns
  • Productivity metrics

6. Evaluation (3 pages)

6.1 Experimental Setup

  • Hardware: AMD Ryzen 9, 32GB RAM
  • Benchmarks: Scalar loops, Array operations, Object manipulation
  • Baselines: Python, Ruby, JavaScript V8

6.2 Performance Results

6.2.1 Scalar Variable Performance

  • Direct scalar: 1.2ns/operation
  • Indirect (array[0]): 15ns/operation
  • Optimization effectiveness: 92%

6.2.2 Array Operations

  • Sequential access: 0.8ns/element
  • Random access: 3.2ns/element
  • Bounds check elimination: 78% of cases

6.2.3 Object Operations

  • Monomorphic calls: 2.1ns
  • Polymorphic (2-4 types): 4.5ns
  • Megamorphic: 12ns

6.3 Compilation Performance

  • Parse time: -20% (simpler grammar)
  • MIR generation: -35% (fewer instructions)
  • Optimization time: +10% (more analysis)
  • Overall: -15% compilation time

6.4 Memory Usage

  • MIR size: -60% (fewer instruction types)
  • Runtime memory: -25% (unified structures)
  • Cache efficiency: +30% (better locality)

7.1 Minimalist VMs

  • dis VM, Lua VM
  • Comparison with MIR13

7.2 Message-Passing Systems

  • Smalltalk, Objective-C, Ruby
  • Our advantages

7.3 Modern VM Designs

  • JVM, CLR, V8
  • Complexity comparison

8. Discussion (1 page)

8.1 Limitations

  • Bootstrap complexity
  • Debugging challenges
  • Learning curve

8.2 Future Work

  • Hardware acceleration
  • Distributed execution
  • Formal verification

8.3 Broader Impact

  • Language design implications
  • Teaching benefits
  • Research directions

9. Conclusion (0.5 pages)

  • Summary of contributions
  • Key takeaways
  • Vision for the future

References (2 pages)

  • 30-40 key references
  • Historical and modern works
  • Related minimalist approaches

Appendices

A. Complete MIR13 Specification

B. BoxCall Lowering Rules

C. Benchmark Source Code

D. AI Collaboration Logs