Saltar al contenido principal

Hoja de ruta de desarrollo unificado de Wave + Whale v2

Todas las fases

pre-alpha → pre-beta → alpha → beta → rc → lanzamiento

Fase Pre-Beta

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

Características principales

  • Solo se usa LLVM (sin Whale)

  • No hay adiciones de sintaxis, solo implementación de las especificaciones existentes

  • Estabilización de la estructura enfocada en el frontend, como mensajes de error, verificación de tipos, y alcance de variables

Alcance de implementación

  • Declaración de variables, salida, operación

  • Definición y llamada de funciones

  • if / else if / else

  • while / break / continue

  • Formato de salida, especificación de tipos

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

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

  • Verificación de tipos y AST estructurado

Tecnologías utilizadas

  • Rust (todo el compilador Wave)

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

  • inkwell / llvm-sys


Fase Alpha

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

Características principales

  • LLVM es el backend predeterminado

  • Whale es el backend opcional

  • Es posible bifurcar mediante la opción --backend al ejecutar el código Wave

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

Trabajos relacionados con Whale

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

  • Implementación de un generador IR para Whale

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

  • Implementación de tipos posibles solo con Whale (i1024, punteros avanzados, etc.)

Punto de control

  • Salida de Hello World con Whale

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

  • Implementación de herramientas de depuración IR para Whale

  • Manejo de tipos de puntero en Whale

  • Proceso de conversión de Wave a Whale IR


Fase Beta

Objetivo: Cambio completo a Whale, eliminación de LLVM. Optimización de la combinación Whale + Wave

Características principales

  • Solo se usa Whale

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

  • Enfoque en la optimización del código

  • Desde IR hasta ejecución de manera rápida y eficiente

Alcance de la optimización

  • Diseño de optimización de Whale IR Pass

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

  • Soporte completo de todas las gramáticas de Wave en Whale

Prueba

  • Prueba unitaria + suite de pruebas completa

  • Prueba de compatibilidad del estándar de la biblioteca WSON

  • Verificación de la construcción de Whale multiplataforma


Etapa de RC (Release Candidate)

Objetivo: Iniciar bootstrap de Wave — Eliminar código Rust por completo

Características principales

  • Iniciar reescritura del compilador de Wave con Wave

  • Ejecución del código de Wave basado en Whale

  • Whale ingresa a la etapa de autoalojamiento

Alcance del trabajo

  • Reescribir el generador de Wave IR basado en Whale

  • Eliminación de Rust + sustitución por código Wave

  • Escritura de las bibliotecas std y core en Wave

  • Al nacer el primer compilador nativo de Wave cuando el bootstrap sea exitoso


Etapa de lanzamiento (v0.0.1)

Objetivo: Lanzamiento oficial / Provisión de un ecosistema de lenguaje independiente completamente basado en Whale

Componentes

  • Wave (idioma y biblioteca estándar)

  • Whale (cadena de herramientas del compilador)

  • Vex (gestor de paquetes)

  • WSON (formato de datos)

Características

  • Compilador exclusivo de Wave completo (bootstrap exitoso)

  • Optimización de Whale completada

  • Establecimiento del sistema de construcción y despliegue de Vex

  • Incluye parser WSON + serialización

  • Capacidad de construcción entre sistemas operativos (vex build --windows, etc.)


Estrategia de meta-desarrollo

EstrategiaDescripción
Estrategia de tren+rielDesarrollo concurrente de Whale mientras se configura simultáneamente el backend de Wave
Estrategia de ramificación del backendSelección de LLVM/Whale con la opción --backend, estructura crucial en la alpha
Plan de inversión de estructuraA partir de rc, el código de Wave se compila a sí mismo a través de Whale