Zum Hauptinhalt springen

Wave + Whale Integrierte Entwicklungs-Roadmap v2

Gesamtphasen

pre-alpha → pre-beta → alpha → beta → rc → release

Pre-Beta-Phase

Ziel: Fertigstellung des Frontends der Wave-Sprache + vollständige Funktionalität mit LLVM-Backend

Hauptmerkmale

  • Nur Verwendung von LLVM (kein Whale)

  • Keine neue Syntax, nur Umsetzung der bestehenden Spezifikationen

  • Stabilisierung der frontendzentrierten Struktur: Fehlermeldungen, Typprüfung, Variablen-Gültigkeitsbereiche usw.

Implementierungsumfang

  • Variablendeklaration, Ausgabe, Operationen

  • Funktionsdefinition und -aufruf

  • if / else if / else

  • while / break / continue

  • Formatierte Ausgabe, explizite Typangabe

  • Zeigerdesign (ptr<T>-Format)

  • Array-Design (array<T, N>)

  • Typprüfung und strukturierter AST

Verwendete Technologien

  • Rust (gesamter Wave-Compiler)

  • LLVM (IR-Erzeugung, AOT-Ausführung)

  • inkwell / llvm-sys


Alpha-Phase

Ziel: Einführung von Whale beginnen, parallele Nutzung mit LLVM / Start der Implementierung des Whale-Backends

Hauptmerkmale

  • LLVM ist das Standard-Backend

  • Whale ist ein optionales Backend

  • Wave-Code kann mit der Option --backend ausgeführt werden

wavec run main.wave --backend=whale
wavec run main.wave --backend=llvm

Whale-bezogene Aufgaben

  • Entwurf und Definition der Whale-IR-Struktur (Instruction, Value, Block usw.)

  • Implementierung eines IR-Generators für Whale

  • Codegenerator für Whale (Assembly oder Binär)

  • Implementierung Whale-exklusiver Typen (z.B. i1024, erweiterte Zeigertypen)

Meilensteine

  • „Hello World“-Ausgabe mit Whale

  • Variablendeklaration/Zuweisung in Whale

  • Entwicklung von Whale-IR-Debugging-Tools

  • Zeigertyp-Behandlung in Whale

  • Wave → Whale IR-Konvertierung beginnen


Beta-Phase

Ziel: Vollständiger Wechsel zu Whale, Entfernung von LLVM. Optimierung der Kombination Whale + Wave

Hauptmerkmale

  • Ausschließlich Whale wird verwendet

  • Vollständige Entfernung von LLVM (Abhängigkeiten und Module)

  • Fokus auf Codeoptimierung

  • Effizienter und schneller Ablauf von IR zu Ausführung

Optimierungsumfang

  • Entwicklung von Optimierungs-Passes für Whale IR

  • Verbesserung der Whale-Codegenerierungsgeschwindigkeit

  • Vollständige Unterstützung aller Wave-Syntax in Whale

Tests

  • Unit-Tests + vollständige Testsuite

  • Kompatibilitätstests mit WSON und Standardbibliothek

  • Verifikation von plattformübergreifenden Whale-Builds


RC-Phase (Release Candidate)

Ziel: Start des Bootstrappings von Wave — vollständige Entfernung des Rust-Codes

Hauptmerkmale

  • Beginn der Neuschreibung des Wave-Compilers in Wave selbst

  • Ausführung von Wave-Code mit Whale-Backend

  • Whale erreicht Self-Hosting-Stadium

Aufgaben

  • Neuschreiben des Wave-IR-Generators auf Whale-Basis
  • Entfernung von Rust, Ersatz durch Wave-Code
  • Schreiben der std- und core-Bibliotheken in Wave
  • Erfolgreiches Bootstrapping führt zum ersten nativen Wave-Compiler

Release-Phase (v0.0.1)

Ziel: Offizieller Release / Bereitstellung eines vollständigen, Whale-basierten, unabhängigen Sprach-Ökosystems

Komponenten

  • Wave (Sprache und Standardbibliothek)

  • Whale (Compiler-Toolchain)

  • Vex (Paketmanager)

  • WSON (Datenformat)

Merkmale

  • Vollständig Wave-only Compiler (erfolgreiches Bootstrapping)

  • Whale vollständig optimiert

  • Vex-Build- und Deployment-System etabliert

  • Enthält WSON-Parser + Serialisierung

  • Plattformübergreifendes Bauen möglich (vex build --windows usw.)


Meta-Strategie für die Entwicklung

StrategieBeschreibung
Zug-und-Gleis-StrategieGleichzeitige Entwicklung von Whale und Aufbau des Wave-Backends
Backend-VerzweigungAuswahl zwischen LLVM/Whale mit --backend-Option, zentral in der Alpha-Phase
StrukturinversionsplanAb der RC-Phase kompiliert Wave sich selbst über Whale