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

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

مراحل کامل

پیش-آلفا → پیش-بتا → آلفا → بتا → نسخه کاندیدا → انتشار

مرحله پیش بتا

هدف: تکمیل قسمت جلویی زبان 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

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

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

  • LLVM به عنوان بک‌اند پیش‌فرض

  • Whale به عنوان بک‌اند انتخابی

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

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

فعالیت‌های مرتبط با Whale

  • طراحی و تعریف ساختار IR برای Whale (شامل Instruction، Value، Block و غیره)

  • پیاده‌سازی Generator IR برای 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 (Release Candidate)

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

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

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

  • اجرای خودکار کد Wave بر مبنای Whale

  • Whale وارد مرحله میزبانی خود می‌شود

محدوده کاری

  • بازنویسی Generator IR برای Wave بر مبنای Whale

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

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

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


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

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

اجزای تشکیل‌دهنده

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

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

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

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

ویژگی‌ها

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

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

  • سیستم ساخت و توزیع Vex تثبیت شد

  • شامل تجزیه‌گر WSON و سریال‌سازی

  • امکان ساخت چند سکویی OS (vex build --windows و غیره)


استراتژی متای توسعه

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