Saltar al contenido principal

Hoja de Ruta Integrada de Desarrollo: Wave + Whale v2

Fases Generales

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

Fase Pre-Beta

Objetivo: Completar el frontend del lenguaje Wave + implementar todas las funciones usando el backend LLVM

Características Principales

  • Uso exclusivo de LLVM (sin Whale)

  • No se añade nueva sintaxis; solo se implementan las especificaciones existentes

  • Estabilización de la estructura centrada en el frontend: mensajes de error, verificación de tipos, ámbito de variables, etc.

Alcance de Implementación

  • Declaración de variables, salida, operaciones

  • Definición y llamada de funciones

  • if / else if / else

  • while / break / continue

  • Salida formateada, declaración explícita de tipos

  • Diseño de punteros (formato ptr<T>)

  • Diseño de arreglos (formato array<T, N>)

  • Verificación de tipos y AST estructurado

Tecnologías Usadas

  • Rust (todo el compilador de Wave)

  • LLVM (generación de IR, ejecución AOT)

  • inkwell / llvm-sys


Fase Alpha

Objetivo: Comenzar la integración de Whale, uso paralelo con LLVM / Iniciar implementación del backend basado en Whale

Características Principales

  • LLVM es el backend predeterminado

  • Whale es un backend opcional

  • La ejecución de código Wave se puede dividir usando la opción --backend

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

Tareas Relacionadas con Whale

  • Diseño y definición de la estructura IR de Whale (Instrucción, Valor, Bloque, etc.)

  • Implementación del generador de IR para Whale

  • Generador de código para Whale (ensamblador o binario)

  • Tipos exclusivos de Whale (ej. i1024, punteros avanzados)

Puntos de Control

  • Imprimir "Hello World" con Whale

  • Declaración/asignación de variables en Whale

  • Herramientas de depuración para IR de Whale

  • Manejo de punteros en Whale

  • Iniciar conversión: Wave → Whale IR


Fase Beta

Objetivo: Transición total a Whale, eliminar LLVM. Optimizar la combinación Whale + Wave

Características Principales

  • Uso exclusivo de Whale

  • Eliminación completa de LLVM (dependencias y módulos)

  • Enfoque en la optimización del código

  • IR → ejecución rápida y eficiente

Alcance de Optimización

  • Diseño de optimizaciones para IR de Whale

  • Mejora de velocidad en la generación de código Whale

  • Soporte completo de toda la sintaxis de Wave en Whale

Pruebas

  • Pruebas unitarias + suite de pruebas completa

  • Pruebas de compatibilidad con WSON y la biblioteca estándar

  • Validación de builds multiplataforma de Whale


Fase RC (Release Candidate)

Objetivo: Comenzar el bootstrapping de Wave — eliminar completamente el código Rust

Características Principales

  • Reescribir el compilador de Wave usando el propio lenguaje Wave

  • Ejecutar código Wave basado en Whale

  • Whale entra en etapa self-hosting

Alcance de Trabajo

  • Reescribir el generador de IR de Wave basado en Whale

  • Eliminar Rust y reemplazar con código Wave

  • Escribir bibliotecas std y core en Wave

  • Con bootstrapping exitoso, nace el primer compilador nativo de Wave


Fase de Lanzamiento (v0.0.1)

Objetivo: Lanzamiento oficial / Proveer un ecosistema de lenguaje completamente independiente basado en Whale

Componentes

  • Wave (lenguaje y biblioteca estándar)

  • Whale (toolchain del compilador)

  • Vex (gestor de paquetes)

  • WSON (formato de datos)

Características

  • Compilador completamente hecho en Wave (bootstrapping exitoso)

  • Whale completamente optimizado

  • Sistema de build y despliegue con Vex establecido

  • Incluye parser + serialización de WSON

  • Soporte para build multiplataforma (vex build --windows, etc.)


Estrategia Meta de Desarrollo

EstrategiaDescripción
Estrategia Tren + RielesDesarrollar Whale mientras se construye el backend de Wave en paralelo
Estrategia de Branch BackendSelección de LLVM o Whale mediante la opción --backend, clave en la fase alpha
Plan de Inversión EstructuralA partir de la fase RC, Wave compila a sí mismo a través de Whale