इस प्रोजेक्ट के बारे में
LAMINARIA (Rust Nim Unified Toolchain) एक अनुसंधान और विकास परियोजना है जो Rust और Nim के लिए एकीकृत गणनात्मक मॉडल और टूलचेन का अन्वेषण करती है। Cargo, rustc, Nimble, Nim, LLVM, LTO, लिंकर्स और WebAssembly टूलिंग को बाहरी बिल्ड स्क्रिप्ट द्वारा जुड़े अस्पष्ट कमांड्स के रूप में नहीं, बल्कि स्रोत से निष्पादन योग्य तक के मार्ग को एक स्पष्ट एक्शन ग्राफ़ में विभाजित किया जाता है:
Source Graph → Compiler Pipeline → Unified Program Graph → Variant / Artifact Graph → Backend Pipeline Graph → Action Graph → Nim Planning Kernel → Rust Runtime Scheduler
परियोजना Rust कंपाइलर चरणों जैसे HIR, MIR, मोनोमॉर्फ़िज़ेशन, कोडजेन यूनिट्स, rustc_codegen_ssa, LLVM, Cranelift और GCC बैकएंड, LTO, ऑब्जेक्ट जेनरेशन और लिंकिंग को Nim फ्रंटएंड, सिमैंटिक प्रोसेसिंग, बैकएंड कोड जेनरेशन, नेटिव कंपाइलेशन और लिंकिंग के साथ साथ अध्ययन करती है। LLVM को कई संभावित कोड‑जेनरेशन मार्गों में से एक चयन योग्य विकल्प के रूप में माना जाता है, न कि स्थायी आधार, और WebAssembly को एक टार्गेट पाइपलाइन (कोड जेनरेशन, wasm-ld, पोस्ट‑लिंक ऑप्टिमाइज़ेशन, WIT/एडैप्टर, कंपोनेंटाइज़ेशन) के रूप में मॉडल किया जाता है, न कि बैकएंड मूल्य के रूप में।
कंपाइलर संस्करण को प्रथम‑श्रेणी के ग्राफ़ आयाम के रूप में संभाला जाता है। डिज़ाइन का लक्ष्य कई सटीक Rust टूलचेन के साथ-साथ Nim 2 और Nim 3/Nimony को समर्थन देना है, पैकेज और वर्कस्पेस प्रतिबंधों को चयनित टूलचेन तक हल करना, और रन, एक्शन, आर्टिफैक्ट, कैश और संगतता निर्णयों में उत्पन्न करने वाले कंपाइलर की पहचान को संरक्षित रखना। क्योंकि आंतरिक वैरिएंट स्पेस बड़ा हो सकता है, परियोजना प्रमाण‑आधारित Validated Toolchain Profiles (जैसे recommended, latest‑validated, long‑term, preview) पर ज़ोर देती है, जहाँ प्रोफ़ाइल उपनाम अपरिवर्तनीय सटीक बंडल रिवीजन की ओर इशारा करते हैं, साथ ही इंटेंट प्रीसेट और विशेषज्ञ ग्राफ़ प्रतिबंध भी होते हैं।
टूल उपयोगिता स्वयं एक परियोजना लक्ष्य के रूप में घोषित है: सामान्य पथ पहले प्रतिबंध समाधान और प्रूनिंग है, फिर छोटे क्रमबद्ध प्रमाण‑आधारित वैध योजनाओं का सेट, और अंत में निष्पादन। ज्ञात असंगतियों को संरचित नकारात्मक ज्ञान के रूप में रखा जाता है ताकि समान विफलताओं को दोबारा खोजने की आवश्यकता न पड़े। व्यापक ब्रूट‑फ़ोर्स अन्वेषण को डिफ़ॉल्ट अनुभव के बजाय स्पष्ट शोध मोड के रूप में रखा गया है।
आर्किटेक्चर जिम्मेदारी के आधार पर विभाजित है, न कि भाषा के आधार पर: एक Nim Planning Kernel ग्राफ़ सामान्यीकरण, प्रतिबंध समाधान, संयोजनात्मक समाधान, आर्टिफैक्ट‑डिमांड प्रसार, प्रूनिंग और क्रिटिकल‑पाथ विश्लेषण संभालता है, जबकि एक Rust Runtime Scheduler CLI, टूलचेन खोज, OS इंटरैक्शन, प्रोसेस निष्पादन, संसाधन लेखांकन, कैश/CAS, डेमन सेवाएँ, मापन और ट्रेसिंग, तथा शेड्यूलिंग को संभालता है।
आज रिपॉज़िटरी में मौजूद चीज़ पर्यावरण और टूलचेन पहचान परत है। रिपॉज़िटरी‑स्वामित्व वाला मल्टी‑टूलचेन लॉक (toolchains.lock.toml) डॉक्टर कमांड द्वारा सटीक EnvironmentFingerprint और ToolchainFingerprint रिकॉर्ड में हल किया जाता है:
scripts/bootstrap.sh लॉक फ़ाइल के विरुद्ध लापता टूल्स को रिपोर्ट करता है; --install विकल्प उन्हें इंस्टॉल भी करता है (macOS/Homebrew साथ rustup)। बूटस्ट्रैप स्क्रिप्ट जहाँ संभव हो सटीक, गैर‑सिस्टम‑पैकेज‑मैनेजर स्रोतों को प्राथमिकता देती है (llvm‑tools के साथ rustup टूलचेन, सटीक Nim संस्करणों के लिए choosenim, शुद्ध‑Rust CLI टूल्स के लिए cargo install --version), और केवल उन टूल्स के लिए सिस्टम पैकेज मैनेजर पर fallback करती है जिनके पास वैकल्पिक नहीं है, जैसे clang/llvm-config और Binaryen का wasm‑opt।
cargo run -p laminaria-cli -- doctor एक मानव‑पठनीय पर्यावरण रिपोर्ट प्रिंट करता है, और --json मशीन‑पठनीय फ़िंगरप्रिंट्स देता है। एक docker/bootstrap.Dockerfile समान स्टैक को कंटेनर में चलाता है ताकि पुनरुत्पादक बूटस्ट्रैप जाँचें की जा सकें; मापन दस्तावेज़ीकरण के अनुसार यह केवल शुद्धता पुनरुत्पादन के लिए है, और डॉक्टर रिकॉर्ड environment_class = "container" सेट करता है ताकि कंटेनर रन को मूल बेसलाइन के साथ मौन तुलना न किया जाए।
दस्तावेज़ीकरण अंग्रेज़ी और जापानी दोनों में उपलब्ध है, जिसमें एजेंट‑ओरिएंटेड टूलचेन UX और बाउंडेड प्लानिंग, वैध टूलचेन प्रोफ़ाइल और प्रोग्रेसिव कॉन्फ़िगरेशन, मल्टी‑वर्ज़न Rust/Nim टूलचेन नीति, मापन आधार और पर्यावरण/ट्रेस रणनीति, बैकएंड पाइपलाइन व्हाइट‑बॉक्सिंग, शोध आधार, शोध कार्यक्रम और प्रमाण नीति, Rust‑Nim नेटिव लिंकिंग, मीट्रिक‑फ़र्स्ट रिसर्च नीति, इश्यू प्लान और प्रोजेक्ट प्रस्ताव शामिल हैं।
लाइसेंसिंग द्वि‑विकल्पीय है: Apache License 2.0 या MIT, उपयोगकर्ता की पसंद के अनुसार, जबकि तृतीय‑पक्ष घटक अपने‑अपने लाइसेंस के तहत रहते हैं। README कार्य को एक शोध कार्यक्रम के रूप में प्रस्तुत करता है जो अनुकूलन से पहले मापन रीढ़ स्थापित करता है, इसलिए यहाँ दी गई क्षमता दावे डिज़ाइन इरादा और वर्तमान में प्रतिबद्ध पर्यावरण‑पहचान टूलिंग को दर्शाते हैं, न कि सत्यापित बिल्ड प्रदर्शन को।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.