HeadlinesBriefing HeadlinesBriefing.com

GitHub headstart Rust বিল্ড 54% দ্রুত

Hacker News •
×

নির্ভরতাগুলির টাইপ-চেকিং শেষ করার আগেই নির্ভরশীল crates শুরু করুন। প্রতিটি crate শুরু হওয়ার আগে এটি নির্ভর করে এমন crates সম্পূর্ণরূপে চেক হওয়ার জন্য অপেক্ষা করে, ফাংশন বডি সহ। নিজেকে টাইপ-চেক করার জন্য এটির সেই বডিগুলির প্রয়োজন নেই। এটি নির্ভরতার ইন্টারফেস, এর .rmeta ফাইলের মেটাডেটার বিরুদ্ধে কম্পাইল করে। Headstart rustc-কে ইন্টারফেস চেক হওয়ার সাথে সাথেই একটি প্রাথমিক মেটাডেটা ফাইল লিখতে দেয়, এবং cargo-কে তার উপর নির্ভরশীলদের শুরু করতে দেয়। তারপর প্রতিটি crate-এর বডি চেক করা হয় যখন ডাউনস্ট্রিম crates ইতিমধ্যেই কম্পাইল করছে।

cargo check: নির্ভরশীলরা প্রাথমিক মেটাডেটাতে সম্পূর্ণতা পর্যন্ত চলে। cargo build: নির্ভরশীলরা প্রাথমিক মেটাডেটাতে তাদের সমস্ত বিশ্লেষণ করে, তারপর কোড জেনারেট করার আগে নির্ভরতার সম্পূর্ণ মেটাডেটার জন্য অপেক্ষা করে। অপেক্ষা করার সময়, তারা তাদের কাজের স্লট ফিরিয়ে দেয়। যদি কোনো বডিতে ত্রুটি থাকে, বিল্ডটি এখনও সেই ত্রুটির সাথে ব্যর্থ হয়, আজকের মতো একই ডায়াগনস্টিক এবং এক্সিট স্ট্যাটাস সহ; শুধুমাত্র অগ্রগতি লাইন এবং JSON বার্তাগুলির ক্রস-crate ক্রম ভিন্ন হতে পারে।

খরচ হল ডাউনস্ট্রিম কাজ যা ফেলে দেওয়া হয়, ত্রুটিগুলি কিছুটা পরে রিপোর্ট করা হয় এবং একসাথে বেশি মেমরি ব্যবহার করা হয় (docs/design.md দেখুন)। rustc-এর ডিফল্ট ফ্রন্ট এন্ডে, headstart 13টি বাস্তব প্রকল্পের (rust-analyzer, zed, bevy, lemmy, polars এবং অন্যান্য) পরিষ্কার বিল্ডকে cargo check-এর জন্য 54% পর্যন্ত দ্রুত এবং cargo build-এর জন্য 42% পর্যন্ত দ্রুত করে তোলে। কোনোটিই ধীর নয়। সমান্তরাল ফ্রন্ট এন্ড (-Zthreads=8) এর সাথে, যা কিছু একই জায়গা কভার করে, এটি 25% পর্যন্ত যোগ করে। সেগুলি 16-কোর সংখ্যা।

উৎস: Hacker News · সারাংশ: HeadlinesBriefing