Wave + Whale एकीकृत विकास रोडमैप v2
सम्पूर्ण चरण
pre-alpha → pre-beta → alpha → beta → rc → release
Pre-Beta चरण
उद्देश्य: Wave भाषा के फ्रंटएंड को पूरा करना + LLVM बैकएंड के उपयोग से संपूर्ण कार्यक्षमता कार्यान्वयन।
मुख्य विशेषताएँ
-
केवल LLVM का उपयोग (Whale नहीं)
-
कोई नया व्याकरण नहीं जोड़ा गया है, केवल मौजूदा विशिष्टताओं को कार्यान्वित किया गया है।
-
त्रुटि संदेश, प्रकार जांच, वेरिएबल दायरा आदि की फ्रंट-केंद्रित संरचना का स्थिरीकरण।
कार्यान्वयन दायरा
-
वेरिएबल घोषणा, आउटपुट, ऑपरेशन
-
फ़ंक्शन परिभाषा और कॉल
-
अगर / अन्य यदि / नहीं तो
-
जबकि / ब्रेक / जारी रखें
-
फॉर्मेट आउटपुट, प्रकार निर्दिष्ट
-
पॉइंटर डिज़ाइन (
ptr<T>प्रारूप) -
ऐरे डिज़ाइन (
array<T, N>) -
प्रकार जाँच और संरचनात्मक AST
प्रयुक्त तकनीक
-
रस्ट (वेव कंपाइलर संपूर्ण)
-
LLVM (IR निर्माण, AOT निष्पादन)
-
इंकवेल / llvm-sys
अल्फा चरण
लक्ष्य: वहले की शुरुआत, LLVM के साथ समांतर उपयोग / व्हेल आधारित बैकएंड की शुरुआत कार्यान्वयन
मुख्य विशेषताएँ
-
LLVM डिफ़ॉल्ट बैकएंड है
-
व्हेल वैकल्पिक बैकएंड है
-
वेव कोड निष्पादन के समय
--backendविकल्प द्वारा विभाजन संभव
wavec चलाएं main.wave --backend=whale
wavec चलाएं main.wave --backend=llvm
व्हेल संबंधित कार्य
-
व्हेल IR संरचना की डिज़ाइन और परिभाषा (अनुदेश, मान, ब्लॉक इत्यादि)
-
व्हेल के लिए IR जनरेटर कार्यान्वयन
-
व्हेल कोड जनरेटर (असेंबली या बाइनरी)
-
केवल व्हेल के लिए उपलब्ध प्रकार कार्यान्वयन (
i1024, उच्च स्तरीय पॉइंटर्स इत्यादि)
चेकपॉइंट
-
व्हेल पर हैलो वर्ल्ड आउटपुट
-
व्हेल में वेरिएबल घोषणा/आवंटन
-
व्हेल IR डीबगिंग उपकरण कार्यान्वयन
-
व्हेल में पॉइंटर प्रकार हैंडलिंग
-
वेव → व्हेल IR परिवर्तन प्रगति
बेटा चरण
लक्ष्य: पूरी तरह से व्हेल में परिवर्तन, LLVM हटाना। व्हेल + वेव संयोजन अनुकूलन
मुख्य विशेषताएँ
-
केवल व्हेल का उपयोग
-
LLVM का सम्पूर्ण हटाना (निर्भरता और मापांक)
-
कोड अनुकूलन केंद्रित
-
IR → निष्पादन तक शीघ्र और कुशलता से
अनुकूलन दाय रा
-
व्हेल IR अनुकूलन पास डिज़ाइन
-
व्हेल कोड निर्माण गति में सुधार
-
वेव की सभी व्याकरण व्हेल में पूर्ण समर्थन
परीक्षण
-
यूनिट परीक्षण + सम्पूर्ण परीक्षण सूट
-
WSON, मानक लाइब्रेरी संगतता परीक्षण
-
क्रॉस प्लेटफॉर्म व्हेल बिल्ड सत्यापन
RC (रिलीज़ उम्मीदवार) चरण
लक्ष्य: वेव बूटस्ट्रैप की शुरुआत - रस्ट कोड का सम्पूर्ण हटाना
मुख्य विशेषताए ँ
-
Wave के साथ Wave कंपाइलर का पुनःलेखन आरंभ
-
Whale के आधार पर Wave कोड का स्व-निष्पादन
-
Whale ने self-hosting चरण में प्रवेश किया
कार्यान्वयन दायरा
-
Whale पर Wave IR जनरेटर का पुनःलेखन
-
Rust को हटाकर Wave कोड से प्रतिस्थापित
-
std और कोर लाइब्रेरी को Wave में लिखा गया
-
बूटस्ट्रैप की सफलता पर पहली Wave-नेटिव कंपाइलर की उत्पत्ति
रिलीज़ चरण (v0.0.1)
लक्ष्य: आधिकारिक लॉन्च / पूर्ण Whale-आधारित स्वतंत्र भाषा पार िस्थितिकी तंत्र प्रदान करना
घटक
-
Wave (भाषा और मानक लाइब्रेरी)
-
Whale कंपाइलर टूलचेन)
-
Vex पैकेज मैनेजर)
-
WSON (डेटा फॉर्मेट)
विशेषताएँ
-
पूर्ण Wave-only कंपाइलर (बूटस्ट्रैप का सफल होना)
-
Whale का अनुकूलन पूर्ण
-
Vex बिल्ड और वितरण प्रणाली का स्थिरीकरण
-
WSON पार्सर + सीरियलाईज़ेशन शामिल
-
क्रॉस OS बिल्ड संभव (
vex build --windowsआदि)
विकास मेटा रणनीति
| रणनीति | विवरण |
|---|---|
| ट्रेन+रेल रणनीति | Whale को विकसित करते समय साथ ही Wave बैकएंड का निर्माण करते हुए समानांतर में आगे बढ़ना |
| बैकएंड डिविजन रणनीति | --backend विकल्प के साथ LLVM/Whale का चयन, अल्फा में महत्वपूर्ण संरचना |
| संरचना उलटने की योजना | rc के बाद से Wave कोड के माध्यम से Whale द्वारा खुद को कंपाइल करना |