منصوبے کے بارے میں

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، monomorphization، codegen units، rustc_codegen_ssa، LLVM، Cranelift اور GCC بیک اینڈز، LTO، آبجیکٹ جنریشن اور لنکنگ کا مطالعہ Nim فرنٹ اینڈ، سیمیٹک پروسیسنگ، بیک اینڈ کوڈ جنریشن، نیٹو کمپائلیشن اور لنکنگ کے ساتھ کرتا ہے۔ LLVM کو ایک مقررہ بنیاد کے بجائے کئی منتخب可能な کوڈ جنریشن راستوں میں سے ایک کے طور پر دیکھا جاتا ہے، اور WebAssembly کو بیک اینڈ ویلیو کے بجائے ایک ٹارگٹ پائپ لائن (کوڈ جنریشن، wasm-ld، پوسٹ لنک آپٹیمائزیشن، WIT/adapters، componentization) کے طور پر ماڈل کیا گیا ہے۔ کمپائلر ورژن کو گراف کی ایک بنیادی جہت (dimension) کے طور پر ہینڈل کیا جاتا ہے۔ اس ڈیزائن کا مقصد متعدد درست Rust ٹول چینز کے ساتھ Nim 2 اور Nim 3/Nimony کو سپورٹ کرنا ہے، جو پیکیج اور ورک اسپیس کی پابندیوں کو ایک منتخب ٹول چین تک حل کرتا ہے جبکہ رن، ایکشن، آرٹفیکٹ، کیش اور ہم آہنگی کے فیصلوں میں پیدا کرنے والے کمپائلر کی شناخت کو برقرار رکھتا ہے۔ چونکہ اندرونی ویرینٹ اسپیس بڑی ہو سکتی ہے، اس لیے پروجیکٹ شواہد پر مبنی Validated Toolchain Profiles جیسے کہ recommended، latest-validated، long-term اور preview پر زور دیتا ہے، جہاں پروفائل ایلیئز immutable exact bundle revisions تک حل ہوتے ہیں، ساتھ ہی انٹینٹ پری سیٹس اور ماہر گراف کی پابندیاں بھی شامل ہیں۔ ٹول کی استعمال پذیری بذاتِ خود پروجیکٹ کا ایک مقصد ہے: مطلوبہ نارمل راستہ پہلے پابندیوں کا حل اور چھانٹنا (pruning) ہے، جس کے بعد شواہد پر مبنی قابلِ عمل منصوبوں کا ایک چھوٹا رینکڈ سیٹ اور پھر ایگزیکیوشن ہوتا ہے، جبکہ معلوم عدم مطابقتوں کو اسٹرکچرڈ منفی علم کے طور پر رکھا جاتا ہے تاکہ یکساں ناکامیوں کو دوبارہ دریافت کرنے کی ضرورت نہ پڑے۔ وسیع بروٹ فورس ایکسپلوریشن کو ڈیفالٹ تجربے کے بجائے ایک واضح ریسرچ موڈ کے طور پر رکھا گیا ہے۔ آرکیٹیکچرل طور پر تقسیم زبان کے بجائے ذمہ داری کے لحاظ سے ہے: ایک Nim Planning Kernel گراف نارملائزیشن، کنسٹرینٹ سالونگ، کمبینٹوریل ریزولوشن، آرٹفیکٹ ڈیمانڈ پروپگیشن، پروننگ اور کریٹیکل پاتھ اینالیسس کو سنبھالتا ہے، جبکہ ایک Rust Runtime Scheduler CLI، ٹول چین ڈسکوری، OS انٹرایکشن، پروسیس ایگزیکیوشن، ریسورس اکاؤنٹنگ، cache/CAS، ڈیمن سروسز، پیمائش اور ٹریسنگ، اور شیڈولنگ کو سنبھالتا ہے۔ ریپوزٹری میں آج کل ماحول اور ٹول چین شناخت کی تہہ موجود ہے۔ ایک ریپوزٹری کے زیرِ انتظام ملٹی ٹول چین لاک (toolchains.lock.toml) کو ایک doctor کمانڈ کے ذریعے درست EnvironmentFingerprint اور ToolchainFingerprint ریکارڈز میں حل کیا جاتا ہے: scripts/bootstrap.sh لاک فائل کے مقابلے میں لاپتہ ٹولز کی رپورٹ کرتا ہے؛ --install انہیں انسٹال بھی کرتا ہے (macOS/Homebrew پلس rustup)۔ بوٹ اسٹریپ اسکرپٹ دستیاب ہونے پر درست، غیر سسٹم پیکیج مینیجر ذرائع کو ترجیح دیتا ہے (llvm-tools کے ساتھ rustup ٹول چینز، درست Nim ورژنز کے لیے choosenim، خالص Rust CLI ٹولز کے لیے cargo install --version)، اور صرف ان ٹولز کے لیے سسٹم پیکیج مینیجر کا استعمال کرتا ہے جن کا کوئی متبادل نہیں ہے، جیسے clang/llvm-config اور Binaryen کا wasm-opt۔ cargo run -p laminaria-cli -- doctor ایک انسانی طور پر پڑھنے کے قابل ماحول کی رپورٹ پرنٹ کرتا ہے، اور --json مشین کے لیے پڑھنے کے قابل فنگر پرنٹس جاری کرتا ہے۔ ایک docker/bootstrap.Dockerfile ریپروڈیوس ایبل بوٹ اسٹریپ چیکس کے لیے کنٹینر میں وہی اسٹیک چلاتا ہے؛ پیمائش کی دستاویزات کے مطابق یہ صرف درستگی کی ری پروڈکشن کے لیے ہے، اور doctor ریکارڈ کرتا ہے کہ environment_class = "container" تاکہ کنٹینر رنز کا خاموشی سے نیٹو بیس لائنز کے ساتھ موازنہ نہ کیا جائے۔ دستاویزات انگریزی اور جاپانی دونوں زبانوں میں فراہم کی گئی ہیں، جن میں ایجنٹ اورینٹڈ ٹول چین UX اور باؤنڈڈ پلاننگ، ویلیڈیٹڈ ٹول چین پروفائلز اور پروگریسو کنفیگریشن، ملٹی ورژن Rust/Nim ٹول چین پالیسی، پیمائش کی بنیاد اور ماحول/ٹریس حکمت عملی، بیک اینڈ پائپ لائن وائٹ باکسنگ، ریسرچ بنیادیں، ریسرچ پروگرام اور شواہد کی پالیسی، Rust–Nim نیٹو لنکنگ، میٹرکس فرسٹ ریسرچ پالیسی، ایک ایشو پلان اور ایک پروجیکٹ پروپوزل شامل ہیں۔ لائسنسنگ دوہری ہے: صارف کے اختیار پر Apache License 2.0 یا MIT، جبکہ تھرڈ پارٹی اجزاء اپنے لائسنس کے تحت رہیں گے۔ README اس کام کو ایک ریسرچ پروگرام کے طور پر پیش کرتا ہے جو آپٹیمائزیشن سے پہلے ایک پیمائش کی ریڑھ کی ہڈی (measurement spine) قائم کرتا ہے، لہذا یہاں کی صلاحیت کے دعوے ڈیزائن کے ارادے اور موجودہ کمٹڈ انوائرمنٹ آئیڈینٹی ٹولنگ کی عکاسی کرتے ہیں نہ کہ تصدیق شدہ بلڈ پرفارمنس کی۔