feat: Prepare for code modularization and cleanup
- Archive old documentation and test files to `docs/archive/` and `local_tests/`. - Remove various temporary and old files from the project root. - Add `nekocode-rust` analysis tool and its output files (`nekocode/`, `.nekocode_sessions/`, `analysis.json`). - Minor updates to `apps/chip8_nyash/chip8_emulator.nyash` and `local_tests` files. This commit cleans up the repository and sets the stage for further code modularization efforts, particularly in the `src/interpreter` and `src/parser` modules, based on recent analysis.
This commit is contained in:
85
docs/archive/mir_25_instruction_mapping.md
Normal file
85
docs/archive/mir_25_instruction_mapping.md
Normal file
@ -0,0 +1,85 @@
|
||||
# MIR 25-Instruction Mapping Plan
|
||||
|
||||
## Current State: 32 Instructions → Target: 25 Instructions
|
||||
|
||||
### Tier-0: Universal Core (8 instructions)
|
||||
1. **Const** ✅ (already exists)
|
||||
2. **BinOp** ✅ (already exists)
|
||||
3. **Compare** ✅ (already exists)
|
||||
4. **Branch** ✅ (already exists)
|
||||
5. **Jump** ✅ (already exists)
|
||||
6. **Phi** ✅ (already exists)
|
||||
7. **Call** ✅ (already exists)
|
||||
8. **Return** ✅ (already exists)
|
||||
|
||||
### Tier-1: Nyash Semantics (12 instructions)
|
||||
9. **NewBox** ✅ (already exists)
|
||||
10. **BoxFieldLoad** ← RENAME from Load/RefGet
|
||||
11. **BoxFieldStore** ← RENAME from Store/RefSet
|
||||
12. **BoxCall** ✅ (already exists)
|
||||
13. **Safepoint** ✅ (already exists as separate instruction)
|
||||
14. **RefGet** → RENAME to RefGet ✅
|
||||
15. **RefSet** → RENAME to RefSet ✅
|
||||
16. **WeakNew** ✅ (already exists)
|
||||
17. **WeakLoad** ✅ (already exists)
|
||||
18. **WeakCheck** ← NEW (check weak reference validity)
|
||||
19. **Send** ← NEW (Bus communication)
|
||||
20. **Recv** ← NEW (Bus communication)
|
||||
|
||||
### Tier-2: Implementation Assistance (5 instructions)
|
||||
21. **TailCall** ← NEW (tail call optimization)
|
||||
22. **Adopt** ← NEW (ownership transfer)
|
||||
23. **Release** ← NEW (ownership release)
|
||||
24. **MemCopy** ← NEW (optimized memory operations)
|
||||
25. **AtomicFence** ← RENAME from BarrierRead/BarrierWrite
|
||||
|
||||
## Instructions to Remove/Consolidate (7 instructions)
|
||||
- **UnaryOp** → Merge into BinOp or eliminate
|
||||
- **Load** → Consolidate into BoxFieldLoad
|
||||
- **Store** → Consolidate into BoxFieldStore
|
||||
- **ArrayGet** → Use BoxFieldLoad with array indexing
|
||||
- **ArraySet** → Use BoxFieldStore with array indexing
|
||||
- **Cast** → Eliminate or merge into BinOp
|
||||
- **Copy** → Eliminate (optimization-specific)
|
||||
- **Debug** → Remove from MIR (keep as separate system)
|
||||
- **Print** → Use Call with print function
|
||||
- **Throw** → Use Call with exception function
|
||||
- **Catch** → Use Call with catch handler
|
||||
- **RefNew** → Eliminate (use NewBox)
|
||||
- **TypeCheck** → Use Compare with type introspection
|
||||
- **BarrierRead/BarrierWrite** → Consolidate into AtomicFence
|
||||
- **FutureNew/FutureSet/Await** → Use BoxCall with Future methods
|
||||
|
||||
## Effect System Mapping
|
||||
|
||||
### Current → New Effect Categories
|
||||
- **Pure**: Const, BinOp, Compare, Phi, RefGet, WeakNew, WeakLoad, WeakCheck
|
||||
- **Mut**: BoxFieldStore, RefSet, Adopt, Release, MemCopy
|
||||
- **Io**: Send, Recv, Safepoint, AtomicFence
|
||||
- **Control**: Branch, Jump, Return, TailCall
|
||||
- **Context-dependent**: Call, BoxCall
|
||||
|
||||
## Implementation Strategy
|
||||
|
||||
### Phase 1: Core Instruction Consolidation
|
||||
1. Rename Load → BoxFieldLoad
|
||||
2. Rename Store → BoxFieldStore
|
||||
3. Remove eliminated instructions
|
||||
4. Add missing new instructions
|
||||
|
||||
### Phase 2: Effect System Update
|
||||
1. Update effect classification to 4 categories
|
||||
2. Update all instruction effect mappings
|
||||
3. Implement effect-based optimization rules
|
||||
|
||||
### Phase 3: Backend Updates
|
||||
1. Update Interpreter backend
|
||||
2. Update VM backend
|
||||
3. Update WASM backend
|
||||
4. Ensure all support exactly 25 instructions
|
||||
|
||||
### Phase 4: Verification System
|
||||
1. Implement ownership forest verification
|
||||
2. Add strong cycle detection
|
||||
3. Add weak reference safety checks
|
||||
4. Implement RefSet ownership validation
|
||||
Reference in New Issue
Block a user