Zum Hauptinhalt springen

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

Arbeitsumfang

  • Neuschreibung des Wave IR-Generators auf Whale-Basis

  • Entfernung von Rust + Ersatz durch Wave-Code

  • Erstellung der std- und core-Bibliotheken mit Wave

  • Bei erfolgreichem Bootstrap entsteht der erste native Wave-Compiler


Release-Phase (v0.0.1)

Ziel: Offizielle Veröffentlichung / Bereitstellung eines vollständigen Whale-basierten unabhängigen Sprachökosystems

Komponenten

  • Wave (Sprache und Standardbibliothek)

  • Whale (Compiler Toolchain)

  • Vex (Paketmanager)

  • WSON (Datenformat)

Merkmale

  • Vollständiger Wave-only Compiler (Bootstrap-Erfolg)

  • Whale-Optimierung abgeschlossen

  • Implementierung des Vex-Build- und -Verteilungssystems

  • Einschließlich WSON-Parser + Serialisierung

  • Cross-OS-Build möglich (vex build --windows etc.)


Entwicklung Meta-Strategie

StrategieBeschreibung
Zug+Schienen StrategieParallel zur Entwicklung von Whale wird gleichzeitig das Wave-Backend aufgebaut
Backend-ZweigstrategieAuswahl von LLVM/Whale mit der --backend-Option, wichtige Struktur in Alpha
Plan zur StrukturumkehrungNach rc kompiliert der Wave-Code sich selbst über Whale