پرش به مطلب اصلی

نقشه راه توسعه‌ی یکپارچه Wave + Whale نسخه ۲

مراحل کلی

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

مرحله Pre-Beta

هدف: تکمیل فرانت‌اند زبان Wave + پیاده‌سازی کامل عملکردها با استفاده از بک‌اند LLVM

ویژگی‌های اصلی

  • استفاده فقط از LLVM (بدون Whale)

  • بدون افزودن دستور زبان جدید، فقط پیاده‌سازی مشخصات موجود

  • تثبیت ساختار متمرکز بر فرانت‌اند: پیام‌های خطا، بررسی نوع، دامنهٔ متغیرها و غیره

محدوده پیاده‌سازی

  • تعریف متغیر، خروجی گرفتن، عملیات ریاضی

  • تعریف و فراخوانی تابع

  • if / else if / else

  • while / break / continue

  • چاپ فرمت‌شده، تعیین نوع به‌صورت صریح

  • طراحی اشاره‌گرها (فرمت ptr<T>)

  • طراحی آرایه‌ها (فرمت array <T, N>)

  • بررسی نوع‌ها و ساخت AST ساختاریافته

فناوری‌های مورد استفاده

  • Rust (کل کامپایلر Wave)

  • LLVM (تولید IR و اجرای AOT)

  • inkwell / llvm-sys


مرحله Alpha

هدف: آغاز یکپارچه‌سازی Whale، استفاده هم‌زمان با LLVM / شروع پیاده‌سازی بک‌اند مبتنی بر Whale

ویژگی‌های اصلی

  • LLVM بک‌اند پیش‌فرض است

  • Whale بک‌اند اختیاری است

  • انتخاب بک‌اند هنگام اجرای کد Wave با گزینه --backend

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

کارهای مرتبط با Whale

  • طراحی و تعریف ساختار IR در Whale (دستورالعمل، مقدار، بلاک و غیره)

  • پیاده‌سازی IR Generator برای Whale

  • تولیدکننده کد برای Whale (اسمبلی یا باینری)

  • پیاده‌سازی انواع خاص Whale (مثل i1024، اشاره‌گرهای پیشرفته)

نقاط کلیدی

  • چاپ “Hello World” با استفاده از Whale

  • تعریف/اختصاص متغیر در Whale

  • پیاده‌سازی ابزارهای دیباگ برای IR در Whale

  • پشتیبانی از نوع اشاره‌گر در Whale

  • آغاز تبدیل Wave → IR مخصوص Whale


مرحله Beta

هدف: انتقال کامل به Whale، حذف LLVM. بهینه‌سازی ترکیب Whale + Wave

ویژگی‌های اصلی

  • فقط از Whale استفاده می‌شود

  • حذف کامل LLVM (ماژول‌ها و وابستگی‌ها)

  • تمرکز بر بهینه‌سازی کد

  • از IR تا اجرا، سریع و کارآمد

محدوده بهینه‌سازی

  • طراحی Passهای بهینه‌سازی برای IR در Whale

  • افزایش سرعت تولید کد Whale

  • پشتیبانی کامل از تمام دستور زبان Wave در Whale

آزمون‌ها

  • آزمون‌های واحد + مجموعه کامل تست‌ها

  • آزمون سازگاری با WSON و کتابخانه استاندارد

  • بررسی ساخت Whale برای سیستم‌عامل‌های مختلف


مرحله RC (نسخه کاندید انتشار)

هدف: آغاز بوت‌استرپ Wave — حذف کامل کد Rust

ویژگی‌های اصلی

  • شروع بازنویسی کامپایلر Wave با خود زبان Wave

  • اجرای کد Wave با استفاده از بک‌اند Whale

  • ورود Whale به مرحله self-hosting

محدوده کار

  • بازنویسی IR Generator برای Wave با استفاده از Whale

  • حذف Rust و جایگزینی آن با کد Wave

  • نوشتن کتابخانه‌های std و core با زبان Wave

  • با موفقیت در بوت‌استرپ، اولین کامپایلر بومی Wave متولد می‌شود


مرحله انتشار (نسخه v0.0.1)

هدف: انتشار رسمی / ارائه یک اکوسیستم مستقل کاملاً مبتنی بر Whale

اجزا

  • Wave (زبان و کتابخانه استاندارد)

  • Whale (زنجیره ابزار کامپایلر)

  • Vex (مدیر بسته)

  • WSON (فرمت داده)

ویژگی‌ها

  • کامپایلر کاملاً Wave-only (بوت‌استرپ موفق)

  • بهینه‌سازی کامل Whale

  • استقرار سیستم ساخت و توزیع با Vex

  • شامل parser و serializer برای WSON

  • پشتیبانی از ساخت کراس‌پلتفرم (مثل vex build --windows)


راهبرد فراگیر توسعه

راهبردتوضیح
راهبرد قطار + ریلتوسعه Whale هم‌زمان با ساخت بک‌اند Wave
راهبرد انشعاب بک‌اندانتخاب بین LLVM یا Whale با استفاده از --backend، مهم در مرحله alpha
طرح وارونگی ساختاراز مرحله RC به بعد، Wave خود را از طریق Whale کامپایل می‌کند