Inside Radix
Radix compiler#
Radix Faber कंपाइलर है। यह एक निजी क्रेट (radix/) है, जो स्रोत टेक्स्ट से लक्ष्य बैकएंड तक की पूरी कंपाइलेशन पाइपलाइन लागू करता है।
पाइपलाइन#
Radix Faber स्रोत को तीन मध्यवर्ती निरूपणों के माध्यम से निम्नतर स्तर पर लाता है:
- HIR (High-level IR) — सिमैंटिक कोर। रीडर लोकेल एकीकरण, टाइप जाँच और HIR-प्रत्यक्ष बैकएंड यहीं काम करते हैं।
- MIR (Mid-level IR) — निष्पादन-आधारित IR। यही सिमैंटिक स्वामित्व सीमा है, जहाँ बॉरोइंग और इफ़ेक्ट विश्लेषण चलते हैं।
- AIR (Autodiff IR) — स्वचालित अवकलन और फ़्यूज़न के लिए शुद्ध-फ़ंक्शनल रूपांतरण, जिसका उपयोग GPU लक्ष्य लेन करती हैं।
लक्ष्य लेन#
| लेन | IR | आउटपुट | स्थिति |
|---|---|---|---|
| CPU रनटाइम | MIR | FMIR (Rust रनटाइम) | जारी |
| LLVM | MIR | LLVM टेक्स्ट | प्रायोगिक |
| WASM | MIR | WebAssembly टेक्स्ट | प्रायोगिक |
| TypeScript | HIR | TypeScript स्रोत | प्रायोगिक |
| Go | HIR | Go स्रोत | प्रायोगिक |
| GPU/WGSL | AIR | WGPU के माध्यम से WGSL | प्रायोगिक |
आर्किटेक्चर#
Radix, LLVM को एम्बेड करने के बजाय टेक्स्ट-उत्सर्जन का तरीका अपनाता है। लक्ष्य बैकएंड अपनी-अपनी भाषाओं में टेक्स्ट तैयार करते हैं, जिसे बाद में लक्ष्य के अपने टूलचेन द्वारा कंपाइल किया जाता है। इससे कंपाइलर आत्मनिर्भर रहता है और लक्ष्य आउटपुट मानव-पठनीय बना रहता है।
डायग्नॉस्टिक्स#
Radix स्थिर पहचानकर्ताओं वाले संरचित डायग्नॉस्टिक कोड उत्सर्जित करता है:
LEX0xx— लेक्सर त्रुटियाँPARSE0xx— पार्सर त्रुटियाँSEM0xx— सिमैंटिक विश्लेषण त्रुटियाँDEFER0xx— स्थगित सुविधाएँ (सही सिंटैक्स, अभी लागू नहीं)
हर डायग्नॉस्टिक को faber explain <code> के माध्यम से समझाया जा सकता है।
Radix compiler architecture#
Translation status: This page is currently available in English.