Wave + Whale integrierte Entwicklungs-Roadmap v2
Alle Stufen
pre-alpha → pre-beta → alpha → beta → rc → Veröffentlichung
Pre-Beta Stufe
Ziel: Vollständige Frontend-Entwicklung der Wave-Sprache + vollständige Implementierung der Funktionen mit LLVM Backend
Hauptmerkmale
-
Nur LLVM verwenden (kein Whale)
-
Keine Hinzufügung von Syntax, nur Implementierung der bestehenden Spezifikationen
-
Stabilisierung der frontend-zentrierten Struktur einschließlich Fehlermeldungen, Typenprüfung, Variablenscope
Umfang der Implementierung
-
Variable Deklaration, Ausgabe, Berechnung
-
Funktionen definieren und aufrufen
-
if / else if / else
-
while / break / continue
-
Formatierte Ausgabe, Typenangabe
-
Zeigerdesign (
ptr<T>
-Format) -
Array-Design (
array<T, N>
)B -
Typenprüfung und strukturelles AST
Verwendete Technologien
-
Rust (gesamter Wave-Compiler)
-
LLVM (IR-Erzeugung, AOT-Ausführung)
-
inkwell / llvm-sys
Alpha-Stufe
Ziel: Einführung von Whale, parallel mit LLVM verwenden / Implementierung eines Whale-basierten Backends beginnen
Hauptmerkmale
-
LLVM ist das Standard-Backend
-
Whale ist ein optionales Backend
-
Beim Ausführen von Wave-Code mit der Option
--backend
steuerbar
wavec run main.wave --backend=whale
wavec run main.wave --backend=llvm
Arbeiten im Zusammenhang mit Whale
-
Entwurf und Definition der Whale-IR-Struktur (Instruction, Value, Block usw.)
-
Implementierung eines IR-Generators für Whale
-
Whale-Code-Generator (Assembly oder Binary)
-
Typenimplementierung, die nur mit Whale möglich ist (
i1024
, erweitere Zeiger usw.)
Checkpoint
-
Ausgabe von Hello World mit Whale
-
Variablendeklaration/-zuweisung in Whale
-
Implementierung eines IR-Debugging-Tools für Whale
-
Zeigertypenbehandlung in Whale
-
Umwandlung von Wave zu Whale IR
Beta-Stufe
Ziel: Vollständige Umstellung auf Whale, Entfernen von LLVM. Optimierung der Whale + Wave-Kombination
Hauptmerkmale
-
Nur Whale verwenden
-
Vollständige Entfernung von LLVM (Abhängigkeiten und Module)
-
Fokus auf Code-Optimierung
-
Schnell und effizient von IR bis zur Ausführung
Optimierungsbereich
-
Whale IR Optimierung Pass Design
-
Verbesserung der Whale-Code-Erstellungsgeschwindigkeit
-
Alle Syntax von Wave wird von Whale vollständig unterstützt
Test
-
Einzeltest + vollständiges Testsuite
-
WSON, Standardbibliothekskompatibilitätstest
-
Überprüfung des plattformübergreifenden Whale-Builds
RC (Release Candidate) Phase
Ziel: Start des Wave-Bootstraps - vollständige Entfernung des Rust-Codes
Hauptmerkmale
-
Beginn der Neuschreibung des Wave-Compilers mit Wave
-
Selbstausführung des Wave-Codes basierend auf Whale
-
Whale tritt in die Self-Hosting-Phase ein