Aller au contenu principal

Feuille de Route Intégrée Wave + Whale v2

Phases Globales

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

Phase Pre-Beta

Objectif : Finaliser le frontend du langage Wave + implémenter toutes les fonctionnalités avec le backend LLVM

Caractéristiques Principales

  • Utilisation exclusive de LLVM (sans Whale)

  • Aucune nouvelle syntaxe, uniquement les spécifications existantes

  • Stabilisation de la structure centrée sur le frontend : messages d’erreur, vérification des types, portée des variables, etc.

Portée de l’Implémentation

  • Déclaration de variables, affichage, opérations

  • Définition et appel de fonctions

  • if / else if / else

  • while / break / continue

  • Affichage formaté, déclaration de type explicite

  • Conception des pointeurs (format ptr<T>)

  • Conception des tableaux (format array<T, N>)

  • Vérification des types et AST structuré

Technologies Utilisées

  • Rust (ensemble du compilateur Wave)

  • LLVM (génération IR, exécution AOT)

  • inkwell / llvm-sys


Phase Alpha

Objectif : Démarrer l'intégration de Whale, utilisation parallèle avec LLVM / Commencer le backend basé sur Whale

Caractéristiques Principales

  • LLVM est le backend par défaut

  • Whale est un backend optionnel

  • Possibilité de choisir le backend via l’option --backend

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

Tâches Liées à Whale

  • Conception et définition de la structure IR de Whale (Instruction, Value, Block, etc.)

  • Implémentation du générateur IR pour Whale

  • Générateur de code Whale (assembleur ou binaire)

  • Types spécifiques à Whale (ex. : i1024, pointeurs avancés)

Jalons

  • Affichage de “Hello World” avec Whale

  • Déclaration/affectation de variables dans Whale

  • Outils de débogage pour l’IR de Whale

  • Gestion des types pointeurs dans Whale

  • Début de la conversion Wave → Whale IR


Phase Beta

Objectif : Passage complet à Whale, suppression de LLVM. Optimisation de la combinaison Whale + Wave

Caractéristiques Principales

  • Utilisation exclusive de Whale

  • Suppression complète de LLVM (dépendances et modules)

  • Priorité à l’optimisation du code

  • Passage rapide et efficace de l’IR à l’exécution

Portée de l’Optimisation

  • Conception de passes d’optimisation pour l’IR Whale

  • Accélération de la génération de code Whale

  • Prise en charge complète de toute la syntaxe de Wave avec Whale

Tests

  • Tests unitaires + suite de tests complète

  • Tests de compatibilité avec WSON et la bibliothèque standard

  • Vérification des builds Whale multiplateformes


Phase RC (Release Candidate)

Objectif : Démarrer le bootstrapping de Wave — supprimer totalement le code Rust

Caractéristiques Principales

  • Réécriture du compilateur Wave en Wave

  • Exécution du code Wave avec Whale comme backend

  • Whale entre dans la phase d’auto-hébergement (self-hosting)

Portée des Travaux

  • Réécriture du générateur IR de Wave en utilisant Whale

  • Suppression de Rust, remplacement par du code Wave

  • Écriture des bibliothèques std et core en Wave

  • Un bootstrapping réussi donne naissance au premier compilateur natif Wave


Phase de Lancement (v0.0.1)

Objectif : Lancement officiel / Fournir un écosystème linguistique totalement indépendant basé sur Whale

Composants

  • Wave (langage et bibliothèque standard)

  • Whale (toolchain du compilateur)

  • Vex (gestionnaire de paquets)

  • WSON (format de données)

Points Clés

  • Compilateur 100 % Wave-only (bootstrapping réussi)

  • Optimisation complète de Whale

  • Système de build et déploiement via Vex opérationnel

  • Parser + sérialisation WSON inclus

  • Compilation multi-OS possible (vex build --windows, etc.)


Stratégie de Développement (Métastratégie)

StratégieDescription
Stratégie Train + RailDévelopper Whale tout en construisant le backend Wave en parallèle
Stratégie de BifurcationChoix entre LLVM/Whale via l’option --backend, essentiel en phase alpha
Plan d’Inversion StructurelleDès la phase RC, Wave se compile lui-même via Whale