मुख्य कंटेंट तक स्किप करें

Wave + Whale एकीकृत विकास रोडमैप v2

संपूर्ण चरण

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

प्री-बेटा चरण

लक्ष्य: 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


अल्फा चरण

लक्ष्य: Whale का एकीकरण शुरू करना, LLVM के साथ समानांतर उपयोग / Whale-बेस्ड बैकएंड लागू करना शुरू

मुख्य विशेषताएँ

  • LLVM डिफ़ॉल्ट बैकएंड होगा
  • Whale वैकल्पिक बैकएंड होगा
  • --backend विकल्प के जरिए Wave कोड चलाते समय बैकएंड चुनना संभव
wavec run main.wave --backend=whale
wavec run main.wave --backend=llvm

Whale संबंधित कार्य

  • Whale IR की संरचना का डिज़ाइन और परिभाषा (Instruction, Value, Block आदि)

  • Whale के लिए IR जनरेटर का कार्यान्वयन

  • Whale कोड जनरेटर (Assembly या Binary)

  • Whale-विशिष्ट टाइप्स (जैसे i1024, उन्नत पॉइंटर टाइप)

चेकपॉइंट्स

  • Whale से “Hello World” प्रिंट करना

  • Whale में वेरिएबल डिक्लेरेशन और असाइनमेंट

  • Whale IR के लिए डिबगिंग टूल्स बनाना

  • Whale में पॉइंटर टाइप हैंडल करना

  • Wave → Whale IR में रूपांतरण शुरू करना


बीटा चरण

लक्ष्य: पूरी तरह से Whale में स्विच करना, LLVM को हटाना। Whale + Wave संयोजन का अनुकूलन

मुख्य विशेषताएँ

  • केवल Whale का उपयोग

  • LLVM को पूरी तरह हटाना (डिपेंडेंसी और मॉड्यूल सहित)

  • कोड ऑप्टिमाइज़ेशन पर केंद्रित

  • IR से निष्पादन तक तेज़ और कुशल प्रक्रिया

ऑप्टिमाइज़ेशन का दायरा

  • Whale IR के लिए ऑप्टिमाइजेशन पास डिज़ाइन करना

  • Whale कोड जनरेशन की स्पीड सुधारना

  • Whale में Wave की सभी सिंटैक्स का पूर्ण समर्थन

परीक्षण

  • यूनिट टेस्ट + संपूर्ण टेस्ट सूट

  • WSON और स्टैंडर्ड लाइब्रेरी के साथ संगतता परीक्षण

  • Whale के क्रॉस-प्लेटफॉर्म बिल्ड की पुष्टि


RC (रिलीज़ कैंडिडेट) चरण

लक्ष्य: Wave का बूटस्ट्रैप शुरू करना — Rust को पूरी तरह हटाना

मुख्य विशेषताएँ

  • Wave कंपाइलर को Wave भाषा में दोबारा लिखना शुरू

  • Whale के आधार पर Wave कोड चलाना

  • Whale सेल्फ-होस्टिंग अवस्था में प्रवेश करेगा

कार्य की सीमा

  • Whale-आधारित Wave IR जनरेटर को फिर से लिखना

  • Rust हटाना और उसे Wave कोड से बदलना

  • std और core लाइब्रेरी को Wave में लिखना

  • बूटस्ट्रैप सफल होने पर Wave का पहला नेटिव कंपाइलर जन्म लेगा


रिलीज़ चरण (v0.0.1)

लक्ष्य: आधिकारिक रिलीज़ / पूर्ण Whale-आधारित स्वतंत्र भाषा पारिस्थितिकी तंत्र प्रदान करना

घटक

  • Wave (भाषा और स्टैंडर्ड लाइब्रेरी)

  • Whale (कंपाइलर टूलचेन)

  • Vex (पैकेज मैनेजर)

  • WSON (डेटा फ़ॉर्मेट)

विशेषताएँ

  • पूरी तरह Wave-ऑनली कंपाइलर (सफल बूटस्ट्रैप)

  • Whale पूरी तरह ऑप्टिमाइज़

  • Vex बिल्ड और डिप्लॉयमेंट सिस्टम स्थापित

  • WSON पार्सर + सीरियलाइज़ेशन शामिल

  • क्रॉस-OS बिल्ड सपोर्ट (vex build --windows आदि)


विकास की मेटा-रणनीति

रणनीतिविवरण
ट्रेन + पटरी रणनीतिWhale का विकास करते हुए समानांतर में Wave के लिए बैकएंड बनाना
बैकएंड ब्रांच रणनीति--backend विकल्प के ज़रिए LLVM/Whale का चयन, alpha चरण में महत्वपूर्ण
संरचना उलटने की योजनाRC चरण के बाद Wave, Whale के माध्यम से खुद को कंपाइल करेगा